컴퓨터 시스템은 어플리케이션 프로그램을 동작하기 위해 함께 작용하는 하드웨어와 시스템으로 이루어져 있습니다. 특정한 시스템 실행은 변화했기도 하지만, 기초적인 개념은 변하지 않았습니다. 모든 컴퓨터 시스템들은 유사한 기능을 수행하는 하드웨어와 소프트웨어 구성요소를 가지고 있습니다. 이 책은 그러한 구성요소들이 어떻게 동작하는지 그리고 그들이 프로그램의 정확성과 퍼포먼스에 어떤 영향을 끼치는지를 이해함으로써 프로그래머들을 공학적으로 더 성장할 수 있게 합니다.
긴 여행을 떠날 준비가 되었습니다. 만약 이 책을 읽는데 최선을 다한다면, 정말 실력있는 파워 프로그래머가 될 수 있습니다.
여기서 우리는 여러가지를 배우게 될 것입니다. 예시를 몇가지 들자면
커니건과 리치는 독자들에게 hello program을 통해 C언어를 소개합니다. hello program이 매우 단순해 보이지만, 시스템의 모든 주요 요소들은 이를 완성시키기 위해 협력해야만 합니다. 이 책의 목표는 hello 프로그램을 언제왜 동작시키고 무엇이 일어나는지를 이해하는 것을 돕는 것입니다.
우리는 hello 프로그램의 수명을 따라감으로써 시스템 공부를 시작해 보려고 합니다. hello 프로그램은 프로그래머에 의해 생성되고 시스템에서 동작하고 간단한 메시지를 출력한 후 종료됩니다. 이 프로그램의 여정을 따라감으로써 우리는 주요 콘셉트와 용어들을 소개해보도록 하겠습니다. 향후 장들은 이 개념들을 확장할 것입니다.
#include <stdio.h>
int main() {
printf("hello, world\n");
return 0;
}