<요약>
- 프로그램을 처음 배우는 공학계열 학생이나 devops를 꿈꾸는 신입 사원에게 적합한 책
- 본격적인 커널 학습 전에 가볍게 읽기 좋은 책
- 인터럽트나 커널 동기화 등 고급 주제를 다루지 않은 부분은 아쉬움
- 오탈자가 일부 있음
오랜만에 술술 잘 읽히는 전공 기초 서적을 찾았다.
다케우치 사토루 씨 (사실 누군지 잘 모름) 가 쓴 '실습과 그림으로 배우는 리눅스 구조' 라는 책인데, 정말 '제목'과 '책 소개 내용'에 충실한 책이라 느껴진다.
실습과 그림으로 배우는 리눅스 구조 - 다케우치 사토루 지음, 신준희 옮김/한빛미디어 |
먼저 제목.
각 장에서 소개하는 구조나 기술마다 실습과 그림을 붙여 이해하기 매우 쉽게 썼다.
그림과 실습 (간단한 프로그램과 스크립트를 이용)을 통해 리눅스 OS 상의 프로그램을 실제로 동작시키면서 OS의 역할과 특징을 설명하고 있기 때문에 처음 리눅스를 접하거나 OS의 역할과 특징을 공부하고자 하는 사람들도 쉽게 접근이 가능하다.
또한, '책 소개'에서 설명한 것 같이(개발자 레벨업 프로젝트, 컴퓨터 공학 기초) 같이 특징적으로 설명할 부분이 있다면, 비슷한 테스트를 여러 차례 수행해서 차이와 결과를 비교하면서 설명하기 때문에 이해가 빠르게 된다.
책은 다음과 같이 총 8장으로 구성되어 있는데, 편의상 2장씩 묶어 설명하는 것이 자연스럽고 저자의 의도도 그러하리라 예상된다.
- 1-2장 : OS의 일반적인 특징 설명 (특별히 리눅스라 하지 않더라도)
- 3-4장 : 프로세스와 스케쥴러 설명
- 5-6장 : 메모리 관리
- 7-8장 : 저장 장치
핵심만 간략하게 정리하고 있지만, 인터럽트와 커널 동기화, 타이머 등 리눅스 커널과 관련한 깊이 있는 분야 설명이 부족한 부분은 '리눅스 커널의 이해' 나 '리눅스 커널 심층 분석' 등 다른 책으로 보완이 필요하다.
리눅스 커널의 이해 - 다니엘 보베이.마르코 체사티 지음, 박장수 옮김/한빛미디어 |
리눅스 커널 심층 분석 - 로버트 러브 지음, 황정동 옮김/에이콘출판 |
저자가 서문에서도 밝혔듯 프로그램을 처음 배우는 공학계열 학생이나 devops를 꿈꾸는 신입 사원에게 OS의 기본적인 정보를 알려줌으로써 자신의 프로그램이 동작하는 방식이나 운영하게 되는 시스템의 기본에 충실하게 해 주고, 레벨업을 원하는 개발자들에게 본격적인 커널 학습 전에 개념을 잡는 데 도움이 될 만한 책이다.
다만, 몇몇 부분에서 오류가 있다. 번역의 문제인지 원작의 문제인지는 모르겠으나, 특히 3장의 경우 핵심 알고리듬 설명 오류가 보이는 점은 다음 쇄에서 개선이 필요해 보인다.
3장에서 copy on write를 설명하는 부분인데, 앞 장과 절에서 충분히 copy on write를 설명해 놓고 (심지어는 '미주'에서도 copy on write를 설명하고 있음) 제목은 "메모리 부족" 으로 뽑았다.
또한, Copy on Write의 설명에서 '테이블의 주소값 (600-700 -> 700-800) 이나, 빠진 주소 (800), 빠진 번호 (3 업데이트) 등은 '옥의 티' 다.
이 외에도 6장 등에서 코드의 indent가 맞지 않는 점 등은 다음 쇄에서 개선이 필요해 보인다.
부족한 부분의 수정, 보완은 필요해 보이고 무엇보다 OS에서 특히 중요한 주변 장치의 제어에 관련된 내용이나, 커널 프로그램을 위해 필요한 동기화, 타이머 등의 설명은 다른 책을 참고할 수 있도록 하는 부분도 추가되면 좋겠다. 어쨌든 전반적으로 쉽게 잘 읽히도록 만든 책이어서 오랜만에 기억을 되새기며 잘 읽었다.