= L4 = 김도집 [[TableOfContents]] == L4 == 마이크로 커널 중 하나로 [http://www.l4ka.org]에서 관련 정보를 구할 수 있다. * [http://www.l4ka.org] * [http://www.l4hq.org] == L4::pistachio == [http://www.l4ka.org/projects/pistachio/]에서 관련 정보를 구할 수 있다. === 빌드하기 === 다음은 커널 빌드 방법이다. 1. 소스에서 kernel 디렉토리로 들어간다. 1. 빌드 결과를 저장하기 위한 디렉토리를 결정한다 (디렉토리를 만들진 마라) 1. make BUILDDIR={앞서 결정한 빌드 디렉토리} 를 실행한다. 1. 빌드 디렉토리로 들어간다. 1. make menuconfig 를 실행한다. 1. 위 과정을 마치면 Makeconf.local 파일이 만들어진다. * gcc가 만드는 중간 생성 파일을 보고자 한다면 CFLAGS를 수정한다. CFLAGS += -save-temps * 디버그 심볼 정보를 추가하고자 한다면 다음과 같이 수정한다. CFLAGS += -g[[BR]] CCFLAGS += -g[[BR]] ASMFLAGS += -g[[BR]] * 툴체인을 지정한다. TOOLPREFIX=arm-linux- 1. make 다음은 user 빌드 과정이다. 1. 소스에서 user 디렉토리로 들어간다. 1. build 디렉토리를 만든다(mkdir build). 1. build 디렉토리로 들어간다. 1. user 디렉토리 아래에 있는 configure를 실행한다 (../configrue). * --host=arm-pleb 와 같이 architecture-platform을 지정한다. * CC=arm-linux-gcc 와 같이 툴체인을 명시한다. * ../configure --host=arm-pleb CC=arm-linux-gcc 1. make * 빌드가 끝나면 contrib/elf-loader 디렉토리 아래에 arm-loader 와 arm-loader.bin 있다. === 실행하기 on skyeye === skyeye를 이용하여 pistachio를 arm용으로 컴파일하여 실행해 볼 수 있다. 다음은 skyeye 0.7.x 에서 사용하는 config 파일(skyeye.conf)이다. {{{#!vim sh #skyeye config file sample cpu: sa1100 mach: sa1100 mem_bank: map=I, type=RW, addr=0x80000000, size=0x40000000 mem_bank: map=M, type=RW, addr=0xc0000000, size=0x02000000 mem_bank: map=I, type=RW, addr=0xe0000000, size=0x08000000 #0xe0000000 128M cache flush memory bank }}} /!\ skyeye에 대해 상세한 내용은 [skyeye]를 참고하라. skyeye 으로 실행한다. skyeye> 프롬프트에서 다음과 같이 실행하면 된다. {{{#!vim sh (skyeye)target sim (skyeye)load (skyeye)run }}} == L4::fiasco == * [http://os.inf.tu-dresden.de/fiasco/]