Naprogramovanie OS

Programovacie jazyky, rady, poradňa...
Gregi
Light Star
Light Star
Príspevky: 224
Registrovaný: 24 mar 2005, 11:34

Naprogramovanie OS

Príspevok od používateľa Gregi »

Dlho rozmyslam nad totuto myslienkou. A ta znie: Da sa dajako naprogramovat v cistom mode (PC bez ineho OS) zaklad ako takeho OS? Je vobec cosi takeho mozne (jedine ma napada ASM, ale ako to tam dostat i takto, ked tam nic nemate?). Zoberte si, ze si zlozite PC, zapnete ho a co teraz. Pravdepodobne sa to neda, ale co minimalne by som potom potreboval na to, aby som si cosi takeho vytvoril?
ako naprogramovali prvy pocitac na svete? Asi bol natvrdo predprogramovany vypalenim instrukcii do ROMky. Prosim, prispejte svojimi uvahami a myslienkami :)
manager666
Star
Star
Používateľov profilový obrázok
Príspevky: 642
Registrovaný: 12 aug 2007, 13:29

Príspevok od používateľa manager666 »

Kedze nemas vobec potuchy, ako vytvorit OS a podobne, tak z toho vyplyva jedno : momentalne na to nemas, tak to neskusaj... a na ostatne otazky tu existuje ujo g00gle pripadne iny vyhladavac... :roll:
Gregi
Light Star
Light Star
Príspevky: 224
Registrovaný: 24 mar 2005, 11:34

Príspevok od používateľa Gregi »

manager666 napísal:Kedze nemas vobec potuchy, ako vytvorit OS a podobne, tak z toho vyplyva jedno : momentalne na to nemas, tak to neskusaj... a na ostatne otazky tu existuje ujo g00gle pripadne iny vyhladavac... :roll:
To dobre viem. Ale ja som to tu pisal kvoli tomu, aby mi to ktosi trochu nacrtol a nie ma uistoval, ze na to nemam :wink:
Ty mas urcite viac skusenosti ako ja. Tak mi skus povedat ako by si postupoval Ty a ci moje uvahy su aspon spravne. Da sa to, neda sa to ...
pheo
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 212
Registrovaný: 20 sep 2005, 16:53
Bydlisko: moje hniezdo
Kontaktovať používateľa:

Príspevok od používateľa pheo »

Keby som ti mal prense odpovedať ako bol naprogramovaný prvý počítač tak ti odpoviem mechanicky :)
Neviem ci prave tento je pokladaný za prvý "počítač" ale aspon mne tak pripadá:
(Pre rýpalov - je to sčítací stroj - +- - to co dnes vie ALU)
Ale asi chces taký počítač dnešného typu... klasická PC stanica hm tak to ti neviem z hlavy :) ale google vie vsetko:
Iba z bežného pohľadu my je jasné ze je to na dlhé bezsenné noci študovania tak sa na to radsej ....

OS v napaleny v flash ramke ? mozno nejaky mini , ale fest mini, taketo ramky co udrzuju stav aj po vypnuti maju malu kapacitu, takze by ich tam muselo byt asi hafo, preto sa pouzivali magneticke pasky, pripadne HDD.
Take tie zariadenia ako pracky, chladničky a spol mozu mat vsetko vypalene pretoze ziaden OS tam nemaju ale priamo LEN inštrukcie a priestor pre data.

V podstate (aspon ja mam dnes taku predstavu, pripadne ma opravte, ale prosím slušne :) ), takePC je kopa technických špecifikácií, že nastavenia hardwarového typu uchováva bios, a ten je mapovaný v ramke od miesta X po miesto Y. Po zapnutí sa prevedie kontrola, a spustí bootovacie zariadenie, prečíta sa MBR a sputia prvé inštrukcie - zavedenie OS (odtadeto už píešeš ty ;) ). Taky OS to nie je len ako práča, dobrý OS musí spravovať a pridelovať zdroje a riadiť vlákna , prideľovať RAM pamäť, optimalizovať beh svojích periférií (napr. hlavičky hardisku aby moc zbytočne nelietala) - teda roboty viac ako pre teba mna a vsetkých dokopy co si tieto riadky precitaju ....

Ale hodne uspechov, keby nahodov nakodis novy linux, tak nezabudni dopísať moj nick do Contributors a niekde pekne na začiatok ;)
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Re: Naprogramovanie OS

Príspevok od používateľa chrono »

Gregi napísal:..
Bootstrapping (compilers) (a teda zvyčajne, buď základný kompilátor urobíš priamo v strojovom kóde, alebo, a to je častejší prípad, použiješ nejaký cross-compiler)
Gregi
Light Star
Light Star
Príspevky: 224
Registrovaný: 24 mar 2005, 11:34

Príspevok od používateľa Gregi »

