MiniOS Tutorial?

poruka: 38
|
čitano: 4.057
|
moderatori: Lazarus Long, XXX-Man, vincimus
+/- sve poruke
ravni prikaz
starije poruke gore
15 godina
offline
MiniOS Tutorial?

Pozdrav!


Imam pitanje, zanima me dali netko mozda zna ili ima kakav tutorial za izradu nekog mini operativnog sustava, ne nesto tipa Windows ili Linux, nego nesto jako jednostavno, jer me zanima kako se to tocno radi i kako to funkcionira sve !?

Moj PC  
0 0 hvala 0
15 godina
offline
RE: MiniOS Tutorial?
Tesko je to sam napraviti, koliko vidim ti bas i nemas potrebno znanje pa je to jos teze.
inox
15 godina
offline
RE: MiniOS Tutorial?

Pa da nemam potrebno znanje je istina, ali zato pitam pa da mozda nesto i naucim, znam da je jako tesko napraviti, ali pitam za neki vrlo jednostavni OS pa ako netko zna.. :)

15 godina
offline
RE: MiniOS Tutorial?
Mene je to isto zanimalo, zato ti je Google tu, puno sam toga sam skuzio.
inox
15 godina
offline
RE: MiniOS Tutorial?

Ma googlao sam ali nisam bas pronasao stvari koje me zanimaju, nigdje nema nista kako se radi od samoga početka, uvjek sam naisao na neke naprednije stvari, dali znas mozda koju stranicu dobru u vezi toga onda?

16 godina
neaktivan
offline
MiniOS Tutorial?

Pa jesi li savladao HelloWorld?{#}

Bilo je par tema o izradi os-a na ovom forumu i pitanja su postavljali uglavnom likovi kao Hacker Goran itd.

 

Dakle izrada OS-a je jedan jako složen postupak.

 

Ali neću više da ti solim pamet, pa ukoliko si savladao C# ili neki drugi CLR jezik za tebe postoji nešto što se zove Cosmos projekt.

LINK: http://www.codeproject.com/KB/cs/CosmosMS5.aspx

 

Moj PC  
1 0 hvala 1
15 godina
offline
RE: MiniOS Tutorial?

Ma imam ja već par programa koje sam napravio, pogledaj malo po forumu ;), nego me zanimaju kompliciranije stvari, radio sam vec i sa VCL Frameworkom i konzolne aplikacije tako da imam i sa time vec iskustva par mjeseci, ali jednostavno me ne zanimaju toliko aplikacije nego izrada nečeg kompliciranijeg

15 godina
offline
RE: MiniOS Tutorial?
Joco55 kaže...

Pa jesi li savladao HelloWorld?{#}

Bilo je par tema o izradi os-a na ovom forumu i pitanja su postavljali uglavnom likovi kao Hacker Goran itd.

 

Dakle izrada OS-a je jedan jako složen postupak.

 

Ali neću više da ti solim pamet, pa ukoliko si savladao C# ili neki drugi CLR jezik za tebe postoji nešto što se zove Cosmos projekt.

LINK: http://www.codeproject.com/KB/cs/CosmosMS5.aspx

 

Da, znam za to, ali to nije to, za C++ pitam :)

Znam za tog Hackera Gorana, ali ja nisam ko on, ja ne kazem da budem sigurno izradio OS i ne pametujem ko on, samo pitam dali netko ima kakvu stranicu gdje je to detaljnije objasnjeno ;)

Poruka je uređivana zadnji put čet 30.12.2010 1:28 (NiGHT_RiDER92).
16 godina
neaktivan
offline
MiniOS Tutorial?

Pa eto pokušaj s time, ali ja bih ti preporučio da počmeš ozbiljnije proučavati algoritme, rad s bazom podataka, prog. web stranice itd.

Moj PC  
0 0 hvala 0
15 godina
offline
RE: MiniOS Tutorial?
Joco55 kaže...

Pa eto pokušaj s time, ali ja bih ti preporučio da počmeš ozbiljnije proučavati algoritme, rad s bazom podataka, prog. web stranice itd.

