What I did? 이번 주차에는 user program 과제를 해결하는데 집중했다. 이전까지는 커널 영역에서 곧바로 테스트를 돌렸다. 즉, 운영체제 단에서 작업이 잘 이뤄지고 있는지를 테스트한 것. 하지만 운영체제가 존재하는 이유는 사용자 프로그램을 보다 쉽게 돌리기 위함이다. 사용자 프로세스에서 write() 기능을 구현하기 위해 직접 입출력 장치까지 가지 않고도 시스템 콜을 이용해 운영체제가 알아서 작업할 수 있도록 일을 시키는 것을 구현하는 게 이번 주차 목표였다. 이를 위해서 했던 과제는 크게 두 가지. 첫번째는 argument passing. 명령어는 여러 가지 뜻을 담은 인자들의 집합으로 전달된다. 하지만 컴퓨터 입장에서는 그저 숫자들의 나열일 뿐이다. 따라서 컴퓨터가 이를 분리해서 각각의..