Evo, konkretno nesto na ovu temu...
Pisanje, danas, OS-a u ASM-u je kao da si u kuci dosao i zapalio vatru na sred kuhinje, sa namerom da tu kuvas rucak, a da ti pored stoji sporet. Istina, ASM je mnogo brzi od C, kompajlirani kod zauzima mnogo manje memorije, itd, ima tu dosta prednosti, ali komplikovanost... Sam Windows je pisan u C. Onaj ko zeli da pise OS u ASM-u, nadam se da radi to samo u edukativne svrhe ili ako mu je brzina VEOMA bitna i nadam se da zna sta radi, kao i koje muke ga cekaju.
Ono sto ja mislim da je idealno resenje je pisanje boot loadera u ASM-u (nije neka velika nauka), mozda cak i koriscenje GRUB-a (ali ipak je sladje kad sve sam napravis :) ), potom pocetak pravljenja kernela u ASM (prvih par linija), dalje pravljenje funkcija u C fajlu, koje ce ASM koristiti. Postupak je taj da napisete C kod, kompajlirate ga binarno i nezavisno od sistema (!). Pozivate funkcije iz C fajla uz pomoc ASM-a (i dalje to nije skroz funkcionalno do sl koraka). Da bi sve to radilo, potrebno je da linkujete ta dva fajla. Secam se da je na linuxu to radila komanda "ld". Kada sve to odradite, imacete nesto sto se moze nazvati zapocetim operativnim sistemom.
Najvise paznje obratite kod boot loadinga, tu umeju biti najvece greske. Ukoliko sam pogresio u gornjem tekstu, molio bih da me neko ispravi, proslo je poprilicno vremena od kad sam radio nesto ovakvo, ali ja mislim da je to proces :)
Onaj ko misli da ne utrosi vise od par dana na pisanje osnovnih komandi, nek ni ne pokusava da radi nesto ovako. Takodje, oni koji znaju C++, a ne znaju C, razlika nije toliko mala, nisu samo dva plusa u nazivu. "cout" koji vam je radio posao ne postoji, potrebno je pisati direktno u video memoriju. Sve sto se ispisuje na ekranu, potrebno je pisati u video memoriju. To je samo pocetak nocne more koja vas ceka... :)
THE ONLY EASY DAY WAS YESTERDAY