임베디드기사 필기 07 — OS 포팅 [2-2] (커널소스트리·리눅스부팅·runlevel·busybox)
2과목 [2-2] OS 포팅 파트입니다.
커널소스트리 디렉토리와 runlevel은 리눅스마스터 1급과 겹치는 최빈출 주제예요.
커널 소스트리 디렉토리 ⭐⭐
리눅스 커널 소스의 주요 디렉토리 구조예요. 실기에서도 자주 나와요.
| 디렉토리 | 역할 |
| arch | CPU 아키텍처별 코드 (arm, x86, mips 등) |
| mm | 메모리 관리 (가상메모리, 페이징 등) |
| fs | 파일시스템 (ext4, YAFFS, JFFS2 등) |
| net | 네트워크 프로토콜 스택 |
| ipc | 프로세스 간 통신 (세마포어, 메시지큐 등) |
| init | 커널 초기화 코드 |
| drivers | 디바이스 드라이버 |
| include | 헤더 파일 |
| kernel | 스케줄러, 시스템 콜 등 핵심 커널 코드 |
기출 문제
Q. 리눅스 커널 소스트리에서 메모리 관리 코드가 위치하는 디렉토리는?
A. mm
Q. 리눅스 커널 소스트리에서 CPU 아키텍처별 코드가 위치하는 디렉토리는?
A. arch
리눅스 부팅 과정
리눅스 부팅 5단계
전원 공급 → BIOS → 부트로더(GRUB) → 커널 → init 프로세스
상세 부팅 과정
1. BIOS POST (자체 진단)
2. MBR에서 부트로더(GRUB) 로드
3. GRUB이 커널 이미지 로드
4. 커널 초기화 (메모리, 드라이버 등)
5. init 프로세스 실행 (/sbin/init)
6. /etc/inittab 읽어 runlevel 결정
7. 해당 runlevel의 스크립트 실행
8. 로그인 프롬프트
runlevel ⭐⭐
| runlevel | 의미 |
| 0 | 시스템 종료 (Halt) |
| 1 | 단일 사용자 모드 (복구 모드, 네트워크 없음) |
| 2 | 다중 사용자 모드 (네트워크 없음) |
| 3 | 다중 사용자 모드 + 네트워크 (CLI) |
| 4 | 사용자 정의 (미사용) |
| 5 | 다중 사용자 + 네트워크 + GUI (X Window) |
| 6 | 시스템 재부팅 (Reboot) |
/etc/inittab — 기본 runlevel 설정 파일
initdefault — 시스템 시작 시 기본 runlevel 지정
기출 문제
Q. 리눅스에서 네트워크 기능이 포함된 CLI 다중 사용자 모드의 runlevel은?
A. runlevel 3
Q. 리눅스 runlevel 5의 의미는?
A. 다중 사용자 + 네트워크 + GUI (X Window 실행)
셸 로그인 순서 ⭐
로그인 시 다음 순서로 설정 파일이 실행돼요.
/etc/profile
↓
/etc/bashrc (또는 /etc/bash.bashrc)
↓
~/.bash_profile (또는 ~/.profile)
↓
~/.bashrc
전역 설정(시스템 전체):
/etc/profile — 로그인 시 모든 사용자에게 적용
/etc/bashrc — bash 셸 시작 시 모든 사용자에게 적용
개인 설정(사용자별):
~/.bash_profile — 로그인 시 해당 사용자에게 적용
~/.bashrc — bash 셸 시작 시 해당 사용자에게 적용
기출 문제
Q. 리눅스에서 로그인 시 모든 사용자에게 공통으로 적용되는 환경 설정 파일은?
A. /etc/profile
셸 종류
Bash (Bourne Again Shell)
— 리눅스 표준 셸, 가장 많이 사용
Dash
— 경량 셸, /bin/sh의 기본값 (Debian/Ubuntu 계열)
Bourne Shell (sh)
— 가장 오래된 유닉스 셸, 모든 셸의 조상
busybox ⭐
임베디드 리눅스에서 핵심적으로 쓰이는 도구예요.
정의: 수백 개의 리눅스 유틸리티를 하나의 실행 파일로 묶은 프로그램
특징:
- 용량 매우 작음 (임베디드 시스템에 적합)
- ls, cp, mv, cat 등 다수의 명령어를 단일 바이너리로 제공
- 각 명령어는 busybox에 대한 심볼릭 링크
- 완전한 기능보다는 핵심 기능만 구현
활용:
- 자체 저장공간이 작은 임베디드 기기
- 임베디드 리눅스 루트 파일시스템 구성에 필수
기출 문제
Q. 임베디드 리눅스에서 수백 개의 유틸리티를 하나의 바이너리로 묶어 제공하는 프로그램은?
A. busybox
리눅스 주요 디렉토리 위치 ⭐⭐ (반복 출제!)
/sbin — 시스템 관리 명령어 (reboot, fdisk, ifconfig 등)
/bin — 기본 명령어 (ls, cp, cat 등)
/var — 가변 데이터 (로그, 임시파일, 메일 스풀)
/tmp — 임시 파일 (재부팅 시 삭제 가능)
/etc — 설정 파일
/proc — 커널·프로세스 정보 (가상 파일시스템)
/dev — 장치 파일
/usr — 사용자 프로그램 및 라이브러리
/home — 사용자 홈 디렉토리
기출 문제
Q. 리눅스에서 reboot, fdisk 같은 시스템 관리 명령어가 위치하는 디렉토리는?
A. /sbin
Q. 리눅스에서 로그 파일, 임시 데이터가 저장되는 디렉토리는?
A. /var
파일시스템 종류 ⭐
YAFFS (Yet Another Flash File System)
— NAND 플래시 전용
— 마운트 없이 전원 차단 가능 (안전한 종료)
JFFS2 (Journaling Flash File System v2)
— NOR/NAND 플래시 지원
— 저널링 지원
— 파일시스템 마운트 시 전체 스캔 필요 (속도 느림)
Btrfs (B-tree File System)
— 현대적 리눅스 파일시스템
— Copy-on-Write, 스냅샷 지원
ext2/3/4
— 리눅스 표준 파일시스템
— ext3/4: 저널링 지원
전원관리 — DVFS ⭐
DVFS (Dynamic Voltage and Frequency Scaling)
— 부하에 따라 CPU 전압과 주파수를 동적으로 조절
— 소비 전력 절감
— 관계식: P ∝ V² × f (전력은 전압의 제곱과 주파수에 비례)
기출 문제
Q. 임베디드 시스템에서 CPU 부하에 따라 전압과 주파수를 동적으로 조절하는 기술은?
A. DVFS (Dynamic Voltage and Frequency Scaling)
💡 실무에서는?
20년 인프라 경력에서 리눅스 서버 관리할 때 runlevel은 실무에서도 항상 쓰는 개념이에요. 서버 점검 시 네트워크 없이 단일 사용자 모드(runlevel 1)로 부팅해서 작업하는 경우가 있어요. /etc/profile, ~/.bashrc 같은 환경 설정 파일도 보안 점검 시 악성 스크립트가 삽입되는 포인트라서, SI 현장에서 침해 대응할 때 꼭 확인하는 파일들이에요. busybox는 IoT 기기, 임베디드 장비에서 거의 표준으로 쓰이는데, 최근 보안 취약점 스캐닝 시 busybox 버전 확인이 기본 항목이 됐어요.
핵심 정리
✅ 커널소스트리: arch/mm/fs/net/ipc/init/drivers
✅ runlevel 0=종료/1=단일사용자/3=CLI/5=GUI/6=재부팅
✅ 셸 로그인: /etc/profile → /etc/bashrc → ~/.bash_profile → ~/.bashrc
✅ busybox = 여러 유틸리티를 하나의 바이너리로
✅ /sbin=시스템명령어 / /var=가변데이터·로그
✅ YAFFS=NAND전용 / JFFS2=저널링 / Btrfs=CoW
✅ DVFS: P ∝ V² × f
다음 편에서는 디바이스 드라이버 개발 — module_init·세마포어·뮤텍스·워치독으로 이어갑니다!
궁금한 점은 댓글로 남겨주세요!
2026.08.10 - [자격증 정복/임베디드기사(기능사)] - 임베디드기사 필기 06 — 펌웨어 [2-1] (스타트업코드·부트로더·OS부트과정·전원관리)
임베디드기사 필기 06 — 펌웨어 [2-1] (스타트업코드·부트로더·OS부트과정·전원관리)
임베디드기사 필기 06 — 펌웨어 [2-1] (스타트업코드·부트로더·OS부트과정·전원관리)2과목 [2-1] 펌웨어 파트입니다.스타트업코드 순서와 OS 부트 5단계는 실기까지 최빈출이에요.기출 검증 완료
tech.seanney.pe.kr
2026.08.09 - [자격증 정복/임베디드기사(기능사)] - 임베디드기사 필기 05 — 하드웨어 ③ 주변장치 (UART·JTAG·I2C·RS-232·ADC/DAC)
임베디드기사 필기 05 — 하드웨어 ③ 주변장치 (UART·JTAG·I2C·RS-232·ADC/DAC)
임베디드기사 필기 05 — 하드웨어 ③ 주변장치 (UART·JTAG·I2C·RS-232·ADC/DAC)1과목 [1-3] 주변장치 파트입니다.RS-232 핀맵과 JTAG 5신호는 정확한 명칭 암기가 핵심이에요.직렬 통신 인터페이스 UART (Univ
tech.seanney.pe.kr
'자격증 정복 > 임베디드기사(기능사)' 카테고리의 다른 글
| 임베디드기사 필기 06 — 펌웨어 [2-1] (스타트업코드·부트로더·OS부트과정·전원관리) (1) | 2026.08.10 |
|---|---|
| 임베디드기사 필기 05 — 하드웨어 ③ 주변장치 (UART·JTAG·I2C·RS-232·ADC/DAC) (0) | 2026.08.09 |
| 임베디드기사 필기 04 — 하드웨어 ② 컴퓨터구조 및 마이크로프로세서 (0) | 2026.08.08 |
| 임베디드기사 필기 03 — 임베디드 하드웨어 ① 논리회로 (0) | 2026.08.07 |
| 임베디드기사 필기 02 — 4과목 핵심 키워드 총정리 (0) | 2026.08.06 |