Nedá mi, abych nereagoval na tento díl seriálu :)
Těší mě, že existují lidé, kteří ještě mají tu potřebu seznamovat ostatní lidi s procesorem 8086. Nicméňe doba je trošku dál a já bych dával přednost 80386 a PM módu.... Ale jinak jsem rád, že někdo píše alespoň takové články, poněvadž je zde naděje, že nejmenovaní lidé nebudou říkat, že OS je jednoduchá záležitost i když zde jsem žádný kód, který by jen zdánlivě připomínal kód OS neviděl.
Názory k článku
Píšeme operační systém: přerušení
Culibrk (neregistrovaný)
20. 2. 2006 8:46
Nový
Re: To je sranda
celé vlákno
Myslim, ze bez zakladu na 8086 si nikdo s PM neporadi. Jsem rad i za takovy clanek, i kdyz bych PM uvital. Mozna casem, vzdyd jsme teprve na zacatku. Me se to nahodou velice libi, pripadam si, jako bych cetl staricky Bajt.
glx (neregistrovaný)
20. 2. 2006 9:23
Nový
Re: To je sranda
celé vlákno
Take si pripadam, jakobych cetl Bajt :-) Ale myslim to jako poctu. Odkazy na procesor 8086 nejsou vubec zbytecne - tu architekturu si v sobe vlastne nesou i nejnovejsi Pentia a pro pochopeni to pomuze urcite mnoha zajemcum, kteri stoji o to, aby pronikli trochu hloubeji.
mh (neregistrovaný)
20. 2. 2006 10:26
Nový
Re: To je sranda
celé vlákno
problem je, ze timhle tempem se dostanem k pentiu az kdyz bude procesor biogenni nadrzka kterou budeme krmit sypanim pro rybicky :-)
glx (neregistrovaný)
20. 2. 2006 16:42
Nový
Re: To je sranda
celé vlákno
Nikoliv.
Diky tomu, ze neznaly pochopi, co to je vektor preruseni na procesoru 8086, nebude mu cinit potize to pochopit na Pentiich v protect modu - on totiz princip zustava stejny, jen detaily jsou trochu slozitejsi.
Diky tomu, ze neznaly pochopi, co to je vektor preruseni na procesoru 8086, nebude mu cinit potize to pochopit na Pentiich v protect modu - on totiz princip zustava stejny, jen detaily jsou trochu slozitejsi.
Marv (neregistrovaný)
26. 2. 2006 16:55
Nový
Re: To je sranda
celé vlákno
No právě krmení vyvolá přerušení typu svačina (maskovatelné) nebo oběd (nemaskovatelné). :-)
ondra (neregistrovaný)
20. 2. 2006 10:55
Nový
Re: To je sranda
celé vlákno
OS se ve skolach dost casto uci na nejake variante Riscu (dost casto Mips). Porovnam-li instrukcni sadu ia32 s ostatnimi, tak je mi naprosto jasne, proc to delaji. Vykladat OS na ia32 je humus.
bufly (neregistrovaný)
20. 2. 2006 16:06
Nový
Re: To je sranda
celé vlákno
Tak s tym celkom suhlasim ..
PaJaSoft (neregistrovaný)
26. 2. 2006 21:42
Nový
Re: To je sranda
celé vlákno
No my odchovanci 8-mi bity vime, ze cokoli co se neda jednoduse odmaskovat na kodovem segmentu je pakarna...:-)
20. 2. 2006 15:02
Nový
Re: To je sranda
celé vlákno
Nahození PM by se zřejmě dalo nastudovat ze zdrojáků jádra :-)
BLEK. (neregistrovaný)
20. 2. 2006 3:54
Nový
Obsluhu preruseni jsem programoval
celé vlákno
... jsem totiz psychopat ...
20. 2. 2006 4:03
Nový
Re: Obsluhu preruseni jsem programoval
celé vlákno
Chtěl jsem k tomu původně něco říct, ale...už na tohle definitivně rezignuju. :-D
mtd (neregistrovaný)
20. 2. 2006 9:05
Nový
Re: Obsluhu preruseni jsem programoval
celé vlákno
kazdej, kdo programoval obsluhu preruseni, je psychopat? :-)
uživatel si přál zůstat v anonymitě
20. 2. 2006 13:39
Nový
Re: Obsluhu preruseni jsem programoval
celé vlákno
kazdej, kdo programoval obsluhu preruseni v real modu, je psychopat v duchodu ;-)
BLEK. (neregistrovaný)
20. 2. 2006 14:48
Nový
Re: Obsluhu preruseni jsem programoval
celé vlákno
To ne, ale schizoidni psychopatie zpusobuje, ze clovek vic
sedi u pocitace a min komunikuje s lidmi, takze pokud je
clovek psychopat, tak je zvysena pravdepodobnost, ze obsluhu
preruseni bude programovat.
sedi u pocitace a min komunikuje s lidmi, takze pokud je
clovek psychopat, tak je zvysena pravdepodobnost, ze obsluhu
preruseni bude programovat.
bufly (neregistrovaný)
20. 2. 2006 16:13
Nový
Re: Obsluhu preruseni jsem programoval
celé vlákno
To ze vsetci vidia len SW firmy ktore kodia v Jave, C# a podobnych hi-level jazykoch je pochopitelne, lebo Java aj C# je COOL! Ale preboha, uz sa preberte zo sna ze procesor vykonava priamo konstrukcie if,while,....! Nie, skutocne je tam aj vrstva napisana v assembleri.
A by ste sa ohromne cudovali, ale existuju aj tzv. priemyselne procesory, ktore sa ovladaju pomocou assembleru.
Takze taky kydy akoze kto dnes programuje prerusenia je schyzofrenny mozu vypustit len totalne neznali jedinci, ktori sa tu chcu predviest.
A by ste sa ohromne cudovali, ale existuju aj tzv. priemyselne procesory, ktore sa ovladaju pomocou assembleru.
Takze taky kydy akoze kto dnes programuje prerusenia je schyzofrenny mozu vypustit len totalne neznali jedinci, ktori sa tu chcu predviest.
20. 2. 2006 16:57
Nový
Re: Obsluhu preruseni jsem programoval
celé vlákno
...nebo autoři skvělých článků o Linuxu a FreeBSD, kteří se předvádět nemusejí, ale musejí v sobě něco srovnat. :-D
20. 2. 2006 16:52
Nový
Re: Obsluhu preruseni jsem programoval
celé vlákno
Takže 3D grafici a spisovatelé jsou taky psychopati...? ;-)
Kid (neregistrovaný)
20. 2. 2006 18:45
Nový
Re: Obsluhu preruseni jsem programoval
celé vlákno
Taky sedim u pocitace porad (15+ hodin). Jsem psychopat?
BLEK. (neregistrovaný)
21. 2. 2006 0:32
Nový
Re: Obsluhu preruseni jsem programoval
celé vlákno
Zalezi, zda mas problemy v mezilidskych vztazich.
faha (neregistrovaný)
20. 2. 2006 16:31
Nový
Re: Obsluhu preruseni jsem programoval
celé vlákno
Nemyslim si totez, celkem zive si pamatuji, kdyz jsem psali na 386-kach vlastni obsluhi povesene na interepty jako napr. 8 a 9, ci od UARTu nebylo na tom zase nic tak zvlastniho, trochu vetsi problemek uz bylo obslouzeni 21h(sluzby DOSu), kdyz clovek chtel mi chranene nektere adresare na heslo apod., kazdy kdo nekdy psal TSR se s timto musel potykat, ovsem to byl REAL :-(.
Ondra (neregistrovaný)
20. 2. 2006 18:38
Nový
Re: Obsluhu preruseni jsem programoval
celé vlákno
Muzu se zeptat na diagnozu?
BLEK. (neregistrovaný)
20. 2. 2006 19:45
Nový
Re: Obsluhu preruseni jsem programoval
celé vlákno
Schizoidni porucha osobnosti.
20. 2. 2006 20:19
Nový
Re: Obsluhu preruseni jsem programoval
celé vlákno
Tak tu má kamarád a neremcá kvůli tomu takhle. :-) A já k němu nemám daleko. A není to zas taková krize. ;-)
Zden (neregistrovaný)
20. 2. 2006 20:20
Nový
Re: Obsluhu preruseni jsem programoval
celé vlákno
Sakra,clovece,prestan uz se v tom porad utapet.
BLEK. (neregistrovaný)
21. 2. 2006 0:30
Nový
Re: Obsluhu preruseni jsem programoval
celé vlákno
To nejde, porucha osobnosti je nevylecitelna. Holt budu cely
zivot sam :-/
zivot sam :-/
Ondra (neregistrovaný)
20. 2. 2006 18:38
Nový
Re: Obsluhu preruseni jsem programoval
celé vlákno
Muzu se zeptat , jakou mate diagnozu
20. 2. 2006 8:49
Nový
Jeste jedna instrukce generujici int
celé vlákno
Jeste existuje jedna instrukce, ktera pri splneni podminky generuje i realmodu preruseni. Jedna se o BOUND - kontrolu mezi jednoho integeru, tj. v podstate test:
min<value<max
Tato instrukce generuje tusim int 5, ale uz 10 let jsem ji nepouzil :-), tak se mozna v tom cisle pletu.
min<value<max
Tato instrukce generuje tusim int 5, ale uz 10 let jsem ji nepouzil :-), tak se mozna v tom cisle pletu.
mtd (neregistrovaný)
20. 2. 2006 10:04
Nový
Re: Jeste jedna instrukce generujici int
celé vlákno
na 80286 a vyssich jde v realmodu vyvolat exception na poruseni ochrany pameti. (tusim int13h) :-)
20. 2. 2006 11:04
Nový
Perex
celé vlákno
Do perexu bych napsal, že se jedná o platformu x86. U laika by to mohlo evokovat funkčnost pod všemi platformami.
Frn (neregistrovaný)
20. 2. 2006 11:10
Nový
Změna vektoru přerušení
celé vlákno
Vektory přerušení jsou uloženy na začátku RAMky. Ovšem měnit je _tímhle_ způsobem je s prominutím prasárna, protože zápis obou částí adresy (báze, offset) není atomická.
V tomto příkladu je to samozřejmě celkem jedno, ale stálo by aspoň za zmínku, jak se to dělá "čistě".
V tomto příkladu je to samozřejmě celkem jedno, ale stálo by aspoň za zmínku, jak se to dělá "čistě".
laloch (neregistrovaný)
20. 2. 2006 13:51
Nový
doufam, ze to dobre dopadne
celé vlákno
Vetsina hobbyist OS programatoru vyhori uz na prepnuti do PM a inicializaci GDT a IDT. Doufam, ze to nebude i nas pripad :-)
Drzim palec.
Drzim palec.
BLEK. (neregistrovaný)
20. 2. 2006 14:46
Nový
Re: doufam, ze to dobre dopadne
celé vlákno
A co prepnuti do long modu? I kdyz jsem psychopat, tak jsem
to jeste neprogramoval...
to jeste neprogramoval...
laloch (neregistrovaný)
20. 2. 2006 16:01
Nový
Re: doufam, ze to dobre dopadne
celé vlákno
hehe, ja taky ne. Zelezo tady na to sice mam, ale nez se k tomu dostanu, tak to bude stejne aktualni jako 8086 :))
PaJaSoft (neregistrovaný)
26. 2. 2006 21:45
Nový
Re: doufam, ze to dobre dopadne
celé vlákno
Pokud longem myslite plochy - flat - tak si akorat srovnejte vsechny baze a ofsety a zbytek je uplne stejny, jen nesmite zapomenout nastavit spravna pristupova prava na stranky... jinak se z tech preruseni vyvolanych porusenim ochrany pameti po...:-)
ondra (neregistrovaný)
28. 2. 2006 15:21
Nový
Re: doufam, ze to dobre dopadne
celé vlákno
Ne, long mod je ET64-bit mod. Trvalo mi asi tak den, nez jsem vsechny ty GDT a tech par instrukci dostal vsechny do spravnyho poradi :-/
yossarian (neregistrovaný)
20. 2. 2006 14:57
Nový
V/V?
celé vlákno
a bych uvital misto zkratky V/V pouzit zazitou I/O, V/V me zprvu zmatlo, a vubec sem nechapal ktera packa
xxx (neregistrovaný)
20. 2. 2006 18:05
Nový
Re: V/V?
celé vlákno
spravne vyvoleni, protoze kazdy vyvoleny do vily vstopil (input) a z vily vystoupil (output).
20. 2. 2006 19:20
Nový
Re: V/V?
celé vlákno
A co s Vámi dělá třeba taková „jednotka výpočtů v plovoucí řádové čárce“, „systém sdílení času“, „proces ve stavu mátoha“, „paměť RWM o velikosti 512 kiloslabik“ a „sestavovací program“? :-D
yossarian (neregistrovaný)
20. 2. 2006 21:29
Nový
Re: V/V?
celé vlákno
trha mi to ma uboha ouska. nicmene sem este nemel to stesti nekde neco takovyho videt :) to je lepsi nez treba 'LED dioda'
21. 2. 2006 0:51
Nový
Re: V/V?
celé vlákno
Ale to jsou všechno úplně korektní termíny. :-D Ovšem pravda, korektní termín je "dioda LED", podle našich firemních stylistů. :-)
yossarian (neregistrovaný)
21. 2. 2006 22:48
Nový
Re: V/V?
celé vlákno
Light-emmiting-diode dioda? no te pic. :)
imho nemusime pocestovat vsecko co vidime :)
imho nemusime pocestovat vsecko co vidime :)
21. 2. 2006 23:06
Nový
Re: V/V?
celé vlákno
Ta dioda je u té zkratky kvůli flexi. (Aneb "tu LED, bez té LED" - jak to zní? ;-)). Mám pocit, že jsme tyhle věci kdysi dávno konzultovali s ÚJČ, abychom to měli košér.
Farin (neregistrovaný)
22. 2. 2006 0:12
Nový
Re: V/V?
celé vlákno
"proces ve stavu mátoha" me pobavil, tenhle cesky termin jsem neznal
Viktor (neregistrovaný)
23. 2. 2006 1:44
Nový
Smysl seriálu?
celé vlákno
Poněkud mi uniká smysl seriálu. Ale také některé zavádějící informace.
1) začínat seriál o programování OS zaváděcí rutinou je typickou začátečnickou chybou - na první pohled se to zdá logické, jako například zahájení autoškoly startováním. Ovšem pokud budete chtít automobil zkonstruovat, prvním problémem asi nebude startér a otázky startování.
2) text evokuje pocity, že neexistují jiné procesory než x86, že neexistují jiné počítače než PC a že na jiných platformách OS nepracují; přitom potřeba v dnešní době vyvíjet OS vlastními silami vyvstává především pro architektury non-x86 a non-PC.
3) informace o architektuře x86 jsou poněkud neúplné, až zavádějící. Například není pravda, že v reálném režimu máme k dispozici jen 16-bitové registry, není pravda, že procesor 8086 pracuje v reálném režimu (toto dělení se poprvé vyskytuje u 80286), popis přerušení je podán poněkud naivním způsobem (např. chybí jakákoli zmínka o řadiči přerušení)...
4) uniká mi smysl popisu reálného režimu x86. Kdosi tu psal, že je to nezbytné pro pochopení chráněného režimu, ale s tím nesouhlasím. Naopak to může spoustu věcí spíše zamlžit, protože 8086 byl z hlediska konstrukce procesorů naprostým krokem vedle a chráněný režim není nic jiného než pokus tento stav napravit. Segmentace je v chráněném režimu věc naprosto logická a snadno pochopitelná, ovšem ne v reálném režimu, kde se skutečnou segmentací nemá téměř nic společného - jde jen o velmi svébytný (a poměrně nevhodně navržený) způsob lineární adresace.
Samozřejmě je hezké že se někdo rozhodne napsat článek na tak zajímavé téma, je jen škoda, že k tomu došlo evidentně v zápalu začátečníckého nadšení.
1) začínat seriál o programování OS zaváděcí rutinou je typickou začátečnickou chybou - na první pohled se to zdá logické, jako například zahájení autoškoly startováním. Ovšem pokud budete chtít automobil zkonstruovat, prvním problémem asi nebude startér a otázky startování.
2) text evokuje pocity, že neexistují jiné procesory než x86, že neexistují jiné počítače než PC a že na jiných platformách OS nepracují; přitom potřeba v dnešní době vyvíjet OS vlastními silami vyvstává především pro architektury non-x86 a non-PC.
3) informace o architektuře x86 jsou poněkud neúplné, až zavádějící. Například není pravda, že v reálném režimu máme k dispozici jen 16-bitové registry, není pravda, že procesor 8086 pracuje v reálném režimu (toto dělení se poprvé vyskytuje u 80286), popis přerušení je podán poněkud naivním způsobem (např. chybí jakákoli zmínka o řadiči přerušení)...
4) uniká mi smysl popisu reálného režimu x86. Kdosi tu psal, že je to nezbytné pro pochopení chráněného režimu, ale s tím nesouhlasím. Naopak to může spoustu věcí spíše zamlžit, protože 8086 byl z hlediska konstrukce procesorů naprostým krokem vedle a chráněný režim není nic jiného než pokus tento stav napravit. Segmentace je v chráněném režimu věc naprosto logická a snadno pochopitelná, ovšem ne v reálném režimu, kde se skutečnou segmentací nemá téměř nic společného - jde jen o velmi svébytný (a poměrně nevhodně navržený) způsob lineární adresace.
Samozřejmě je hezké že se někdo rozhodne napsat článek na tak zajímavé téma, je jen škoda, že k tomu došlo evidentně v zápalu začátečníckého nadšení.
Lama (neregistrovaný)
24. 2. 2006 11:47
Nový
Re: Smysl seriálu?
celé vlákno
Pěkná kritika... jsem zvědav co byste ale dokázal vy... zlepšovat je možné vždycky... tak zkuste napsat vlastni...
Viktor (neregistrovaný)
24. 2. 2006 16:29
Nový
Re: Smysl seriálu?
celé vlákno
Děkuji. Sice nejsem žádný spisovatel, ale o podobném seriálu jsem před pár lety také uvažoval, ovšem je otázkou, komu by vlastně měl být určen - proto jsem se ptal po smyslu tohoto článku. Laici? Softwareáři? Hardwareáři?
Pro první skupinu takových článků existuje spousta a bylo by to nošení dříví do lesa, druhá skupina obsahuje poměrně vyhraněné lidi a pro systémáře by byl přínos takového seriálu diskutabilní - je jich pár a nad takovým seriálem by jen souhlasně pokyvovali nebo naopak šťourali do detailů. Hardwaráři by zase ocenili větší nezávislost na konkrétním HW při zachování důrazu na nízkoúrovňovou vrstvu a asi by to pasovalo na jiný portál.
Nechci předem odsuzovat, třeba se to ještě nějak příjemně vyvrbí, ale první dva díly se problematikou OS nezabývají ani okrajově. Odborník se nic nového nedověděl, pamětník si zavzpomínal a ti ostatní se dozvěděli jak PC nabootuje program a jak napsat rutinu obsluhy přerušení generovaného procesorem (v konkrétním příkladu dělení nulou tedy vlastně výjimky a nikoli přerušení) - obsluha skutečného vnějšího HW přerušení je na PC poněkud složitější, než jak by se z druhého dílu mohlo zdát.
Pokud by byl zájem, tak bych se vytvoření seriálu o základech návrhu OS nebránil, i když se domnívám, že jsou tu kvalifikovanější lidé k takovému počinu. Ovšem k zdejšímu seriálu bych jako podtitul přidal "...aneb podívejte, co se mi v uplynulém měsíci podařilo naprogramovat" - nic ve zlém, ale tak to na mne opravdu působí ;-) Takže v duchu této domněnky bych autorovi seriálu popřál mnoho programátorských úspěchů.
Pro první skupinu takových článků existuje spousta a bylo by to nošení dříví do lesa, druhá skupina obsahuje poměrně vyhraněné lidi a pro systémáře by byl přínos takového seriálu diskutabilní - je jich pár a nad takovým seriálem by jen souhlasně pokyvovali nebo naopak šťourali do detailů. Hardwaráři by zase ocenili větší nezávislost na konkrétním HW při zachování důrazu na nízkoúrovňovou vrstvu a asi by to pasovalo na jiný portál.
Nechci předem odsuzovat, třeba se to ještě nějak příjemně vyvrbí, ale první dva díly se problematikou OS nezabývají ani okrajově. Odborník se nic nového nedověděl, pamětník si zavzpomínal a ti ostatní se dozvěděli jak PC nabootuje program a jak napsat rutinu obsluhy přerušení generovaného procesorem (v konkrétním příkladu dělení nulou tedy vlastně výjimky a nikoli přerušení) - obsluha skutečného vnějšího HW přerušení je na PC poněkud složitější, než jak by se z druhého dílu mohlo zdát.
Pokud by byl zájem, tak bych se vytvoření seriálu o základech návrhu OS nebránil, i když se domnívám, že jsou tu kvalifikovanější lidé k takovému počinu. Ovšem k zdejšímu seriálu bych jako podtitul přidal "...aneb podívejte, co se mi v uplynulém měsíci podařilo naprogramovat" - nic ve zlém, ale tak to na mne opravdu působí ;-) Takže v duchu této domněnky bych autorovi seriálu popřál mnoho programátorských úspěchů.
Programator (neregistrovaný)
17. 8. 2006 15:11
Nový
Bude pokracovani???
celé vlákno
Chtel bych se zeptat zda bude pokracovani
Tomáš Crhonek (neregistrovaný)
3. 9. 2007 12:43
Nový
pisu OS...
celé vlákno
Priznam se, ze pisu OS v ANSI C + GNU Assembler... Je to docela sranda, kdyz uz mate vsechny zakladni funkce. Tohle je teprve zacatek. Ja pouzivam jako bootloader GRUB. Pak se nacte 32-bit ELF kernel, zavedou se ovladace, pripoji se ext2fs a nabehne konzole. Mam hotovy dokonce i preemptivni multitasking, spousteni ELF programku, uzivatelske knihovny. Ale zacatek je podle me vzdy nejtezsi, protoze na nem zavisi vsechny ostatni veci. Napr. pokud udelate chybu v harddiskovem driveru, tak vam prestane fungovat dalsich x veci, ktere jsou na nem zavisle. Takze je treba hodne si pri programovani uvedomovat to, co vlastne menite a co zmena muze zpusobit. Protoze, kdyz udelate chybu, tak ji hledate treba cely tyden, je to hrozna nuda a pak zjistite, ze jde o jeden radek, ktery jste zmenili pred tydnem. Takze good luck vsem OS programatorum.
Fobia (neregistrovaný)
193.165.154.---
12. 11. 2009 21:56
Nový
Re: pisu OS...
celé vláknoTaky si píšu vlastní OS. Sice 16bit real-mode, ale je zhruba na úrovni MS DOSu :-). Můžu poprosit o poskytnutí zdrojových kódů? :-) Celkem by mě to zajímalo. V ČR se jen tak někdo nenajde, kdo se zabývá programováním OS. Jinak souhlasím, začátek je vždy nejtěžší.

