2강 / 20강
커널과 셸 — 알맹이와 껍데기
전원 버튼부터 프롬프트가 뜨기까지
"운영체제"라고 뭉뚱그려 불렀지만, 안을 열어 보면 층이 나뉘어 있습니다. 호두를 떠올려 보세요. 딱딱한 껍데기(shell)가 있고, 그 안에 알맹이(kernel)가 있죠. 리눅스를 만든 사람들도 똑같이 이름을 붙였습니다.
4👤 사용자와 앱
여러분, 그리고 브라우저·쇼핑몰
3🐚 셸 (bash)
내 말을 커널의 말로 옮겨 주는 통역사
2🌰 커널 (Linux)
CPU·메모리·디스크를 진짜로 주무르는 알맹이
1⚙️ 하드웨어
CPU · RAM · SSD · 랜카드
커널은 하드웨어를 직접 만지는 유일한 프로그램입니다. 너무 힘이 세서 아무나 말을 걸 수 없어요. 그래서 우리는 셸이라는 통역사를 통해 부탁합니다.
전원을 누르면 벌어지는 일
버튼을 누르고 프롬프트가 뜨기까지, 순식간에 다섯 단계가 지나갑니다. 아래에서 순서를 직접 맞춰 보세요.
커널이 정말 있는지 눈으로 확인해 봅시다.
커널은 /boot 폴더에 파일로 들어 있습니다.
커널 파일과 지금 돌고 있는 커널의 버전
bash
내 가상 Ubuntu 서버에서 실행
vmlinuz-6.8.0-45-generic — 이 한 덩어리가 리눅스 커널입니다.
부팅할 때 이 파일이 메모리로 올라가고, 컴퓨터가 꺼질 때까지 계속 돌아갑니다.
그럼 셸은요? 지금 여러분과 대화하고 있는 그 셸도 하나의 프로그램 파일입니다.
지금 쓰고 있는 셸이 어떤 파일인지
bash
내 가상 Ubuntu 서버에서 실행
커널이 하는 일을 한 문장으로
앱이 "파일을 읽고 싶다"고 하면, 커널에게 시스템 콜(system call)이라는 특별한 부탁을 보냅니다. 커널만이 디스크를 만질 수 있으므로, 앱은 반드시 이 통로를 거쳐야 합니다.
앱이 직접 한다면 😱
앱 → 디스크 3번 트랙 512번 섹터
를 직접 읽는다
다른 앱의 파일도 마음대로 읽을 수 있음
시스템 콜을 통하면 😊
앱 → 커널: "memo.txt 읽어 주세요" 커널: 권한 확인 → 읽어서 건네줌
커널이 권한을 검사한다
🤔 확인 문제
커널과 셸의 관계를 바르게 설명한 것은?
해설 커널이 알맹이, 셸이 껍데기입니다. 부팅 순서로 보면 커널이 먼저 올라오고, 그 위에서 셸이 실행됩니다. 셸은 여러 개를 동시에 띄울 수 있지만 커널은 하나뿐입니다.
🤔 확인 문제
앱이 파일을 읽을 때 반드시 커널을 거쳐야 하는 이유로 가장 알맞은 것은?
해설 이 통로를 시스템 콜이라고 합니다. 커널이라는 문지기를 반드시 거치게 만들었기 때문에, 권한 검사(7강)와 프로세스 격리(8·9강)가 가능해집니다.