본문 바로가기
[Review]/Book

[도서 리뷰] 실습과 그림으로 배우는 리눅스 구조

by 해피빈이 2019. 4. 14.

오늘 리뷰할 책은 '실습과 그림으로 배우는 리눅스 구조'이다.

제목만으로는 너무 간단하며, 꾸임이 없다.

 

이 제목에서 받은 느낌을 책을 읽는 내내 느꼈다.

 

바로 담백하나, 친절하다는 점이다.

 

설명이 필요한 것을 가급적 모두 설명하고 있으며, 그러한 설명으로 인해 다음으로 넘어가는것이 자연스러워지기 때문이다.

또한 화려하거나 꾸민것은 별로 없지만, 보기에 편안했다. 요즘 뜨고 있는 Medium 블로그 같다고 할까나.

 

그리고 부제로 있는 '개발자가 알아야 하는 OS와 하드웨어의 기초'가 아무래도 더 맞는 설명으로 보인다. 물론 리눅스 기준으로 설명했기 때문에 리눅스를 알아가는 것이 목적이지만, OS 전반에 대해 다루기 때문이다.

 

마치 대학시절 운영체제 수업을 좀 더 편안하게 바꿔놓은 느낌이다.

 

역시 리눅스의 상징 펭귄

표지에도 필요한 내용이다. 모두.

 

개발자 레벨업 프로젝트 -> 맞다. 우리가 흔히 개발자는 코딩하는 사람들이다.

그런데 그 개발자들은 보통 업무를 하기 위해 코딩만 생각하는 경우가 많은데, 그러면 어느정도 레벨에서 멈춰설 수 밖에 없다.

결국은 OS의 구조를 알고 그에 맞는 개발을 해야 좀 더 프로그램이 정교하게 돌아가게 된다.

그것을 이해하는데 도움을 주기 때문에 한단계 레벨업이 가능하다.

 

컴퓨터 공학 기초 -> 컴퓨터 공학과에서 다룬 운영체제 수업의 확장판이다.

운영체제 수업에서는 너무 딱딱한 느낌이 없지않았다면, 이 책에서는 좀 더 실습 지향적이고 그 안에서 이론을 발견하게 도와준다.

그래서 대학 수업이 어려웠던 자들에게 매우 큰 도움이 될 것이다. 또한 전공을 다른것으로 마쳤지만 학원 등을 통해 실무에 투입된 자들에게는 이것을 통해 어느정도 컴퓨터공학의 기초를 마련하는데 도움이 될 것으로 보인다.

 

책 정보

이 책은 따끈따끈한 책이다. 2019년 2월 20일 발행.

일본에서 지은 책이며, 번역서이다.

 

역자가 남긴 머릿글의 일부

마지막 줄인 OS의 구조에 대해 조금 더 알고 개발하고자 하는 분들, 혹은 리눅스에 대해 조금이라도 깊이있는 의문을 가져본 적이 있는 분들이라면 이 책을 읽어보시기를 적극적으로 권하고 있다.

나 또한 이에 공감하여 이 부분을 소개한다.

 

OS의 계층 구조와 현실을 그린 그림이 인상적

우리가 공부했고, 알고 있는 OS는 매우 계층적임을 보여 준 뒤, 현실을 그려놓았다.

사실 이게 맞기는 하다.

우리는 당초 레이어로 치면 응용계층과 연결된 OS외의 라이브러리 정도만 알아도 되어야 하는데, 실제 개발하다보면 크래시가 빈번하게 일어난다. 원래로 치면 wrapping되어있기 때문에 알아서 막혀있어야 하는 구조이지만, 아래의 그림처럼 직접 하드웨어와 맞닿아 있기도하고, 그것이 아니면 구현하기 어려운 아이디어들이 많기 때문이다. 문제해결도 어려워진다.

그래서 우리가 일반 응용프로그램 개발자라 할지라도 OS의 구조는 결국에는 필수가 된다. 성장하기 원한다면 말이다.

