Internet Info, s.r.o. Lupa Měšec Podnikatel Root Zdroják DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

Názory k článku
Programujeme OS: řídíme textový režim VGA

D.A. Tiger aura:65
28. 7. 2009 0:18 Nový

Re: Programujeme OS: řídíme textový režim VGA

celé vlákno

Velmi pěkný článek – díky za něj. Sice asi nikdy nebudu psát vlastní os, ale určitš se takové znalosti vyplatí, až zase někdy budu mít tendence něco nastavovat v kernelu.

Takže se těším na další díly a začínám mít dojem, že je to další serial, který by si zasloužil vyjít též v knihovně roota, v PDF formátu…

backup
backup (neregistrovaný) ---.dip0.t-ipconnect.de
28. 7. 2009 1:27 Nový

Re: Programujeme OS: řídíme textový režim VGA

celé vlákno

nechvalte den pred vecerem. Serial bude dlouhy a jak vime, zabyva se autor tim jiz od stredni skoly. Klidne se muze stat, ze do jeho zivota pojednou vstoupi nejaka zena a je konec se serialem.

restore
restore (neregistrovaný) ---.hostgator.com
28. 7. 2009 3:53 Nový

OT / Necist

celé vlákno

A nebo nevstoupi a budeme tady mit ZeXOS se SpadFS :)
Ano, serial bude dlouhy, ale koho to opravdu zajima, tak neceka, ale uci se sam ;)

Mim
Mim (neregistrovaný) ---.nfx.cz
28. 7. 2009 7:29 Nový

Panelák v paměti

celé vlákno

"že řetězec „Ahoj svete !“ zabral v paměti 12 bytů. " 12 bytů to je celý panelák! Zajímá mě, jak se do paměti vejde celý panelák? Je tam prosím pěkně včetně chodeb? Je to panelák zateplený? Vím jak do paměti uložit 12 byte, nebo 12 bajtů, ale s panelákem si nevím rady.

vtech
vtech (neregistrovaný) ---.skoda-auto.cz
28. 7. 2009 8:10 Nový

Re: Panelák v paměti

celé vlákno

Ha ha ha :-/ A pokud tomu opravdu nerozumite, tak jste si asi spletl web. Doporucuji misto root.cz treba libimseti.cz …

Dominik
Dominik (neregistrovaný) 88.146.211.---
28. 7. 2009 9:30 Nový

Re: Panelák v paměti

celé vlákno

De spíš o pletení anglického y s českym ů

Tomáš Jędrzejek aura:100
28. 7. 2009 10:05 Nový

Re: Panelák v paměti

celé vlákno

Podle pravidel by se neměla žádná anglická slova skloňovat, určitě jste si všimnul, že to ale dělá kde kdo – jednoduše se to lépe čte.

alblaho
alblaho (neregistrovaný) ---.220.broadband15.iol.cz
28. 7. 2009 10:59 Nový

Re: Panelák v paměti

celé vlákno

Osobně taky preferuji český „bajt“.

Mi. Chal. aura:32
28. 7. 2009 9:44 Nový

Blikani

celé vlákno

To blikani afaik ovlivnuje bios a zalezi na jeho nastaveni. V podstate jsou dva mody – bud to umi blikat a je 8 barev pozadi nebo to blikat neumi a je 16 barev pozadi. To se da nastavit nejakou funkci VESA biosu. Takze kdyz to nefunguje treba v QEMU, tak by mozna stacilo zavolat prislusnou funkci a nastavit si, jestli chce clovek blikani nebo vic barev

peto
peto (neregistrovaný) ---.kar.elf.stuba.sk
28. 7. 2009 9:50 Nový

Jedna chybicka

celé vlákno

Clanokj je dobry, ale s tymto nemozem suhlasit

>Jednotlivé znaky mají přiřazené svoje číslo dle dalšího standardu ASCII. Identifikační číslo znaku je definováno 8 bity, což je 1 byte.

ASCI je 7 bitovy a len koli ulozeniu v pamati je zaokruhleny na Byte…

Tomáš Jędrzejek aura:100
28. 7. 2009 10:02 Nový

Re: Jedna chybicka

celé vlákno

ASCII je opravdu 7bitový a za svých časů se používal 8. bit jako paritní, dnes se jednalo o ASCII + ASCII Extended, což 8bitu má a využije se všech 8bitů – více na wiki.

peto
peto (neregistrovaný) ---.kar.elf.stuba.sk
28. 7. 2009 10:33 Nový

Re: Jedna chybicka

celé vlákno

Aha takze slovicko Extneded vypadlo, skriatok.sotek zauradoval…

