티스토리 뷰

[부제: 개발자가 알아야 하는 OS와 하드웨어 기초] 제목과 책 표지만 놓고 보면 초보들이나 읽는 그런 책으로 치부될 수 있겠다는 생각이 들었다. 이 책은 스마트폰에서 클라우드까지 우리 사회에 IT가 있는 곳이라면 상당히 많은 곳에 침투해있는 리눅스의 구조를 다루는 책이다. 그림과 C 언어 코드로 쉽게 설명하고 있지만 배경지식이 전혀 없는 이들에게는 다소 어려울 수도 있다.

리눅스를 접해본 사용자라면 다들 겪는 명쾌한 답이 없는 문제인데 free 영역은 사용자 관점에서 available 영역인지, OS 관점에서 available 에 대한 부분이 있겠다. 책에서는 이 문제에 대해 그림으로 가볍게 다뤄주고 있겠다. OS 레벨에서 free 는 buff / cached 를 포함하고 있지 않지만 필요하다면 언제든지 가져다 사용할 수 있도록 설계되어 있다. 그림 한장으로 꽤 명쾌하게 풀이되고 있다고 할 수 있겠다.

여기 또 한장의 대표되는 그림을 가져왔는데 리눅스에서 페이지와 가상메모리의 관계에 대한 설명이다. 프로세스가 취하는 메모리가 실제 메모리의 pysical address 가 아닌 virtual address 에 매핑되고 있으며 그 매핑되는 정보는 페이지 테이블에 기록되어 있다는 그림이다. 이런 부분은 사실 우리가 평소에 신경 쓸 필요가 전혀 없게 느껴지지만 정작 로우 레벨의 프로그래밍이나 롱런( 꺼지지 않고 계속 메모리에 상주해야 하는 데몬 )해야 하는 프로그램을 개발하다보면 결국 어느순간 들여다봐야 하는 부분이다. 아주 작은 메모리 누수가 언제 우리 발등을 찍을지 모르니까.

 

마무리

본인은 이 책을 대부분 복습과 정리하는 느낌으로 훌훌 읽어볼 수 있었지만 갓 리눅스에 입문하는 사람에게 권할 수 있겠느냐는 질문에는 글쎄. C 언어를 완전히 무시하고는 보기 힘든 책일수도 있다. 또한 한번이라도 리눅스를 다뤄봤어야 조금은 편하게 읽어볼 수 있겠다. 시스템콜을 설명하기 위해 어쩔 수 없이 작성되어 있는 C 코드를 모두 무시하고 그냥 감으로 책을 읽겠다는 사람에게는 추천 할 수도 있다. 하지만 코드를 한줄한줄 다 파악해야 직성이 풀리는 독자에게는 권하지 않는다. 반대로 리눅스도 살짝 다뤄봤고, C 언어 코드도 스윽 보면 느낌오는 독자에게 이 책은 배경지식을 한층 더 업그레이드 해 줄 것이 분명하며 리눅스를 더 깊이 있게 다룰 수 있게 될 것이라고 확신하며 추천한다.

댓글
댓글쓰기 폼