최근에 간단한 x86 운영체제 구현에 대한 튜토리얼을 읽다가 리눅스 시스템에 별로 익숙하지 않아서 개발 환경을 구성하는 걸 보니 개발에 사용되는 스크립트 파일과 Makefile, 링커 ld를 작성해야 하는데, 정말 이해할 수 없었습니다. 이 코드를 어떻게 처리해야 할지 모르겠습니다. 이해하기 위해 배워야 할 어셈블리 언어 지식과 Linux 작업이 무엇인지 선배님들이 알려주셨으면 좋겠습니다.
메이크파일 코드는 다음과 같습니다. —————————————————————————————
C_OBJECTS = $(patsubst %.c, %.o, $(C_SOURCES))
S_SOURCES = $(shell find . -name "*.s" )
S_OBJECTS = $(patsubst %.s, %.o, $(S_SOURCES))
LD = ld
ASM = nasm
LD_FLAGS = -T scripts/kernel.ld -m elf_i386 -nostdlib
ASM_FLAGS = -f elf - g -F 찌르기
.c.o:
으아악
.s.o:으아악
링크:으아악
.PHONY:깨끗함깨끗함:
으아악
업데이트_이미지:
으아악
마운트_이미지:
으아악
umount_image:
으아악
qemu:
으아악
bochs:
으아악
디버그:
으아악
링커 코드는 다음과 같습니다. —————————————————————————————
/*
*/
SECTIONS
{
으아악
————————————————————————————
이를 위해 어셈블리를 알 필요는 없습니다. Makefile과 ld 스크립트를 배워야 합니다.