skriatok.sotek
skriatok.sotek (neregistrovaný) ---.18.broadband16.iol.cz
28. 7. 2009 16:16 Nový

Re: Jedna chybicka

celé vlákno

Ha ha ha ha ha ha :)

Ogar
Ogar (neregistrovaný) ---.inext.cz
28. 7. 2009 10:16 Nový

VGA: Zmena palety

celé vlákno

Dobry clanek :-)

Jinak zmena palety samozrejmne bez problemu jde, pomoci zapisu do registru VGA. Jde pouze o to, ze ta paleta je globalni, takze i kdyz ji zmenim, stale mam pouze 16 (i kdyz jinych) barev k dispozici.
Stejne tak blikani – da se nastavit dalsim registrem, kterym lze prepinat mod 16 barev versus 8 barev + blikani.
I ‚tvar‘ kurzoru se da pres registry VGA menit :-)

Jirka Kosek
Jirka Kosek (neregistrovaný) ---.bluetone.cz
28. 7. 2009 11:08 Nový

Re: VGA: Zmena palety

celé vlákno

To fakt ještě někoho v roce 2009 zajímá? Trošku musím vzpomínat na staré časy ;-)

http://www.ko­sek.cz/clanky/e­gavga/chap07.html#a­tribut

Biktop
Biktop (neregistrovaný) ---.28.broadband3.iol.cz
28. 7. 2009 10:23 Nový

Cooo?!?

celé vlákno

„což dovoluje použít např. stránkování, virtuální paměť nebo bezpečnější multitasking.“

WTF?! Stránkování a virtuální paměť jsou záležitostí správy paměti, multitasking je záležitostí správy procesů. Asi jsem to pochopil jinak, než to autor myslel, ale tak, jak to je napsané, tak to nedává smysl – něco ve stylu „což dovoluje použít např. sandály, kopačky nebo pohodlnější maliny“.

Tom B aura:44
28. 7. 2009 10:47 Nový

Re: Cooo?!?

celé vlákno

Nejsem sice odborník, ale osobně bych to chápal trochu jinak – v té větě není, že to dovoluje multitasking, ale „bezpečnější multitasking“, tj. v případě, že z jiných důvodů (správa procesoru, jak jste podotkl) lze používat multitasking, pak daná funkce umožňuje, aby byl bezpečnější, než kdyby nebyla přístupná. Na Vašem příkladě bych si dovolil upravit větu na „což dovoluje použít např. sandály, kopačky nebo bezpečnější sběr malin“. Opravte mě někdo, pokud se mýlím.

Biktop
Biktop (neregistrovaný) ---.28.broadband3.iol.cz
28. 7. 2009 12:01 Nový

Re: Cooo?!?

celé vlákno

Pravda, tak to smysl dává. Navíc to pak velmi správně poukazuje, že k multitaskingu není chráněný režim třeba.

KareII
KareII (neregistrovaný) ---.eurotel.cz
28. 7. 2009 11:01 Nový

Re: Cooo?!?

celé vlákno

Autor tim patrne myslel to, ze sprava pameti v chranenem rezimu umoznuje oddelene virtualni adresy pro procesy, coz vede k bezpecnejsimu multitaskingu. MT patri do spravy procesu, ale ta zase vyuziva spravu pameti, takze to neni tak nesouvisejici.

Tomáš Jędrzejek aura:100
28. 7. 2009 12:26 Nový

Re: Cooo?!?

celé vlákno

Smysl to dává takový, že bez chráněného režimu si např. stránkování a s tím spojené i virtuální paměti moc neužijete ;-)

povinná
povinná (neregistrovaný) ---.62.broadband3.iol.cz
1. 8. 2009 21:52 Nový

Re: Cooo?!?

celé vlákno

Tak forthisti by asi nesouhlasili. :-)

Ondrej SanTiago Zajicek
Ondrej SanTiago Zajicek (neregistrovaný) ---.crfreenet.org
28. 7. 2009 11:28 Nový

bitfields

celé vlákno

Pouzivat bitova pole pro reprezentaci atributu neni dvakrat vhodne, protoze jejich organizace v pameti neni standardem definovana a i GCC pouziva odlisne zpusoby v zavislosti na architekture (na big endian strojich je uklada v opacnem poradi nez na little endian strojich). Obvykle reseni je pouzit tam unsigned byte a k subpolozkam pristupovat pres bitove operace.

 

Mimochodem, VGA karta v zavislosti na nastaveni umoznuje i pouziti 512 znaku, kde jako nejvyssi bit se pouzije jeden z ‚atributovych‘ bi­tu.

Tomáš Jędrzejek aura:100
28. 7. 2009 12:21 Nový