백마디 말보다 이렇게 그린 그림이 너무나 와 닿았다.

 

목차의 일부

목차는 다음과 같은 순서로 구성되어 있다.

 

CHAPTER 1. 컴퓨터 시스템의 개요

CHAPTER 2. 사용자 모드로 구현되는 기능

CHAPTER 3. 프로세스 관리

CHAPTER 4. 프로세스 스케줄러

CHAPTER 5. 메모리 관리

CHAPTER 6. 메모리 계층

CHAPTER 7. 파일시스템

CHAPTER 8. 저장 장치

 

챕터의 첫 장이다. 매우 심플

챕터는 간단하게 시작이 된다.

 

시스템 콜에 대해 설명하는 내용

시스템 콜에 대해 설명하는 내용이다. strace의 사용 방법과 이 것을 해석하는 방법을 이야기 하고 있다.

실제로 코드 작성시 C로 작성된 프로그램과 python으로 작성된 프로그램을 실행할 때 동일한 시스템콜을 사용한다는 것에 흥미가 생겼다.

단순히 지식적으로 알던 부분을 눈으로 확인시켜 주는 부분이 인상적이었다.

다른 부분들도 이러한 것이 많다.

아주 간단한 코드로 실습을 유도하고, 그것에 대한 설명을 정확하게 집어준다.

마치 무엇을 궁금해 할 것인지 알고 있던 듯이 말이다.

실습한 결과를 설명하는 내용

간단한 명령어를 통해 프로세스의 상태를 설명하는 도입부이다.

이것을 읽고있다보면 마치 강의를 듣고 있는 느낌이다.

책이기 때문에 일시정지할 필요도 없다.

프로세스의 시작과 종료까지의 상태변화 또한 대학수업 때 듣던 내용과 같은 부분이지만, 조금 더 편안하게 와 닿게 도와준다.

리눅스의 용처를 설명하는 맨 뒷장

 

리눅스는 각종 여러 도처에서 사용중이다. 이 책의 마지막 뒷표지 내용처럼 스마트폰, 도커, 클라우드 등 많은 영역에서 사용중이다. 20년 전에는 리눅스가 OS 중 하나라는 구나 정도만 알아도 살아가는데 지장이 없을 정도로 끼치는 영향이 적었다면, 이제는 너무나 일상적이다. 물론 윈도우, 맥도 큰 영역을 차지하지만 결국은 리눅스를 알아야 그 기본이 바로서는데 도움이 된다.

그러한 측면에서 이 책은 너무도 큰 도움을 줄 것으로 본다.

제목과 겉 표지가 개인적으로는 좀 아쉬울 정도로 내용이 알차다.

 

이 책을 추천하는 사람은 다음과 같다.

- 일반 응용프로그램을 포함한 많은 개발자

- 대학 전공을 다른 것으로 하였으나, 현업에 종사하는 개발자

- 개발자는 아니지만 개발자와 협업하는 PM이나 다른 업무 담당자

 

장점으로는

- 깔끔한 구성

- 개발자들에게 필요한 OS의 개념 정리

- 여러 도표를 사용하여 이해가 쉽도록 정리한 설명

- 적절한 실습을 통하여 체득할 수 있도록 함

- 내용에 비해 저렴한 가격

 

아쉬운 점으로는

- 제목이 조금 더 감각적이었다면

- 리눅스 실습이 매우 도움이 되기 때문에 리눅스를 다룰 수 있는 방법 몇가지를 예시로 들었더라면

 

 

나는 이 책을 다음과 같이 평가해 본다.

- 가격: 9/10

- 내용: 10/10

- 디자인: 6/10

- 구성: 10/10

 

디자인은 제목이 아쉬움이 남아 영향을 끼쳤다.

 

가격: 24,000원

전체 페이지: 303페이지

 

※ 이 리뷰는 '한빛미디어'로부터 도서를 제공받아 작성하였습니다.

반응형

댓글