포스코DX X 비트교육센터 6기 - ❤️리눅스❤️, 젠킨스


리눅스 내부구조

  • cpu 정보 출력
cat /proc/cpuinfo
  • 파티션 정보 출력
cat /proc/partitions

(+) 다른 정보들

image

메모리 정보, free(시스템의 메모리 사용량 정보 출력),…

-> free

image

프로세스 구조

  • 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가 주어지면 즉시 실행할 수 있는 프로세스만 존재한다.

​

image

image

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
암호 : 내꺼

젠킨스 관리 > 툴 > image image image

new item 추가함. 그럼 이것을 깃이랑 연동시킴.. 그럼 여기서 팀플진행!

image

마리오디비 설치하기

  1. 작업 디렉토리
# pwd
# /root
  1. 의존 라이브러리 설치
    # 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
  1. 소스 다운로드
# wget --no-check-certificate https://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.17.tar.gz
  1. 압축 풀기
# tar xvfz mariadb-10.1.48.tar.gz
  1. 소스 이동
# cd mariadb-10.1.48
  1. 빌드 환경 설정 ```

    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]> ```