1. OS/161 과 sys161 을 빌드하여 커널 수행에 성공한다.

 

2. p /sbin/poweroff 를 입력하여 shutdown 되는 것을 확인한다.

 

3. _helloworld(void) 시스템호출을 추가한다.

 

이 함수를 호출하면 "Hello World\n" 를 출력하며,  printk를 이용한다.

kern/arch/mips/mips/syscall.c 를 수정해야 할 것이다.

syscall.c 안에 함수를 구현하지 말고, kern/userprog 디렉터리에 구현해야 한다. 

구현 파일 이름은 simple_syscalls.c 로 한다.

커널에 소스파일을 추가하면 ASST0 kernel을 다시 정의해서 빌드하고 인스톨해야 한다.

os161/kernel/conf/config 파일을 참조할 것.

ASST0 config file 을 수정하고 다시 ASST0를 만들어야 한다.

 % cd os161/kern/conf 
% vi ASST0
% ./config ASST0
4. 테스트 파일을 추가하여 수행시키고, 올바로 동작하는 지 확인한다.
src/testbin에 새로운 파일을 추가한다. 이미 있는 프로그램을 살펴보고 template으로 사용할 것.
예를 들어,
 % cd os161/testbin
% mkdir syscalltest
% cp argtest/argtest.c syscalltest/syscalltest.c
% sed 's/argtest/syscalltest/' argtest/Makefile > syscalltest/Makefile
% touch syscalltest/depend.mk
syscalltest/syscalltest.c 를 수정하여 추가된 시스템 호출을 부르도록 한다.
#include <unistd.h>

int main()
{
_helloworld();
return 0;
}
testbin/Makefile을 수정하여 새로 만든 syscalltest 를 추가한다. 
sycalltest 프로그램을 빌드하고 인스톨.
 % cd os161/testbin/
% make
% make install
os161 커널에서 syscalltest 프로그램 수행
 p /testbin/syscalltest