「리눅스」라고 부를 때 사람들은 보통 「우분투」 같은 OS 전체를 떠올리지만, 엄밀하게는 「리눅스 = 커널 이름」입니다.
커널과 OS의 관계를 이해하면 리눅스 생태계가 보입니다.
커널(kernel) — OS의 핵심.
하드웨어와 소프트웨어 사이의 다리.
1) 프로세스 스케줄링(어느 프로그램이 언제 CPU 쓸지).
2) 메모리 관리.
3) 파일 시스템.
4) 네트워크 스택.
5) 디바이스 드라이버.
항상 메모리에 상주하며 모든 시스템 호출을 처리.
운영체제(OS) — 커널 + 사용자 도구.
셸·파일 관리자·텍스트 에디터·컴파일러·라이브러리·시스템 데몬 같은 「커널 위의 도구들」.
사용자가 「OS를 쓴다」 할 때는 거의 이 도구들과 상호작용.
리눅스 커널 + GNU 도구 = 「GNU/Linux」.
토르발즈의 리눅스는 커널만.
그 위에 GNU 프로젝트가 만든 bash·gcc·coreutils 같은 도구들이 합쳐져 사용 가능한 OS가 됨.
그래서 일부에서는 「Linux」 대신 「GNU/Linux」 호칭을 주장.
커널 모드 vs 사용자 모드.
커널 코드는 「커널 모드」 — 모든 하드웨어 접근 가능.
일반 프로그램은 「사용자 모드」 — 제한된 권한.
시스템 호출(syscall)로 커널에 「이걸 해 달라」 요청 → 커널이 검증 후 처리.
이 분리가 안정성·보안의 핵심.
한 줄 요약
커널은 OS의 핵심(스케줄링·메모리·파일·네트워크·드라이버), OS는 커널 + 사용자 도구의 묶음.
리눅스 = 커널 이름, GNU/Linux = 커널 + GNU 도구의 조합.
더 알아볼 것
- 모놀리식 vs 마이크로 커널
- 시스템 호출 — strace로 보기
- 커널 모듈 — 동적 로드