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

Název: Žurnálovací souborový systém
Přispěvatel: 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.
Název: Re:Žurnálovací souborový systém
Přispěvatel: MacHala 14 Dubna 2013, 14:04:52
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"?
Název: Re:Žurnálovací souborový systém
Přispěvatel: Matesax 14 Dubna 2013, 14:14:12
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...
Název: Re:Žurnálovací souborový systém
Přispěvatel: jmp 14 Dubna 2013, 16:16:50
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
Název: Re:Žurnálovací souborový systém
Přispěvatel: MacHala 14 Dubna 2013, 16:55:57
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
Název: Re:Žurnálovací souborový systém
Přispěvatel: jmp 14 Dubna 2013, 17:32:33
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
Název: Re:Žurnálovací souborový systém
Přispěvatel: Martin Šácha 14 Dubna 2013, 21:59:39
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...