섹션

[책소개] 그림으로 설명하는 운영체제 디자인 원리와 구현 "리눅스 커널 디자인의 기술" 신간 출간

▲영진닷컴
▲영진닷컴

[책소개]
이 책은 멀티 프로세스 운영체제인 리눅스의 소스코드를 바탕으로 운영체제의 원리를 설명한다.

운영체제를 개발하기 위해서는 어려운 기술적인 부분보다 운영체제 자체의 동작 원리를 이해하는 것이 중요하다. 그래서 이 책에서는 실제 초기 리눅스인 리눅스 0.11 소스코드를 이용해서 운영체제의 동작 원리를 설명하고 있다.

리눅스 0.11은 최근의 운영체제보다 복잡하지 않으면서도 리눅스 운영체제의 모습을 그대로 갖추고 있어 운영체제의 동작 원리에 대해 자세히 배울 수 있으며, 가상 PC 환경에서 스스로 구현해 볼 수 있어 내용 이해에 많은 도움을 준다. 또한 다소 어렵다고 생각되는 리눅스 커널과 관련된 내용을 많은 그림과 도표를 통해 비교적 간단하고 쉽게 이해할 수 있도록 구성하고 있다.

이 책은 실제 리눅스 소스코드를 바탕으로 '제대로' 리눅스 운영체제를 배워보고 싶은 분, 운영체제를 개발해 보고 싶으신 분들께 추천한다.

■이 책은 크게 아홉 부분으로 나뉜다

ㆍ컴퓨터에 전원을 켜는 순간부터 메인 함수가 호출되는 순간까지
컴퓨터의 전원을 켜고, 메인 함수를 실행시키기까지는 세 가지 단계를 거친다. 여기서는 메인 함수를 실행시키기 위해 해야 하는 세 가지 단계의 준비작업 즉, BIOS를 로드하고, 인터럽트 서비스루틴을 통해 OS를 로드하는 것, 그리고 32비트 메인 함수를 실행하기 위한 것들을 준비시키는 것에 대해 자세히 설명한다.

ㆍ디바이스 초기화와 프로세스 0 활성화
여기에서는 OS가 기타 다른 하드웨어를 설정하는 디바이스 초기화와 프로세스 0(첫 번째 프로세스)을 위한 환경을 구성하는 방식과 함께 유저 애플리케이션들이 프로세스로서 실행될 수 있게 하는 작업들이 무엇인지 설명한다.

ㆍ프로세스 1의 생성과 실행
"디바이스 초기화와 프로세스 0 활성화"를 통해 프로세스 0은 부모 프로세스 역할을 한다는 것을 살펴보았다. 이 프로세스의 임무는 자식 프로세스인 프로세스 1을 생성하는 것이다. 여기서는 어떻게 프로세스 1을 생성하고 하드디스크 파일 시스템을 설치하는지 살펴 본다. 또한 램디스크를 포맷하고 램디스크를 루트 디바이스로 만들어 루트파일 시스템을 로드하는 방법을 알아 본다.

ㆍ프로세스 2의 생성과 실행
여기서는 프로세스 1이 프로세스 2를 생성하는 방법을 알아볼 것이다. 그리고 HCI를 위한 쉘 프로세스의 원리와 실행 방법을 통해 OS와 소통하는 방법을 소개한다.

ㆍ파일 오퍼레이션
여기서는 "프로세스 1의 생성과 실행"에서 로드한 루트 파일 시스템을 바탕으로 OS가 루트 디바이스와 데이터를 주고 받을 수 있게 하기 위해 파일 시스템 설치로 하드디스크 파일 시스템을 루트 파일 시스템으로 만드는 방법을 자세히 알아본다.

ㆍ유저 프로세스와 메모리 관리
OS의 가장 중요한 기능은 실시간 멀티태스킹이다. 또한 동시에 다수의 프로그램을 실행해야 하는 멀티프로세스를 지원하는 데 있어서 핵심은 시분할 방식이다. 여기서는 이러한 목적을 달성하기 위한 프로세스, 파일 시스템 그리고 메모리 관리에 대한 내용을 배운다.

ㆍ버퍼와 멀티 프로세스 파일
"유저 프로세스와 메모리 관리"에서 배운 프로세스, 파일 시스템, 메모리 관리에 대한 내용을 좀더 깊게 이해하고 싶다면 버퍼의 기능을 알아야 한다. 여기서는 버퍼에 대해 알아보고 좀더 깊게 이해하기 위해 다수의 프로세스들이 파일을 어떻게 처리하고 있는지에 대해 알아본다.

ㆍIPC (프로세스 간 통신)
프로세스들은 서로 협력하고 정보를 공유해야 한다. 여기서는 프로세스의 코드와 데이터를 보호하는 프로세스 간 통신(IPC)을 위해 예제를 사용해서 파이프 메커니즘, 시그널 메커니즘에 대해 자세히 살펴본다.

ㆍOS 디자인의 가이드라인
앞에서 배운 내용들을 바탕으로 운영체제에 대해 충분히 이해했을 것이다. 여기서는 이제 어떻게 OS를 디자인하는지에 대한 가이드라인을 살펴본다.

■이 책을 꼭 읽어야 하는 독자는 아래와 같다
ㆍ리눅스 운영체제를 개발해보고자 하는 사용자
ㆍ운영체제(OS)의 원리를 공부하고자 하는 학생 및 개발자

저자소개

Lixiang Yang
중국 과학 아카데미의 대학의 부교수이다. 그의 연구 분야는 운영체제, 컴파일러, 프로그래밍 언어를 포함하고 있다. 최근에, 그와 그의 팀은 성공적으로 근본적으로 컴퓨터에 불법 프로그램의 침입에 관한 문제를 해결하는 것을 목표로 새로운 운영 체제를 개발했다.

역자소개

안진섭
초등학교 때 처음 만난 BASIC 프로그램을 시작으로 고려대학교 컴퓨터 학과를 졸업하고 삼성 SDS에 입사하여 리눅스 드라이버, 미들웨어를 개발했고, 아이폰이 국내에 들어왔을 때 모바일 개발자로 전향했다. 최근에는 사물인터넷 회사를 공동 창업해서 매직에코 CTO로 개발자 인생을 계속하고 있다. URC 미들웨어 개발, 로봇 스크립트 엔진 개발, 윈도우 모바일 이메일 클라이언트 개발 등 다수의 내부 시스템을 개발했으며, 저서로는 "IPhone 실전 프로젝트(2012. 영진닷컴)"가 있다.