Rumah > Soal Jawab > teks badan
Baru-baru ini saya membaca tutorial tentang melaksanakan sistem pengendalian x86 yang mudah Kerana saya tidak begitu biasa dengan sistem Linux, apabila saya melihat bahawa mengkonfigurasi persekitaran pembangunan, saya perlu menulis fail skrip, Makefiles dan linker ld yang digunakan dalam pembangunan, Saya benar-benar tidak dapat memahaminya, saya tidak tahu cara menangani kod ini. Saya harap warga emas dapat memberitahu saya pengetahuan bahasa himpunan dan operasi Linux yang perlu saya pelajari.
Ini ialah kod makefile: ——————————————————————————————
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 - = -ASM_FLAGS g -F tikam
.c.o:
@echo 编译代码文件 $< ...
$(CC) $(C_FLAGS) $< -o $@
.s.o:
@echo 编译汇编文件 $< ...
$(ASM) $(ASM_FLAGS) $<
pautan:
@echo 链接内核文件...
$(LD) $(LD_FLAGS) $(S_OBJECTS) $(C_OBJECTS) -o hx_kernel
.FONI:bersihbersih:
$(RM) $(S_OBJECTS) $(C_OBJECTS) hx_kernel
.PHONY:update_imageupdate_image:
sudo mount floppy.img /mnt/kernel
sudo cp hx_kernel /mnt/kernel/hx_kernel
sleep 1
sudo umount /mnt/kernel
.PHONY:mount_imagemount_image:
sudo mount floppy.img /mnt/kernel
.PHONY:umount_imageumount_image:
sudo umount /mnt/kernel
.FONI:qemuqemu:
qemu -fda floppy.img -boot a
.FONI:bochsbochs:
bochs -f tools/bochsrc.txt
.PHONY:debugdebug:
qemu -S -s -fda floppy.img -boot a &
sleep 1
cgdb -x tools/gdbinit
——————————————————————————————
Ini ialah kod pemaut: ——————————————————————————————
/*
*/
BAHAGIAN
{
/* 段起始位置 */
. = 0x100000;
.text :
{
*(.text)
. = ALIGN(4096);
}
.data :
{
*(.data)
*(.rodata)
. = ALIGN(4096);
}
.bss :
{
*(.bss)
. = ALIGN(4096);
}
.stab :
{
*(.stab)
. = ALIGN(4096);
}
.stabstr :
{
*(.stabstr)
. = ALIGN(4096);
}
/DISCARD/ : { *(.comment) *(.eh_frame) }
}————————————————————————————
漂亮男人2017-06-05 11:12:05
Anda tidak perlu tahu pemasangan untuk ini. Anda perlu belajar Makefile dan skrip ld.