§ Код

Здесь я привел типичный файл для разработки собственного ядра ОС.
1CC=gcc
2COPT=-Os -ffreestanding -fno-pie -nostdlib -m32 -mno-sse
3DEPS=nasm.o main.o
4
5all: boot.bin $(DEPS)
6	ld -m elf_i386 -nostdlib -nodefaultlibs --oformat binary -Ttext=0x8000 -Tdata=0x100000 $(DEPS) -o disk/main.bin
7
8nasm.o: main.asm
9	nasm -felf32 -o nasm.o main.asm
10
11main.o: main.h ata.h pic.h main.c
12	$(CC) $(COPT) -c main.c -o main.o
13
14boot.bin: boot.asm
15	fasm boot.asm
16	dd conv=notrunc if=boot.bin of=floppy.img bs=512 count=1
17
18bochs:
19	bochs -f a.bxrc -q
20
21disk:
22	dd if=/dev/zero of=floppy.img bs=1024 count=1440
23	dd if=/dev/zero of=disk.img bs=1024 count=262144
24	mkdir disk
25
26mkfs:
27	losetup -o 0 /dev/loop1 floppy.img
28	mkfs.fat -F12 /dev/loop1
29	losetup -d /dev/loop1
30
31mnt:
32	mount floppy.img -t vfat -o loop,rw,uid="`whoami`",sync,offset=0 disk
33
34clean:
35	rm -f *.o *.ini boot.bin