Imam ti iskustva sa PHP-om i mySQL-om dosta, sa HTML-om isto, (ucio sam u skoli to) ali me ne zanima toliko izrada web stranica, ne zanimaju me ni managed jezici kao C# toliko puno kao C++ makar imam iskustva i sa C#-om dosta, ali i sam sam rekao, zanima me vise izrada kompliciranijih stvari nego programiranje najobičnijih aplikacija ...

Poruka je uređivana zadnji put čet 30.12.2010 1:31 (NiGHT_RiDER92).
15 godina
neaktivan
offline
RE: MiniOS Tutorial?

Pocni prvo sa pisanjem bootloadera, trebat ces dobro poznavanje nacina na koji hardver radi, poznavanje binarne i heksadekadske aritmetike i programiranje u assembleru. Preporucam Flat assembler ili Netwide assembler (Flat assembler i sâm koristim).

 

Na C neko vrijeme zaboravi (ako dodes do toga da mozes izvrsavati kompajlirane objektne datoteke).

C++, C#, Java, PHP, Visual Basic i ostale gluposti zaboravi. Ti se jezici vrte iznad kojekakvih apstrakcija i izvrsnih layera (cak i C++ koji je "najprimitivniji" medu spomenutom ekipom ovisi o odredenim "pomagalima" za uspjesno izvrsavanje).

 

Trebat ce ti popis interrupta Ralfa Browna i nekakav virtual machine u kojem ces testirati svoju umotvorinu, preporucam Bochs, ostali (Vmvare i ekipa) su mozda malo previse za to sto pokusavas. Takoder bi bilo zgodno da skines intelove x86 manuale. Takoder, umalo zaboravih, dobro bi ti dosao i nekakav posteni hex editor, npr. HxD je veoma dobar iako premasuje moje potrebe (ja koristim 1Fh)


Ova stranica
je isto veoma zgodna, puno mi je pomogla.

 

Evo ti i primjer malog bootloadera, izrezao sam velik dio vlastitog kôda koji zapravo i radi nesto pametno i ostavio samo kostur koji ispisuje poruku na ekran. {#}

 

use16
org 7C00h

mov      si,text
   
push     ax
push     bx
mov      ah,0Eh
mov      bh,00h
mov      bl,07h

nextchar:
    lodsb
    or     al,al
    jz     return
    int    10h
jmp nextchar

return:
jmp return


text       db 'Pozdrav Bug forumu',13,10,0
times 510-($-$$) db 0 ;was 510
dw 43605   

Gornji kôd se assemblira u Flat assembleru, potrebne su odredene prilagodbe za ostale assemblere.

 

I nemoj traziti tutoriale o tome, to nije jedna od "U deset koraka" tema. Nego iziskuje puno citanja i gnjavaze sa memory dumpovima i triple faultima. Definitivno nije izvan dosega, ali ako to kanis ici pisati da bi se za par dana hvalio susjedu kako si napravio OS, onda odustani, jer za par dana neces imati nista osim nekoliko sijedih vlasi :)

 

Sad imas vjetar u leda koji ja nisam imao, i vise manje sve na jednom mjestu (meni je trebalo dosta dok nisam shvatio sto mi je sve uopce potrebno), od tebe ovisi sto ce od toga biti.

 

Kao uzore mozes si pogledati KolibriOS, MenuetOS i DexOS da vidis koliko daleko mozes dogurati sa svojim ogranicenim sredstvima. Btw. svi su radeni u cistom assembleru ali se izvrsavaju u zasticenom rezimu procesora, nesto sto je tebi kao pocetniku daleko izvan dosega.

How much wood would a woodchuck chuck if a woodchuck could chuck wood?
Poruka je uređivana zadnji put čet 30.12.2010 2:05 (rustweaver).
15 godina
offline
RE: MiniOS Tutorial?

Puno ti hvala !!

15 godina
offline
RE: MiniOS Tutorial?
rustweaver kaže...

 i nekakav virtual machine u kojem ces testirati svoju umotvorinu ...

