리눅스 마스터 1급_2

알파카파카·2026년 2월 8일
post-thumbnail

1. 컴퓨터의 구성요소

  • 중앙처리장치 ( CPU )
  • 주기억장치 ( 메모리 )
  • 보조기억장치 ( HDD, SSD 등 )
  • 입출력장치 ( 마우스, 키보드 등 )

2. RAID ( 보조기억장치 관련 )

1) RAID 0

  • 하나의 파일을 저장할 때 여러 디스크에 나눠서 저장
  • 속도가 빠름

2) RAID 1

  • 하나의 파일을 저장할 때 똑같은 데이터를 여러 디스크에 나눠서 저장
  • 속도는 느려짐
  • 디스크가 고장났을 때 안전하게 데이터를 유지할 수 있음

3) RAID 5

  • RAID 0과 RAID 1의 장점을 조금씩 합쳐서 만든 것
  • 용량과 속도의 장점이 있으며 복구 가능 데이터를 만드는 방법

4) 하드디스크의 종류

일반 사용자 컴퓨터용

  • IDE ( 구버전 )
  • SATA ( 요즘 버전 )

서버용 컴퓨터

  • SCSI

5) 리눅스가 하드디스크를 인식하는 방법

(0) LVM으로 하드디스크 관리

  • 커널 기능으로 여러 블록 디바이스를 가상의 Logical Volume에 매핑하고 저장공간을 관리
  • 이 LVM이 매핑한 Logical Volume에 I/O 수행
  • 유연한 조절이 가능한 스토리지 풀, 온라인 데이터 재배치, 디스크 스트라이핑, 미러 볼륨, 볼륨 스냅샷 기능 제공

(1) PV

  • Physical Volume
  • 기존의 블록 디스크를 LVM이 사용할 수 있도록 볼륨으로 만들어진 것
  • PE들이 모여서 구성

(2) PE

  • Physical Extent
  • 하드디스크를 PE라는 작은 단위로 쪼갬
  • 기본 크기 -> 4MB

(3) VG

  • Volume Group
  • PV를 모아 VG를 만듬

(4) LV

  • Logical Volume
  • 게이트웨이 같은 것, 사용자는 여기를 통해서 하드디스크에 접근

(5) LE

  • Logical Extent
  • LV를 구성하는 일정 크기의 블록
  • 기본 크기는 PE와 마찬가지 ( 4MB)

3. 부트 매니저

부팅의 절차

1. 시스템 시작 및 하드웨어 초기화 (BIOS/UEFI)

  • 컴퓨터의 전원을 켜자마자 가장 먼저 실행되는 단계
  • 메인보드에 내장된 소프트웨어가 CPU, 메모리, 키보드 등 하드웨어가 정상인지 확인(POST)
  • 이상이 없으면 미리 설정된 부팅 장치(SSD/HDD)를 찾아 다음 단계로

2. 1단계 부트로더 (MBR/GPT 초기 로더)

  • 하드디스크의 가장 앞부분인 MBR(512바이트)이나 GPT 영역에 저장된 아주 작은 코드를 실행
  • 이 코드는 용량이 너무 작아 복잡한 일을 못 하므로, 용량이 더 큰 '2단계 부트로더' 를 찾아 메모리에 올리는 일만 수행

3. 2단계 부트로더 (GRUB 상세 설정)

  • 우리가 흔히 보는 검은 화면에 'Linux ...' 메뉴가 나오는 단계가 바로 GRUB
  • 여기서 부팅 옵션을 선택하면, GRUB은 '커널(Kernel)' 을 찾아 메모리로 불러옴

4. 커널 로드 (운영체제의 핵심 실행)

  • 메모리에 로드된 커널은 하드웨어 드라이버를 인식, 파일 시스템을 마운트

5. INIT 또는 systemd (서비스 실행)

  • 부팅이 완료되면 리눅스 커널은 런레벨이라는 레벨을 통해서 init 또는 systemd를 통해 적절한 프로그램 실행
  • 데몬 서비스가 실행되는 단계
  • 커널이 모든 준비를 마치면 첫 번째 프로세스인 systemd(PID 1번)를 실행
  • systemd는 네트워크, 사운드, 방화벽 등 백그라운드에서 돌아가는 수많은 서비스들을 병렬로 동시에 실행하여 시스템 환경을 구축
모드실행 레벨내용
시스템 종료0시스템 종료를 의미
단일 사용자 모드1네트워크 X, 터미널, 다른 사용자 로그인 불가
멀티 유저 모드2네트워크 X, 터미널, 다른 사용자 로그인 가능
멀티 유저 모드3네트워크 O, 터미널, 다른 사용자 로그인 가능
멀티 유저 모드5X 디스플레이로 로그인 가능, 일반적으로 사용하는 기능
재부팅6시스템을 재부팅

6. 사용자 프롬프트 (최종 대기 상태)

  • 모든 서비스가 올라오면 드디어 로그인 화면(GUI)이나 터미널(CLI) 프롬프트($)가 나타남

init ? systemd ?

부팅이 완료된 후에는 init 또는 systemd로 자동적으로 프로그램이 실행되는데

init -> 예전에 사용되던 방식 부팅 시 미리 설정이 되어있는 대로 프로그램 실행

