Hack Club의 프로젝트입니다

Putting the “You” in CPU

컴퓨터에서 프로그램을 실행하면 정확히 어떤 일이 일어나는지 궁금하십니까? 이 글을 읽고 멀티프로세싱이 어떻게 동작하는지, 시스템 호출이 실제로 무엇인지, 컴퓨터가 하드웨어 인터럽트로 메모리를 어떻게 관리하는지, Linux가 실행 파일을 어떻게 로드하는지 알아보십시오.

글쓴이 Lexi Mattick & Hack Club · 2023년 7월

처음부터… GitHub에서 편집하기

저는 컴퓨터로 많은 일을 해 왔지만, 제 지식에는 늘 빈틈이 하나 있었습니다. 컴퓨터에서 프로그램을 실행하면 정확히 무슨 일이 일어나는 것일까요? 저는 이 빈틈에 대해 생각해 보았습니다. 필요한 저수준 지식은 대부분 갖추고 있었지만, 모든 것을 하나로 엮어 내기가 어려웠습니다. 프로그램은 정말로 CPU에서 직접 실행되는 것일까요, 아니면 다른 무언가가 일어나고 있는 것일까요? 시스템 호출을 사용해 본 적은 있지만, 시스템 호출은 어떻게 동작하는 것일까요? 시스템 호출이란 정말 무엇일까요? 여러 프로그램은 어떻게 동시에 실행되는 것일까요?

대충 휘갈겨 그린 디지털 그림입니다. 머리가 긴 누군가가 바이너리를 집어삼키는 컴퓨터를 내려다보며 어리둥절해하고 있습니다. 그러다 갑자기 좋은 생각이 떠오릅니다! 그리고 구부정한 자세로 데스크톱 컴퓨터 앞에 앉아 조사를 시작합니다.

결국 참지 못하고 알아낼 수 있는 것은 최대한 알아내기 시작했습니다. 대학에 다니지 않는다면 시스템을 폭넓게 다루는 자료가 많지 않기 때문에, 저는 품질도 제각각이고 때로는 서로 모순되는 정보를 담은 수많은 자료를 샅샅이 뒤져야 했습니다. 몇 주간의 조사와 40쪽에 가까운 노트 끝에, 이제는 컴퓨터가 부팅부터 프로그램 실행까지 어떻게 동작하는지 훨씬 더 잘 이해하게 되었다고 생각합니다. 제가 배운 내용을 설명해 주는 제대로 된 글 하나가 그토록 간절했기에, 제가 갖고 싶었던 바로 그 글을 지금 쓰고 있습니다.

그리고 이런 말이 있지 않습니까… 무언가를 다른 사람에게 설명할 수 있어야만 그것을 진정으로 이해한 것이라고 말입니다.

바쁘십니까? 이런 내용은 이미 알고 있다고 생각하십니까?

3장을 읽어 보십시오. 분명 새로운 것을 배우시리라 장담합니다. 물론 여러분이 리누스 토르발스 본인쯤 되는 분이 아니라면 말입니다.

1장으로 계속: “기초”