to Pheo: prepac, asi som sa vyjadril nepresne. Mne nejde ani tak o strukturu OS. V tom mam ako tak jasno. No mne ide o to ako by si tam dostal tie instrukcie (napr. take mov al,8), ked ziadny OS nemas, ktory by Ti spustil vyvojove prostredie pre novy OS (teda programovaci jazyk). Pre predsavu: Zapnes PC (berme x86), prebehne post a blika kurzor (berme ze HDD je naformatovany, i ked i jeho obsluhu treba naprogramovat :roll: ). Co by si proste pisal, ked Ti nema co spracovavat tie instrukcie? cez DOS by si vedel aspon ASM instrukcie rvat postupne do file a potom ten skompilovat, ale takto ...? Podla mna sa to asi neda (to si potrebujem vyjasnit), a rad by som nasal informacie, co by som min. na to potreboval, aby som to tam vedel nakodit v tom pravdepodbne ASM. Podla mna by mi stacila boot disketa s DOSom, ale i to neviem ci je tam vsetko potrebne na kompilovanie. Toto ma zaujima. Diky
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

Najjednoduchšie (a najpoužívanejšie) riešenie: naprogramuješ to na inom (už existujúcom) počítači (a prípadne použiješ na testovanie softvérový, alebo hardvérový emulátor).

Napr.: keď chcem programovať niečo pre GameboyAdvance, nepotrebujem riešiť, ako dostanem do GBA nejaký kompilátor (a nemusím ho ani programovať). Použiť môžem akýkoľvek kompilátor, ktorý je schopný skompilovať kód pre ARM7TDMI procesor a funguje na mojom obľúbenom OS (a teda napr binutils+gcc).
Gregi
Light Star
Light Star
Príspevky: 224
Registrovaný: 24 mar 2005, 11:34

Príspevok od používateľa Gregi »

to chrono: pozeral som odkaz. Ale ber to tak, ze nemas nic. len ten pocitac a elektiku predplatenu na rok :) . Co by si robil? Samotny cisty zapnuty stroj Ti ziadnu instrukciu predsa nevezme, pretoze nevie citat vstupy z klavesnice (aspon nie taketo komplexnejsie ako je napr ASM kod). Alebo sa mylim? :idea:

napr. je mozno mozne tam dat add x001 0100101 0100 (co je: vloz na adresu pamate x001 hodnotu 0100101 - v preklade mov ah,4)
pheo
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 212
Registrovaný: 20 sep 2005, 16:53
Bydlisko: moje hniezdo
Kontaktovať používateľa:

Príspevok od používateľa pheo »

Čítam, čítam a pomaly my to zapaľuje .... takze mas nejaky komp a chces zacat od nuly. => Naformatovať HDD, nahrať tam skopilovane ASM, upraviť MBR (veru neviem ako =>hladaj specifikaciu ... ) kde nastavis adresu prvej instrukcie a frčíš.
Gregi
Light Star
Light Star
Príspevky: 224
Registrovaný: 24 mar 2005, 11:34

Príspevok od používateľa Gregi »

Praveze nemas nic skompilovane. Ako by si to skompiloval, ked tam nic este nemas? V podstate prvotna otazka, ktora nas posunie dalej znie: da sa do cisteho PC vlozit dajaky prikaz (chap instrukcia) co i len do pamate?

EDIT: berte to tak, ze zacinate uuuplne od nuly. Akurat CPU ma v sebe instrukcie a bios ovadanie preruseni
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

