[ SFilip @ 28.12.2004. 22:50 ] @
Postoji li nacin da se napise neki OS "od nule"(ili od neke jednostavne osnove) gde ce najveci deo koda(ili ceo OS, ako je moguce) biti napisan u pascalu?
[ sasas @ 29.12.2004. 00:17 ] @
Ovako odoka gledajuci, ima sanse.

Trebas iz pascala dobiti .obj fajlove (sto bi svaki pascal trebalo da moze da uradi).
Pascal ima podrsku za pointere, sto je naravno jako vazno.
Bitno je da tvoj pascal kompajler podrzava kucanje inline assembler-a (borlandovi alati to imaju, nisam siguran da li je propisano standardom).
Valjalo bi da kompajler ima i sluzbenu rec 'interrupt' ali to nije presudno jer se da simulirati.
Asembler ce ti raditi oko 1-5% ukupnog kooda, sve ostalo mozes da vozis u paskalu.

Ceo os nije moguce napisati bez upotrebe assemblera (ni u paskalu, ni u ceu ni bilo cemu drugom).

I to ti je otprilike to. Neki real-mode OS ('kernel', command interpreter, file system, i/o access, console) mozes napisati u par stotina linija koda - naravno zavisi od toga koliko ces kvalitetno podrzati odredjene stvari.
Naravno, mozes napisati i os za IA-32, sto se samog paskala tice ne bi trebalo biti ogranicenja.

ss.
[ sasas @ 29.12.2004. 07:45 ] @
Evo malo da se dopunim :)

Na adresi http://www.schutsch.de.vu ima link 'RS3' za koji autor tvrdi da je funkcionalan os napisan u FreePascalu. Samo sto je lik shvabo, i komentari su mu nemacki, i kood mu je ruzan do zla boga :)
Ali ako vec nekog zanima...

ss.
[ SFilip @ 29.12.2004. 11:36 ] @
Zaboravio sam da napisem da koristim Delphi7. Nisam znao da je tako vazno.
Mozes li da mi das jos malo detalja(vec si mi mnogo pomogao, hvala ti unapred) o tome sta da radim sa .obj fajlovima i sta mi tacno treba iz assemblera?
[ sasas @ 29.12.2004. 13:31 ] @
Citat:
...o tome sta da radim sa .obj fajlovima...


Nabavis neki linker koji moze da pravi izlazni format koji tebi treba. Koji ti treba zavisi od boot loadera koji planiras koristiti. Preporucujem ti da ne pravis sopstveni loader, vec da uzmes neki postojeci. Pravljenje loadera je 'pain in the ass' pogotovo sto nisi uopste siguran da li radi to sto loader ucita sa diska. Boot loader ces izabrati na osnovu toga kakav os pravis (real ili protected mode).

Citat:
...sta mi tacno treba iz assemblera?


Za protected mode ti treba od asemblera:
1. Inicijalizacija procesora - sam princip je prilicno komplikovan za razumeti, ali programiranje se svodi da sledis preciznu i jako dobru intelovu dokumentaciju. Radi se samo o setovanjima pojedinih bita u registrima, pojedinih registara i tako to.

2. interapti, tj. kontrola istih.

3. task switching (ako doguras do te faze ;)

uglavnom se prica vrti oko premestanja registara ovamo i onamo, nikakvo specijalno programiranje.


Za real mode:

Ukucas u googletu 'Ralf Brown interrupt list'

Dobro proucis naredbe 'mov' i 'int' :)

I to je sve sto ti od asm-a treba (ne shvataj ovo bukvalno ;). Pravljenje real-mode osa se u sustini svodi na pozivanje funkcija biosa. znaci u registre (ah, bh...) upisujes parametre funkcije koju trazis od bios-a, sa int XXX pozivas XXX funkciju. Liste SVIH parametara i funkcija ima taj Ralf B.

Nego u stvari najvaznije pitanje: znas li C?

ss.

ps. sorry na ovako pausalnim objasnjenjima, mrzi me da kucam opsirnije, a i zaboravilo se dosta. ipak, ako se jos neko zainteresuje, potrudicu se da potrazim vise linkova i da napisem poneki tip za pocetnike.
[ dr ZiDoo @ 29.12.2004. 14:47 ] @
OS u Pascalu :)
challange :)

Bilo bi zanimljivo ako kreneš sa tim projektom da sve kodove okačiš na ES, bilo bi jako posjećeno :D
[ SFilip @ 29.12.2004. 21:50 ] @
Citat:
Nego u stvari najvaznije pitanje: znas li C?


Ne, nazalost nikad ga nisam naucio. Nakon pascala mi se ucinio nezamislivo tezak(ako se uporede, C i jeste tezak). Zato i zelim da napisem neki probni OS u Pascalu.
[ Jimi Hex @ 29.12.2004. 22:51 ] @
Pozdrav...

[url] http://www.programiranje.net/vodic.php?id=45 [/url]
Pogledaj ovde... mozda ti pomogne, vrlo je zanimljivo, a ako zelis da saznas nesto vise kontaktiraj autora

Poz...
[ Jimi Hex @ 29.12.2004. 22:55 ] @
Pozdrav...

http://www.programiranje.net/vodic.php?id=45
Pogledaj ovde... mozda ti pomogne, vrlo je zanimljivo, a ako zelis da saznas nesto vise kontaktiraj autora

Poz...
[ sasas @ 30.12.2004. 07:59 ] @
Citat:
...Nakon pascala mi se ucinio nezamislivo tezak(ako se uporede, C i jeste tezak). Zato i zelim da napisem neki probni OS u Pascalu.


Pa evo ti najbolji hint koji ti mogu dati: pisi u ceu. Sad ovaj savet zvuci glupo (ja bar ne volim tu vrstu saveta tipa "zasto x, uzmi y") ali:

1. relativno velika zajednica koja se igra oko os programiranja koristi c (preciznije koristi gcc + nasm). samim tim ogromna vecina tutorijala i primera se bazira na tome. svejedno u cemu da pises os, moraces da razumevas te primere i samim tim moras da jako dobro razumes c sintaksu.

2. programiranje osa u ceu ili paskalu je jednako komplikovano s programerske strane. u cemu god da pises kood nece biti komplikovan.

3. u poredjenju sa problemima pisanja osa, c je smesno jednostavan.

Pisanje operativnog sistema je manje poznavanje odredjenog jezika. Jednom kad shvatis STA trebas napisati, samo programiranje je jednostavno da jednostavnije ne moze biti. Debagovanje - to je druga prica :)

toliko od mene, nadam se te nisam udavio ovolikim postovima ;)

ss.

[ dpop @ 30.12.2004. 08:13 ] @
A da malo pogledate recimo sl. lokacije
www.minix.org
http://www.cs.vu.nl/~ast/minix.html a ako ste bas zagrizli u tu oblast iz edukativnih razloga -
sa malo truda se moze naci i source...
Na Google sa recimo "kernel source pascal" ima puno referenci