Re: bitfields

celé vlákno

My ale jádro píšeme pro x86 (jak už jsem psal v minulém díle), a navíc na jiných architekturách se s VGA v praxi téměř nesetkáte. Dalším důvodem proč je to tak napsáno je to, že se to dá lépe pochopit – v minulém díle se používaly ještě bitové operace, které to sice všechno urychlí (zjednoduší), ale ten kdo jim nerozumí, nepochopí. Jak jsem psal v článku – cílem není vytvořit dokonalou věc.

Ondrej Santiago Zajicek
Ondrej Santiago Zajicek (neregistrovaný) ---.crfreenet.org
28. 7. 2009 14:31 Nový

Re: bitfields

celé vlákno

> navíc na jiných architekturách se s VGA v praxi téměř nesetkáte

 

To neni uplne pravda – v mezidobi, kdy vyrobci ne-PC desktopovych pocitacu jeste existovali, ale uz presli na PCI sbernice, byly tyto pocitace bezne vybavovany stejnymi grafickymi chipy jako bezna PC. Sice obvykle nestartovali v textovem rezimu, ale v rezimu linearniho framebufferu (zalezi na firmware, jak grafickou kartu nastavi) a registry mely take mapovane jinam, ale jinak slo o VGA kompatibilni karty.

 

Mimochodem, osobne bych tipoval, ze vic lidi zna bitove operace, nez bitfieldy. Ale je to celkem jedno.

Tomáš Jędrzejek aura:100
28. 7. 2009 15:19 Nový

Re: bitfields

celé vlákno

Proto jsem napsal „téměř“, ne „vůbec“. Myslím, že je pochopitelná výše uvedená struktura mnohem více, než kdybychom si hráli s maskami – normálně bych je použil taky, ale takhle to je, jak už jsem také psal, jednodušší k pochopení – pokud víte jak vypadá „sled“ dat v celém poli, pak není problém to napsat pomocí bitových operací.

Ondrej SanTiago Zajicek
Ondrej SanTiago Zajicek (neregistrovaný) ---.crfreenet.org
28. 7. 2009 21:18 Nový

Re: bitfields

celé vlákno

> Proto jsem napsal „téměř“, ne „vůbec“

 

No ono to mezidobi bylo pomerne dlouhe, napr. tam spadaji vsechny novejsi (ale jeste PPC) Macintosche a znacna cast Ultrasparcovych workstations. Osobne bych tipoval, ze kdyz se nekdo jeste dneska setka s ne-PC (relativne) modernim desktopovym pocitacem, tak spis bude mit VGA-kompatibilni grafiku nez ze ne.

koroptev
koroptev (neregistrovaný) ---.karneval.cz
29. 7. 2009 8:42 Nový

Re: bitfields

celé vlákno

Obvykle reseni je pouzit tam unsigned byte a k subpolozkam pristupovat pres bitove operace. …

zni to jak cesta do praveku, holt dan za ty novoty (GCC automagismus), pokud je to pravda

Ondrej SanTiago Zajicek
Ondrej SanTiago Zajicek (neregistrovaný) ---.crfreenet.org
29. 7. 2009 11:41 Nový

Re: bitfields

celé vlákno

Ono to neni ani tak cesta do praveku ci neduvera k novinka, ale prosty dusledek faktu, ze standard C nerika, zda prvni jednobitovy bitfield je MSB nebo LSB. Jsou tu dve stejne smysluplne interpretace (a v pripade mnoziny bitfieldu presahujicich jeden byte dokonce ctyri).

 

Obecne bitfieldy jsou natolik podspecifikovane, ze vyuzivat je v pripade, kdy na reprezentaci v pameti zalezi, je zbytecne riziko.

Jirka P
Jirka P (neregistrovaný) ---.36.broadband2.iol.cz
29. 7. 2009 11:44 Nový

Re: bitfields

celé vlákno

V čem je to cesta do pravěku? Prostě bitová pole nemají definované pořadí položek (takže se nedají používat pro přístup k hardwaru), a tak to platilo i v pravěku. Takže akorát místo x.fg, x.bg … budete mít TEXT_FG(x), TEXT_BG(x)… Nevidím v tom velký problém.

xavier
xavier (neregistrovaný) ---.91.broadband16.iol.cz
28. 7. 2009 18:27 Nový

funkce putch

celé vlákno

Seriál je skvělý a těším se na další pokračování. Přesto si neodpustím jednu výtku – goto. Nebylo by vhodnější místo příkazů goto použít break a příkazy před návěstím update vložit do bloku default toho switche?

