리눅스가 시작되면 BIOS가 부트 로더에 Boot device가 돌아가고
GRUB에서 kernel / initramfs 가 실행된다.
systemd 프로세스는 커널이 실행시키는 첫번째 사용자 프로세스이고
모든 사용자 프로세스의 최상위 조상 프로세스로 PID가 1이다.
나머지 부팅과정 즉, 시스템 초기화 작업을 실행해서 초기화 데몬이라고도 한다.
사용자환경을 준비하는데 파일시스템의 마운트, 시스템 운영을 위한 서비스 프로그램의 실행등을 한다.
서비스들의 병렬 시작을 하고 온디맨드를 활성화하며 서비스 간 의존성 해결을 한다.
이후 계속 수행되며 시스템 운영을 관리하고 셧다운까지 처리한다.
시스템 상태를 모니터링하고 데몬을 관리하며 사용자 프로세스를 정리하고 로그아웃처리와 로그인 서비스의 제공 등을 한다.
system 는 유닛(service, target, device, mount, path, socket, snapshot) 을 관리한다.
런레벨 0은 시스템을 종료하고 끄는 것이고 1은 단일 사용자 모드로 복구셸을 설정하는 것이다.
2~4는 GUI환경이 없는 다중 사용자 시스템을 설정하고
5레벨은 GUI 다중사용자 시스템을 설정한다.
6은 시스템을 종료하고 재부팅하는 것이다.
초기 런레벨은 0또는 6이되어서는 안된다.
systemctl isolate - 현재 타킷을 다른 타킷 유닛으로 바꾸는 관리자 명령
telinit 은 런레벨을 바꾸는 관리자 명령이다.
systemctl [op] command [op] - 과거 서비스 수행을 위한 초기화 스크립트로 서비스유닛으로 대체되었다.
systemctl 명령은 다양하다 ( 서비스 시작/중지/재시작)
웹콘솔의 사용~!
- 부트 로더는 운영체제 커널을 메모리에 로드하고 커널은 부팅 작업을 시작한다.
- 커널은 초기화 데몬을 통해 부팅 과정을 마무리하고 사용자 환경을 준비하게 한다.
- ‘systemd 데몬’은 서비스의 병렬 시작을 통한 부팅 속도 증가, 자원 사용의 효율화, 보안 강화를 통한 안정적이고 신뢰성 있는 시스템 관리 기능을 제공한다.
- 기본 타깃 또는 초기 부팅 모드는 /etc/systemd/system/default.target이 가리키는 대상으로 설정되며, 대개 그래픽 사용자 환경과 다중 사용자 모드를 지원하는 graphical.target으로 설정되어 있다.
- ‘systemd 초기화 데몬’은 시스템 자원과 서비스를 나타내기 위해 유닛 개념을 도입하였으며, 유닛은 ‘유닛 설정 파일’로 표현된다.
- 시스템 서비스의 관리와 시스템의 전원 관리를 위해 systemctl 유틸리티를 사용한다.
shutdown은 고전 명령어로 시간을 정해 종료가 가능한장점이 있다.
최신 전원 관리명령은 systemctl 로 조절한다.
시스템 종료시 systemd 프로세스를 통해 셧다운 되는데
TERM 시그널을 보내 종료하고 종료가 되지 않으면
KILL 시그널을 보내 강제 종료한다.
systemctl 은 시스템의 일시중단에도 사용되는데
suspend (메모리 저장), hibernate (하드디스크저장) , hybrid-sleep (메모리와 하드디스크 저장) 이 있다.
GUI를 제공하는 데스크톱은 X 윈도우 시스템(MIT개발)에 기반을 둔다.
데스크탑의 종류는 두가지 종류라고 한다.
리눅스를 보니 시작하는데 여러 서비스들이 작동하고
종료하는데도 여러 서비스들이 작동한다.
데몬이라고 불린다.
systemctl 명령어로 시스템 관련 전반제어를 한다.
- 라인 모드에서 ‘검색과 대치’를 위한 다양한 기능을 수행할 수 있다.
- 파일 이름의 일부를 알고 있을 때 locate 명령으로 파일을 찾을 수 있다.
- 파일이 가진 속성으로 파일을 찾고 검색된 파일을 대상으로 특별한 액션을 수행할 때 find 명령을 사용한다.
- 부팅 시 자동으로 마운트되는 파일 시스템의 목록이 /etc/fstab 파일에 기록되어 있다.
- 파티션 관리를 위해 parted (MBR과 GPT를 모두 지원) 또는 fdisk (전통적 텍스트 기반 대화식 도구) 명령을 사용한다
- 개념적으로 논리 볼륨은 기존 파티션과 일치하는데 크기를 조정할 수 있다.
- inode 테이블에서 한 레코드는 이름을 제외한 개별 파일의 모든 정보를 가지고 있다.
- 파일 시스템의 종류에 따라 파일 시스템의 용량, 파일 이름의 길이, 파일의 최대 크기와 총수, 파일의 복구·성능·유연성 등이 차이가 난다.
- mkfs 명령을 사용하여 파티션에 다양한 종류의 파일 시스템을 생성할 수 있다.
- 프로세스 개념과 프로세스의 상태 변화를 설명할 수 있다.
- 포어그라운드와 백그라운드 프로세스의 차이를 설명할 수 있다.
- 프로세스의 상태를 확인하고 관리하는 명령을 사용할 수 있다.
- cron 서비스를 이용해 주기적으로 반복되는 작업을 실행할 수 있다.
- 프로세스 개념과 프로세스의 상태 변화를 설명할 수 있다.
- 포어그라운드와 백그라운드 프로세스의 차이를 설명할 수 있다.
- 프로세스의 상태를 확인하고 관리하는 명령을 사용할 수 있다.
- cron 서비스를 이용해 주기적으로 반복되는 작업을 실행할 수 있다.
- 패키지 관리 도구의 필요성을 설명할 수 있다.( 패키지를 설치할 때 선행 패키지가 먼저 설치되어야 하는 의존성 문제가 존재한다.)
- RPM을 이용한 패키지 관리 방법의 문제점을 설명할 수 있다.( 레드햇 계열 리눅스에서 패키지 파일의 형식이자 기본 패키지 관리 도구이다.)
- DNF를 사용하여 소프트웨어 패키지를 관리할 수 있다.( DNF는 저장소에 기초한 패키지 설치 기능을 제공하고 의존성 문제를 해결한 고수준 관리 도구이다)
- 압축을 적용하여 아카이브 파일을 만들 수 있다.
- gzip과 bzip2는 파일의 압축과 해제를 수행하는 프로그램이다.
- tar 명령은 주어진 여러 파일을 묶어 아카이브 파일로 묶는 기능을 제공한다.
- 브랜치란 독립적 작업을 위한 것으로, 기존 코드를 복사하여 새로운 작업을 할 때 필요하다.
- 병합이란 대상 브랜치에서 작업한 내용을 현재 브랜치에 통합시키는 것이다.
- git branch 명령을 사용하여 브랜치의 생성과 삭제, 브랜치 목록의 확인 등을 할 수 있다.
- 작업 영역이 깨끗해야 작업 브랜치를 이동시킬 수 있으며 git switch 또는 git checkout 명령을 사용한다.
- fast-forward 병합이란 HEAD가 위치한 작업 브랜치를 자손 브랜치의 위치로 전진 이동시키는 것으로 새로운 커밋은 발생하지 않는다.
- 3-way 병합은 같은 조상에서 갈라져 나온 두 브랜치를 병합하는 것으로 병합을 의미하는 새로운 커밋이 자동 생성된다.
- 3-way 병합에서 충돌이 발생하면 git status 명령으로 충돌이 생긴 파일을 확인하고 직접 수정하여 충돌을 해결한 후 인덱스에 추가하고 커밋한다.
- 작업 내용의 임시 저장을 위해 스태시 기능을 사용할 수 있다.
- 마지막 커밋 이후 수행된 작업 영역과 스테이지 영역에서의 변경 작업을 git stash 명령으로 임시 저장할 수 있다.
- 스태시에 저장된 항목을 이용하여 복원할 때 git stash apply 명령을 사용한다.
- 리셋 기능은 지정한 과거의 커밋으로 완전히 회귀하는 것으로 삭제되는 커밋이 생긴다.
- 체크아웃은 이전 커밋 또는 다른 브랜치로 HEAD를 이동하는 것으로 작업 폴더가 깨끗한 상태라야 실행할 수 있다.
- 작업 폴더를 깨끗하게 만들기 위해 git stash 또는 git reset 기능을 사용할 수 있다.
- 리버트 기능은 리셋과 유사하나 기존 커밋을 삭제하지 않고, 취소를 의미하는 커밋을 추가하는 방식이다.
- git revert 명령은 작업 폴더가 깨끗한 상태에서만 수행 가능하며 충돌이 발생할 수 있다.
'4차산업혁명의 일꾼 > Java&Spring웹개발과 서버 컴퓨터' 카테고리의 다른 글
방송통신대 컴퓨터과학과 올해를 넘기면서 (0) | 2023.12.08 |
---|---|
클라우드 컴퓨팅의 미래 (0) | 2023.10.27 |
aws cloud practitioner~! 취득과 클라우드 컴퓨팅 서비스/이용모델~! (0) | 2023.09.08 |
멀티미디어 환경/데이터/압축 (0) | 2023.09.03 |
온프레미스와 클라우드비교를 비교하면 클라우드는 버짓(budget)이 시작이다 (0) | 2023.08.18 |