포스코DX X 비트교육센터 6기 - ❤️리눅스❤️, 젠킨스
리눅스 내부구조
- cpu 정보 출력
cat /proc/cpuinfo
- 파티션 정보 출력
cat /proc/partitions
(+) 다른 정보들
메모리 정보, free(시스템의 메모리 사용량 정보 출력),…
-> free
프로세스 구조
- PCB
- 프로그램 카운터 : 몇 번째를 실행해야 하는지 알려주는 정보
- OS에서의 context : 프로세스 정보 -> 이게 디스크에 들어갔다가 나왔다가 함. 이것을 context switching이라고 이야기함.
- 가상메모리와 실제 메모리에 매핑하는 과정을 페이징이라고 말한다. -> 프로세스가 매핑할 수 있는 사이즈가 정해져있기 때문에 페이징이 필요
* 대학 2학년 운영체제 수업 필기 中
# 프로세스 개념
- 운영체제가 실행하는 다양한 프로그램들
+ Batch system : jobs
Time-shraed system : tasks, process
- 프로세스 : 실행중인 프로그램
- 프로그램은 디스크에 저장된 수동적인 파일이다. (=실행 파일)
- 프로그램은 실행 파일이 메모리로 적재될 때 프로세스가 된다.
# 프로세스에 포함되는 것들
- 텍스트 영역(프로그램 코드, 기계어 코드)
- 데이터를 저장하는 메모리 영역 stack/data/heap(변수들을 위한 공간)
- CPU 내의 PC(program counter)
- CPU 내의 레지스터 내용들
- PCB(Process Control Block)
*PC(program counter) : 다음에 실행할 명령어가 들어 있는 위치
*PCB : 운영체제가 프로세스를 관리하는 데 필요한 모든 정보를 기록하는 곳.(프로그램 실행 과정을 copy)
# 프로세스 안 메모리 영역
1. data : 전역 변수(=변수)로 시작될 때 메모리 확보 부터하여 공간을 고정한다.
2. stack : 로컬 변수로 필요할 때만 불러오는 함수이기 때문에 공간이 고정되어있지 않다.
3. heap : 동적 메모리가 할당되는 공간, 메모리를 할당받고 반납한다. (ex. C++의 new, delete 연산자)_ 공용
# 프로세스 상태(Process State)_time-sharing system과 관련
1. 프로그램 실행(더블클릭)
2. new 상태로 들어옴. (프로세스가 막 생성하여 진입)
3. 바로 ready로 들어옴. (보통 여러 개의 프로그램이 줄 서서 기다림.; ready queue, CPU scheduling)
4. running상태가 되면 CPU 할당되어 시행됨. time slice에 맞춰 실행
+ running : CPU에 의해 기계어 명령어를 하나씩 실행하는 단계
5. interrupt -> ready 또는 I/O 요청(CPU 필요 없는 상태) -> waiting
+waiting : I/O가 종료되기를 기다리는 프로세스가 대기하는 곳.
6. 종료
*ready에는 언제든지 CPU가 주어지면 즉시 실행할 수 있는 프로세스만 존재한다.
TDD_CI
- Ci ? continous integration : 지속적인 통합 뭐를? 어플리케이션 엡을
- CI/CD ? 애자일에서 나온 용어이다.
=> 회사를 인터뷰 해야지!! cicd는 어떻게? 자료는 어떻게? 자동화는 어떻게 되어있나요???!!
애자일 방법론
작동하는 소프트웨어의 작은 구성 요소를 신속하게 제공하여 고객의 만족도를 개선하는 것
Jenkins 젠킨스란 무엇인가?
- CI(Continuous Integration) 툴
- 소프트웨어 개발 시 지속적으로 통합 서비스를 제공하는 툴
젠킨스 다운로드
wget --no-check-certificate https://get.jenkins.io/war-stable/2.414.1/jenkins.war
mv jenkins.war /usr/local/poscodx2023/tomcat/webapps/
ls -l /usr/local/poscodx2023/tomcat/webapps/
systemctl stop tomcat
systemctl start tomcat
cat /root/.jenkins/secrets/initialAdminPassword
비밀번호 얻어서 설치
아이디 : jenkins
암호 : 내꺼
젠킨스 관리 > 툴 >
new item 추가함. 그럼 이것을 깃이랑 연동시킴.. 그럼 여기서 팀플진행!
마리오디비 설치하기
- 작업 디렉토리
# pwd
# /root
- 의존 라이브러리 설치
# yum install -y gcc # yum install -y gcc-c++ # yum install -y libtermcap-devel # yum install -y gdbm-devel # yum install -y zlib* yum install -y libxml* yum install -y freetype* yum install -y libpng* yum install -y flex yum install -y gmp yum install -y ncurses-devel yum install -y cmake.x86_64 yum install -y libaio
iconv 소스 컴파일 설치를 한다.
wget --no-check-certificate https://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.17.tar.gz
tar xvfz libiconv-1.17.tar.gz
cd libiconv-1.17
./configure --prefix=/usr/local
make
make install
- 소스 다운로드
# wget --no-check-certificate https://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.17.tar.gz
- 압축 풀기
# tar xvfz mariadb-10.1.48.tar.gz
- 소스 이동
# cd mariadb-10.1.48
- 빌드 환경 설정
```
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/poscodx2023/mariadb -DMYSQL_USER=mysql -DMYSQL_TCP_PORT=3307 -DMYSQL_DATADIR=/usr/local/poscodx2023/mariadb/data -DMYSQL_UNIX_ADDR=/usr/local/poscodx2023/mariadb/tmp/mariadb.sock -DINSTALL_SYSCONFDIR=/usr/local/poscodx2023/mariadb/etc -DINSTALL_SYSCONF2DIR=/usr/local/poscodx2023/mariadb/etc/my.cnf.d -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DWITH_ARIA_STORAGE_ENGINE=1 -DWITH_XTRADB_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_FEDERATEDX_STORAGE_ENGINE=1 -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DWITH_SSL=bundled -DWITH_ZLIB=system
6. 빌드
make
7. 설치
make install
cd (작업은 /root)
pwd
/root
8. 계정 생성
groupadd mysql
useradd -M -g mysql mysql
9. 인스톨 디렉토리 /mariadb 소유자 변경
chown -R mysql:mysql /usr/local/poscodx2023/mariadb
10. 설정파일 위치 변경
cp -R /usr/local/poscodx2023/mariadb/etc/my.cnf.d /etc
11. 기본(관리) 데이터베이스(mysql) 생성
/usr/local/poscodx2023/mariadb/scripts/mysql_install_db –user=mysql –basedir=/usr/local/poscodx2023/mariadb –defaults-file=/usr/local/poscodx2023/mariadb/etc/my.cnf –datadir=/usr/local/poscodx2023/mariadb/data
12. 서버 구동
/usr/local/poscodx2023/mariadb/bin/mysqld_safe &
13. root 패스워드 설정
/usr/local/poscodx2023/mariadb/bin/mysqladmin -u root password ‘
14. 데이터베이스 접속 테스트
/usr/local/poscodx2023/mariadb/bin/mysql -u root -p
15. path 설정(/etc/profile)
mysql
export PATH=$PATH:/usr/local/poscodx2023/mariadb/bin
16. 서비스(데몬, Daemon) 등록/시작/중지
cp /usr/local/poscodx2023/mariadb/support-files/mysql.server /etc/init.d/mariadb
chkconfig mariadb on (centos7이상: systemctl enable mariadb)
systemctl start mariadb
### mysql 사용하기
[root@lx ~]# mysql -u root -p Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 4 Server version: 10.1.48-MariaDB Source distribution
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.
MariaDB [(none)]> show databases; +——————–+ | Database | +——————–+ | information_schema | | mysql | | performance_schema | | test | +——————–+ 4 rows in set (0.00 sec)
MariaDB [(none)]> use mysql; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A
Database changed MariaDB [mysql]> ```