Цитата:
Как пример по построению простейшего ядра, могу тебе предложить туториалы, которые я специально для объяснения сего процесса написал прошлым летом -
OSTuts.
//legosСпасибо за туториалы:) все таки промучавшись два дня умудрился их собрать :oops: проблемы были с компоновкой, я собирал под виндой...
заменил в setup.s: call main_function на call _main_function, и в makefile дописал objcopy kernel -O elf32-i386 ... если это неправильный подход поправьте пожалуйста :oops:
и еще одна проблема разбирался с циклом статей на лоу лвл... в 11 уроке там в handlers.c есть вот такой макрос:
Код:
#define IRQ_HANDLER(func) void func (void);
asm#func ": pusha n call _"#func " n movb $0x20, %al n outb %al, $0x20 n popa n iret n");
void _## func(void)
нормально компоноваться начало только после того как переписал его вот так:
Код:
#define IRQ_HANDLER(func) void func (void){
asm#func ": pusha n call _"#func " n movb $0x20, %al n outb %al, $0x20 n popa n iret n")}
void _## func(void)
но при запуске эмулятор выдает ошибку:(
подскажите что не так... может для сборки под виндой лучше использовать какие-нить другие инструменты:(