V prípade, že by si naozaj nemal iný počítač, tak by to bolo komplikovanejšie.
Ten tvoj počítaš by musel umožňovať spúšťanie nejakého kódu (napr. z nejakej (e)(e)(p)rom pamäte. Do tej pamäte by si vkladal priamo strojový kód (trebárs by si použil kopec prepínačov, alebo nejaký modernejší spôsob).
Do tej pamäte by si uložil kód, ktorý by sa staral o obsluhu klávesnice, ukladanie a načítavanie údajov (aby si nemusel stále preprogramovávať tú rom pamäť) a funkcie, ktoré by menili text na binárne údaje (aby si mohol jednoduchšie zadávať ten strojový kód).
Potom by si začal pracovať na jednoduchom kompilátore priamo v strojovom kóde. Jazyk, ktorý by dokázal skompilovať, by musel mať také možnosti, aby sa pomocou neho dal neskôr naprogramovať kompilátor. Postupne by si ten kompilátor vylepšoval tak, že jeho zdrojový kód by sa dal skompilovať už existujúcim kompilátorom a výsledný kompilátor by bol o niečo lepší... (a to už je ten bootstrapping).
Gregi
Light Star
Light Star
Príspevky: 224
Registrovaný: 24 mar 2005, 11:34

Príspevok od používateľa Gregi »

Nooo, uz sme blizsie k mojmu zadaniu. este este viac rozvijajte teorie. Akosi to nie je uplne
Do tej eprom by som si vedel predstavit vkladanie udajov. Ale ako by som prinutil to PC citat tu eprom (napr. cez serial port), ked by ten pocitac nevedel pracovat s tym portom (alebo to uz BIOS ovlada?).
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

Ak ide špeciálne o PC, tak BIOS vie spúšťať kód v pripojených zariadeniach (bežne spúšťa video bios a kód na sieťovej karte). Čiže stačí, ako urobíš nejaké zariadenie, ktoré bude mať potrebnú funkčnosť a BIOS sa, pri spúšťaní, postará o spustenie kódu v pamäti toho zariadenia.
Gregi
Light Star
Light Star
Príspevky: 224
Registrovaný: 24 mar 2005, 11:34

Príspevok od používateľa Gregi »

A vedel by to ten BIOS uz spracovat do podby instrukcii? Teda, ze tie informacie uz by boli priamo instrukcie pre procesor. Takze by som vedel vytvorit basic instrukcie na spravu pamate, I/O zariadenia atd. To by mi umoznilo pristupovat uz k hardwaru toho PC. Este vlozit jednoduchy kompilator a potom uz na samotnom PC zacat kodit samotny vlastny OS ukladany na FDD, HDD. Tak?
Este by ma zaujimalo, ako sa uklada do eprom taka informacia. Napr. na zaklade el. impulzov 0100101 ... atd?
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

Bios pri tých zariadeniach nič nespracováva. Proste sa tam použije inštrukcia skoku na nejakú adresu (čo znamená, že v (rom) pamäti toho zariadenia musí byť klasický strojový kód, ktorému rozumie procesor).

Inak PC BIOS obsahuje funkcie slúžiace na nízko-úrovňový prístup napr. k diskom (a teda môžeš načítať/uložiť dáta z/do nejakého sektora).

Ako sa ukladá informácia do nejakej rom pamäte záleží od typu tej pamäte. Často tak, že na adresové a dátové piny privedieš potrebnú informácia a potom nejaký konkrétny zmena napätia na konkrétnom pine spôsobí, že sa na tú adresu tie údaje zapíšu (ak budeš hľadať, určite niekde nájdeš, ako sa to robí pre prom, eprom, eeprom, flash... pamäte).
Gregi
Light Star
Light Star
Príspevky: 224
Registrovaný: 24 mar 2005, 11:34

Príspevok od používateľa Gregi »

chrono: Dakujem. V podstate si ukojil moj hlad po vedeni v tejto oblasti. Dakujem za trpezlivost a vycerpavajuce odpovede. Pokladajme za uzavretu temu.

Este raz dakujem pani :wink:
Gepid
Medium Professional
Medium Professional
Používateľov profilový obrázok
Príspevky: 1006
Registrovaný: 15 júl 2008, 16:54
Bydlisko: Trnava
Kontaktovať používateľa:

Príspevok od používateľa Gepid »

No pokiaľ by si naozaj začínal takto od nuly tak si KING.
A ešte jedna otázka. Ako do tej eeprom/inej rom ten kód dám?
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

Kúpiš, vyrobíš si zariadenie, ktoré to vie. Samozrejme ak nemáš PC, tak to môže byť problém. V takom prípade môžeš použiť kopec prepínačov. ;)
Gepid
Medium Professional
Medium Professional
Používateľov profilový obrázok
Príspevky: 1006
Registrovaný: 15 júl 2008, 16:54
Bydlisko: Trnava
Kontaktovať používateľa:

Príspevok od používateľa Gepid »

Použiť programátor som hneď vylúčil keďže by som nemal mať PC.
A ako docielim pomocou prepínačov naprogramovenie dajme tomu klasického hello worldu?
Gregi
Light Star
Light Star
Príspevky: 224
Registrovaný: 24 mar 2005, 11:34

Príspevok od používateľa Gregi »

Gepid napísal:Použiť programátor som hneď vylúčil keďže by som nemal mať PC.
A ako docielim pomocou prepínačov naprogramovenie dajme tomu klasického hello worldu?
tymi prepinacmi mysli jednotky a nuly. Takze napr. mas 8 prepinacov: naprepinas ich na 01000101 a deviatym prepinacom posles impulz na zapis do eprom. takto postupujes s kazdym byte az budes hotovy s programovm (veeelmi zdlhava robota). potom napojis Epromku napr. cez serial port na PC a BIOS si uz ten program co je v tej eprom spusti. A uz Ti na PC bezi program co bol na esternej eprom. Takto tam mozes postupne dohadzat vsetky funkcie, obsluhy a pomaly sa presuvat s ovladanim a kodenim na to PC. Takto si to vysvetlujem ja

PS: videl niekto nieco take uz upajkovane? Ja som nic take ani nevygooglil (teda aspon som si nebol 100% isty, ze je to samostatne programovatelne) mozno toto, sice 8051ka, ale cosi takehoto:
1. HomeMade
2. Profi
Napísať odpoveď