커널 내부구조를 가장 빠르게 이해할 수 있는 이미지 학습법!
리눅스 커널은 다양한 분야에서 활용되고 있지만, 그 중에서도 임베디드 영역이 단연 으뜸일 것이다. 임베디드 영역에서 커널을 활용할 때는 기존의 커널에서 필요한 부분만 활용하는 경우가 많기 때문에 무엇보다 커널의 전체적인 이해가 중요하다. 또한, 필요할 때마다 해당 영역에 대한 동작원리를 알면 원하고자 하는 것을 구현하기가 수월하다.
이 책은 바로 이러한 필요성에 의해 집필되었다. 커널 학습 장벽을 최대한 낮춘 이미지 학습법으로 가장 빠르고 효과적으로 커널을 학습할 수 있는 길을 제시하였다. 먼저 관련 함수의 관계도를 그려서 명확하게 이해시키고, 그 함수의 소스를 라인별로 세세하게 분석해준다. 자연스럽게 응용력을 길러준다. 파일시스템을 제어하고 싶다면, 파일시스템 챕터를 펼쳐보면 된다. 그 원리를 알면 개발이 쉬워지고 문제해결에 걸리는 시간을 최소화할 수 있다. 커널을 해독하는 책이라고 해서 처음부터 단계별로 학습해야 하는 책은 결코 아니다. 필요할 때 필요한 기능과 개념을 찾아서 볼 수 있는 좋은 레퍼런스가 되어줄 것이다.
[주요 내용]
* 커널의 기본 기능
프로세스 스케줄링, 인터럽트, 지연처리, 타이머, 시스템 콜, 동기화
* 프로세스
* 프로세스 관리, 시그널 처리
* 메모리 관리
주소 변환, 커널 공간의 레이아웃, 물리 메모리의 관리, 동적 메모리 할당, 프로세스 공간의 관리, 페이지 회수 처리
* 파일 관리
가상 파일시스템, 파일 조작, 파일의 읽기/쓰기, 특수 파일의 접근, 유사 파일시스템, 로컬 파일시스템,
* 네트워크
소켓 인터페이스, IP층, UDP층, TCP 커넥션 관리, TCP 흐름 제어, TCP 혼잡 제어
* 기타
커널의 초기화, CPU 아키텍처 종속 문제
운영체제의 효율적인 동작에는 알고리즘도 중요하지만 자료구조도 중요합니다. 즉, 리눅스 커널에서 최적의 자료구조를 위해 어떤 선택을 했는지 생각하면서 책을 읽어본다면 책을 읽는 즐거움이 배가 될 것입니다. 리눅스 커널 분석이라는 긴 여행을 떠나는 모든 분들에게 이 책이 길을 잃지 않게 해주는 지표가 되기를 기대합니다.
- 감수자 서문에서