Imam  samo jedno pitanje, dali moze to raditi onda na Microsoft Virtual PC-ju ili bas treba ovo sto si ti rekao !?

15 godina
neaktivan
offline
RE: MiniOS Tutorial?

Vrlo vjerojatno moze, trebalo bi raditi na svakom VM-u, samo sto se emulacija razlikuje od VM-a do VM-a. Koristi sto ti je draze.

How much wood would a woodchuck chuck if a woodchuck could chuck wood?
Poruka je uređivana zadnji put čet 30.12.2010 2:13 (rustweaver).
15 godina
offline
RE: MiniOS Tutorial?

Oke, samo pitam, hvala :)

15 godina
neaktivan
offline
RE: MiniOS Tutorial?

Bump, evo jos malo dokumentacije intelove arhitekture.

 

EDIT: referenca opcih x86 instrukcija.

How much wood would a woodchuck chuck if a woodchuck could chuck wood?
Poruka je uređivana zadnji put čet 30.12.2010 17:51 (rustweaver).
16 godina
neaktivan
offline
RE: MiniOS Tutorial?

Samo bih pohvalio odgovor što se tiče "assemblija"...lijepo je kad netko koji je nešto već prošao to i prenese .

Private
15 godina
offline
RE: MiniOS Tutorial?

Evo ti jedna jako dobra wiki stranica o izradi OS-a: http://wiki.osdev.org/Main_Page

15 godina
offline
RE: MiniOS Tutorial?

Hvala vam puno, drago mi je da postoje takvi ljudi koji su spremni pomoći ! {#}

15 godina
neaktivan
offline
MiniOS Tutorial?

Imam i ja jedno pitanje. Vi govorite o Intelu, pa zar tako napisan OS nebi radio na AMD-ovim CPU-ovima?   I kako se rješi problem drivera? To je meni sve nesmislivo, ja sam pislio da to treba pisati u binarnom kodu od najsitnijih detalja. I spominjete x86 arhitekturu. Oće li to raditit na mom 64-bitnom sustavu?

Moj PC  
0 0 hvala 0
15 godina
neaktivan
offline
RE: MiniOS Tutorial?
King of Games kaže...

Imam i ja jedno pitanje. Vi govorite o Intelu, pa zar tako napisan OS nebi radio na AMD-ovim CPU-ovima?

Bi, ali Intel je tvorac x86 arhitekture, tako da su oni autoritet po tom pitanju i od njih se ocekuju kojekakvi manuali - zato ovdje stalno spominjem Intel. Za AMD si eventualno mozes pogledati njihove specificne ekstenzije (kojih nema mnogo, pogotovo otkako je 3DNow! i sluzbeno pokopan)

 

King of Games kaže...

I kako se rješi problem drivera?

Driver je samo dio x86 koda koji izravno komunicira sa hardverom i to cesto preko BIOSa (lakse, ali sporije) ili direktnom komunikacijom sa chipsetom putem portova. U svakom slucaju tu je rijec o obicnoj aplikaciji koja ima odredene privilegije (izvrsavaju se u ring0 domeni zajedno s kernelom, i imaju direktni pristup hardveru)

 

King of Games kaže...

To je meni sve nesmislivo, ja sam pislio da to treba pisati u binarnom kodu od najsitnijih detalja.

Pa i pise se, to ti je assembly, koliko bi nize od toga? Zar bi magnetom rucno mijenjao pojedine bitove na hard disku? {#} Ipak smo napredovali malo dalje od busenih kartica.

 

King of Games kaže...

I spominjete x86 arhitekturu. Oće li to raditit na mom 64-bitnom sustavu?

Naravno! To je sve x86, 64 bitni sustav prakticki donosi samo rad sa vecim registrima. I iz 64 bitnog rezima rada se ne moze prebaciti u virtual86 rezim. To je razlog zasto se 16 bitne aplikacije ne mogu izvoditi na 64 bitnim operativnim sustavima (mogu samo preko emulacije).

How much wood would a woodchuck chuck if a woodchuck could chuck wood?
Poruka je uređivana zadnji put čet 30.12.2010 22:35 (rustweaver).
17 godina
neaktivan
offline
MiniOS Tutorial?

Postoji cijela knjiga o izradi 32-bitnog operativnog sustava: http://www.amazon.com/Developing-32-Bit-Operating-System-Cd-Rom/dp/0672306557 (legalni link za kupovinu offline izdanja knjige)

 

A pošaljem ti pravi link na PM... ;)

Potpis ;)
Moj PC  
0 0 hvala 1
15 godina
neaktivan
offline
MiniOS Tutorial?

 

