سلام
من تازه دارم با لینوکس کار میکنم
با اسمبلی و سی یک کرنل ساختم - بوت لودرم کامل کار میکنه ولی توی نقطه ورود به سی مشکل داره فایل کرنل که با سی نوشته شده کار نمیکنه
خودم تصور میکنم بخاطر سیستم ۶۴ بیتی من باشه و باید از یه کامپایلر ۳۲ بیتی استفاده کنم ولی نمیدونم چطوری
کلا یه بوت لودر دارم که یه فایل به نام SWITCH رو لود میکنه توی رم و پرش میکنه به اونجا و در فایل سویچ a20 , gdt فعال میشن و بعد فایل کرنل رو لود میکنه و پرش میکنه به آدرسش
من برای کامپایل کرنل از این کد استفاده کردم :
nasm -f bin Boot.s -o BOOT
losetup /dev/loop0 floppy.img
cat BOOT > /dev/loop0
nasm -f bin Switch.s -o SWITCH
gcc -ffreestanding -c entry.c -o entry.o
ld -e entry -Ttext 0x100000 -o kernel.o entry.o
ld -i -e entry -Ttext 0x100000 -o kernel.o entry.o
objcopy -R .note -R .comment -S -O binary kernel.o KERNEL
qemu -fda /dev/loop0 -m 32
اما بوت لودرم فایل KERNEL پیدا میکنه ولی نمیتونه اجراش کنه
راهنمایی کنید لطفا - شاید مشکل جای دیگه باشه