[ borisha @ 04.02.2003. 21:39 ] @
zanima me nesto! da li je kod svih os neki dio napisan u asm ili ne mora da bude tako? ako jeste koliko je to zastupljeno kod pojedinih os? i u cemu su napisani 'najpoznatiji' os? Znam da je Linux, Unix napisan u c! U cemu je napisan windows, solaris? Da li je moguce napisati os u Java programskom jeziku?
[ tOwk @ 05.02.2003. 00:55 ] @
Većina operativnih sistema se piše u C-u. Postoje i operativni sistemi napisani u drugim jezicima (potpuno u asembleru, C++-u, Oberon-u, i mnogim drugim).

Ukoliko se operativni sistem piše u C-u, jeziku koji ne zavisi od platforme, onda je neophodno bar nešto koda napisati u asembleru (C ne poznaje neke osobine hardvera na kome radi, pa na, npr. IA32, ne bi mogao da podešavaš LDT, GDT, IDT, da koristiš TSS radi lakšeg multitasking-a, itd.).

Svakako, najverovatnije postoje viši programski jezici koji su namenjeni pisanju operativnih sistema za određenu arhitekturu, i na njima onda nije potrebno koristiti asembler. Čak, i C se može proširiti nekom bibliotekom za OS razvoj za svaku arhitekturu ponaosob (jedna, bar delimično takva, biblioteka već postoji; potraži OSKit, već sam je u nekoliko navrata pominjao na ovom forumu), i onda nema potrebe koristiti asembler.

Što se tiče Java programskog jezika — ovakvo pitanje implicira upotrebu Java sintakse, a ne i vrstu izvršnog fajla (sigurno ti je poznato da se i Java kod može prevesti u mašinski kod) — nema nikakvih problema.

Ukoliko, pak, misliš na operativni sistem koji bi se izvršavao u JVM, i samim tim bio zapisan u Java bytecode-u, i to je moguće, ali onda je terminologija već malo mutnija.

Ukoliko se ne radi o hardverskoj JVM, onda bi prvi sloj operativnog sistema morala biti sama JVM koja bi imala pristup svim resursima sistema. Tek kada bi imao JVM na raspolaganju bi mogao da pišeš ostale servise operativnog sistema u Javi.

Ali, već postoji nekoliko Java-zasnovanih rešenja u polju operativnih sistema.

Potraži KaffeOS (ista Flux razvojna grupa koja je razvila i OSKit), pogledaj cjos.sf.net i jos.sf.net, i sigurno ćeš shvatiti da je moguće i u Javi pisati operativni sistem (međutim, većinom je želja da operativni sistem podržava Java mogućnosti, i da pokreće Java aplikacije native-ly, jer u tome je prednost, a ne u pisanju u Javi).
[ Rapaic Rajko @ 05.02.2003. 16:52 ] @
Verovali ili ne, ja se secam jednog operativnog sistema pisanog u Pascal-u negde krajem '80. godina. I to kod nas. Ne secam se naziva OS-a, ali racunar/prototip se zvao Vuk, i napravljen je u Nisu (valjda pri EI). Bio je baziran na Motoroli 68000 i pod tim OS-om je bio brzi nekih 10% od Atarija 520 na istoj frekvenciji.
Pogadjate, ceo projekat je propao jer su entuzijasti iz EI (pogresno) verovali da ce vlada da ulozi neku kintu u razvoj.
Vrlo je verovatno da nije ceo OS pisan u Pascal-u, to jest bilo je tu dosta asemblera.
Izvinjavam se na digresiji; samo sam se naglas podsetio lepih vremena...
Pozdrav

Rajko
[ borisha @ 05.02.2003. 19:03 ] @
a da li su os napisani potpuno u asembleru uvijek manji i brzi od ovih ostalih i da li vazi pravilo: sto je veci procenat os-a napisan u asembleru os je utoliko brzi i manji?
[ tOwk @ 06.02.2003. 03:08 ] @
Borisha, situacija je jednostavna.