Možda nešto ovako?

 
0 0 hvala 0
15 godina
neaktivan
offline
MiniOS Tutorial?

Ima jedna genijalna alatka za ucenje x86 assemblyja.

Demo nazalost, ali jedino ogranicenje je mogucnost snimanja.

How much wood would a woodchuck chuck if a woodchuck could chuck wood?
 
0 0 hvala 1
15 godina
offline
RE: MiniOS Tutorial?

Kada u Flat Assembleru upisem

include "win32a.inc"   (probao sam i include "include\win32a.inc", jer se mapa zove include unutar direktorija gdje se program nalazi)

i kaze "error: file not found", zasto ne moze naci tu datoteku, u cemu je problem? Na netu nisam našao ništa o tome, ako ima netko tko zna molio bih ga za pomoc.

Poruka je uređivana zadnji put pet 31.12.2010 0:24 (NiGHT_RiDER92).
15 godina
neaktivan
offline
RE: MiniOS Tutorial?

Moras koristiti punu putanju do include datoteke jer se gleda relativna putanja od source datoteke a ne od fasm.exe programa.

 

Znaci ako ti je Fasm instaliran u d:\fasm\ a source koji assembliras se nalazi u c:\assembler\ onda moras u include staviti

include "d:\fasm\include\win32a.inc"

How much wood would a woodchuck chuck if a woodchuck could chuck wood?
15 godina
offline
RE: MiniOS Tutorial?

Hvala, proradilo (izgleda da je osjetljivo i na mala i velika slova)

15 godina
neaktivan
offline
RE: MiniOS Tutorial?

Ali nemoj previse zadirati u windows programiranje putem assemblera. Ako ne znas raditi s WinAPI-jem putem nekog high level jezika (c, c++), sa assemblerom ces to jos teze nauciti. To ti je mazohizam.

How much wood would a woodchuck chuck if a woodchuck could chuck wood?
15 godina
offline
RE: MiniOS Tutorial?

Ma samo isprobavam, assembler nesto jako malo znam, a sa Win32 API-jem sam vec radio u C++u, ali trudim se nesto nauciti, ovo u vezi razvoja OS-a ce mi dosta pomoci da shvatim kako ustvari kompjuteri rade :)

17 godina
neaktivan
offline
MiniOS Tutorial?

Predložio bih ti da prvo proučiš neku literaturu vezanu uz operacijske sustave, recimo

 

Tanenbaum - Operating Systems Design and Implementation.

 

Zatim, imaš na netu recimo BareMetal OS, operacijski sustav u potpunosti pisan u asembleru te je njegov kod dostupan za edukacijske svrhe. Zatim, tu je Minix čiji je kod također dostupan, operacijski sustav koji je praktički i pokrenuo grudu zvanu Linux. Naposlijetku, tu je i sam Linux. No prije svega, moja preporuka je, puno literature, tek onda proučavanje kodova, a onda tek kodiranje. Iza operacijskih sustava stoji puno teorije, strašno puno, od datotečnih sustava, preko U/I naprava, memory managementa, security-a do semafora, monitora tj. općenito sinkronizacijskih mehanizama. Ima toga. No, sve se da naučiti. Eto to su ti neke smjernice. Sretno!

 

Q: a kako se to linux ponasa kad crkne hdd? A: zastekava svakih 60 sec,ali prezivi se
 
1 0 hvala 1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice