링크드인에서 팔로우 하고 있는 분들이 추천하는 글을 보고 궁금해서 전자책으로 구매해서 읽게 됐다.
책 소개
컴퓨터 밑바닥의 비밀은 우리가 일상적으로 사용하는 컴퓨터의 작동 원리를 심층적으로 파헤치는 책이다. 복잡해 보이는 컴퓨터 시스템의 기초부터 심화 내용까지 이해하기 쉽게 설명하여, 평소 블랙박스처럼 느껴졌던 컴퓨터의 내부 작동 방식을 명확히 이해할 수 있게 도와준다.
이 책은 우리가 사용하는 고급 프로그래밍 언어가 어셈블리로 변환되는 컴파일 시스템부터 시작하여, CPU의 작동 원리, 메모리 구조, 운영체제의 역할까지 단계적으로 설명한다. 특히 컴퓨터에서 가장 빠른 CPU가 어떻게 다른 하드웨어간의 속도차이를 극복하는 지를 자세히 알려준다.
개인적 소감
전반적으로 프로그램에서부터 저수준 단계로 내려가며 설명하는 CS:APP(Computer System:A Programmer’s Perspective) 책과 구성이 같았으나 이 책이 훨씬 이해하기 쉽게 설명한다. CSAPP 책은 깊이 있는 교수님이 설명해주는 것이라 치면, 이 책은 어느 일타강사가 설명해주는 느낌이였다.
컴퓨터 밑바닥의 비밀보다는 “프로그램 밑바닥의 비밀”이라는 제목이 더 어울릴 것 같다. 보통의 컴퓨터 밑바닥을 다루는 책들은 논리 게이트와 같은 하드웨어 수준까지 깊이 다루나, 이 책은 코드가 어디에 존재하여 어떻게 전달되어 최종적으로 실행되는지 같은 프로그램 실행 과정에서 생기는 궁금증들을 풀어나가고 있다.
이 과정에서 개발자로써 생각해볼만한 또는 미처 생각치 못했던 추상화된 부분을 깨달을 수 있다. 한 예로, 여러 실행 흐름이 서로 전환될 때 컨텍스트 스위칭이 일어나게 되는데 이 과정이 꼭 커널 모드에서만 일어날 필요가 없었다. 이것을 사용자 모드에서 일어나게 하는 기술로 코루틴
이 있었고, 이는 꽤 오래전인 1950년대부터 고안된 기술이였다.
코루틴을 특정 프로그래밍 언어에 속하는 기술로만 알고 있었던지라 꽤나 충격적이였다.
자바의 가상 스레드 기술이 커널이 아닌 사용자 모드에서 가상 쓰레드를 만들고 스케쥴링하는 기술로 알고 있는데, 이것이 코루틴과 비슷한 원리이지 않을까싶다.
전반적인 프로그램 작동 원리를 살펴볼 수 있어 흥미로웠고 지식이 흐려질 때쯤 다시 읽어봐야겠다.
결론
개발자로서 이러한 컴퓨터 기초 원리에 대한 이해는 단순히 학문적 호기심을 넘어 실무적 가치를 지닌다고 생각한다. 특히 AI 시대에는 표면적인 코딩 기술보다 근본적인 컴퓨터 과학 지식이 더욱 중요한 차별점이 될 것이다. 이 책과 같은 자료들을 통해 컴퓨터의 작동 원리를 깊이 이해하면 새로운 기술과 도구들이 등장할 때마다 빠르게 적응하고 더 효과적으로 활용할 수 있는 기반이 될 것이다.