Avatar uživatele
huxa

Jak vytvořit vlastní programovacý jazyk/operační systém/boot?

Asi si většina z vás pomyslí, že jsem další „poťápanec“ či další dítko, které se nemá pouštět k počítači, nicméně, trápí mě docela jedna věc…
Už od úzkého věku mě bere strašně elektronika a zkoumání „jak to funguje?“, asi v 7 letech se mi dostali pod ruku repráky k magnetofonu, to jste měli vidět moji radost :) raději ale k věci. Jak si čtu různé návody pro učení se programovacím jazykům (od pythona přes javu až k ruby), dostanu se k Hello World a dále to už nechápu/nedokážu si zapamatovat. Již zmíněný ruby byl vytvořen jedním programátorem, protože mu nevyhovoval žádný jiný program. jazyk, nicméně potřebuje „emulátory“ pro jiné program. jazyky. Proto jsem se díval, jak si naprogramovat vlastní OS-nejdoporučovanější bylo psát jej v C (které se obávám bych už vůbec nechápal). Proto bych se rád zeptal, jak si vytvořit vlastní operační systém a programovací jazyk, abych nemusel znát nějaký jiný? (nebudou tedy fungovat nejspíše aplikace, které pro něj nejsou napsány, to ale nevadí) Bude k tomuto OS potřeba i ještě upravovat vlastní BIOS? (jak by se to provádělo?)
Doplňuji:
A jestli je OS pro jeden počítač s pevně daným HW, je to lehčí, než kdyby se měla zaručit variabilita?

Může se vytvořit vlastní BIOS? Poté by už šlo naprogramovat OS v něčem jiném, než v C?

Uzamčená otázka

ohodnoťte nejlepší odpověď symbolem palce

Upravil/a: huxa

Zajímavá 0 před 4319 dny Sledovat Nahlásit



Nejlepší odpověď
Avatar uživatele
anonym

Jelikož odpověď by byla dlouhá popíšu Vám to v bodech:

  • Též jsem se pokoušel postavit vlastní OS bez jádra (tak že jsem to zkoušel jen ve Virtual Boxu) kde Vám to vypsalo pouze „Ahoj, boot dokončen“. Takovou bootovací sekvenci odladit je naprostý zázrak (čest programátorům OS). Takový to systém (jenom text) bylo nutné napsat na cca 600 řádků. Neboli:

Musíš odladit procesor (32 × 64 bit), porovnat data z POST testu (ramky, cpu, atd..) je usazeno – funguje, atd… Samotný boot systému probíhá v adresních hodnotách které nesmějí přesáhnout údajně 32 bitů! (adresní hodnota vypadá: 0×0001, 0×0002, …) tzn. musíš být dobrý na matiku aby jsi si to všechno spočítal.

  • Pokud je vše v pořádku musíš provést test adresářové struktury jestli je vše ok atd…
  • Dále zavedeš tvůj systém = do temp složky budeš zavádět vlastní soubory v BINÁRNÍ!!! hodnotě které následně při vypnutí smažeš.
  • Je to takový začátek… Proto doporučuji začínat na boot linuxovém jádře… (údajně má 100 MiB)
  • OS se jedině píše v jazyce C… Např.: Jazyky jako je Python, Java, Karel, Baltík, Visual Basic, C#, ale i C++ jsou napsané v jazyce C…
  • BIOS jako takový program je uložen v tom čipu, tak že si to spravuje společnost která vyrábí BIOS (Nejvíce je to Phoenix) – asi (nevím to) dodává API pomocí které si to můžete spojit s Vaším OS…
  • Pokud máte dotaz nějaký tak jej směřujte buď ke mě do pošty či do diskuze (nebo i doplnění 🙂

Doplňuji:
Pokud je je program/os vyráběn pevně, tak je vždy toto jednodušší!

  • BIOS s OS nemá nic společného a hlavně sem nikde neviděl Open Source BIOSU…

Upravil/a: anonym

0 Nominace Nahlásit

Otázka nemá žádné další odpovědi.



Diskuze k otázce
Avatar uživatele
huxa

l564-mockrát děkuji za odpověď, moc jsi mi pomohl :)

před 4319 dny Odpovědět Nahlásit
Nový příspěvek