systemd -> init 과 같이 부팅이 되면 프로그램을 실행하는 루틴을 동작하는데 init 과는 다르게 병렬로 프로그램을 루틴을 실행할 수 있어서 속도가 더 빠름

분류명령어설명
서비스 관리systemctl start [name].service서비스 시작
systemctl stop [name].service서비스 중지
systemctl restart [name].service서비스 재시작
systemctl status [name].service서비스 상태 확인
systemctl enable [name].service부팅 시 서비스 자동 실행 설정
systemctl disable [name].service부팅 시 서비스 자동 실행 해제
유닛 관리systemctl get-default기본 실행 타겟(런레벨) 확인
systemctl list-units --type=target사용 가능한 모든 타겟 목록 조회
systemctl set-default [name].target기본 실행 타겟 변경
systemctl isolate [name].target현재 시스템 상태를 특정 타겟으로 변경
전원 관리systemctl halt시스템 중지 (CPU 정지)
systemctl poweroff시스템 종료 및 전원 끄기
systemctl reboot시스템 재부팅

4. 리눅스 파일 시스템

리눅스는 파일 시스템을 이용해서 파일의 데이터를 관리하고 저장
하드디스크 어디에 어떻게 저장했는지 기록

실제 파일에 관한 내용은 Data Blocks에 저장이 되고
어느 데이터 블록에 저장을 했는지는 Inode Table에 저장

파일시스템의 Inode를 보는 방법은

ls -il

이렇게 하면 Inode 번호를 확인 가능

리눅스 파일 시스템 종류

전통적으로 리눅스에서 주로 사용했던 ext 시리즈도 있고
윈도우에서 주로 사용하는 FAT와 NTFS도 지원

파일 시스템저널링최대 파일 크기최대 볼륨 크기특징
ext2X2~4TB32TB저널링 없음. 빠르지만 복구 어려움
ext3O2TB32TBext2 + 저널링. 하위 호환 유지
ext4O16TB1EB안정적, 성능 우수. 가장 널리 사용됨
XFSO8EB8EB대용량 고성능. RHEL 기본 파일 시스템
ZFSO16EB256ZB무결성 보장, 스냅샷/압축 지원
F2FSO수 TB수 TBSSD/플래시 최적화
tmpfs-메모리 크기메모리 크기휘발성 메모리 기반. 임시 디렉토리용
vfat/exFATX4GB / 16EB최대 128PBUSB/Windows 호환
NTFSO16EB16EBWindows 기본. 리눅스에서도 사용 가능

5. X 윈도우

리눅스에서 GUI를 제공하시 위한 시스템

X 서버 (X Server)

  • 하드웨어(모니터, 마우스, 키보드)를 직접 제어
  • 사용자의 입력을 받아 클라이언트에 전달하고, 클라이언트가 보내온 그래픽 데이터를 화면에 출력

X 클라이언트 (X Client)

  • 실제 실행되는 응용 프로그램(웹 브라우저, 터미널 등)
  • "이 위치에 창을 띄워줘"라고 X 서버에 요청

우리가 보는 화려한 화면은 KDE나 GNOME 같은 프로그램이 X 윈도우 위에서 돌아가는 'X 클라이언트' 로서 디자인을 입혀줌

6. 쉘 ( SHELL )

사용자가 터미널에 명령어를 입력하면 ( CLI ), 셸 이 이를 읽어서 컴퓨터의 핵심부인 커널 이 이해할 수 있는 언어로 번역해 하드웨어 제어

셀 종류설명
sh가장 기본 쉘, 대부분의 편의 기능 X
ksh배열 지원, 함수, 자동완성, 히스토리 같은 편의 기능 제공
bash가장 널리 사용, 대부분의 편의 기능 제공
csh문법이 C언어와 유사, 편의 기능 X
tcshcsh에 편의 기능 추가

7. 프로세스

종류설명핵심 포인트
부모 프로세스다른 프로세스를 실행시킨 프로세스모든 프로세스는 부모를 가짐 (Init 제외)
자식 프로세스부모 프로세스로부터 실행된 프로세스실행 종료 시 부모에게 종료 코드를 전달함
데몬 프로세스시스템 부팅 시 자동 시작되어 백그라운드에서 상주하는 프로세스특정 서비스(웹, DB 등)를 위해 대기함
고아 프로세스부모 프로세스가 자식보다 먼저 종료되어 혼자 남겨진 프로세스Init(PID 1) 프로세스가 새로운 부모가 되어 관리함
좀비 프로세스실행은 끝났지만 부모가 종료 코드를 회수하지 않아 시스템에 정보가 남은 상태프로세스 테이블을 차지하여 시스템 자원을 낭비함

프로세스 관련 명령어

프로세스 확인

ps -ef

프로세스 kill

번호명칭역할
1SIGHUP재시작 ( 설정 파일 다시 로드 )
2SIGINT키보드 중단 ( Ctrl+C )
9SIGKILL강제 종료
15SIGTERM정상 종료
19SIGSTOP일시 정지
-lOption시그널 리스트 확인 ( kill -l )
profile
타닥,,, 타다닥,,,,,,,

0개의 댓글