Wladows
Wladows (neregistrovaný) ---.net.upc.cz
28. 7. 2009 22:23 Nový

Výpočet adresy znaku

celé vlákno

> Výpočet vypadá následovně: adresa = 0×b8000 + [(3–1) * 80] + (5–1) 

Tady je věcná chyba. Jeden pár znak-atribut zabírá 2 bajty, takže se musí násobit dvěma:

adresa = (char*)0xb8000 + (((3–1) * 80) + (5–1)) * 2

Je třeba mít stále na paměti, že pointerová aritmetika v C/C++ pracuje nad ‚poli‘ referencovaného typu, ne nad bajty.


Jen bych rád podotkl, že čtenář článku, který neví ani jak vypsat písmenko na textovou obrazovku, by se rozhodně neměl pokoušet psát vlastní operační systém. To je jako kdyby se člověk, který netuší k čemu slouží šroubovák pokusil postavit letadlovou loď. :) Proto se musí nejdřív vzdělat. Doporučil bych mu nabootovat do DOSu (dneska asi spíš v nějakém virtuálním stroji) a začít si hrát s hardwarem, osahat si všechno, napsat nějaké grafické demo, pochopit co mu ten jednoduchý systém nabízí (a co ne) a teprve pak přemýšlet jak to napsat jinak, líp a během útržku jednoho krátkého života… (Tak, a teď mně ukamenujte)

šachy
šachy (neregistrovaný) ---.usbe.cas.cz
28. 7. 2009 23:34 Nový

Re: Výpočet adresy znaku

celé vlákno

,,Proto se musí nejdřív vzdělat. … napsat nějaké grafické demo"

Ano, vzdělává se tímto seriálem, a na konci si třeba napíše grafické demo ;-)

Tomáš Jędrzejek aura:100
28. 7. 2009 23:45 Nový

Re: Výpočet adresy znaku

celé vlákno

Souhlasím, ve spěchu jsem na to zapomenul – pokud byste namísto (char *) nahodil (short *), uz by to bylo jinak. Při psaní jsem vycházel z výše uvedeného vzoru, takže mě to ani nenapadlo.

Ochrana proti spamovacím robotům. Odpovězte prosím
Ochrana proti spamovacím robotům. Odpovězte prosím (neregistrovaný) ---.net.upc.cz
29. 7. 2009 0:33 Nový

moderni OS nespoleha na BIOS ani VESA, nepouziva 16bit mode a je psan nad zkusenostmi z predchozich + soucasnych systemu

celé vlákno

doporucil bych serial poznavame naprogramovane OS a pridavame pouze nove a uzitecne (chybejici) casti. Pote by se vyvoj ZaXOS zastavil a autor by mohl treba full-time hackovat kernel a psat kvalitni drivery pro novy HW z cehoz by mel dvojanosbny uzitek a ostatni take.

Tomáš Jędrzejek aura:100
29. 7. 2009 10:27 Nový

Re: moderni OS nespoleha na BIOS ani VESA, nepouziva 16bit mode a je psan nad zkusenostmi z predchozich + soucasnych systemu

celé vlákno

Tenhle seriál ale nemá nic s mým OS společného – jeho vývoj nehodlám zastavit a pokud jde např. o linuxové jádro občas tam napíšu taky něco. Navíc pracuji na několika dalších projektech, nejnovějším je hra ArenaLive. Mimochodem s titulkem souhlasím, nic 16bitového se nepoužívá jak v seriálu, tak ani v ZeX/OS.

Biktop
Biktop (neregistrovaný) ---.28.broadband3.iol.cz
29. 7. 2009 10:37 Nový

Re: moderni OS nespoleha na BIOS ani VESA, nepouziva 16bit mode a je psan nad zkusenostmi z predchozich + soucasnych systemu

celé vlákno

Nejsem přesvědčen o tom, že vývoj operačních systémů byl završen Unixem, Windowsy či „MASoX“em. Nebo-li vývoj nových systémů jistě svůj smysl má. Ne, že by to byl případ autorova OS, ale ze všech hackerů jen pár zvládne napsat OS a z těchto pár jen pár (a to v podstatě doslova) zvládne vymyslet vlastní přístup. Takže práce na vývoji OS, ač pro počítačovou komunitu zcela bezcenného, je rozhodně velkým přínosem a poučením pro jeho autora.

who cares
who cares (neregistrovaný) 193.206.186.---
29. 7. 2009 6:10 Nový

codeproject - clanek mesice

celé vlákno

zajemcum o tuto tematiku mohu doporucit http://www.co­deproject.com/KB/tip­s/boot-loader.aspx

Zasílat nově přidané příspěvky e-mailem