Názory k článku
Vývoj zvukových karet Sound Blaster
sb16
celé vláknoRe: sb16
celé vláknoRe: sb16
celé vláknoRe: sb16
celé vláknoRe: sb16
celé vláknoNa xubuntu Jaunty Jackalope mi do dalo kupu práce, ale nakonec to hraje.
Z nějakého hloupého důvodu ho modul snd-sb16 nedetekuje a nezkonfiguruje, takže musím používat workaround - ISAPnPTools pro "najumperování" karty na správné porty a přerušení a pak ty hodnoty tomu modulu vnutím.. (alsaconf to všechno vždycky jen pokazil a zvukovku nenašel)
btw: Win98SE kartu detekují jako SB AWE 32 a pak to nehraje, teprv po přepnutí na SB 32 jo.
Myslíte, že to je klon když to tak zlobí?
ten post je můj
celé vláknoDMA buffer
celé vláknoDMA se programovalo tak, že se naprogramoval celý buffer (který mohl mít max 64kB). Zvuková karta pak přehrávala tento buffer dokola, a přerušení posílala vždy v prostřed a na konci. Program pak postupně plnil levou nebo pravou půlku bufferu. Na zvukové kartě SB16 pak přibyla povinnost naplnění buffer potvrzovat kartě, jinak se nepotvrzená půlka nepřehrála a přehrávání se zastavilo, dokud se buffer nepotvrdil. Zabraňovalo to typickému koktání vyplývající právě ze situace, kdy se program zastavil na delší čas, než byla rychlost přehrávání.
Jinak přerušení bylo dalším celkem dobrým zdrojem cyklicky spouštěných přerušení (časovač), akorát pokud neměla hrát hudba,musel se buffer vynulovat.
Obecně si myslím, že v architektuře PC bylo velice málo časovačů k volnému použití, systémové byly obsazené a člověku zbýval jen ten na Adlibu, nebo na SB, připadně na externí kartě s čipem 8253.
Re: DMA buffer
celé vláknoRe: DMA buffer
celé vláknoV Branách Skeldalu byl Int 8 přeprogramován na 50Hz. Používal se na všelicos, hlavně od toho bylo odvozeno časování hry. Ve Windows Patchi se to už nepoužívá, odvozuje se to jinak.
Re: DMA buffer
celé vláknoRe: DMA buffer
celé vláknoV pozdejsich PC byl jeste volny kanal pouzivany drive pro refresh pameti, ale nevim, jestli ho nekdo skutecne vyuzival (to uz bylo v dobach 32bitovych OS, kdy se primo na hardware uz moc nesahalo :-)
Re: DMA buffer
celé vláknoRe: DMA buffer
celé vláknoRe: DMA buffer
celé vláknoRe: DMA buffer
celé vláknoRe: DMA buffer
celé vláknoRe: DMA buffer
celé vláknoU nekterych dem se slo ale zase niz, takze se pouzivaly treba rezimy s "kulatym" horizontalnim rozlisenim 256x200 ci 256x240 apod.
Re: DMA buffer
celé vláknoGrafický režim byl 256 barev organizovaných tak, že dolní půlka (4 bity) byly Ink a horních půlka Paper. U pozadí to bylo obráceně. cca 4x za sekundu se převrátila paleta, tak aby barva Ink se stala barvou Paper. Tím se emulovalo celoobrazovkové blikání :-D
Jó to byly časy!!!!
Re: DMA buffer
celé vlákno1) na kartě se nastavil nějaký režím 640x350
2) karta se načasovala tak, aby udělala 800 bodů na šířku a 300 bodů na výšku
3) délka scanline se zvětšila 2x (tedy 1600 bodů na řádek), karta kreslila každou druhou řádku
4) při přerušení na V-blank se posunul offset o 800 bodů tam nebo zpět.
Bylo to 800x600, ale prokládaných.
Re: DMA buffer
celé vláknoChtělo by to zase nějaký článek o HW o grafice :-D
Re: DMA buffer
celé vláknoCo mas vlastne spolecnyho s BS? Co si pamatuju, tak to delal nejakej Jindra Rohlik, nebo vas bylo vic? (jinak klasickej ctvereckovej dungeon, to je ma druha nejoblibenejsi kategorie her, hned po Dune II-like hrach)
Btw, prepocet barev z 2^24 nebo 2^16(15) do 256 umi dobre napriklad knihovna Allegro, akorat si na prevodni tabulku vezme dost pameti (presneji dnes je to jedno, v dobach DOSu to bolelo).
Re: DMA buffer
celé vláknohttp://skeldal.vyletnici.net
http://sourceforge.net/projects/skeldal/
Jindra to produkoval, já to programoval, Karel (Matějka) to víceméně kreslil, podle návrhů Martina Zhoufa. Bylo to v letech 1996 - 1998, původní kód vznikl ve Watcom C, jako extender byl použit Dos4GW. Dneska se to dá (po větších úpravách) přeložit ve Visual Studio 2008. Na SF to leží ve stavu "stáhní, přelož projekt a spusť", měl by to zvládnout každý.
No ta moje převodní tabulka měla z 2^16 na 2^8 64KB, vlastně to bylo jednoduchý, kouklo se do tabulky a jelo. Hra původně běžela v 32tis barev a v tabulce byly pro každou barvu dve alternativy, které se periodicky střídaly (jednoduchý dithering)
Re: DMA buffer
celé vláknoRe: DMA buffer
celé vláknoPokud se vrátím k tématu, Brány Skeldalu uměly SB16+, SBPro (stereo), SB2, SB1, Gravis Ultrasound (ale mixování bylo SW, protože rutinka už byla napsaná a přepisovat celý systém mixování jen kvůli GUSu se mi nechtělo) a ještě Windows Sound System (zvláštní karta, té době v naších zeměpisných šířkách ale častá). Dále to samozřejmě hrálo přes Covox (ale jen mono) a přes PC Speakera (ten samplovaný režim). Ve všech režimech chodily všechny zvukové efekty i muzika, jenom u PCSpeakera se každé natažení muziky projevilo cvaknutím, takže se většinou muzika v tomhle případě vypínala :-)
gravis
celé vláknoRe: gravis
celé vláknoRe: gravis
celé vláknoRe: gravis
celé vláknoRe: gravis
celé vláknoNejsilnejsi vzpominky byli z rozjizdeni tehle karty na gamesach ... milion emulatoru, a pak opojny pocit z hudby a zvuku, kdyz se rozjelo .. nebo depka, kdyz to neslo :DD
Takovej Doom,Heretic,Hexen na gravis karte .. to bylo neco. Pak az mnoho let pozdeji jsem v bazaru koupil SB AWE a jednou jsem zkusil, jestli to fakt byl rozdil, jak se psavalo. No ... byl. A poradnej :)
Re: gravis
celé vláknoPak nechapu proc sis tu AWE neporidil driv ;-)
Re: gravis
celé vláknoRe: gravis
celé vláknoV tej dobe som fical na demach, ktore boli na prilozenom CD, kamosi s SB sa nechytali... :o)
Re: gravis
celé vláknoRe: gravis
celé vláknoDobre spomienky na nekonecny flamewar GUS vs AWE na Fidonete..
Re: gravis
celé vláknoRe: gravis
celé vláknoNamátkou si vzpomínám na skvělý flame na téma: Je či není DOS operační systém? Já osobně se stále kloním k názoru, že to OS nesporně je - jednoúlohový, jednouživatelský a definici OS víceméně splňuje. Konkurenční názor, že je to pouze loader aplikací vypadá sice efektně, ale jde právě o ten efekt radikalismu :-)))
Doufám, že tady nebudeme skoro po víc jak 15 letech pokračovat. Já tedy ne :)
Také konference, založená Františkem Fukou pod názvem HNUS.42 bývala výživná... Někde to mám tuším vše archivované. Pamatujete na GoldED, FroDo, RA, ... atd ?
Re: gravis
celé vláknoRe: gravis
celé vláknoCP/M bych za operační systém naopak považoval, neboť jeho součástí je i vrstva ("protokernel") BIOS, která zajišťuje abstrakci HW - a narozdíl od MS-DOSu byl ten HW neporovnatelně různorodější. BIOS u PC je součástí ROM, takže DOSu už toho moc na práci nezbývá. Dohromady u CP/M - BIOS+BDOS - tak tvoří jádro, které abstrahuje velmi různorodý HW z úrovně V/V portů na úroveň API, od vrstvy BIOS stejného všude. Podle mého názoru jde o jeden z nejpřenositelnějších systémů v historii výpočetní techniky - k přenosu stačilo pro konkrétní HW napsat BIOS, BDOS už bylo možné použít odjinud. Pokud si uvědomíme, že prakticky jediné, co muselo být ke spokojenosti CP/M stejné, byl procesor (8080 kompatibilní), že za těchto podmínek dokázal zaručit přenositelnost a kompatibilitu na _binární_ (!) úrovni, pak je to skoro neuvěřitelné. A to byl také účel CP/M - poskytnout jednotné API na různorodém HW při co nejnižších nárocích. Tento účel byl bezezbytku splněn. MS-DOS naprosti tomu běžel jen na jednom typu HW - PC, tudíž, jak se říká, když dva dělají totéž, není to totéž. Pokud by hnidopich poznamenal, že CP/M nesplňuje definici taktéž, tak ale upozorňuji, že CP/M sám o sobě netvrdí, že je to OS, ale pouhý "Control Program for Microcomputers" ;-) .
S názorem, že jejich možnosti odpovídaly době a zařízení zásadně nesouhlasím. Možnosti zařízení převyšovaly schopnosti MS-DOSu o několik řádů, stejně tak vývoj už byl trochu jinde (viz např. AmigaOS, GEM, ale i osmibitový (!) GEOS). MS-DOS mohl být od počátku multitaskový, kdyby k tomu bývala byla vůle vývojářů (názor, že je k tomu nezbytný chráněný režim, je absolutně mylný), mohl poskytovat lepší uživatelské rozhraní, jeho služby mohly být našlápnutější - vždyť běžel na šestnáctibitových mašinách se stovkami KB RAM, diketovou mechanikou (resp. jednotkou, vzhledem k přítomnosti BIOSu) a obvykle i "diskem typu winchester", jak se tomu u říkávalo u nás :-) .
Ne, je tomu přesně naopak - možnosti a schopnosti MS-DOSu za možnostmi zařízení i za dobou kulhaly asi tak o generaci a 10 let.
Flame od DOSu
celé vláknoDOS také spravoval disky a diskety, dokonce obsahoval souborový systém. Obsahoval správce jednotek, a pokud člověk připojoval jednotku, musel přes DOS. S tím souvisí IO managment. Například správa bufferů (oblíbené příkazy BUFFERS a FILES v CONFIG.SYS).
Dos také spravoval periferie. Přiděloval tiskárnu a porty COM
Dos také spravoval čas procesoru. Totiž ona správa procesoru nemusí být jen multitasking. Prostě pouze spravoval čas v době, kdy neběžel žádný proces nebo v případě, že aplikace čekala na stisk klávesy (a použila k tomu čekání DOSu).
Určitě existovaly v té době lepší OS. Ale jak už to tak bývá, na PC tehdy existoval pouze jeden nejrozšířenější, a ten se také použival. A jeho možnosti byly poplatné době a platformě, na které tehdy běžel. První soft, který se to pokusil změnit a na trhu uspěl byly Windows 3.0 (přestože byly kvalitnější OS, třeba OS/2)
Možná že DOS kulhal asi 10let za dobou, situace dneška je však taková, že jiný operační systém stejné firmy udává trendy v budoucím vývoji.
Howg.
PS: Ještě ke chráněnému režimu. Ten běhal od 286. Byl to ale jen takový pokus o vtip od Intela, něco jako chráněný režim alfa verze. Třeba například nebylo možné jej ukončit jinak, než resetem. Pište v takovém systému OS? Ale Windows 3.0 běhaly na 286 a prakticky plynule přešly na 386, kde můžeme hovořit o plnohodnotném chráněném režimu. Windows 3.1 použivaly 32-bitový režim přístupu k souborům. Nezapomínejme také, že největší brzdou vývoje byla vždy kompatibilita, tedy než se ujal nový OS, musely nejprve staré programy morálně zastarat. Proto nadále budu trvat na tvrzení "poplatné době".
Re: Flame od DOSu
celé vláknoJestli něco MS-DOS opravdu, ale opravdu nespravoval, tak to je právě čas. :-) Prázdná smyčka a správa času jsou opravdu trochu odlišné věci, ale v době, kdy se i uklízečka oficiálně může nazývat "sanitary manager" si tomu pro mě, za mě říkejte třeba správa času. :-D Ostatně v MS-DOSu se nemůže stát, že neběží žádný proces - jednoduše proto, že v něm žádné procesy neexistují: MS-DOS nenabízí žádné služby k vytváření a správě procesů.
"A jeho možnosti byly poplatné době a platformě, na které tehdy běžel." - jestli si myslíte, že se s 256 KB RAM a procesorem 8088 nedá vykouzlit víc, než co předváděl MS-DOS, tak se hluboce mýlíte.
"Pište v takovém systému OS?" - s naprostým přehledem a lehkostí. Kde vidíte problém? 1) on si výrobce 286 položil celkem logickou otázku, nač by mohlo být komu dobré chráněný režim vůbec ukončovat, když už do něj jednou vstoupím (jediným praktickým důvodem je možnost volat BIOS, ale to je věc návrháře PC a ne procesoru), 2) v praxi to žádný problém nebyl, prostě se vyresetoval procesor, naprostá prkotina. A jak znovu opakuji, i bez tzv. chráněného režimu se dá stvořit nesrovnatelně lepší věc, než je MS-DOS - viz např. počítače PSION a jejich
operační systém EPOC.
Který operační systém firmy Microsoft udává dnes trendy ve vývoji? Nebo někdy v historii? Aniž bych byl nějaký odpůrce Microsoftu, je třeba si objektivně přiznat, že tato firma nikdy nepřišla s ničím novým ve výpočetní technice, vždy jen převzala něco, co dávno existovalo (a obvykle ne zrovna nejšťastnějším způsobem). Na tom nevidím nic špatného, ale za "udávání trendu" bych to nepovažoval - spíš jen za nutnost, aby Microsoft ani přes své dominantní postavení neztratil trh vinou zoufalé zastaralosti svého softwaru, kterážto koule, jak je vidět, se s ním táhne už od jeho začátků. Vinu bych spatřoval v tom, že Microsoft ke svému úspěchu přišel tak trochu jak slepý k houslím, nikoli koordinací vývoje a marketingu, ale pouze marketingem. Ta firma prostě nemá inovační tradici, na jejím začátku nebyl nikdo, kdo by přišel s nějakou inovativní myšlenkou, jako tomu bylo třeba u Apple, Commodore, XEROXu či IBM, kdo by si kolem sebe vybudoval tým a ten držel nějakou tradici a školu svého zakladatele a nějak se dál z jejích základů vyvíjel. Na Microsoft se jednoho dne jen usmálo štěstí, ale za jeho úspěchem nestojí žádná inovativní práce.
Kompatibilitu chápu, jenže MS-DOS byl anachronismem už v okamžiku, kdy byl uvolněn na trh. To je jako byste dneska uvolnil něco jako Windows 3.1, ty se řízením osudu prosadily a pak někdo v budoucnu napsal, že to byl systém poplatný své době a platformě. Je to ale krásná ukázka, že k obchodnímu úspěchu není třeba být nejlepší (a dokonce ani dobrý :-) ). MS-DOS byl tak trochu zbytečnou záležitostí - systém v osmibitovém střihu (v první verzi pouze klon CP/M) nasazený na šestnáctibitový počítač. Příliš se nespletu, pokud řeknu, že to byl pravděpodobně nejhorší systém, jaký se na šestnáctibitových počítačích (bez bližšího rozlišení) kdy používal.
Re: Flame od DOSu
celé vláknoZa sebe bych řekl, že operační systém je rozhraním mezi HW a SW. MS-DOS tuto definici v určitém rozsahu splňuje. Opravdu zajišťuje některé HW služby prostřednictvím svého API, nebo případně pomocí API třetích stran. Jako příklad uvedu myš. Byť sám MS-DOS nenabízí API pro myš, umožňuje natažení ovladače, který toto API implementuje. A to přesně vystihuje to že MS-DOS je OS (i Wikipedie jej považuje za OS.
Pro zajímavost, procesory 8086 byly vydány v roce 1978. V roce 1982 byla prodána první 286ka. Operační systém EPOC na PSIONY začíná v 1980. Na platformy x86 (EPOC16) se dostává až v roce 1989! Linus svůj OS napsal také kolem roku 1989! a to na počítače s procesorem 386. WIndows 1.0 byl vydán v roce 1985 a v roce 1988 Windoiws 2.0. MS-DOS měl tedy vládnout pouze cca 3-4 roky (1981-1985).
Pro další zajímavost, sestavy s procesorem 8086 neměli žádné nástroje na plánování, tento handicap panoval ještě do doby dávno minulé, kdy se na desky začal dávat APIC. Předtím se plánovalo jen s pomoci PIC (čip 8253, channel 0). Jenže 8086 přepínat úlohy neuměla (hacky ve stylu přehazování zásobníky nepočítám, to se samozřejmě dalo dělat i na ZX Spectrum, ale mělo to své problémy). Přepínat úlohy umí až 286ka a stránkování (a tedy plnohodnotnou správu paměti) umí až 386ka.
Microsoft samozřejmě věděl, že MS-DOS není konečná, vyvíjel své Windows velice záhy. Ale bohužel, trh byl někde jinde, spoustu výrobců se zorientovalo na MS-DOS a ten jim vystačoval. Mimochodem, možná, že Gates nebyl úplně dobrý programátor, ale určitě byl skvělý manager i obchodník. Kopírování nápadů možná není morální, ale rozhodně to byla (nepopíratelně) úspěšná obchodní strategie!
A ještě k Vašim omylům. Přepínat zpět do reálného režimu bylo potřeba, a Intel si svou hrubku velice záhy uvědomil. Ten krásný sen, že nahodíme chráněný režim a zbavíme se reálného totiž velice brzo narazil na realitu. Valná většina HW byla totiž dodávána s RomBiosem, který byl komplet napsán v realném režimu (to snad ještě platí dnes!). Pokud jste přešel do chráněného režimu, přešel jste o vše!. O disky, o obrazovku o klávesnici, o přerušení! Příchod přerušení bez podpory v chráněném režimu znamenal okamžitý konec programu a jeho odchod do věčných lovišť. Abyste mohl ovládat HW a zachovat veškerou funkcionalitu nejen DOSu, ale některých služeb (tehdy dodávaného) BIOSu, musel jste chtě nechtě přecházet do reálného režimu. A to i v přerušení. Vím to z vlastní zkušenosti, právě při vývoji hry Brány Skeldalu pod extenderem Dos4GW býval často problém se službamy HW a DOSu. Prerušení například mohlo přijít na dvě různá místa, podle toho, jestli například nepřišlo v době, kdy se četlo z disku. V době příchodu 286 existovala toho HW už spousta a tak nakonec vyhrává kompatibilita namísto pokroku. Tenhle problém řeší až Windows 95. jenž zavádí první náznaky HAL rozšiřovatelného pomocí ovladačů. Donutit výrobce psát ke svému HW ovladače prostě bylo nutné a až v roce 95 se podařilo výrobce přesvědčit, že Windows stojí za povšimnutí a kdo nemá ovladač pro Windows, tak na trhu s HW velice rychle končí.
A ješte vyvrátím další Váš omyl. MS-DOS měl samozřejmě i správu procesů. Každý proces v MS-DOSu měl PCB, měl proměnné prostředí. Mohl jste mít v paměti několik procesů naráz. Služby MS-DOSu obsahovaly dva zásadní příkazy, jednak Exec, a jedna Terminate, což bych řekl, že jasně vystihuje správu procesů. Přitom příkazem Terminate bylo možné ukončit kterýkoliv proces v paměti. I PID byste tam našel, bylo to číslo segmentu PCB. Mezi příkazy pro správu procesu tam existoval i příkaz Terminate and Stay Resident. Příkaz prostě vrátíl řízení MS-DOSu. Jediný, co si process musel zajistit tak to přidělení času procesoru ve vhodný okamžik. A k tomu mohl využit mnoho nástrojů. Například plánovač DOSu (Int 28), PIC (Int 8), klávesové zkratky (Int 9), nebo reakci na zařízení připojení k COM1/2 (třeba myš).
MS-DOS dokonce nabízel obdobu příkazu ps (z linuxu). Zkuste v MS-DOS použít příkaz mem (myslím že s nějakým parametrem /s nebo /p ?). Výpis ukazoval nejen mapu paměti, ale seznam spuštěných procesů.
Nevím, já bych být vámi tohle vzdal. Nemáte dostatek informací na to, abyste mohl argumentovat. MS-DOS jste viděl z rychlíku a myslíte si, že o tom víte vše. Podle toho taky hodnotíte.
(Mimochodem, Windows 1.0 v roce 1985 nabídl na tehdejší dobu solidní správu obrazovky, to nejdůležitější, co uživatel na OS potřebuje. Linux nespravuje obrazovku dodnes, zkuste v Bashi pustit dvě aplikace, které malují po obrazovce paralelně!. Jediný co vám zbyde je použít screen, nebo X11, čili aplikace třetích stran ... byť dodávaných s distribucí).
PS: Microsoft Vám určitě leží v žaludku a tlačí a tlačí. Jenže nic s tím neuděláte. Možná byly lepší OS, ale Microsoft je bez problémů převálcoval. Prostě to uměl prodat, kvalitou, marketingem i cenou. A přesně tak se určují trendy. Výběr správně technologie, kterou nabídneme masám a se kterou uspějeme (kvalitou nebo marketingem nebo cenou).
Re: Flame od DOSu
celé vláknoUž tu po několikáté říkám, že je to otázka definice OS. Pokud nazvete operačním systémem cokoli, co umožňuje zavést ovladač... Tož takový operační systém vám napíšu během pěti minut. :-) To je jako nazývat monitory a BASICy osmibiťáků operačními systémy. A to asi fakt ne. ;-) K té Wikipedii - on Pluto se taky oficiálně léta považoval za planetu, přesto že je to pouze planetka.
Jestli vám to uniklo, tak až do Windows 95 nebyly Windows operačním systémem, ale pouhou nadstavbou MS-DOSu, přičemž ještě ke všemu první použitelná verze byla až 2.0. Takže srovnáváte hrušky a jabka.
Očividně vám naprosto uniká, co to je proces, jeho kontext a jak se přepíná. Přepnutí zásobníků není žádný hack, je to základní princip a myšlenka multiprocesových systémů. Všelijaké TSS a podobné věci byly vytvořeny pouze k ulehčení procesu přepínání a provázání se systémy ochrany procesoru (pokud jsou implementovány). Stránkování nemá s přepínáním procesů vůbec nic společného. Ostatně na 8086 běžel i MINIX. Ano, multitasking skutečně můžete implementovat třeba na Z80, nebo 8051, chcete/potřebujete-li a také se to tak dělá. Nebo-li v tomto bodě jste naprosto mimo a pro příště, než se pouštět na tenký led, raději si doplňte potřebné informace.
Já jsem ale psal, že přepínat zpět bylo na PC nutné - Vy jste četl nějak nepozorně.
No ta zmínka o PCB je opravdu komická. Věřte, že s TSR programy jsem si užil dost a dost a jestli tomuhle říkáte "správa procesů", tak to už opravdu neříkám nic. Když si vzpomenu na ten porod, který bylo třeba podstoupit, pokud člověk v TSR chtěl provést přístup k disku...! Prostě proto, že jediná podpora MS-DOSu spočívala v tom, že programu při jeho ukončení ponechal paměť a o vše ostatní se starej sám - i o nereentrantnost MS-DOSu - _včetně_bezpečného_ukončení_ (narážím na Vaši zmínku o voláni Terminate). Vzhledem k tomu, jak se bez jakékoli regulace TSR navěšovaly na IRQ _nebylo_možné_ je ukončit, pokud tak neučinily dobrovolně. Leda deaktivovat a s nimi i všechny ostatní, kdo visely na stejném IRQ, včetně služeb MS-DOSu. No zkrátka toto opravdu ne! :-) Správa procesů představuje něco jiného, ale to souvisí s předešlým - něco si o tom přečtěte.
Můžu Vás ujistit, že MS-DOS znám skrz naskrz, od počátku 90. let. Nehledě k tomu, že i dnes s ním přicházím do styku při údržbě softwaru. A hodnotím tak jak hodnotím právě proto, že jsem si s ním tolik užil. To, co bylo v jiných OS té doby standardem, MS-DOS nijak neřešil. Porovnávat jsem skutečně mohl, doma jsem měl Amigu 500, živil jsem se na PC.
Prosím Vás, po Windows 1.0 neštěkl pes, byl to totální propadák, navíc těžce zabuggovaný. V té době platilo, že cokoli jiného než Windows = zaručeně lepší než Windows. Atari, Amiga, Commodore, Apple... tam všude v té době existovalo GUI a narozdíl od Windows 1.0 prakticky použitelné a také používané. Další důkaz technologického zaostávání Microsoftu za ostatními.
Mně je Microsoft ukradený, nevím, proč by mě měl kvůli něčemu někde tlačit. Jeho úspěch mu neberu a nezpochybňuji, že kopíroval od jiných mu narozdíl od jiných nezazlívám (proč platit vývoj, když si můžu počkat, až s něčím přijde někdo jiný a pokud se bude zdát, že je to dobrý nápad, tak to prostě koupit nebo obšlehnout?). Ale kvalita a inovace za jeho úspěchem rozhodně nestojí.
Re: Flame od DOSu
celé vlákno... ale to bych se pouštěl do jiného flame. Takže bych to ukončil slovy, že MS-DOS byl operační systém, tečka.
PS: Nemáte pravdu minimálně v tom, že Windows 95 je nadstavba nad DOSem. Platí to tedy hlavne kvůli kompatibilitě se starým HW. Nicméně přístup zejména na disk a do souborového systému jel plně v protected mode, čili bez DOSu se to obešlo. Jediný, co ve Windows 95 zůstalo byl DOSový zavaděč, a DOSový (po většinu času neaktivní) framework, který většinou zabíral 1MB paměti a byl přítomen jen kvůli dosovým ovladačům. Ale samotný Win95 DOS nepotřeboval.
Druhá tečka.
Re: Flame od DOSu
celé vláknoZkrátka pokud přijmout, že MS-DOS je OS, pak nutno dodat, že s odřenýma ušima a zavřenýma očima - a to i z hlediska své doby a hardwaru.
P.S.: Tady jsem se špatně vyjádřil, chtěl jsem tím říct, že W95 byl ten zlomový okamžik, kdy z Windows udělali samostatný OS, i když takovým způsobem... No, raději toho nechme.
Re: Flame od DOSu
celé vláknoW 95
celé vláknoWindows 95 není nic víc než MS-DOS 6 + Window 3.1 s předělaným GUI a schopností pouštět 32-bitové programy. Nevidím důvod, v čem by se W95 mělo chovat „víc“ jako operační systém než W3.1. Do W3.1 šly taky nahrávat „VXD“ ovladače, stejně jako do W95. Jak W95, tak W3.1 funguje i s těmi MS-DOSovými ovladači a používá nějaký šílený algoritmus na rozhovování, které stránky v té MS-DOSové paměti jednotlivá DOS-okna sdílejí (t.j. rezidentní programy natažené před startem Windows) a které ne (programy či rezitení programy puštěné v tom daném okně).
Hint: zkus si pustit v MS-DOS okně W95 debug a vymazat tu tabulku přerušení na začátku paměti. Vytuhne ti celý systém.
Re: W 95
celé vláknoBezva, ale o to přece nešlo. W95 nebyly zabezpečené tak jako NTčka, to nikdo nepopírá. Stačilo přepsat něco v oblasti, kam byla mapovaná DLL, a šlo to do kytek stejně.
Rozhodně si ale nemyslím, že by vymazání oblastí pro interrupty a následné zatuhnutí mělo znamenat, že W95 běželo v DOSu. V chráněném režimu MUSÍ být tabulka interruptů přemístěna jinam, na jiné místo v paměti (a chip co řídí přerušení přeprogramován, protože Int 8, kam se mapuje IRQ8 v chráněném režimu patří výjimce procesoru). Spíš tuhle oblast W95 používají pro zachování kompatibility a příslušné handlery volají z chráněného režimu, aby dali šanci i rezidentním DOSovým programům… a ten systém vytuhne proto, že celý W95 beží v kernel mode, včetně aplikací a DOSového rozhraní.
Rozdíl mezi W3.1 a W95 je ten, že zatímco služby OS ve W3.1 jsou emulovány DOSem, DOS pod W95 je emulován windowsovským ovladačem v 32-bitovém režimu.
Re: Re: W 95
celé vláknoW 95 mají io.sys, msdos.sys a command.com stejně jako DOS. Dokonce, pokud při startu zavedeš pouze tyto programy a nikoli GUI (po zmáčknutí F5 či F8), tak z toho DOS máš a pak můžeš napsat „win“ a máš z toho Windows a pak zase kliknout na „restartovat v režimu MS-DOS“ a máš z toho zase DOS.
Kvůli DOSovým rezidentním programům to pořád volá všechny služby přes INT x, stejně jako Win 3.1. Pokud vezmeš DOSový program na omezení přístupu k souborům (jakási primitivní security počítající s tím, že uživatel není dostatečně znalý, aby si to v paměti patchnul) a zavedeš ho ve Win95, tak ti bude fungovat a omezovat přístup k souborům úplně stejně jako v DOSu. Čili ten filesystém stejně jde přes INT 0×21 a reálný mód. Možná ve W95 existují nějaké bypassy, že když na daný interrupt není připojen žádný rezidentní program, tak se provede přímo bez reálného módu; to nevím.
Další ukázka použití BIOSu ve Win95 je přístup na disketu. Žádný program ti neběží po dobu, co se vykonává nějaká operace s disketou. Kurzor po obrazovce jezdí (ten je řešen interruptem), ale jinak nic udělat nejde a všechno reaguje se sekundovým zpožděním. Patrně na tu disketu používají BIOS, kdyby měli skutečný ovladač diskety v chráněném režimu, tak by všechny procesy takhle neblokoval a používal interrupt.
Re: W95
celé vláknoOdhadovat podle zavaděče jak běží W95 je krásný úlet. I Linux lze zavést z DOSu. Dokonce i tak, že shutdown toho Linuxu vrátí řízení DOSu (pokud Linux bude striktně používat jen HMA).
W95 neměly ovladač diskety v chráněném režimu. Jen ovladač diskety byl implementován tak, že přepnul do reálného režimu a operaci provedl v reálném režimu přes BIOS, což je legitimní. I dnes jste v kernel mode schopen napsat ovladač, který významným způsobem zastaví počítač, protože vyžaduje nějakou těsnější komunikaci s HW.
Máte pravdu, W95 měl bypassy. A pokud zjistil, že rezidentní program změnil tabulku interruptů, dal mu šanci v běhu právě tak, že jeho obsluha se zavolala nejdřív. Ale první obsluha byla v chráněném režimu, teprve pak se řešila kompatibilita.
INT 21 je i chráněném režimu. Vůbec ta informace INT 21 neznamená, že je tam reálný mod. Ano, přepnout do reálu se muselo, pokud tam nějaký rezident seděl. V chráněném režimu by totiž nefungoval.
Re: Flame od DOSu
celé vláknoJedině Hery Kildál by Vám řekl - co v Mrkvo DOSu vrátí to a nebo to přerušení.
Víte vo tom houno a tož tu netlápejte.
Jste jako aktivní blbec, což je horší než-li třídní nepřítel.
p.s.
a nemanipulujte s textem odpovědí, není to košér. Stejně jako vod teho mrkvokradosoftu
:-))))))))))))))))))))))))))))))))))))))))
Re: Re: Flame od DOSu
celé vlákno„Jenže 8086 přepínat úlohy neuměla (hacky ve stylu přehazování zásobníky nepočítám, to se samozřejmě dalo dělat i na ZX Spectrum, ale mělo to své problémy). Přepínat úlohy umí až 286ka a stránkování (a tedy plnohodnotnou správu paměti) umí až 386ka.“
Linux na přepínání úloh používá ten „hack ve stylu přehazování zásobníku“. Ano, opravdu to přepne zásobník, nahraje registry a případně přepne tabulku stránek.
To hardwarové přepínání procesů Linux nepoužívá; je zbytečné. Je děláno mikrokódem v procesoru a ten mikrokód je pomalejší než když se přímo napíšou instrukce na přepnutí zásobníku a nahrátí registrů. Ten mikrokód musí kontrolovat spoustu drobností definovaných v architektuře (všechny možné bity v GDT, TSS…), zatímco přímo napsaný kód na přepnutí zásobníku to nedělá.
"Přepínat zpět do reálného režimu bylo potřeba, a Intel si svou hrubku velice záhy uvědomil.
… a čemu to vadilo, že 286 neuměla přepnout do reálného módu? Prostě se zresetovala a BIOS zkontroloval jednu hodnotu v paměti, a pokud seděla, skočil na nějakou adresu.
Re: Re: Re: Flame od DOSu
celé vláknoBuď si děláte srandu, nebo hrůza děs. Pokud Linux takhle přepíná procesy…
Co třeba stránkování, tabulky deskriptorů, ty se taky musí přepnout! Buď tomu tedy nerozumíte, nebo začínám chápat, proč je ten linux tak zprasený. Pryč od něj!
Teh hack s BIOSem je fakt dobrej :-) Miluju za programovací styl „tady to hacknem!“. Pak to podle toho vypadá jak vypadá!!!!
Re: Re: Re: Re: Flame od DOSu
celé vláknoCo to furt meleš? Ty sis prostě vymyslel svoji představu o tom, jak má co fungovat, ovšem skutečná teorie i praxe je jiná. Už ti tu dva lidi nezávisle na sobě řekli, jak se to má s tím přepínáním zásobníků a vypínáním PM u 286.
ad přepínání kontextu – naprostý souhlas s Biktopem i BLEKem. Stejně musí nakonec nějakým způsobem _VŽDYCKY_ dojít k přepnutí zásobníků, protože to je prostě základní princip jakéhokoli multitaskingu: KONTEXT PROCESU je definován ZÁSOBNÍKEM; principiálně je úplně lhostejné, jestli si registry procesoru uložíš do nějaké systémové struktury procesoru, do nějaké svojí tabulky nebo na zásobník, který vzápětí přepneš. Chápeš to? To, co píše BLEK, je chronický problém inteláckých procesorů odjakživa – přepínání procesů pomocí TSS s využitím call bran nebo nested interruptů je zoufale poooomaaaaléééé, protože se přitom dělá spousta věcí, které se vůbec dělat nemusejí, jenže procesor o tom neví, ví to jádro systému – proč modifikovat hromadu systémových registrů, které trvá proklatě dlouho, když to konkrétní implementace vůbec nevyžaduje, např. díky flat modelu apod.? Chce to trochu myslet a ne jen slepě spoléhat na to, co doporučuje výrobce. Zvlášť když svůj výrobek vybavil hromadou redundantních věcí, jež se při přepínání kontextu všechny musejí na úrovni procesoru zohlednit, ale v praxi je najednou nikdo nikdy nepoužije, protože je to naprosto zbytečné.
ad přepnutí reálného režimu 286 – jaký hack zase? Víš vůbec, o čem mluvíš? Přepnutí 286 do reálného režimu v praxi vypadalo tak, že jsi zrušil tabulku vektorů přerušení a záměrně vygeneroval výjimku „neplatný operační kód“. To při neexistenci oné tabulky způsobilo trojitou výjimku a přechod CPU do stavu shutdown, který detekoval externí HW a zresetoval ho. Tabulku přerušení stejně musíš modifikovat pro reálný režim, takže to žádná operace navíc není a jako ten neplatný kód se obvykle (po uvedení 386) dávalo MOV CR0,EAX (který je na 286 samozřejmě nedefinovaný), neboli přepnutí do reálného režimu vypadalo z hlediska programátora skoro stejně na 286 i 386. Klidně tomu říkej hack, ale v porovnání s „oficiální“ metodou (přes klávesnici) to bylo nesrovnatelně elegantnější a mnohem rychlejší.
Fakt si o tom všem nejdřív něco zjisti, než o tom začneš plácat nesmysly na diskusích, kam choděj lidi, kteří tomu narozdíl od tebe rozuměj. Jak si vůbec troufáš posuzovat, jestli je nějaký operační systém po programátorské stránce zprasený, když problematice teorií a technik operačních systémů vůbec nerozumíš, jak je vidět? To ses hochu měl dát na politiku nebo k zelenejm, tam každej kecá o věcech, o nichž nic neví a nikomu to nevadí, ale tady s takovou budeš akorát za trotla.
Re: Re: Re: Re: Re: Flame od DOSu
celé vláknoStačilo napsat jedno slovo HACK. Programování ve stylu ala HACK opravdu nehovím (ačkoliv pravda je, že mne k tomu občas okolnosti nutí, takže právě proto jsem proti němu!). Pokud zde máme technické prostředky jak něco řešit čistě, měly by se využít a ne to ohackovat.
Přepínání do reálného režimu 286 považuji za hack, tečka.
Přehazování zásobníku místo použití brány považuju za hack, tečka.
Pokud mají inteláci přepínání pomalé, pak je to jejich problém, nikoliv můj. Ale nevěřím tomu, už proto, že konkurence tu je velká (např. AMD). Mimochodem jak přepínáte stránkové registry? LTD tabulky. Nevyjde to v konečném důsledku stejně náročné, jako to dělat ručně?
PS: Flat režim je metla lidstva. Díky tomu se rozmohly viry typu stack overflow a podobně. Při použití segmentového přístupu je ochrana o 100% vyšší. Škoda, že to nikdo nevyužívá (tedy … po pravdě, microsoft využívá registr FS, kde je segment namapovaný na TLS aktuálního vlákna… mimochoděm, taky se musí při přepnutí naplnit správnou hodnotou.)
PSS:Linux je plný hacků, tečka.
Re: Re: Re: Re: Re: Re: Flame od DOSu
celé vláknoNejvětší problém, který máš, je ten, že o tom víš opravdu kulový. Doporučuji studium nějaké odborné literatury, třeba Madnick, Donovan: Operating Systems, Tanenbaum: Modern Operating Systems nebo aspoň pro ty nejnutnější základy v češtině třeba Čada: Operační systémy. Fakt nemá smysl to s tebou řešit, to je jako bavit se o strategiích při hraní durcha s člověkem, který vůbec nezná pravidla mariáše.
(pozn.: „POST-POST SCRIPTVM“ = „PPS“)
Re: gravis
celé vláknoNo, popravde si nepamatuju .. myslim, ze snad ani tuhle konferu jsem netahal .. ja uz nevim ... je to uz , myslim asi 15 let .. BBS a modem .. no, to je uz uuuplne zapadle prachem v pameti. Akorat si pamatuju, jak jsem se vztekal na nektere BBS s modemy min. nez 14.4k :DDD
Re: fido
celé vláknoRe: gravis
celé vláknoVypada docela dobre, rekl bych. To nejake noname wanna be SB zvukovky na tom byly mnohem hur, o 50 Hz na vystupu ani nemluve.
Re: gravis
celé vláknoRe: gravis
celé vláknoskvely clanek
celé vláknojeden z nejlesich serialu za posledni dobu. Mam jich doma asi 15 kusu ve sbirce.
gf
Re: skvely clanek
celé vláknosb live?
celé vláknoRe: sb live?
celé vláknoRe: sb live?
celé vláknoRe: sb live?
celé vláknoGUS byl nedostizny sen
celé vláknoRe: GUS byl nedostizny sen
celé vláknoRe: GUS byl nedostizny sen
celé vláknoTaké bylo v GUSovi dobrý, jak zápis do registrů se musel dělat dvakrát, protože je nešlo zamykat. Oni se totiž měnily stylem přečti, inkrementuj, zapiš. A pokud se člověk zrovna trefil do fáze inkrementuj, tak mu následně GUS tu hodnotu změnil na původní. Musel tedy provést zápis podruhé, aby se ta hodnota tam opravdu dostala.
Z mého pohledu GUS nebyl žádný zázrak, měl nějaké dobré věci, ale měl i některé velice nepěkné problémy.
Re: GUS byl nedostizny sen
celé vláknoA co ještě pokritizujete.
Pane, nebuďte tak vážně nasranej na život. A pojďte si hrát.
Dneska je hezky - :-))))))))))))))))))))))))))))))))))))))))
48 kHz
celé vláknoRe: 48 kHz
celé vláknoPotom ty cipy Vibra byl IMHO krok zpatky, no ale co se da delat, kdyz ta karta s hrdym nazvem Sound Blaster nakonec stala par stovek.
Re: 48 kHz
celé vláknoRe: 48 kHz
celé vláknoAle SB 16 (ASP) byla snad nejkompatibilnejsi karta na tehdejsim trhu, snad nikdy s ni nebyl zadny problem, postacilo nastavit promennou BLASTER, a to zvladla i takova lama, jako tehdy ja :-)
Roland
celé vláknoRe: Roland
celé vláknoZeby som oprasil D50 a jej klasicke kultovne zvuky (aj ked obcas preefektovane a zasumene)?
Re: Roland
celé vláknoGravis Ultrasound
celé vláknoRe: Gravis Ultrasound
celé vláknoCo čipy ESS
celé vláknoJenom se chci zeptat, nevíte jakého stáří byly ESS čipy? Měl jsem kartu ESS Audiodrive, jinak přesněji snad ESS 1686, byl to klon SB Pro (2.0?). Měl jsem ty ESS čipy jenom já, že u alternativců nejsou? Pravda nebyly asi ničím zvláštní, kromě úžadně uplácané virtuální hifi věže pro Win 3.11 a uměly PnP, které jak už tu někdo poznamenal většinou spíš nefungovalo :)
Duna
celé vláknoRe: Duna
celé vláknoSB AWE 32
celé vláknoMel jsem SB AWE32. Zadna jina karta od te doby nedelala tak suprovy zvuk. Pozdeji jsem mel SB Live!, kvuli prechodu na PCI, ale oproti AWE32 to byla po analogove strance hruza. Ten rozdil bohuzel slysel i totalni hudebni neznalec a hluchon jako ja.
kX drivers
celé vláknoPro Sound Blastery a určitý typy E-mu karet existují i alternativní ovladače s názvem kX, které jsou otevřené a tudíž poskytují možnost vývoje vlastních zvukových efektů využívajících HW karty i drobných zvukových/hudebních aplikací. Mají ambice fungovat i v alternativních operačních systémech. Obecně jsou koncipované pro muzikanty (nízkolatenční standard ASIO), ale díky podpoře DirectX poskytují komfort i hráčům nebo běžným uživatelům PC. Víc info v češtině a stažení na webu drivers.kx.cz – brzy přibudou i tutoriály k instalaci a práci s těmito ovladači v češtině (GNU/Linux nevyjímaje :).
pomoc s prilsenim
celé vláknoahoj vsichni chtel jsem se optat jestli by mi nekdo neporadil jak mam prihlasit zvukovku je integrovana na zakladni desce

