Fórum Ubuntu CZ/SK
Ubuntu pro osobní počítače => Software => Příkazový řádek a programování pro GNU/Linux => Téma založeno: Matesax 14 Dubna 2013, 10:44:03
-
Dobrý den,
rád bych ve svém OS pokročil - a tedy přešel z FAT do žurnálovacího systému. Abych to měl ještě lehčí, píši v Assembly... :) Český tutorial rovnou vzdávám - bylo by něco brutálně komentovaného? Jinak se samozřejmě v normálním zdrojáku ztratím na 3. řádku...
Děkuji.
-
nechces s tim jit spis na nejaky forum zamerene na masochismus? ;)
ne, ted vazne, jestli umis programovat a rozumis tomu o co se snazis, tak v tom neni vubec zadny problem - proste placnes k existujicimu filesystemu kus prazdneho mista navic(nebo na to klidne pouzij jeden soubor), ktere bude fungovat zurnal a nez udelas jakekoliv zmeny na disku, tak je(co chces zapisovat a kam) nejdriv zapises do toho zurnalu... Samozrejme by skupiny operaci, ktere by mely byt provedeny atomicky mely byt v journalu oznaceny a opatreny checksumem, aby nemohl nastat problem pri zapisovani do zurnalu... (samozrejme to bude desne pomaly, protoze vsechno budes psat na disk 2x a implementovat pokrocile funkce jako prerovnavani poradi z journalu k optimalizaci pristupu na disk by byla v asembleru prace pro vraha)
Ale stejne, jestli ses pred par dny ptal k cemu je dobry asembler a dnes v nem pises OS, tak na to klidne muzes zapomenout, protoze vytvorit zaklad pouzitelneho kernelu je i pro cloveka, ktery vi co dela, prace na nejmene na pul roku a to jeste kdyz neni cvok a nepise to v asembleru (tzn. pro tebe aspon na 3 roky).
EDIT:
P.S.: nejmenuje se tohle forum nahodou "Programování pro GNU/Linux"?
-
Ptal jsem se, proč v něm psát přímo... Tedy já dosáhnu stejného výsledku - binárního souboru, ale ve vyšším jazyce... Ovšem v Assembleru jsem dělal boot sector atp. Myslím si, že C je dostatečně nízko na to, aby si mohlo dovolit sáhnout skoro stejně hluboko jako strojový kód...
K věci - pro ten OS dělám i vlastní jazyk - plánuji z něj udělat virtuální stroj - ale momentálně je pouze kompilovaný - právě do Assembleru. I tak ale něco jako bytecode mám. Každopádně soborový systém jsem dělal přímo v Assembly - jelikož se to prostě nabízelo. No a teď to tahat do C se mi moc nechce. Přesně to co píšeš jsem si řekl - jen tam někde udělám swap a tam budu pracovat s žurnály - jen bych chtěl něco takového vidět - jelikož už takto jsem si celkem jistý, že o bezchybný OS rozhodně nejde... :)
A navíc bych chtěl udělat v Assembly nadstavbu - přijde mi, že se zbytečně dereme ke gigantům jako .NET. No nic - zatím si jdu hrát s tabulkama... :)
Vyvíjím pro Unix - ten OS, dělám ho v Unixu a používám k tomu Unixové nástroje...
-
no vidíte, já žil v domnění, že assember je zdroják a kompiluje se do binárního kódu určeného pro nějaký konkrétní procesor a ne že se kompiluje do assembleru
swap je svým způsobem rozšíření RAMky počítače, pokud do toho chcete dávat žurnál, tak to nedopadne dobře, protože ten patří do nějakého konkrétního filesystému
-
no vidíte, já žil v domnění, že assember je zdroják a kompiluje se do binárního kódu určeného pro nějaký konkrétní procesor a ne že se kompiluje do assembleru
...
asembler se nekdy pouziva v kompilatorech jako mezikrok (napr. pro lepsi optimalizace apod.); kdyztak mrkni na parametr -S v man gcc
-
to, že z jednoho zdrojáku vyššího jazyka to vygeneruje zdroják nízkoúrovňového jazyka (pro jeho možné další optimalizace) nijak nevyvrací a nezpochybňuje můj předchozí příspěvek
-
no vidíte, já žil v domnění, že assember je zdroják a kompiluje se do binárního kódu určeného pro nějaký konkrétní procesor a ne že se kompiluje do assembleru
Řekněme že i před kompilátorem z asm stojí nějaký preprocesor...který například doplnuje offsety a nahrazuje "proměnné" za jejich adresy a délky, zpracovává makra a tak...