Cau
Chtel bych se zeptat v cem se programuji operacni systemi, jako treba lynux
Myslym ze ve c++, ale jak se potom dela graficke prostredy
Diky
Fórum › C / C++
Operacni system
To janc1: nápodobně
psal sme to rychle a vsim sem si toho pozde
stačilo by dát Editovat...Maxik píše:#
# psal sme to rychle a vsim sem si toho pozde
To Maxik: Tady nejde o rychlost nebo editaci. Pokud někdo chce dělat OS, měl by znát pravopis 5 třídy a to nemůuvím o dělkách a háčcích, ale to je ještě pochopitelné...
Cau
Chtel bych se zeptat v cem se programuji operacni systemi, jako treba lynux
Myslym ze ve c++, ale jak se potom dela graficke prostredy
Diky
BTW: Grafické prostředí se normálně kreslí :)
To Ghekon:prostredi
d je meka souhlaska
To Ghekon:sory ja myslel ze to uz pises oraveny
hopla
To mephi: základ je samozřejmě nějaký z jazyků Assembler, C, C++ - pravděpodobně nějak kombinované. Některé obalové části pak běží pod .NET FW ... samozřejmě nic důležitého (už kvůli možnosti snadno získat zdrojový kód).
To mephi: Máš to totál fuk v čom je písaná vista. Programovalo ju okolo 1000 programátorov počas 4 rokov, pričom títo majú asi 17 ročné skúsenosti s programovanim operačných systémov.
Na to aby si naprogramoval OS len v textovom režime potrebuješ vedieť:
-- Asemblér
-- Ako fuguje zavádzanie OS (bios, bootsektory, multibooting atď.)
-- Ako fuguje procesor (presne), aké režimy existujú (16bit real, 32 protected) a knim prislúchajúce systémy adresovania pamäte, ako sa medzi režimami prepnúť (nijeje to tak jednoduché ako to znie)
-- Ak chceš aby to nebol dos tak potrebuješ prepnúť do 32bit režimu nastaviť IDT,GDT,TSS,PIC atď.atď, čiže kopec nízkoúrovňových hovädín a kopec binárnej artimetiky, kopec prebdených nocí nad nedebugovateľnými chybami, atď atď
-- Ak chceš aby tvoj OS vedel ćítať súbory, potrebuješ ovládače na HDD (všetky musíš písať vlastné tie z Windowsu nebudú fungivať samozrejme) (SCSI, SATA, IDE atď), ovládače na radič disku, ovládač pre daný súborový systém a kopec trpezlivosti, jedna trápna chyba a všetky súbory na disku máš v ťahu
-- Programovanie vśetkých prkotinových utilít (ls, cd, atď.atď.)
-- Keď chceš OS písať v jazyku C musíš ho ovládať do detailov, aj také hovadiny ktoré si v živote netušil že jazyk C vôbec má, keď neveríš pošlem ti 10 riadkov zo zdrojáku nášho OS. Sa stavím že nebudeš mať poňatia čo robia
Toto je veľmi zjednodušený popis (fakt veľmi veľmi zjednodušený) a to nehovorím o tom že som sem kopec vecí vôbec nenapísal
Ak chceš programovať grafické prostredie:
Potrebuješ zvládnuť všetky zbernice (PCI, AGP, PCI-E atď.) čo je ďalší kopec papiera jak Mount Everest, potom musíš mať ovládač pre každú SCI-FI grafiku (budeš sa čudovať koľko graf. kariet existuje), Potom veľmi dobrú znalosť programovania väčšinou objektovo. A ak chceš 3D tak ešte naprogramovať niečo také ako DirectX alebo OpenGL
Proste to je robota pre armádu programátorov a nie pre jedného. Linux programovali a proegramujú tisícky programátorov, windows a mac os x podobne. Reálna šanca že jeden človek samostatne naprogramuje od základu nový OS podobný funkčne Viste je rovnaká ako tá že sa ten človek dožije veku 80000 rokov.
Toť vše
P.S. jadro a nízkoúrovňový balast sa pravdepodobne robí v kombinácií C, a asembléru čo sú jazyky ktoré dokážu vytvoriť program ktorý nepotrebuje Runtime support (jazyk C nepotrebuje runtime suport až na výnimku dynamickej alokácie pamäte). Keď máš jadro systému ktoré dokáže alokovať pamäť a poskitnúť tzv Basic Runtime Support, tak už môžeš použiť pre ostatný programy akýkoľvek jazyk pre ktorý máš kompilátor na svoj OS (teda v prípade microsoftu to môže byť hocičo v prípade aplikácií)
Pridavam sa k mephiho nazoru. Len ja nemam rad ked niekoho len tak koli nicomu sprdnu. Ja tiez nepisem velmi gramaticky spravne. Aj ked otazka ako napisat OS patry k najcastejsim spolu s otazkou "ako zacat" a "urobite mi domacu ulohu" tak aspon ludia ako Janci1 a kernel odpovedali fundovane.Inac kopa nepodstatnych veci ktore tu vobec nemuseli byt.
Neutocim tym na nikoho ale proste ked si prejdem forum tak 60% odpovedi tvory nepodstatny zvast a sprdnutie cloveka a ked treba niekomu vazne poradit tak napise iba Jura a par vynimiek. Ked uz doticneho chcete sprdnut, prosim najprv mu odpovedzte.. v inom pripade je to zbytocne. Okrem toho je uplne jedno kolko ma clovek rokov, ci 13, ci 100 ak je schopny formulovat otazku a chapat odpoved.V pripade ak na prvy raz mu odpoved nieje jasna v pohode sa moze dalej pytat a verim ze dospeje k vysvetleniu. A je jedno ako napise LYNUX ci XINUNX ci FIKUS ked ho ostatni pochopia. Radsej odpoviem na otazku "Ako sa da napisat OS ako LYNUX" ako na otazku typu " Napiste mi domacu ulohu z programovania, ide o spocitanie matic".
Ted sem uplne trapnej
to sn3d: Tady jde spíš o to, že člověk, který není schopen napsat dvě slova bez chyby, by asi normální odpověď nepochopil.
A k tématu: Tohle je docela zajímavý projekt:
http://www.menuetos.net
Nevím jak teď, ale ze začátku na tom dělal jeden člověk, docela pěkná hračka. A pokud se nemýlím, tak je to open-source <- ale samozřejmě assembler.
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Operační systém v C# ? — založil Algon
Operační systém C — založil Jenkings
Operacni system na serveru — založil tobik
Jak na operační systém v c++ — založil Maqwer
Operační systém Pascalu — založil Anonymní uživatel
Moderátoři diskuze