01/11 리눅스 기초·설치·시스템 구조
unit_id: 01-linux-foundations plan_id: linux-master-1-written plan_version: 1 verified: false
기존 여러 응답으로 전달된 01을 한 문서로 합쳤다. 핵심 역할·명령·비교와 사용자 답변 교정을 보존한다. 새 단원을 시작한 사건이 아니며 추가 회상을 요구하지 않는다. 사실 출처는 20 Areas/Certifications/exams/linux-master-1/sources에 둔다.
Linux·GNU·배포판
Linux는 리누스 토르발스가 1991년에 개발을 시작한 커널이다. GNU는 리처드 스톨먼이 1983년에 발표한 자유로운 UNIX 호환 운영체제 프로젝트이며 셸·명령어·컴파일러·라이브러리 등을 제공했다. GNU와 Linux는 별도 프로젝트에서 출발하여 GNU/Linux 시스템의 구성요소로 결합한다. 배포판은 커널과 사용자 공간 프로그램·패키지 관리·기본 설정을 설치 가능한 시스템으로 묶는다.
자유 소프트웨어의 free는 실행·연구·수정·재배포의 자유를 뜻한다. 카피레프트는 저작권을 활용해 배포된 파생물에도 자유가 이어지게 하는 방식이다. POSIX는 UNIX 계열의 공통 인터페이스를 정의하는 표준이다.
| 계열 | 예 | 형식 | 저수준 도구 | 의존성 관리 |
|---|---|---|---|---|
| Red Hat | RHEL·Rocky | RPM | rpm | dnf/yum |
| Debian | Debian·Ubuntu | DEB | dpkg | apt |
커널과 프로그램
사용자 공간 프로그램 → 시스템 호출 → 커널 → 하드웨어.
커널의 관리 대상은 CPU·프로세스, 메모리, 파일시스템, 네트워크, 장치다. 장치 드라이버는 장치를 제어한다. 명령 실행 흐름은 사용자 → 셸 → 외부 프로그램 실행이다. 실행 중인 프로그램의 시스템 호출은 셸을 필수 중간 계층으로 거치지 않는다.
- 셸: 명령 해석 프로그램.
- 프로그램: 저장된 실행 코드.
- 프로세스: 실행 중인 프로그램의 인스턴스.
- 데몬: 서비스를 제공하며 보통 장기간 백그라운드에서 실행되는 프로세스.
저장장치·파일시스템·마운트
디스크 → 파티션 테이블 → 파티션 → 파일시스템 생성 → 디렉터리에 마운트.
파티션은 디스크를 나눈 논리 영역이다. 파일시스템은 파일·디렉터리·데이터 위치를 관리하는 형식이다. 마운트는 파일시스템을 단일 디렉터리 트리의 특정 디렉터리에 연결한다. 파일 복사나 파일시스템 생성과 구별한다. 이 흐름은 기본 예시이며 LVM·RAID 등의 구성은 05에서 다룬다.
| 디스크 | 첫 파티션 |
|---|---|
| /dev/sda | /dev/sda1 |
| /dev/sdb | /dev/sdb1 |
| /dev/nvme0n1 | /dev/nvme0n1p1 |
| /dev/vda | /dev/vda1 |
MBR은 기본 테이블 항목이 4개다. 그중 하나를 확장 파티션으로 사용하고 내부에 논리 파티션을 둘 수 있다. 512바이트 논리 섹터에서 전통적인 약 2TiB 주소 한계가 있다. GPT는 대용량과 다수 파티션을 지원하고 백업 헤더·테이블과 CRC 정보를 둔다. GPT에서는 MBR식 확장·논리 구분이 필요 없다.
fdisk·gdisk·parted는 분할 도구, lsblk는 블록 장치 계층 확인 도구다. 현대 fdisk는 GPT도 지원한다. mkfs.xfs·mkfs.ext4는 파일시스템 생성 도구다. 실제 장치에 mkfs를 실행하면 기존 데이터를 훼손할 수 있으므로 여기서는 역할만 학습한다.
mount는 연결, umount는 해제다. mount·findmnt·lsblk로 연결 상태를 확인한다. /etc/fstab은 부팅 시 마운트 등에 쓰이는 설정 파일이다.
fstab 필드: 장치/UUID → 마운트 지점 → 파일시스템 종류 → 옵션 → dump → fsck 순서.
장치 이름 변경에 대비해 UUID로 파일시스템을 지정할 수 있다. swap은 메모리 페이지를 보관하는 보조 공간으로 파일이나 파티션을 이용한다. mkswap은 초기화, swapon은 활성화, swapoff는 비활성화다.
디렉터리 지도
| 경로 | 역할 |
|---|---|
| / | 전체 경로 트리의 루트 |
| /boot | 커널·초기 RAM 이미지·부팅 관련 파일 |
| /etc | 호스트·서비스 설정 |
| /home | 일반 사용자 홈 |
| /root | root 사용자의 홈 |
| /usr | 명령·라이브러리·공유 데이터 |
| /var | 로그·캐시·스풀 등 가변 데이터 |
| /tmp | 임시 파일 |
| /dev | 장치 특수 파일 |
| /proc | 커널·프로세스 정보 가상 파일시스템 |
| /sys | 장치·커널 객체 정보 가상 파일시스템 |
| /run | 부팅 후 실행 상태 정보 |
| /mnt | 임시 마운트 지점 |
| /media | 이동식 매체 마운트 지점 |
| /opt | 추가 응용 패키지 |
/와 /root를 구별한다. /usr는 개인 홈이 아니다. 현대 배포판에서 /bin·/sbin·/lib 등이 /usr 아래로 연결될 수 있다.
부팅
펌웨어(BIOS/UEFI) → 부트로더(GRUB2) → 커널·initramfs → 실제 루트 파일시스템 → 시스템의 PID 1(systemd) → 서비스·로그인.
이는 전체 역할을 설명하는 단순화된 흐름이다. initramfs의 초기 사용자 공간부터 systemd가 사용될 수도 있다.
- BIOS: 전통적으로 디스크 앞 부트 코드를 실행.
- UEFI: ESP의 EFI 실행 파일을 실행. NVRAM 부팅 항목과 Secure Boot를 지원할 수 있음.
- ESP: 보통 FAT 계열 EFI System Partition. Linux에서 /boot/efi에 마운트하는 경우가 흔함.
- BIOS/UEFI는 펌웨어, MBR/GPT는 파티션 테이블이다.
- GRUB2: 커널 선택, 커널·초기 RAM 이미지 적재, 커널 매개변수 전달.
- initramfs: 실제 루트에 접근할 드라이버·LVM·암호화 해제 등을 준비하는 메모리상의 초기 사용자 공간.
- initrd는 전통적인 RAM 디스크, initramfs는 초기 아카이브 기반 방식이다.
vmlinuz-는 커널 이미지다. initramfs-/initrd.img-*는 초기 환경 이미지다. /etc/default/grub와 /etc/grub.d/는 GRUB 설정 생성 입력, grub.cfg는 생성 결과다. RHEL 계열은 grub2-mkconfig, Ubuntu 계열은 update-grub가 대표 도구다. 생성 경로는 배포판·버전·부팅 방식에 따라 달라지므로 실제 대상 문서를 확인한다. RHEL 8의 BLS 부팅 항목도 이후 관리 설명에서 구별한다.
systemd와 target
systemd는 일반적으로 시스템 PID 1이며 unit의 의존 관계를 따라 서비스를 관리한다. target은 unit을 묶는 동기화 지점이다.
| 전통적인 Red Hat runlevel 대응 | target | 역할 |
|---|---|---|
| 0 | poweroff.target | 종료 |
| 1 | rescue.target | 복구 |
| 3 | multi-user.target | 비그래픽 다중 사용자 |
| 5 | graphical.target | 그래픽 로그인 포함 |
| 6 | reboot.target | 재부팅 |
graphical도 다중 사용자 환경이다. emergency.target은 더 최소한의 긴급 셸 환경이다. systemctl get-default는 기본 target 조회, set-default는 기본값 변경이다. default.target은 기본 target을 가리키는 링크다. runlevel의 역사적 의미는 배포판마다 차이가 있으므로 표의 적용 범위를 기억한다.
X 윈도
X11에서 X 서버는 화면·키보드·마우스 서비스를 제공하고 X 클라이언트는 이를 사용하는 응용 프로그램이다. 원격 컴퓨터에서 실행한 앱의 창을 로컬 X 서버에 표시할 수 있다. 화면 서비스를 제공하는 로컬 컴퓨터가 서버가 된다는 점이 구별 기준이다.
| 구성요소 | 역할 | 예 |
|---|---|---|
| X 서버 | 화면·입력 서비스 | Xorg |
| X 클라이언트 | 화면 서비스 이용 | xterm·xclock |
| 윈도 매니저 | 창 배치·크기·포커스 | twm·KWin |
| 디스플레이 매니저 | 그래픽 로그인·세션 시작 | XDM·GDM |
| 데스크톱 환경 | 패널·창 관리·설정·앱 묶음 | GNOME·KDE Plasma |
DISPLAY는 연결할 디스플레이를 지정한다. 형식은 hostname:display.screen이며 :0.0은 로컬 디스플레이 0의 스크린 0이다. 목적지 지정과 접속 권한 부여를 구별한다.
startx → xinit → X 서버와 초기 클라이언트 시작. ~/.xinitrc는 시작할 클라이언트·윈도 매니저, ~/.xserverrc는 서버와 옵션을 정한다. 디스플레이 매니저를 통한 로그인은 별도의 세션 시작 경로다. 이 설명은 X11 기준이다.
필기 핵심
커널은 자원 관리, 셸은 명령 해석, 배포판은 시스템 묶음이다. 파일시스템을 파티션에 생성한 뒤 디렉터리에 마운트한다. 자동 마운트 설정은 /etc/fstab이다. 펌웨어는 부트로더를, 부트로더는 커널을 시작한다. initramfs는 실제 루트 접근을 준비한다. X 서버는 화면 서비스를 제공하고, 윈도 매니저는 창을, 디스플레이 매니저는 로그인을 관리한다.
이 노트는 구성요소의 역할과 연결 위치를 구별하기 위한 01의 통합 자료다. 기존 회상 답변과 교정은 20 Areas/Certifications/exams/linux-master-1/activity-ledger에 보존한다. 다음 전체 전달 단원은 계획상 02/11이다.