13층: 당신의 컴퓨터가 실제로 작동하는 방식
조카인 개발자가 삼촌에게 자신이 작성한 코드가 실행될 때 노트북 안에서 실제로 어떤 일이 일어나는지 제대로 이해하지 못한다고 고백합니다. 삼촌은 노트북을 전기와 물과 같은 공유 자원을 가진 아파트 건물에 비유합니다. 우분투와 같은 운영체제는 시설 관리자 역할을 하여 다양한 애플리케이션, 즉 세입자들에게 이러한 자원을 공정하게 분배합니다. 두 가지 기본적인 자원은 RAM으로, 주방 조리대에 비유할 수 있고, SSD는 창고에 비유할 수 있습니다. RAM은 빠르고 일시적이며 전원이 차단되면 데이터가 손실되는 반면, SSD는 느리지만 영구적입니다. 이 속도 대 영구성의 상충 관계는 컴퓨팅의 핵심 개념입니다. 코드가 실행될 때, 능동적으로 처리되기 위해 SSD(창고)에서 RAM(주방 조리대)으로 복사되어야 합니다. 애플리케이션은 하드웨어에 직접 접근할 수 없으며, 시스템 호출을 통해 운영체제에 요청해야 합니다. 애플리케이션이 실행되기 전에 OS는 새로운 프로세스를 생성하여 고유 ID와 RAM의 개인 공간을 할당합니다. 이 과정에는 애플리케이션의 코드를 영구 저장소에서 일시적이고 빠른 메모리로 복사하는 작업이 포함됩니다. OS는 충돌을 방지하기 위해 모든 공유 하드웨어 자원에 대한 접근을 엄격하게 제어합니다.