Citat:
enterx_:
1). dali je mougece napraviti os u C-u bez uporabe asm koda?
Ne. Razlog za to je vrlo jednostavan: kako pokrenuti C program koji si napisao.
Ako uspeš da ga pokreneš, onda sve ostalo može u C-u, ali će takav operativni sistem biti značajno ograničen (npr. nešto slabiji od DOS-a :-), zato što C jezik ne definiše hardverske funkcije kao što su podešavanje memorije, procesora, ...
Citat:
2). kako citati i pisati na hard recimo od pozicije 0 do npr 512 Byta(MBR) sa C-om?
Moraćeš da koristiš ili BIOS (ako radiš u realnom režimu), ili IDE drajver (ili SCSI, ...).
Ako radiš na nekom postojećem operativnom sistemu (neki Unix tipa) onda je dovoljno da čitaš sa fread() odgovarajući uređaj (npr. GNU/Linux sistemi često imaju /dev/hda koji predstavlja prvi disk).
Citat:
3). kako pokrenuti svoj recimo exe napravljen u C-u nakon ucitavanja MBR-a bez os-a (exe je os)?(ili mozda .com bi mi trebao?)
Mislim da ne želiš da koristiš EXE. On sadrži i zaglavlja i slične gluposti koje će ti samo otežati posao. COM fajl predstavlja čist izvršni kod, a da bi njega pokrenuo, imaš nekoliko varijanti. Prva je da ti taj program bude manji od 512 bajtova, i da ga onda smestiš u sam boot sektor. Druga je da koristiš neki postojeći boot loader za učitavanje ovog programa.
Uopšte, primer dvofaznog učitavanja imaš u malom (i nedovršenom) jezgru na
http://alas.matf.bg.ac.yu/~mm01142/racunarstvo/programiranje
Tu je opisano i kako to sve radi u kratkim crtama, a možeš pogledati i sam maturski rad koji daje uvod u razvoj operativnih sistema.
Ipak, preporučio bih ti da postaviš GRUB u MBR koji može da pokreće gomilu operativnih sistema, i da koristiš „multiboot“ ELF jezgra. To znači da možeš da koristiš obično kompajliranje GCC-om za izradu jezgra, a to svakako ima mnoge prednosti.
Citat:
... mozda je ovo trebalo biti u C sekciji ? ....
Ne, mislim da je ovde zaista prikladnije. Ako treba i neka konkretna pomoć, a kod u okviru „4o“ nije dovoljan, slobodno izvoli i priupitaj.
U svakom slučaju, pošto si još uvek na početku (tj. u sezoni bootsektora :-), mislim da će ti biti zanimljiv kod koji sam ja radio. Boot sektor je, naravno, napisan u asembleru (konkretno u NASM-u), pošto je C-om veoma teško dobiti programče od ispod 512 bajtova.
Možda se moje mišljenje promenilo, ali ne i činjenica da sam u pravu.