Naime, u asembleru je teorijski uvek moguće napisati brži i manji operativni sistem koji obavlja iste funkcije kao i operativni sistem napisan u višem programskom jeziku. Ovo je jednostavno i pokazati: prevedi jezgro napisano u višem programskom jeziku na asembler pomoću kompajlera sa kojim porediš asembler, i onda ga dodatno optimizuj. Sigurno ćeš dobiti u najgorem slučaju isti rezultat.

Međutim, sa praktične strane, novi kompajleri su toliko dobri, da su čak i bolji od većine programera u asembleru (izvrše bolje i više optimizacija), pa ovo ipak nije slučaj.

Rajko: i sada postoji nekoliko operativnih sistema napisanih u Pascal-u, ali za taj iz Niša, naravno, nisam čuo. Svakako, problem je i u tome što ja pripadam mlađim generacijama (80-te su za mene bile prve godine života :), i imam malo praktičnog iskustva sa programiranjem ne-Intelovih arhitektura (Motorola 68xxx je sigurno jedan od najzanimljivijih, zbog široke upotrebe). Ako se setiš još nekih informacija o tom sistemu, slobodno ih baci ovde na forum.
[ Rapaic Rajko @ 06.02.2003. 11:10 ] @
O sistemu iz Nisa.
Kad malo razmislim, siguran sam da sam o tome citao u jednom od nasih casopisa, i mislim da je u pitanju list 'Racunari'. Nazalost, prvih 30-tak brojeva sam poklonio jednom drugaru koji vise nije u zemlji, a kasnije ga nisam redovno kupovao/cuvao. Dakle, koga zanima, verujem da se moze pronaci u arhivi 'Racunara'. Ali za ime prototipa mashine sam siguran: Vuk. Najverovatnije da sam zbog upecatljivog imena i zapamtio celu pricu.
Pozdrav

Rajko

P.S. Ma, ako stignem potrazicu i sam na njihovom sajtu..
[ borisha @ 06.02.2003. 19:24 ] @
za sada je sve ok objasnjeno, ali me 'kopkaju' jos neke stvari:
pretpostavljam da bi bilo tesko (ili cak i nemoguce) napisati neki os u nekom funkcionalnom programskom jeziku (npr. u Lispu ili Scheme-u)?!!? I vjerovatno ce os napisan cisto u asembleru da bude za red velicine manji od istog napisanog u nekom visem pj??!
[ tOwk @ 06.02.2003. 22:04 ] @
Čini mi se da već postoje operativni sistemi koji su napisani u nekom funkcionalnom programskom jeziku. Ukoliko treba, potražiću reference. Čak verujem da je lakše napisati operativne sisteme u njima, nego u nekom asemblerskom jeziku (kakav je C :).

A konstatacija o veličini OS-a napisanog u asembleru je potpuno pogrešna. Meni se čini da sam rekao da će verovatnije kod koji proizvede C kompajler biti bolji od ručno pisanog asemblera, a teorijski je moguće u asembleru uvek napisati bolji i manji. Vreme potrebno za takav razvoj bi bilo višestruko veće, i time-to-market bi bio takav da bi za vreme razvoja na tržište izašli višestruko brži računari, pa bismo imali efekat kao da pokrenemo DOS na novom računaru: radi brže od Windows-a i Linux-a, zar ne?
[ papak @ 11.02.2003. 21:46 ] @
Citat:
borisha:
za sada je sve ok objasnjeno, ali me 'kopkaju' jos neke stvari:
pretpostavljam da bi bilo tesko (ili cak i nemoguce) napisati neki os u nekom funkcionalnom programskom jeziku (npr. u Lispu ili Scheme-u)?!!? I vjerovatno ce os napisan cisto u asembleru da bude za red velicine manji od istog napisanog u nekom visem pj??!


Ako zanimaju funkcionalni prog jezici i OS, evo jednog korisnog linka

http://cbbrowne.com/info/lisposes.html

tu mozes vise pronaci i procitati
Inace sto se tice asmeblera i OS-a, negdje sam procitao da je Mac OS 6 napisan potpuno u asembleru, kao i sve prijasnje verzije OS-a. S Mac OS 7 su napustili asm.

--br

papak