Hardware-ondersteuning

> OS/2 Index <

gradbar.gif




Inhoud

Over PC bussen en randapparatuur : De IBM PC ; De IBM PC/AT en klonen; Micro Channel Architecture; De Industry Standard Architecture (ISA) bus, Intels Peripheral Component Interconnect (PCI) bus, De Wintel PC

Randapparaten

De OS/2 stuurbestanden :

Physical Device Drivers (PDD), Virtual Device Drivers (VDD), Presentation Drivers (PD), I/O poorten, Adapter RAM en ROM , Interrupts , Direct Memory Access, Hardwareherkenning , Pnp of jumpers, Een intern PCI modem instellen

Plug & Play en PCI apparaten : Plug and play, Advanced Configuration and Power Interface (ACPI), Hardwareherkenning,


De stuurbestanden van het installatiepakket

De nieuwste stuurbestanden installeren

Videokaarten

Winkukels

Geluidskaarten onder OS/2

Zie ook:


Valkuilen bij de installatie van OS/2

Ondersteuning voor IDE harde schijven

Een netwerkadapter toevoegen



Over PC bussen en randapparatuur

> Top <


Inleiding

Enige computer historie is onvermijdelijk

Wie zijn iets wil leren kennen, kan niet buiten de ontstaansgeschiedenis van om. Kennis zonder historisch perspectief is slechts een weetje. Pas als u weet hoe moeizaam en onder welke omstandigheden iets tot stand kwam, kunt u het waarderen. Dat is de reden waarom rechters naar de feiten en de omstandigheden vragen.

De computergeschiedenis is er een van hardware en software. Ik concentreer me hier op de hardware. En wel op die van de IBM PC.

De IBM PC is in 1981 geboren. Hij had heel goed een volstrekt ander model kunnen zijn. Maar om toen geldende redenen is hij op een bepaalde manier samengesteld. En wel uit goedkope toen op de vrije markt verkrijgbare componenten. En omdat de IBM PC zo'n succes werd moesten zijn opvolgers hier rekening mee houden. Dit is de kern van het backward compatibility of legacy software/apparatuur probleem. Vooruitgang is goed, maar niemand gooit voor een beloofde verbetering zijn redelijk werkende apparatuur en software meteen weg. Omdat bedrijven en particulieren behoefte hebben aan continuïteit, wordt een al te radicale vernieuwingsdrift niet op prijs gesteld.

Dos, Windows, OS/2 en Wintel

De eerste PC was een general purpose computer. Eentje die alles kon. Hij kreeg uiteindelijk Microsofts Disk Operating Systeem DOS als besturingssysteem. Maar hij kon ook andere besturingssystemen draaien. Zeker toen de 16 bits IBM AT versie uitkwam met de Intel 286 processor. In de protected modus van de 286 processor konden echte en minder echte multitaskende besturingssystemen draaien. Een daarvan was het vanuit MS DOS opgestarte 16 bits Windows. Maar IBM en Microsoft werkten ook een 16 bits Operating System/2 (OS/2). De laatste werkte niet in een "alles moet kunnen" coöperatieve modus. En had dus veel meer geheugen nodig. En was dus moeilijker te programmeren. OS/2 werd daardoor minder populair dan Windows.

Het was chipfabrikant Intel die de behoefte had aan de verkoop van steeds snellere chips. Chips bestaan uit grotendeels uit hardware, maar er is ook een softwarematig aspect aan iedere chip. Want dat is het deel dat met het geheugen (de software drivers van het besturingssysteem) moet praten. Dit variabele deel wordt in het Read Only Memory (ROM) van de hardware opgeslagen.

Designed for Windows

De huidige computergebruikers beschouwen hun PC vaak als een interactief televisiescherm dat "het programma Windows" draait. Ze verwachten dat hun nieuwe computer "het" meteen doet (lees: Windows laadt). De hype is nieuw, sneller en beter. Maar omdat Windows alsmaar trager werd, moest de vooruitgang van de hardware komen.

Hardwarefabrikanten moesten zich dus steeds meer in het Windows besturingssysteem specialiseren. Ze staken hun energie in de Windows stuurbestanden en foefjes om de gebreken van Windows hardwarematig op te lossen. Het ene "unieke" model volgde op het andere. En om goedkoop te kunnen produceren integreerden ze steeds meer hardware op het moederbord. Hierdoor nam het aantal vrije PCI sloten nam af.

Inmiddels valt het kiezen van de juiste hardware (en stuurbestanden) zelfs voor een Windows gebruikers al niet mee. Voor laptops moet u al vaak het serienummer kennen, om te achterhalen welke chipset er in uw laptopmodel zit. En tegen de tijd dat hiervan een testrapport van uitkomt, is het beoordeelde model al niet meer verkrijgbaar. Vanwege die hoge hardware turnover loont het niet om stuurbestanden voor andere besturingssystemen te schrijven. Het kunnen draaien van Windows is de facto standaard. Als Windows loopt worden elementaire assemblage en BIOS fouten getolereerd: "Designed for Windows" heet dat dan.

Een PC wordt al na twee jaar afgeschreven.

Inmiddels leven we in een hardware wegwerpmaatschappij waarin alles acceptabel is, dat maar de laatste Microsoft OEM versie draait. In onze ongeduldige Plug and Play maatschappij willen de consumenten onmiddellijk resultaat. De verwachtingen zijn hoog en de frustratietolerantie is laag. Een PC wordt daarom al na twee jaar afgeschreven. Testers beoordelen slechts het eindresultaat onder de actuele versie van Windows. Aandacht voor legacy problemen en standaardisatie is er niet.

Windows versus old legacy OS/2


Voor velen werd de Windows Desktop synoniem met de personal computer. Dan weet je wat je hebt. De aanschaf van een van tevoren geïnstalleerd Windows only OEM systeem is nog steeds de gemakkelijkste weg. Niet alleen voor de gebruikers, maar ook voor de leveranciers.

De "designed for Windows" computers zullen het onder Windows altijd doen. Zelfs als er iets met de stuurbestanden misgaat hoeft de gebruiker nog niet onder de motorkap te kijken. Daar zijn OEM setup programma's, Wizards en andere Windows gebruikers voor die u met een schone installatie verder kunnen helpen. Deze hebben geen boodschap aan hardware compatibiliteits problemen.

OS/2 gebruikers zitten in een lastiger pakket. Ze hebben prachtige desktop, maar om die op en moderne computer geïnstalleerd te krijgen moeten ze onder de motorkap kijken en niet zelden meerdere installatiepogingen ondernemen. Enige kennis van stuurbestanden en hardware hoort erbij.

Composed for OS/2

Geroutineerde OS/2 gebruikers zullen hun OEM PC daarom met zorg samenstellen. Want niet ieder randapparaat wordt ondersteund. Ook kunnen ze niet voor iedere klus een ander programma installeren. Anderzijds is OS/2 nog supersnel, virusvrij en een uitstekend leermiddel om bewuster met computers en software om te gaan. U moet zelf meer doen, maar u zult het resultaat ook meer waarderen. Want als u alles maar cadeau krijgt is er na een tijdje ook geen klap meer aan.

Wie doet wat?

OS/2 is net als Linux, DOS en Windows een "general purpose operating system". Een algemene doeleinden bedoeld besturingssysteem valt of staat bij de hardware die het ondersteunt en de programma's die erop lopen. Om die reden werd Windows populair. Maar het is niet het enige general purpose operating systeem.

Zo dankt Windows het grootste deel van haar huidige succes aan de ruime beschikbaarheid van programma's en stuurbestanden voor hardware. Via agressieve marketing wist Microsoft hard- en software fabrikanten aan zich te binden. Eigenlijk komt alleen het blauwe gedeelte van een "Windows PC" van softwaremakelaar Microsoft. De rest wordt door andere partijen gemaakt. Microsoft laat anderen (business partners) voor zich werken.

32 bits Windows programma's (ISV's) en Desktop (MS)

WIN32 API en Windows kernel (Microsoft)

Windows stuurbestanden (hardwarefabrikant)

Randapparaten (hardwarefabrikant)

Het produceren van de stuurbestanden van randapparatuur is een taak van de adapterfabrikant. De besturingssysteem fabrikant levert slechts specificaties en software om stuurbestanden mee te maken. De stuurbestanden die u op de Windows diskettes en CD's ziet komen dus vrijwel altijd van de adapterfabrikanten. Zij hebben er het meeste belang bij dat hun hardware onder uw besturingssysteem (lees: Windows) werkt.

Hetzelfde geldt voor de softwareproducenten (independent software vendors, ISV's) die voor de Windows API's schrijven. Ze maakten Windows aantrekkelijker door er software voor te schrijven. En omdat er steeds meer software voor Windows kwam, werd het door meer hardwarefabrikanten ondersteund. Er ontstond een vicieuze cirkel waarbij alles om Microsofts monopoliepositie draaide (Zie: Commerciële software en monopolievorming)

Ik benoem dit zo expliciet omdat veel consumenten er nog van uit gaan dat hun besturingssysteem hun de stuurbestanden moet leveren. Om aan die wens tegemoet te komen worden de meest basale stuurbestanden met het besturingssysteem gebundeld en in een installatieprogramma geïntegreerd. Maar als een hardwarefabrikant het vertikt om stuurbestanden voor Linux of OS/2 te schijven, dan moet u de fabrikant daarvoor verantwoordelijk stellen en niet de makers van uw besturingssysteem. Laat staan de makers van open source stuurbestanden die hun best doen om hun besturingssysteem levend te houden.


De IBM PC


> Top <

Microprocessor

De PC geschiedenis (PC history) begint met bouwpakketten met Intel microprocessors. Die waren betaalbaar. In de jaren 70 bouwden de eerste computerenthousiasten ALTAIR computers. Een met 4 k werkgeheugen uitgeruste ALTAIR kon Bill Gates programmeertaal Basic draaien. Hiermee had de gewone man een general purpose besturingssysteem. De in het bedrijfsleven gebruikte UNIX minicomputers waren voor hem nog onbetaalbaar (Zie: Van UNIX naar Linux).

Estridge

De International Business Machines Corporation (IBM) beschouwde de home computer markt als een onbetekenende niche markt, maar je kon nooit weten. IBM had een afdeling "Entry Level Systems - Small system USA" voor zakelijke computerbeginnelingen. IBM stelde Philip Donald Estridge aan als projectleider van de Entry Level Systems - Small system USA ("responsible for the development of small microprocessor-based systems for 'tiny' business and personal use") en vroeg hem pas terug te komen als hij een goedkoop en werkend IBM systeem had (1980). Estridge kreeg een ruim budget en mocht zich in in Boca Raton, Florida, aan de op de specificaties gerichte bureaucultuur van het IBM hoofdkantoor in New York onttrekken.

De IBM PC (1981)

Anders dan IBM gewoon was, stelde Estridge de IBM PC niet uit IBM hardware samen, maar uit vrij verkrijgbare componenten. Achteraf zal IBM hier spijt van hebben gehad. Maar IBM nam de Personal Computer markt niet al te serieus. Middels het IBM BIOS en de PC bus (een verzameling van met elkaar verbonden draden op het moederbord) werden de 8 bits componenten aan elkaar gesmeed. Bill Gates mocht het besturingssysteem verzorgen, want Estridges eerste keus, de geniale maar excentrieke ontwerper van het succesvolle besturingssysteem voor Intel 80xx processors (CP/M,Control Program/Microcomputer) Jerry Kildall had er geen oren naar. Bill wel. En als zoon van een bedrijfsjuriste, wist hij er als geen ander profijt van te trekken (Zie: Programmerende schooljongens leggen fundament voor software-imperium).

De IBM PC systeembus

De eerste IBM PC (Model 5150) had nog geen diskettedrive, maar gebruikte cassettes om Basic en assembler programma's via de seriële poort in zijn 16 kB (later 64 kB) hoofdgeheugen te laden. Alle elementen waren op een centrale systeembus aangesloten.

In de computertechnologie staat het begrip "bus" tegenover het begrip "point to point". Point to point connecties verbinden slechts één apparaat met een ander apparaat. Bijv. het PPP protocol van uw modem met dat van uw internetprovider. Maar in de low-level omnibus technologie gaat het om het verbinden van een veelvoud van apparaten met elkaar. Bus is een verbastering van omnibus connector. Ook uw modem zal op de PC bus processortijd met de andere apparaten delen. Maar als het beeldscherm niet aan bod komt, ziet u er niets van.

De IBM PC-bus bevatte 62 parallelle draden (signaallijnen), die al dan niet onder stroom stonden. Hieronder bevonden zich 20 adreslijnen om 1 MB (2^20 bits) geheugen te adresseren, 8 datalijnen voor 1 byte woorden en regellijnen om de in- en output te coördineren. Aan de hand van de voltages op de signaallijnen wist ieder apparaat (component) wat het moest doen.

De IBM PC systeembus was dus 8 bits, liep op 4,7 MHz en had een theoretische bandbreedte van 2 MB/s. Maar omdat alle componenten (snel en traag) op dezelfde systeembus waren aangesloten, moesten er mechanismen zijn om de toegang tot de bus (lees de processor) te reguleren. Anders zouden de relatief snelle componenten (processor, werkgeheugen) voortdurend op de langzame componenten (diskette, modem) moeten wachten. Vergelijk het met een autosnelweg waar je liever ook geen fietsen en tractoren ziet. Maar er waren toen nog geen parallelwegen voor langzaam verkeer, zoals op de huidige local bus en PCI systemen. Alles transacties verliepen via dezelfde (systeem)bus.

De BIOS booststrap routines en het booten.

Om de PC aan de praat te krijgen, heeft de processor programmacode nodig. Waar moet hij die vinden? In het het altijd aanwezige PC BIOS. De eerste instructies die een Intel processor leest bevinden zich op het adres FFFF:0000 BIOS ROM. Vanaf hier worden de routines van het bootstrapproces uitgevoerd: een systeem en lage geheugentest, een speurtocht naar adapter ROM, het uitvoeren van de code van het gevonden adapter ROM, een inventarisatie van de op de bus aangesloten systeemcomponenten en een test van het hele systeem.

Tijdens de Power On Self Test (POST) worden eerst de meest basale PC bestanddelen getest: de processor, het ROM, de DMA en interrupt controllers, het BASIC ROM en de videocontroller .

Daarna zoekt de BIOS bootstrap code naar het ROM van de insteekkaarten in het 768-960 K gebied. Ieder adapter ROM begint met hexcode 55AA gevolgd door de grootte van zijn ROM segment gedeeld door 512. Daarna volgt de programmacode van de het ROM in de kaart. Als deze zelftestjes uitgevoerd wordt ziet u meestal leds aan en uit gaan. Na de initialisatie van de adapter wordt de besturing weer aan het PC BIOS doorgegeven dat vervolgens de BIOS routines van de overige adapters afwerkt. Maar als ook maar een adapter disfunctioneert zal het bootstrapproces hier ophouden.

Daarna worden weer testen uitgevoerd. Die kunnen bij langzame perifere apparaten als een diskette station lang (minuten) duren. Achtereenvolgens worden de CRT interface, het werkgeheugen, het toetsenbord, de cassette interface (voor tapes), het diskettestation en de seriele en parallele poorten.

Als laatste wordt de besturing aan het boot record op het opstartmedium overgedragen. Spoedig daarna zal het besturingssysteem de controle van het BIOS overnemen.

Werkgheugen en de processor

Het werkgeheugen (Random Access Memory, RAM) bevat de code en data waar de processor meteen iets mee kan doen. Het is te vergelijken met ons korte termijngeheugen. Zodra iets in ons korte termijngeheugen geladen is ("in het hoofd zit"), is het toegankelijk en kunnen we er wat mee doen. Bijvoorbeeld de rekensom "3 + 4 =" uitvoeren. De processor laadt hiertoe de aan hem gepresenteerde programmacode (optellen) en de gegevens (getallen) in zijn instructie- en dataregisters en voert het resultaat in een uitvoerregister uit. De uitslag wordt meestal weer aan het werkgeheugen teruggegeven en verschijnt daarna bijvoorbeeld op uw scherm.

Langzaam geheugen

Het werkgeheugen (primair geheugen) wordt gevoed door en voedt de informatiedragers die niet meteen toegankelijk zijn (secundair geheugen): blokapparaten als diskettes en vaste schijven en seriële apparaten. Ook het ROM hoort hiertoe, maar uw beeldscherm hoort hier niet bij. Dit langzame geheugen is te vergelijken met ons lange termijn geheugen. We moeten onze herinneringen apart naar voren halen. Het verleden staat niet zomaar tot onze beschikking. En zo is het ook met de gegevens op uw vaste schijf gesteld. Vaak moeten we bewust zoeken. Hiervoor gebruikt de PC de via het werkgeheugen "bewust" aangestuurde opvraagmechanismen die uw data en programma's zoeken en vinden.

Programmacode

In het "3+4 =" voorbeeld van hierboven heeft de processor de rekensom zo opgelost. Het is zijn specialisme. Ook de programmacode van "3+4 = " stelt niets voor. Het is maar een regel tekst. Het meeste werk zit hem in de in- en uitvoer van de data. Oftewel dat u via processor aan de randapparatuur duidelijk kunt maken wat u wilt en ook het resultaat tot uw beschikking krijgt. Zie hiervoor: A Collection of Assembler Hello World Programs.

Trage in- en uitvoerapparaten

Maar de hiervoor benodigde in- en uitvoerapparaten zijn traag. En zij bepalen de meeste instructies. Een processor die aldoor op de randapparatuur moet wachten, besteedt dus de meeste tijd aan het wachten. Om de processortijd beter te kunnen benutten werd de Input/Output hulpprocessor uitgevonden. Deze DMA controller is gespecialiseerd is in de transportperikelen van de processor. Hij nam de I/O taken van processor over. Hij was niet snel, maar kon wel wachten, zodat de processor dat niet meer hoefde te doen. De DMA controller werd de secretaresse van de processor.

IBM PC architectuur


Bij het regeluren van het dataverkeer op de systeembus speelden de bus controller, de DMA controller en de interrupt controller een belangrijke rol. Op de XT waren het nog op de vrije markt verkrijgbare losse componenten. Later zouden ze steeds meer in chipsets worden geïntegreerd.

DMA

Het Direct Memory Access (DMA) mechanisme maakte het mogelijk dat perifere componenten gedeeltelijk buiten de processor om van en naar het werkgeheugen konden schrijven. Hierdoor hoefde processor niet meer op de trage in- en uitvoeracties van randapparaten te wachten. De processor initieerde de acties en sloot ze af, maar het eigenlijke bustransport werd aan de hardware van de bus (bus en DMA controller) en perifere apparaten (bijv. de diskette controller) overgelaten. De processor (lees: software) bepaalde de specificaties van de I/O transactie (doe dit hier en dat daar), maar liet de feitelijke werk aan de DMA controller (lees: I/O processor) over. Zie ook: Bus Oddessy 2001 : over het gebruik van DMA in IBM computersystemen.

Interrupts

De Intel 8259 Interrupt Controller fungeerde als een soort bel voor de processor en het besturingssysteem. Als de bustransactie klaar was gaf het apparaat dat via een Interrupt Request aan de processor en het besturingssysteem door. Tussendoor kon de processor zich met andere zaken bezig houden. Die bestonden vooral uit het afhandelen van het rekenwerk van de in het geheugen geladen programma's, maar ook uit het reageren op de interrupts van andere apparaten zoals het toetsenbord en de software interrupts van het besturingssysteem.

In het voorbeeld hiernaast (IRQ load 13%, CPU user load 53%) gaat het om een backup via het netwerk waar in ieder geval de interruptlijnen van de ethernetkaart en de IDE schijf betrokken waren. Maar ook de vga kaart gebruikt een interrupt om de voortgang op het beeldscherm te tonen. Ondertussen kon de auteur probleemloos met andere zaken bezig zijn. Bijv. met het schrijven van teksten, het ontvangen van televisie of het draaien van muziek. En natuurlijk het maken van dit plaatje. Estridge kon het nog niet voorzien, maar met name op het gebied van de multimedia bleek de "interrupt driven" PC architectuur een kanjer te zijn.

Snelle 32 bits PC besturingssystemen als OS/2, Windows en BEOS zijn nog steeds "interrupt driven" besturingssystemen. De belangrijkste zaken worden door de hardware (processor, bus en controllers) met behulp van het BIOS geregeld. Het besturingssysteem faciliteert, maar laat al het bulkwerk en een groot deel van de coördinatie aan de hardware over. Vandaar ook het succes van het technisch weinig voorstellende DOS en 16 bits Windows. Door verfijning van deze technologie (pre-emptive multitasking, 32 bits API's, snellere drivers) en een enorme specialisatie van de hardware (snellere bussen, videokaarten, MMX) wisten de 32 bits Windows opvolgers de UNIX minicomputers en werkstations van de markt te verdrijven.

Het IBM PC BIOS (1981)

Op de eerste Personal Computer van IBM speelde het in assembler geschreven Basic Input Output Systeem (BIOS) een kardinale rol. De IBM PC was uit vrij op de markt verkrijgbare onderdelen samengesteld. In zekere zin gold dat ook voor het besturingssysteem DOS. Maar het IBM PC BIOS en de IBM PC bus hielden dit zootje ongeregeld bij elkaar. En nog steeds, maar nu wordt het meer als een probleem (legacy probleem) gezien.

Bij het starten van de computer werd het BIOS vanaf Read Only Memory geladen, deed wat controles op de hardware en laadde het besturingssysteem. Het Disk Operating System (DOS) regelde de toegang tot het diskette bestandssystem FAT, laadde een shell (command.com) en beheerde het geheugen. Maar de functies van de huidige stuurbestanden zaten in het BIOS. Zo was het mogelijk dat programma's buiten DOS om de BIOS routines gebruikten om de hardware te benaderen. Dat moest ook wel, want de DOS Application Programmers Interface (API) stelde maar weinig voor. En de DOS "kernel" was een noodzakelijk kwaad.

Programma's en shell

(DOS API)

DOS "kernel"

(Stuurbestanden)

----------------------------------

IBM PC BIOS (en adapter ROM)

Hardware controllers op de PC-bus


Intermezzo: hoe hard is hardware?

Let wel: "Hardware" bevat zowel software (ROM, EPROM) als hardware poorten. Zelfs een "processor", kan geheel en al uit software bestaan. Voorbeelden zijn emulatoren als VPC en de Java "RISC" processor op het Intel platform en de verschillende adapterkaarten met dezelfde chip. Anderzijds kan een compleet besturingssysteem op een insteekkaart zitten (Acorn OS, Java-chip, PCI routers). De grenzen tussen de hard- en software zijn niet zo scherp.

Vrijwel alle hardwarecomponenten (inclusief processors) bevatten een- of meermalig programmeerbare software-onderdelen die de lijmfunctie vervullen van het BIOS ROM. De in de hardware controllers aanwezige geïntegreerde circuits (IC's) zijn hard, maar het ROM, EPROM en andere programmeerbare geheugenchips verlenen de hardware hun flexibiliteit. Ze maken het verschil uit tussen verschillende producten van dezelfde chip. De voor de perifere adapterkaarten geschreven stuurbestanden hebben meestal direct contact met de snelle hardware poorten voor het ruige werk en met programmeerbare software poorten voor de configuratie.

Schaduwgeheugen, BIOS emulatie, BIOS limitaties

Om de toegang tot het BIOS te versnellen werd het op 1 MB systemen in het hoge geheugen geladen (schaduwgeheugen). Later vervingen de in het werkgeheugen geladen stuurbestanden en kernel API's de BIOS routines volledig. Multitasking PC besturingssystemen zoals het 16 bits OS/2 1.0 moesten het BIOS wel emuleren, om rechtstreekse benadering van de hardware door elkaar beconcurrerende programma's te voorkomen. En op een modern 32 bits besturingssysteem fungeert het BIOS eigenlijk alleen nog maar als startmotor van het besturingssysteem. Maar die startmotorfunctie geeft nog wel BIOS limitaties bij het booten.

IBM PC/XT (1983)

In 1983 bracht IBM de EXtended Technology PC reeks uit. Deze XT PC's konden meer geheugen (64-256, resp. 640 kB) aan, bezaten een diskette drive en latere versies kwamen met een 10-20 MB vaste schijf (PC XT - Model 5160). De snelste bezaten een 80286 processor. Maar de bus bleef 8 bits.


De IBM PC/AT en klonen


> Top <

IBM PC/AT (1984)

In 1984 introduceerde IBM de 16 bits PC/AT (Advanced Technology) voor de Intel 80286 processor. De PC/AT bus had extra adresseringslijnen om 16 MB RAM te kunnen adresseren. Extra geheugen werd via een insteekkaart bijgeplaatst. Maar de Advanced Technology (AT) bus bleef in veel opzichten een compromis. Want deze bus moest zowel oude 8 bits PC-bus als nieuwe 16 bits AT (later als ISA bekend staande) insteekkaarten bedienen. Om die reden kwam er naast de XT hoofdconnector met 62 contactpunten voor oude PC kaarten een extra randconnector met 36 pinnen voor nieuwe AT compatibele randapparatuur. Maar vanwege de compatibiliteit werd de bussnelheid niet wezenlijk veranderd. Om de 8 bits kaarten niet te verwarren werden de 8 extra IRQ kanalen voor de 16 bits AT bus kaarten, achter IRQ2 verstopt ("cascade"). Hetzelfde gebeurde met DMA kanaal 4

DE PC/AT klonen

Om de adapterfabrikanten aan te moedigen om randapparatuur te maken voor de PC/AT had IBM de specificaties van de AT bus goed gedocumenteerd. IBM's PC-AT Technical Reference was zo gedetailleerd dat die fabrikanten de volledige functionaliteit van de IBM PC/AT in hun klonen wisten na te bootsen. De PC/AT bus kon in licentie worden gebouwd en het IBM PC BIOS werd via reverse engineering door Compaq nagebootst (1982). Tevens ontstonden er alternatieven voor DOS. Dankzij deze concurrentie zakte de prijs van de PC's en daalden de winstmarges van IBM. Vooral Microsoft en Intel profiteerden hiervan.

Structuur

Softwarematig zag het er nu zo uit:

Programma's en shell

DOS besturingssysteem of DOS klonen

Stuurbestanden

IBM PC compatibel BIOS

Hardware controllers van randapparaten op de ISA bus

Legacy probleem

Maar hardwarematig bleef veel bij het oude. Dit staat bekend als het legacy probleem: om de compatibiliteit met oude apparaten en programmatuur te waarborgen, bleef de PC architectuur in hoofdlijnen gelijk. Met het BIOS op een centrale plaats. En dat betekent 32 bits besturingssystemen op het gebied van geheugenadressen, interrupt requests, DMA kanalen, COM poorten e.d. aan de oorspronkelijke PC specificaties gebonden waren. Intel volgde die lijn door haar processors steeds compatibel te laten zijn met de 8086 chip (real mode emulatie).


Micro Channel Architecture


> Top <

MCA (1987)

IBM realiseerde zich dat het met het vrijgeven van de IBM PC en AT specificaties veel te vrijgevig was geweest. Via de introductie van de PS/2 met een snelle en door vele patenten beschermde Micro Channel Architecture (MCA bus) probeerde IBM zijn monopolie te herstellen. De op 10 MHz lopende MCA bus bevatte belangrijke verbeteringen zoals IRQ sharing, DMA busmaster control en kon datasnelheden van resp. 20 en 40 MB/s in resp. de 16 en 32 bits PS/2 modellen behalen. De hardware kon softwarematig worden geconfigureerd. Maar er waren nieuwe hardware en stuurbestanden nodig om deze bus optimaal te kunnen gebruiken.


De Industry Standard Architecture (ISA) bus


> Top <

ISA

Al eerder ontwikkelden de klonenbouwers onder leiding van Compaq een met de IBM PC/AT bus compatibele Industry Standard Architecture (ISA) bus. Deze niet door patenten beschermde ISA bus kon zowel goedkope oude 8 bits PC-bus als nieuwe 16 bits AT-bus hardware aan. IBM's snelle, maar dure PS/2 Micro Channel Architecture flopte.

ISA bleef de standaard totdat Windows 98 met USB ondersteuning kwam. Ook de PCI systemen bleven via een PCI-ISA brug de ISA bus ondersteunen. Maar in 1999 besloten Intel en Microsoft ook die ISA ondersteuning te laten vallen ten gunste van USB. Hoewel de legacy ondersteuning voor LPT en COM poorten nog gangbaar is, komen er momenteel nauwelijks nog PCI moederborden op de markt met vrije ISA sloten.

EISA (1998)

Voor de 386 PC's werd de 16 bits ISA bus uitgebreid naar 32 bits Extended Industry Standard Architecture (EISA) bus. De EISA bus beschikte over veel eigenschappen van de dure MCA bus: 32 bits datapad, een 32 bits (4 GB) geheugenadressering, veel I/O adressen, busmastering en een software setup zonder DIP switches. Maar om compatibel te zijn met de ISA hardware liep de EISA bus maar op 8,33 MHZ. Hierdoor moest de processor tijdens de benadering van de systeembus steeds zijn werktempo vertragen. Inmiddels beschikte het geheugen over een snelle op kloksnelheid lopende (local) 32 bits geheugenbus, maar voor de videokaart en de netwerkkaarten moesten 25 MHz processors het met een 8,33 MHz transportmiddel doen. De (E)ISA bus werd dus de flessenhals van het systeem. Er zijn dan ook weinig EISA kaarten gemaakt.

Locale bus (1992)

Op de eerste PC's liep het op de systeembus aangesloten geheugen op kloksnelheid van de bus. Dus op 4,77 MHz op de XT, op 6 MHz op de eerste AT en op 8,33 MHz op de ISA bus. Hierdoor moesten processors die sneller waren als de systeembus altijd klokcycli wachten om het op de omnibus aangesloten geheugen te kunnen benaderen. Dat was niet efficiënt. Maar in 1985 kwam Compaq met een Deskpro 286/12 uit die op 12 MHz liep, waar wel 8 MHz ISA apparaten op aangesloten waren. De truc was dat Compaq een apart ingebouwde "lokale" 12 MHz bus gebruikte tussen het geheugen en de processor en een ISA bus voor de verbinding met de rest van de apparaten. Andere computerbouwers volgden met hun eigen versie van een lokale (geheugen)bus. Hierdoor konden de 32 bits 386 en 486 processors via een lokale (proprietary, lees dik gepatenteerde) snelle bus data van en naar het geheugen schrijven.

VESA local bus (1992)

Ook bij het lokale (nauw op de processor aangesloten) busconcept kwam behoefte aan standaardisatie. Dit omdat de videokaarten door hierin gespecialiseerde derde partijen geleverd werden. Omdat de processors en het door hen benaderde geheugen sneller werden, moest ook de videokaart sneller lopen dan de 8,33 MHz EISA bus. Dat was in een 32 bits grafische omgeving van groot belang omdat de processor het grootste deel van de tijd bezig was met de opbouw van het beeldscherm. Om een op 25 of meer MHz lopende 32 bits processor niet meer op de flessenhals van een 8,33 MHZ lopende 16 bits ISA bus te laten wachten moest het lokale bus concept dus ook op de videokaart worden toegepast.

Op 486 en Pentium systemen heeft de processorgebonden Video Electronics Standards Association (VESA) Local Bus (or VL-Bus) tijdelijk stand gehouden. Deze 32 bits locale bus liep op de kloksnelheid van de 486 PC of op de halve kloksnelheid van de eerste Pentiums. Zoals de naam al aangeeft was hij vooral bedoeld om de bandbreedte videosnelheid op te krikken. Maar er is ook enige andere hardware voor gemaakt.


Bandbreedte: the need for speed


> Top <

Bandbreedte

Bandbreedte is de hoeveelheid data die een apparaat per tijdseenheid verwerken kan. De capaciteit van een snelweg hangt van het aantal verkeersbanen en gemiddelde snelheid af. Nu vervoert de 16 bits ISA bus maximaal 2 bytes per klokcyclus (een byte=8 bits) over 16 datalijnen. Maar omdat de processor naar een kloksnelheid 8,33 MHz moet overschakelen voor benadering van de bus, is de maximale bandbreedte van de ISA bus maar 16,7 MB/s.

De eveneens op 8,33 MHz lopende 32 bits (4 bytes) EISA bus komt op het dubbele uit: 33,3 MB/s.

Benodigde bandbreedte

Maar een in 24 bits per pixel kleurdiepte (3 bytes) schermbeeld op een 1024x786 pixels groot beeldscherm (resolutie) bevat al 3 maal 1024 maal 786 is 2,25 megabyte aan data. Als dat met 30 schermen (frames) per seconde getoond moet worden, is de benodigde datasnelheid 256*1024*786*30 bytes/s is 6181355520 bytes/s. Maar in de VESA praktijk zal het om 72 beelden/s of meer moeten gaan. En dan houden we nog niet eens rekening de overdracht van de data van het bronbestand (vaste schijf, CD, DVD) naar het geheugen, waardoor de benodigde bandbreedte moet worden verdubbeld tot 135 MB/s. En dan hebt u nog geen geluid. Ergo: een 16 bits AT bus voldoet niet.




Theoretische bandbreedte van enige gangbare bussen apparaten

Bandbreedte

Breedte

Effectieve* Snelheid

Auto configuratie



8 bit ISA bus
8 MB/s
8 bits
8 MHz
Nee


16 bit ISA bus
16 MB/s
16 bits
8 MHz
Nee


MCA
40 MB/s
32 bits
10 MHz
Ja


EISA
32 MB/s
32 bits
8 MHz
Nee (wel software configuratie0


VLB
132 MB/s
32 bits
33/50 MHz
Ja


PCI
132 MB/s
32 bits
33 MHz
Ja


AGP
264 MB/s
32 bits
66 MHz
Ja


AGP 2x
528 MB/s
32 bits
133 MHz*
Ja


AGP 4x
1064 MB/s
32 bits
266 MHz
Ja


AGP 8x
2133 MB/s
32 bits
533 MHz*
Ja












8 bit PC bus DMA
1 MB/s
8 bits
8 Mhz


PIO-0
3,3 MB/s


PIO-4
16,6 Mb/s


UltraDMA
33,3 MB/s 


Firewire 
400 MB/s
Ja


USB 2
480 MB/s
Ja



> Top <


Intels Peripheral Component Interconnect (PCI) bus


> Top <

Intels PCI bus (1993)

Met Intels Peripheral Component Interconnect (PCI) bus werd het bandbreedteproblemen voorlopig opgelost. Intel maakte steeds snellere processors en had dus alle belang bij een sneller bussysteem. En het meest bij een waaraan zij zelf de leiding gaf. Om de PCI bus tot industriestandaard te maken plaatste Intel haar PCI patenten in het publieke domein. Intel richtte de PCI Special Interest Group op om de PCI standaard verder te ontwikkelen. Deze open strategie legde Intel geen windeieren. Intel werd de belangrijkste leverancier van PCI chipsets die natuurlijk uitstekend met haar snelle Pentium processors konden samenwerken.


De eerste 32 bits PCI bus klokte op 33 MHz en had een theoretische bandbreedte van 133 MB/S. In 1993 kwam de PCI 2.0 specificatie uit. Onder de 64 bits PCI 2.1 standaard (1995) liep een met 64 datalijnen uitgevoerde bus op 66 MHz, wat datatransfers van 528 MB/s kon opleveren. Ze werden op 64 bits servers en werkstations (o.a. in SUN's UltraSPARC) ingezet.

De locale PCI bus op Intel chips

Een van de belangrijkste verbeteringen van het PCI systeem (lichtblauw) is een op hoge kloksnelheid lopende PCI brug (verkorte verbinding) die geheugen, processor en PCI bus direct met elkaar verbond. Hierdoor hoeven datatranfers tussen de processor en het geheugen niet meer via de met trage perifere componenten gedeelde ISA bus te lopen. In latere Triton systemen regelde deze System Controller (PCI Northbridge) ook het Level 2 cachegeheugen (hier niet afgebeeld).

Via een PCI-ISA brug (southbridge) kon een ISA bus met legacy apparaten worden aangesloten, waaronder de verbinding met het klassieke ROM BIOS. De ISA bus was nodig voor communicatie en printerpoorten, maar PCI systemen met vrije ISA sloten zijn tegenwoordig een zeldzaamheid. Andere PCI addities waren aansluitpunten voor de Universal Serial Bus (USB) en IDE schijven (ID brug).


De PCI specificatie ondersteunt het busmaster DMA systeem. Hiermee kunnen op de PCI bus aangesloten apparaten in hoog tempo (burst mode) zonder tussenkomst van de processor data van en naar het geheugen of naar andere PCI apparaten schrijven. Omdat PCI hardware busmaster kon zijn kon de verouderde op de ISA bus aangesloten 8 MHz DMA controller worden omzeild. Deze DMA controller kan alleen maar van en naar het geheugen schrijven, maar niet rechtstreeks van het ene naar het andere randapparaat (Zie: busmaster DMA).

AGP (1997)

Een andere PCI additie is de Accelerated Graphics Port (AGP). Intel noemt AGP een poort omdat het via de PCI NorthBridge een directe verbinding tussen het hoofdgeheugen en videoprocessor vormt. Het voor video gebruikte Dual ported videogeheugen (VRam) is duur omdat het van twee kanten (processor en beeldchip) beschreven moet kunnen worden. Maar via de snelle AGP poort kan de videoprocessor ook van het gewone geheugen gebruik maken. Hier kunnen statische texture maps in worden opgeslagen. De 32 bits AGP bus draait op 66 MHz . Via de hier niet afgebeelde de Front Side Bridge kunnen theoretische videosnelheden tot aan 2.1 GB/s (AGP 8 x) behaald worden.

PCI Express

In het bus concept werden uitbreidingskaarten met parallelle verbindingen via de bus met elkaar verbonden. De bandbreedte van de PCI bus (133 MB/s) werd dus de flessenhals. Lokale bus controllers en snelle bruggen maakten snellere communicatie tussen de op bus aangesloten apparaten mogelijk.

Ook PCI Express staat directe communicatie tussen randapparatuur toe, maar doet dat via snelle seriële verbindingen. De voor telecommunicatie bestemde seriële verbindingspoorten van de IBM AT waren laag geklokt (4,7 MHz), maar de moderne seriële bustechnologie (denk aan USB en S-ATA) werkt met hogere frequenties zodat er grote hoeveelheden data over de korte seriële lijnen kunnen worden gepompt. Bij PCI Express gaat het bovendien om point-to-point verbindingen: hierdoor hoeft de PCI Express Gigabit ethernetkaart niet van het bandbreedte gebruik van de grafische kaart te lijden hebben. De bandbreedte van PCI Express is met 500 MB/s ongeveer 3,5 keer zo snel als PCI (133 MB/s).

OS/2 ondersteuning voor PCI Express videokaarten komt van Scitech.


De Wintel PC's


> Top <

PC System Design Guide

Vanwege het Windows monopolie kan geen hardwarefabrikant buiten Microsoft om. Als Windows de hardware nog niet betrouwbaar ondersteunt, zoals het afwezige USB in Windows 95, raken de fabrikanten hun hardware niet kwijt. Omgekeerd is Microsoft van enkele grote hardwareleveranciers afhankelijk. Zij leveren de hardware en stuurbestanden die Windows ogenschijnlijk sneller maken. Om die reden stemmen Microsoft en Intel ("Wintel") hun beleid steeds meer op elkaar af. Dit uitte zich in jaarlijkse PC standaarden waarin lange termijn beleid (in de PC wereld maar 2 jaar) werd afgesproken.

Zie: PC System Design Guide Downloads

Zonder Intels exponentieel sneller wordende hardware (Moore's wet) zouden Microsofts laatste Windows versies niet vooruit te branden zijn. De wet van Wirth (eigenlijk Martin Reiser) is ook nog steeds actueel: Software gets slower faster than hardware gets faster. Maar juist deze formule bleek een commercieel succes. Het stimuleerde de gebruikers hun hard- en software op te waarderen, wat weer veel geld in Intels en Microsoft laatjes bracht, zodat ze weer in nieuwe snufjes konden investeren. Wie niet aan de Wintel hype meedeed, werd opzij geschoven.

PC99 (1997-99)

De PC99 System Guide versies uit 1997-99 bepaalde Wintels voorkeuren voor hardware design voor de periode 1999-2000. Er wordt onderscheid gemaakt tussen consumenten-, zaken- en spel PC's en notebooks en werkstations. Enige opvallende feiten:

  • Een interne ISA bus met seriële en parallelle poort ondersteuning blijft bestaan, maar voor vrije ISA sloten is geen plaats meer. USB en Firewire zullen ISA apparatuur vervangen. USB wordt verplicht gesteld.

  • 3D videokaarten worden verplicht. 3D Audiokaarten worden aanbevolen.

  • De 32 bits stuurbestanden moeten met Microsofts direct X bibliotheken overweg kunnen.

  • Infrared Data Association (IrDA) 1.1 worden aanbevolen (op notebooks verplicht)

  • De DVD-speler gaat de CD-Rom vervangen.

  • Het moederbord moet de Advaced Configuration and Power Interface (ACPI) standaard voor Plug en Play en de slaap- en waak toestanden van de PC ondersteunen. Het BIOS moet het booten van CD, DVD en netwerkkaarten ondersteunen.

De Design Guides worden niet alleen door Microsoft en Intel geschreven, maar het is ook duidelijk dat ze voor elkaar geschreven zijn. Toen de de PC99 PC System Design Guide geschreven werd was Windows 98 al een succes en Windows 2000 in de maak. USB kon dus verplicht gesteld worden. Microsoft was er klaar voor. Maar met OpenGL ondersteuning hadden ze minder haast.



Randapparaten

> Top <

Randapparaten doen iets met gegevens. Een modem converteert gegevens voor vervoer over een seriële lijn en een videokaart zet bitmap arrays in videobeelden om. Om die gegevens te kunnen benaderen maken de adapters van grotere of kleinere geheugenblokken gebruik.

Om geheugenconflicten te voorkomen mogen de door adapterkaarten gebruikte I/O, RAM en ROM adressen niet door de geheugenbeheerder voor gebruikersprogramma's beschikbaar worden gesteld en/of door andere kaarten worden benaderd.

De data- en programmageheugengebieden van het langzame ROM BIOS worden tegenwoordig vrijwel altijd door de geheugenbeheerder gebufferd (DOS, QEMM) en/of door de software routines van het besturingssysteem (API) vervangen. In de situatie van een virtuele DOS machine kunnen ze ook worden geëmuleerd.

Oude legacy apparaten en insteekkaarten maken van de DMA en IRQ voorzieningen van het moederbord gebruik.

Ook bij deze voorzieningen kunnen conflicten optreden. De DMA kanalen van het moederbord zijn schaars en niet deelbaar. De IRQ kanalen van legacy apparaten als de systeemklok, de diskette-controller en het PS/2 toetsenbord zijn niet deelbaar. Ze moeten volgens de ISA standaard "exclusief" worden gebruikt. Voor de overige op het moederbord aangesloten randapparaten blijven er dan nog maar weinig bronnen over.

Er zijn meerdere oplossingen voor dit probleem:

Het Universele Seriële Bus systeem (1977) is vanwege zijn uitbreidbaarheid en Plug and Play karakter een bijzonder gebruikersvriendelijk systeem. Het USB systeem heeft een hub netwerkstructuur, waarbij USB apparaten op ieder moment online en offline kunnen gaan. Via de USB roothub kunnen 127 "hot-pluggable" USB apparaten en USB expansiehubs aangesloten worden. De communicatie van de op de roothub of expansie-hubs aangesloten USB apparaten (max 127) verloopt via frames. De met de PCI bus verbonden roothub heeft weliswaar een IRQ niveau en geheugenadres nodig, maar binnen het USB systeem zelf verloopt de communicatie met de USB apparaten via frames. USB is daarmee niet zo snel als PCI, maar wel vele malen sneller dan een gewone seriële of parallelle poort, waar slechts een serieel apparaat op aan te sluiten is.



De OS/2 stuurbestanden

> Top <

Sinds versie 2.0 is OS/2 32 bits. Maar niet volledig. De meest basale stuurbestanden zijn nog steeds 16 bits. Het gaat vooral om de stuurbestanden waarmee de randapparaten aangestuurd worden.

OS/2 kent drie soorten stuurbestanden: fysieke stuurbestanden, virtuele DOS stuurbestanden en Presentatie Manager stuurbestanden. Ze regelen op verschillende niveaus de in- en uitvoer (Input/Output, I/O) naar perifere apparaten. Als een apparaat het onder OS/2 niet doet, ligt dat meestal aan het ontbreken van een passend fysiek stuurbestand (PDD).

Physical Device Drivers (PDD)

> Top <

Fysieke stuurbestanden (physical device drivers) zorgen ervoor dat de kernel de op de systeembus aangesloten randapparaten (devices) kan bedienen: vaste en verwisselbare schijven, video, de muis en het toetsenbord, de parallelle en seriële poorten.

Hoe gaan stuurbestanden te werk? Het is moeilijk voor te stellen omdat ze op grens tussen de hardware en software werken. Maar in de praktijk zorgen stuurbestanden ervoor dat de programmeerbare hardware controllers van de perifere apparaten met de hoofdprocessor kunnen praten. Die hoofdprocessor wordt weer door de kernel bestuurd, maar u hebt daar indirect zeggenschap over via uw programma's.

processor

geheugen

systeembus

hardware controller

hardware internals

registerinhoud

kernel en stuurbestand

dma transport

registerinhoud

apparaatacties

Ieder randapparaat heeft een op de systeembus aangesloten controller. Het is het bedieningspaneel van het apparaat. Hardware controllers bevatten hun eigen microprocessor met door de hoofdprocessor te beschrijven registers, buffergeheugen en poorten naar het geheugen. De hardware controller wordt door de hoofdprocessor bediend door zijn registers te beschrijven. Het stuurbestand helpt de kernel hierbij, door de vertaling naar de machinetaal van de hardware controller voor zijn rekening te nemen. Hiertoe vormt het stuurbestand een voor de kernel herkenbare virtuele (softwarematige) interface naar het apparaat. Zou dit niet gebeuren, dan zou de kernel voor ieder apparaat opnieuw moeten worden geschreven.

De Physical Device Driver (PDD) stuurbestanden zijn in de regel in 16 bits assembler of c geschreven: OS/2 v. 1 was 16 bits. Ook de Installable File System (IFS) stuurbestanden van de intern 32 bits resp. 64 bits werkende bestandssystemen HPFS (OS/2 1.2) en JFS (OS/2 4.5, eCS) zijn 16 bits. Maar de 32 bits OS/2 kernel heeft een snelle (lees: ring 2) interface voor 16 bits fysieke stuurbestanden. Ze zijn er in twee soorten: block device drivers en character device drivers.

De term character device drivers stamt uit het UNIX terminaltijdperk waarin de op de minicomputer aangesloten terminals x bits tekens (characters) achter elkaar ontvingen. De teksten op het beeldscherm werden net als op een typemachine (toen: "teletyper") sequentieel van links naar rechts geschreven. En dat ging via een seriële poortverbinding die het ene na het andere teken doorgaf.

Maar een "teken" is in programmeertaal nog altijd een "word" dat uit meerdere bits (7, 8, 16, 32) zal bestaan (zie: Codetabellen en bijzondere tekens). In het grafische tijdperk lopen deze tekens als reusachtige 16 of 32 bits bitmapfonts serieel door uw grafische presentatie machine. Het verschil tussen een block en een character device is dan ook niet dat de datastromen al dan niet in blokken van bits en bytes verstuurd worden (dat doen ze beide), maar de manier waarop dat gebeurt. Een block device driver kan gegevens actief en willekeurig opvragen (random access), maar voor character device drivers geldt: eerst komt het een en dan komt het andere. Voor geluid en video geldt dat ze alleen maar werken via streaming character devices.

Block Device Drivers kunnen willekeurig blokken van data op een partitie aanspreken. Zo kunnen de IDE drivers ieder gewenste sector van een partitie opvragen en beschrijven. Met het "scatter gather" mechanisme gebeurt dat met één hardwareinterrupt over meerdere locaties tegelijkertijd. De via het IDE stuurbestand bestuurde IDE controller voert de complexe kernelopdracht gewoon uit. Op een roterende vaste schijf (dat zijn nu eenmaal de hardware internals) zullen die gegevens weliswaar sequentieel (een voor een) door de schijfkop worden ingelezen, maar omdat de schijf supersnel draait en de IDE controller er tussenzit, merkt het het willekeurige blokken opvragende stuurbestand daar weinig van. Die wacht gewoon op de interrupt die aangeeft dat de opgevraagde gegevens beschikbaar zijn. De door de kernel opgevraagde gegevensblokken worden daarna stuk voor stuk aan de IDE driver gepresenteerd. Op die manier krijgt het met de OS kernel verbonden IDE stuurbestand de door hem gevraagde sectoren van de vaste schijf te zien. Natuurlijk beschikken block device drivers over passende geheugenbuffers, maar als het puntje bij paaltje komt is de uitvoering van de opdracht door het langzame geheugen wel degelijk sequentieel.

De vaste schijf is dus een uitzondering. Want vrijwel alle andere I/O stuurbestanden en het ROM werken sequentieel: Ze versturen hun bitmap, geluids en tekenstromen in elkaar opvolgende datablokken naar randapparaten als beeldschermen, audio en printers. Het traagste character device is de 8 bits seriële poort. Hij verstuurt een 7 of 8 bits word per buscyclus. De parallelle poorten zijn wat sneller omdat ze de opeenvolgende gegevens parallel kunnen versturen. De grafische en de stuurbestanden voor het geluid zijn de snelste.

Virtual Device Drivers (VDD)

> Top <

Met de 32 bits OS/2 versie 2 werden de 32 bits virtuele stuurbestanden voor DOS en Win-OS/2 ingevoerd. Onder het voor de 286 processor geschreven OS/2 1.x konden DOS en OS/2 nog van dezelfde stuurbestanden gebruik maken. Dit was onder OS/2 weliswaar intelligenter uitgevoerd dan onder het hybride 8 en 16 bits DOS/Windows systeem, maar de volgens Bill Gates "hersenloze" 286 processor had beslist zijn nadelen. Met de uitmuntende DOS emulatie van de 32 bits Intel 386 processor (virtual 8086 mode) konden de 8 en 16 bits Win(DO)w(S) applicaties definitief van de in 32 bits protected mode lopende OS/2 applicaties worden gescheiden.

De DOS emulatie werd via supersnelle (ring 0, kernelmodus) 32 bits virtuele stuurbestanden geregeld, terwijl de snelle hardware van de 386 processor de vertaalslag naar het 8 bits DOS leverde. Hiertoe schakelde de Intel 386 processor op gezette tijden naar de virtual 8086 modus over (met PROTECTONLY=NO). Op snelle systemen werd deze 32 bits DOS emulatie van OS/2 een snellere DOS dan DOS. Maar OS/2's multitasking bleef DOS de baas, omdat alle DOS en Win-OS/2 sessies nog steeds pre-emptief werden onderbroken.

De voor het 8 en 16 bits DOS en 16 bits Windows benodigde stuurbestanden bevinden zich allen in \OS2\MDOS. Ze worden geladen via de CONFIG.SYS. Als u geen DOS of 16 bits Win-OS/2 ondersteuning nodig heeft REMt u ze stuk voor stuk uit en verandert u de instelling PROTECTONLY=NO in PROTECTONLY=YES. OS/2 2.x loopt dan alleen nog in de 32 bits protected mode van de Intel 386 processor.

Presentation Drivers (PD)

> Top <

Het 32 bits OS/2 2.x leverde ook een nieuwe interface voor de 16 en 32 bits OS/2 Presentation Manager programma's. PM programma's moeten immers toegang tot het beeldscherm, printers, toetsenbord en de muis hebben, maar ieder programma denkt daar weer anders over. Dat maakt een PM sessie uniek. Maar als u van het ene naar het ander PM programma overschakelt wordt een andere beeldschermopbouw en muispositie actief. Wie is de ware?

Het antwoord van OS/2 Presentation Manager is: Niemand heeft het laatste woord.

Weliswaar kan alleen het op de voorgrond actieve PM venster de muispositie en de invoer van het toetsenbord ontvangen (input), en krijgt het het bijbehorende recht om de grafische user interface Presentation Manager passend te beschrijven (zijn output); in een multitasking omgeving doen ook de op de achtergrond lopende PM programma's nog volop mee. Ze moeten dus ook over hun (virtuele) uitvoerapparaten kunnen beschikken. Zodat hun beeldscherm in de juiste stand staat als u hun venster activeert.

Vandaar dat ieder PM programma zijn eigen virtuele I/O uitvoerapparaten voorgeschoteld krijgt. Deze nep I/O apparaten zijn net als die van DOS virtueel, in die zin dat ze door de hogere 32 bits stuurbestanden van Presentation Manager gepresenteerd worden. De 32 bits grafische engine van Presentation Manager gebruikt hiervoor 16 en 32 bits Dynamic Link Bibliotheken bestande stuurbestanden (Presentation Driver, PD). De 16 bitters onder hen kregen Input Output Privileges voor het beeldscherm, printers en plotters (Zie: Privilege levels). Hiermee kunnen ze het actuele beeldscherm ook direct beschrijven (Dive.dll). Zie: OS/2 Presentation Drivers in a Nutshell

I/O poorten

> Top <

Onder OS/2 hoeft u zich hier niet druk over te maken. De 64k aan Input/Output adressen (poorten) van de IBM PC worden vrijwel altijd correct door de resource manager verdeeld. Alleen aan de seriële COM(municatie) poorten moet u onder OS/2 soms aandacht besteden. Bijvoorbeeld als het een intern ISA modem op COM3 of 4 installeert. Soms moet u dan COM1 of COM2 op het moederbord uitschakelen. Maar dit is meer vanwege een IRQ probleem. Voor meer informatie: type "help com.sys" op de prompt.

Adapter RAM en ROM

> Top <

Adapter ROM bevat programmeercode. Adapter RAM bevat data. Zo bevat een VGA kaart code in het ROM om tekens op het scherm te schrijven en adapter (VIDEO)RAM om de pixels in te plaatsen. Opvallend is dat de huidige SuperVGA kaarten veel meer videogeheugen (megabytes) hebben dan er in de IBM PC voor gereserveerd is (64 kB). Via paginering (vergelijk het met het doorbladeren van een boek) en lokale bus technieken komen ze beetje bij beetje in het voor de processor zichtbare deel van het geheugen terecht. Maar dat is niet uw probleem, maar het probleem van de video hardware makers en hun drivers. Die laatsten moeten er onder OS/2 wel zijn. Want SVGA is geen standaard meer. Iedere fabrikant geeft er zijn eigen draai aan. Vandaar dat er geen universele SVGA drivers voor OS/2 zijn (Zie: Videokaarten).

De belangrijkste BIOS ROM en RAM geheugengebieden zijn:

Begin (hex)

Eind (hex)

ROM/RAM

Opmerking

A0000h

AFFFFh

VGA Grafisch Video RAM

64 kB RAM voor 320x200 pixels in 256 kleuren.

B0000h

BFFFFh

VGA Video RAM (tekstmodus)

De eerste 32 kB zijn voor monochrome tekst en de tweede 32 kB voor kleuren.

C0000h

C7FFFh

VGA Video BIOS ROM


C8000h

CBFFFh

BIOS ROM voor de IDE vaste schijf

Soms een SCSI adapter default.

D0000

D7FFFh

SCSI adapter

Soms op C8000-CBFFFh (IDE ROM)

?

?

Netwerkkaart Boot ROM


E0000h

EFFFFh

Systeem BIOS PnP informatie

Wijzigingen in het PnP BIOS worden in het Extended System Configuration Data (ESCD) gebied van het CMOS ROM opgeslagen. Windows kan de PnP BIOS instellingen automatisch veranderen indien u de BIOS instelling PnP OS op YES heeft staan. Advies: Laat het liever aan het BIOS over en zet PnP OS op NO.

?

?

USB EHCI device driver


F0000h

FFFFFh

Systeem BIOS ROM


Onder OS/2 vormt de locatie van het adapter ROM eigenlijk zelden een probleem. Alleen in een gemengd SCSI IDE systeem kunt u bootproblemen verwachten als de IDE schijf en de SCSI adapter dezelfde ROM adressen delen.

DOS programma's profiteren onder DOS van schaduwgeheugen: hierbij worden de ROM routines op de adapters van het trage ROM naar de corresponderende adressen (640-1024 k) in het sneller te benaderen werkgeheugen geplaatst. Maar OS/2 verzorgt voor DOS programma's zelf de BIOS functies. Door via de BIOS SETUP het BIOS ROM naar het schaduwgeheugen te verplaatsen versnelt u DOS onder OS/2 dus niet. Wel ziet OS/2 dan minder geheugen ziet, zodat u onder OS/2 beter van dit schaduwgeheugen kunt afzien.

Interrupts

> Top <

Op de 8-bits IBM PC bus konden acht 8-bits randapparaten een interrupt request (IRQ) signaal afgeven (IRQ-0 t/m 7). Ze werden door de Intel 8259 Interrupt Controller opgevangen en aan de processor voorgeleid. Hierbij zorgde Intels Interrupt Controller (PIC_0) ervoor dat de interrupts met het laagste nummer als eerste aan bod kwamen. De systeemklok en het toetsenbord (niet vanwege uw typesnelheid, maar vanwege de Ctrl-C en Break voor calamiteiten) kregen de hoogste prioriteit.

De IBM AT uit 1984 bezat een tweede Intel 8259 Interrupt Controller (PIC_1) voor de interrupt kanalen 8 tot en met 15. Deze werd echter niet direct op de 16-bits ISA bus aangesloten, maar ter wille van de compatibiliteit met 8 bits hard- en software achter de eerste Interrupt Controller (PIC_0) gezet.

Hiertoe werd IRQ-2 van PIC_0 met IRQ-9 van PIC_1 doorverbonden (cascade). Als de met IRQ-14 verbonden schijfcontroller een signaal afgaf, werd naast IRQ 14 ook IRQ-9 en dus IRQ-2 geactiveerd. Het AT BIOS was echter zo geprogrammeerd dat het bij een IRQ-2 signaal naar signalen op de tweede interrupt controller zocht.

IRQ 2 is daarom op de AT niet te gebruiken. Als een apparaat IRQ-2 rechtstreeks zou benaderen gebruikt het in werkelijkheid IRQ-9 en veroorzaakt daarmee veel ruis (niet aanbevolen!). Het directe gebruik van IRQ-9 is vaak wel mogelijk op de PCI bus.

In de tabel hieronder van interrupts staan de IRQ's onder elkaar, maar eigenlijk zou je IRQ's 8-15 (paars) achter IRQ-2 (paars) moeten zetten. Ik heb wat gangbare I/O adressen erbij gezet, maar neem die met een korreltje zout.

IRQ

Device

Bits

Gebruik (apparaatnaam)

I/O adres

Opmerking

SM1


-

System/Power Management IRQ



NMI


-

Parity Error of I/O Channel check


Niet maskeerbare interrrupt

0


-

klokfrequentie generator (TIMER_CH_0)


Niet te gebruiken. Zit ook niet op de bus.

1

CON

-

Toetsenbord controller (KBD-0)

060- 067

Onder OS/2 wordt IRQ-1 exclusief gebruikt door de toetsenbord controller.

2

PIC

-

Tweede interrupt controller (PIC_1)


Onder OS/2 wordt IRQ-2 exclusief gebruikt door de tweede interrupt controller.Op de XT vrij. Doorschakeling via IRQ-9 naar IRQ-8-15 op de AT en ISA bus. De voor IRQ-2 ingestelde hardware zal dan van IRQ-9 gebruik maken.

3

COM2

8,16

Tweede seriële poort (SERIAL_1, UART1)

2F8- 2FF

COM2 of COM4 (maar niet beide), vaak vrij (modem of anders).

4

COM1

8,16

Eerste seriële poort (SERIAL_0, UART1)

3F8- 3FF

COM1 of COM3 (maar niet beide), vaak vrij (modem of anders)

5

LPT2

8,16

Tweede parallelle poort (LPT_2)

278- 27A

Op de XT de vaste schijf controller, nu (met de AT IDE controllers op IRQ 14 en 15) vaak vrij voor de geluidskaart.

6


8,16

Diskette controller (FLOPPY_0)

3F0- 3F7

Beter niet gebruiken op een PC met diskettestation.

7

LPT1

8,16

Eerste parallelle poort (LPT_0)

378- 37A

LPT staat voor Line printer. Vrij tenzij BASEDEV=PRINT01.SYS /IRQ.

8

RTC

8,16

Real Time systeemklok (RTC)


IRQ-8 wordt exclusief gebruikt door de systeemklok. Zit niet op de bus.

9


8,16

Cascade naar IRQ-2


Beter niet gebruiken op de AT, op de PCI bus vrij. Wordt onder eCS door ACPI gebruikt.

10


16



Meestal vrij

11


16



Meestal vrij (oa SCSI, USB)

12


16

PS/2 muispoort van moederbord (AUX_0)


Onder OS/2 is IRQ-12 exclusief gereserveerd voor de PS/2 muis (Auxilary device). Als u een seriële of USB muis gebruikt kunt u soms een BIOS instelling PS/2 Mouse op Disabled zetten en krijgt u IRQ 12 vrij.

13


16

Coprocessor


Niet te gebruiken. Zit niet op de bus.

14


16

Eerste IDE controller (IDE_0)

1F0- 1F8

IRQ-14 is gereserveerd voor de eerste IDE controller, maar kan beschikbaar zijn op SCSI systemen.

15


16

Tweede IDE controller (IDE_1)

170- 178

Onder OS/2 wordt IRQ-15 exclusief gebruikt door de tweede IDE controller (CD-ROM of extra vaste schijf). Kan vrij zijn.

> 15




-

Moderne ACPI moederborden kunnen meer dan 15 IRQ nummers toebedelen. Deze IRQ's worden in de Advanced Programmable Interrupt Controller (APIC) door het PnP OS (Windows 98 en later) ingesteld. Tot voor kort konden de OS/2 stuurbestanden hier niets mee. Om die reden zet u in het BIOS de APIC Mode op Disabled/Off/No voor klassiek OS/2. Voor eComStation met ACPI ondersteuning geldt een ander verhaal. Zie: ACPI Project voor eComStation .

De IBM AT (ISA) bus beschikt formeel over zestien IRQ signalen voor hardware controllers en chips. Maar omdat veel IRQ's al exclusief door legacy apparaten worden gebruikt, blijven er nog maar weinig interrupts voor ISA en PCI randapparaten (5, 7, 9, 10, 11, en 15) over, tenzij u niet gebruikte legacy apparaten in het BIOS kunt uitschakelen.

Goede kandidaten zijn:

Vanwege hun verbinding met IRQ-2 hebben de hardware interrupts 9 t/m 15 een hogere prioriteit dan de IRQ's 3-7. Omdat de IRQ's 3 en 5 in principe trager zijn dan de IRQ's 9-15 zouden mijn televisie kaart (IRQ 3) en geluidskaart (IRQ 5) kunnen gaan haperen bij een druk interrupt verkeer hogerop (USB, IDE schijven en de hier niet afgebeelde netwerkkaart op IRQ 11), maar in de praktijk heb ik dat nog niet gemerkt.


[F:\]rmview /irq
RMVIEW: Physical view
  IRQ Level =  0  PCI Pin = NONE  Flg = EXCLUSIVE    TIMER_CH_0
  IRQ Level =  1  PCI Pin = NONE  Flg = EXCLUSIVE    KBD_0 Keyboard Controller
  IRQ Level =  2  PCI Pin = NONE  Flg = EXCLUSIVE    PIC_1
  IRQ Level =  3  PCI Pin = A     Flg = SHARED       MPEG_0 Hauppauge WinTV PVR 350
  IRQ Level =  5  PCI Pin = C     Flg = SHARED       EHCI Compliant USB Host Controller
  IRQ Level =  5  PCI Pin = NONE  Flg = SHARED       Creative Labs SoundBlaster Live!
  IRQ Level =  6  PCI Pin = NONE  Flg = MULTIPLEXED  FLOPPY_0 Floppy Controller
  IRQ Level =  8  PCI Pin = NONE  Flg = EXCLUSIVE    RTC
  IRQ Level = 10  PCI Pin = B     Flg = SHARED       UHCI Compliant USB Host Controller
  IRQ Level = 10  PCI Pin = B     Flg = SHARED       UHCI Compliant USB Host Controller
  IRQ Level = 11  PCI Pin = A     Flg = SHARED       UHCI Compliant USB Host Controller
  IRQ Level = 11  PCI Pin = A     Flg = SHARED       UHCI Compliant USB Host Controller
  IRQ Level = 12  PCI Pin = NONE  Flg = EXCLUSIVE    AUX_0 PS/2 Auxiliary Device Controller
  IRQ Level = 14  PCI Pin = NONE  Flg = EXCLUSIVE    IDE_0 xATA Controller
  IRQ Level = 15  PCI Pin = NONE  Flg = EXCLUSIVE    IDE_1 xATA Controller

De hardwareconfiguratie met RMView bekijken

> Top <



Syntax: RMVIEW [switch]
   /P     Display Physical view (default)
   /P1            Physical view with planar chipset
   /D     Display Driver view
   /DA            Driver view - with snoopers
   /D1            Driver view with planar chipset
   /DC    Display Detected view - Current boot tree only
   /DP    Display Detected view - Previous boot tree only
   /L     Display Logical view
      /R       Display raw data. Use with P L D switch
   /IRQ   Display claimed Interrupt levels (IRQ)
   /IO    Display claimed IO ports above 100 Hex
   /IOA   Display all claimed IO ports
   /DMA   Display claimed DMA channels
   /MEM   Display claimed Memory regions
      /SO     Sort IO, IOA, IRQ, DMA, MEM by owner
   /HW    Display Hardware Tree
   /?     Help



Met rmview /irq kunt u de IRQs opvragen (met rmview /IO de gebruikte poortadressen). RM staat voor resource manager (resource.sys). Voor opties zie rmview /?.

[H:\]rmview /irq
RMVIEW: Physical view<>
IRQ Level = 0 PCI Pin = NONE Flg = EXCLUSIVE TIMER_CH_0<>
IRQ Level = 1 PCI Pin = NONE Flg = EXCLUSIVE KBD_0 Keyboard Controller<>
IRQ Level = 2 PCI Pin = NONE Flg = EXCLUSIVE PIC_1<>
IRQ Level = 3 PCI Pin = NONE Flg = MULTIPLEXED SERIAL_1 Serial Controller<>
IRQ Level = 4 PCI Pin = NONE Flg = MULTIPLEXED SERIAL_0 Serial Controller<>
IRQ Level = 6 PCI Pin = NONE Flg = MULTIPLEXED FLOPPY_0 Floppy Controller<>
IRQ Level = 7 PCI Pin = NONE Flg = MULTIPLEXED Pro Audio 16 Sound Card<>
IRQ Level = 8 PCI Pin = NONE Flg = EXCLUSIVE RTC<>
IRQ Level = 12 PCI Pin = NONE Flg = EXCLUSIVE AUX_0 PS/2 Auxiliary Device Controller<>
IRQ Level = 14 PCI Pin = NONE Flg = MULTIPLEXED IDE_0 (E)IDE Controller<>
IRQ Level = 15 PCI Pin = NONE Flg = MULTIPLEXED IDE_1 (E)IDE Controller

Op mijn huidige PCI/USB/AGP systeem wordt IRQ-9 door de USB controller gebruikt.

[F:\DESKTOP]rmview /irq
RMVIEW: Physical view
  IRQ Level =  0  PCI Pin = NONE  Flg = EXCLUSIVE    TIMER_CH_0
  IRQ Level =  1  PCI Pin = NONE  Flg = EXCLUSIVE    KBD_0 Keyboard Controller
  IRQ Level =  2  PCI Pin = NONE  Flg = EXCLUSIVE    PIC_1
  IRQ Level =  5  PCI Pin = A     Flg = SHARED       ETHERNET_0 Fast Ethernet Adapter
  IRQ Level =  6  PCI Pin = NONE  Flg = MULTIPLEXED  FLOPPY_0 Floppy Controller
  IRQ Level =  8  PCI Pin = NONE  Flg = EXCLUSIVE    RTC
  IRQ Level =  9  PCI Pin = D     Flg = SHARED       UHCI Compliant USB Host Controller
  IRQ Level = 10  PCI Pin = C     Flg = SHARED       EHCI Compliant USB Host Controller
  IRQ Level = 11  PCI Pin = NONE  Flg = SHARED       Creative Labs SoundBlaster Live!
  IRQ Level = 12  PCI Pin = NONE  Flg = EXCLUSIVE    AUX_0 PS/2 Auxiliary Device Controller
  IRQ Level = 14  PCI Pin = NONE  Flg = EXCLUSIVE    IDE_0 (E)IDE Controller
  IRQ Level = 15  PCI Pin = NONE  Flg = EXCLUSIVE    IDE_1 (E)IDE Controller

IRQ-7 is vrij omdat BASEDEV=PRINT01.SYS zonder /IRQ optie gegeven werd. Door de printerpoort te laten pollen, kon ik op mijn oude systeem de ISA PAS geluidskaart op IRQ-7 zetten. OS/2's resource manager weet dit wel, maar het PnP BIOS weer niet. Daarvoor zou ik de IRQ7 voor printerpoort LPT1 in het BIOS moeten vrijgeven. Dan pas kan het PnP BIOS hier wat mee. U zo'n verandering pas onder OS/2 na een nieuwe hardwaredetectie (De Alt-F1 methode).

Maar Resource Manager geeft zelden het hele verhaal. Zo steken er twee geluidskaarten, een TV tuner en twee netwerkkaarten in de PCI sloten. Ik heb maar voor een geluidskaart een driver geïnstalleerd (de SBLive! geluidskaart biedt mij veel meer dan de in het moederbord geïntegreerde C-Media 8738 chip), maar er zijn wel twee netwerkkaarten actief.

De door het PnN BIOS voorgestelde IRQ verdeling over de PCI bus is met een PCI (en AGP) bus sniffer te zien.

ROM PCI IRQ routing table Windows 9x Compatibility Tests....
 ROM IRQ routing table found at F000h:1D90h
 Table Version 1.0 - OK
 Table size 208 bytes - OK
 Table Checksum 34h - OK
 IRQ's dedicated to PCI : None
 The ROM PCI IRQ routing table appears to be OK.
IRQ Summary: IRQs 5,9,10,11,14,15 are used by PCI devices
Shared IRQs: IRQ 9 is shared by 5 PCI Devices
             IRQ 10 is shared by 3 PCI Devices
             IRQ 11 is shared by 3 PCI Devices

Maar RMVIEW /HW geeft een deel van de door de OS/2 stuurbestanden geladen hardware aan.

[F:\DESKTOP]rmview /hw
RMVIEW: Physical view
PDEV Physical Device Tree
  CPU_0 686
    Local_Bus
      PIC_0
      PIC_1
      DMA_CTLR_0
      DMA_CTLR_1
      VGA
      TIMER
      RTC
      BIOS_ROM
      KBD_0 Keyboard Controller
      AUX_0 PS/2 Auxiliary Device Controller
    ISA_Bus
      PARALLEL_0 Parallel Port Adapter
      FLOPPY_0 Floppy Controller
      UART1 - a part of the SIO2K set of drivers
      UART2 - a part of the SIO2K set of drivers
      UART3 - a part of the SIO2K set of drivers
      UART4 - a part of the SIO2K set of drivers
    PCI_Bus_0
      EHCI Compliant USB Host Controller
      UHCI Compliant USB Host Controller
      USB Hub Controller
      USB HID Class driver
      IDE_0 (E)IDE Controller
      IDE_1 (E)IDE Controller
      USB Mass Storage Device Class driver
      USB CDROM Device Class driver
      GPhoto2/2 USB Driver
      USB Keyboard Client
      USB Mouse Driver
      USB Printer Driver
      USB Resource Manager
      ETHERNET_0 Fast Ethernet Adapter
      SoundBlaster Live!

Wat valt hier op?

Om te beginnen is er een verdeling tussen op de Local Bus, op de ISA Bus en op de PCI Bus aangesloten apparaten. Nu bezit ik twee PCI bussen, maar Resource Manager noemt er maar een. Ook wordt de tweede netwerkaart niet genoemd. Evenals de BT videokaart. Hier is de output van de PCI bus sniffer) die naar op de PCI bus aangesloten PCI apparaten zoekt.

Vendor 109Eh Brooktree Corp
Device 036Eh Bt878 Mediastream Controller
Command 0006h (Memory Access, BusMaster)
Status 0290h (Has Capabilities List, Supports Back-To-Back Trans.,
  Medium Timing)
Revision 11h, Header Type 80h, Bus Latency 20h
Self test 00h (Self test not supported)
PCI Class Multimedia, type Video
Subsystem ID 13EB0070h WinTV PAL B-G
Subsystem Vendor 0070h Hauppauge Computer Works Inc
Address 0 is a Memory Address (anywhere in 0-4Gb, Prefetchable) : F5000000h
System IRQ 7, INT# A
New Capabilities List Present:
  Vital Product Data Capability
  Power Management Capability
   Supports power state D1
   Current Power State : D0 (Device operational, no power saving)

De bussnuiver vindt ook PnP apparaten waarvan nog geen stuurbestand is geactiveerd. Vandaar dat hij ingezet kan worden om bijv. drivers voor stuurbestanden te installeren (o.a. bij de installatie van het eCS netwerk).

Het stuurbestand voor de BookTree chip meldt zich niet bij resource manager aan. Zie de output van RMVIEW /D | more:

Driver: F:\MMOS2\WCAST.SYS  -  Non-Resource manager aware device driver 

U ziet hen dus niet in de System Setup /Hardware Manager (is RMVIEW /HW).

Maar RMVIEW /DC (Display Detected view - Current boot tree only) ziet hem wel:

  Detected Hardware Function: PCI Device 04-00-00 
  PCI Device ID: 109E036E
  IRQ Level =  7  PCI Pin = A     Flg = SHARED       
  Memory Base = 0XF5000000  Size = 00001000  Flg =  EXCLUSIVE   

Hier heb ik in het BIOS LPT1 van IRQ 5 gebruik laten maken zodat IRQ 7 vrij kwam en opnieuw de hardware detectie laten doen (Alt-F1, F5).

NB het PCI Device ID 109E036E bestaat uit het Vendor 109Eh van Brooktree Corp en het Device ID 036Eh van de Bt878 Mediastream Controller.

RMVIEW bij USB apparaten

> Top <

USB apparaten worden tot de PCI groep gerekend. Maar wat u hier ziet is niet de aanwezigheid van het USB apparaat, maar van het stuurbestand.



Anders dan in en klassieke ISA configuratie zijn de eerste en tweede interrupt controllers op de Local_Bus aangesloten.

PCI randapparaten kunnen IRQ's delen. In het overzicht van RMVIEW verschijnen gedeelde IRQ's als MULTIPLEXED (ISA bus) of SHARED (PCI bus). Zo kunt u meer PCI apparaten aansluiten dan er IRQs voor hen beschikbaar zijn. Of apparaten gebruiken die meerdere IRQs nodig hebben. Maar niet ieder randapparaat (en stuurbestand) is blij met zo'n gedeelde IRQ. Dan kan het de moeite waard zijn om de onwillige PCI kaart in een ander slot te zetten, om zo de verdeling van de IRQs te beïnvloeden.

ISA randapparaten kunnen geen interrupts delen. De Pro Audio Spectrum kaart op IRQ 7 is niet verenigbaar met BASEDEV=PRINT01.SYS met de optie /IRQ. OS/2 zal zonder die optie de eerste parallelle poort pollen naar activiteit van de printer. Overigens levert dat onder OS/2 geen merkbare systeemvertraging op.

Ook USB gebruikt een IRQ. U kunt de USB ondersteuning in het BIOS uitzetten, als u geen USB gebruikt, waardoor er weer een IRQ vrijkomt. Hetzelfde geldt voor de door het BIOS toegewezen IRQs voor niet gebruikte seriële of parallelle communicatiepoorten. Onder OS/2 mogen programma's de systeembronnen natuurlijk niet rechtstreeks aanspreken. Onder DOS (en Windows) krijgen programma's desgewenst directe toegang tot de IRQ, DMA kanalen en geheugenpoorten van het moederbord. Maar onder OS/2, Linux en Windows NT zal het besturingssysteem interveniëren. Een Windows tape backup programma dat de hardware rechtstreeks aanspreekt zal onder Windows NT niet lopen. En evenmin (indien 16 bits) onder Win-OS/2.

Een communicatieprogramma dat onder OS/2 een seriële communicatiepoort volgens de regels aanspreekt krijgt te maken met het virtuele seriële poort stuurbestand COM.SYS. Het stuurbestand vraagt de bronnen op bij OS/2's Resource Manager. Die deelt ze uit.

Direct Memory Access

> Top <

De eerste IBM PC bus beschikte over vier kanalen voor directe geheugentoegang (0-3). Ze waren voor bustransport van data tussen de trage randapparaten en het geheugen bedoeld. Transport tussen verschillende apparaten vond via geheugenbuffers plaats.

Normaal gesproken regelde de processor het vervoer van data over de systeembus, maar de processor kon moeilijk op trage diskettes wachten. Om de processortijd beter te benutten delegeerde de processor de standaardhandelingen naar de DMA controller op het moederbord. Via controller registers gaf de processor zijn opdrachten door en als de DMA controller klaar was zond hij een interrupt naar de processor.

De diskette-controller maakt nog steeds gebruik van DMA kanaal 2.

Op de XT PC zijn maar twee 8 bits DMA kanalen beschikbaar: 1 en 3. DMA kanaal 0 werd gebruikt om dynamische geheugenchips te verversen. DMA kanaal 1 werd door de vaste schijf gebruikt en de diskette controller gebruikt DMA kanaal 2.

De ISA bus beschikt over een tweede DMA controller voor de 16 bits DMA kanalen 5-7. Die kunt u voor 16 bits ISA insteekkaarten gebruiken. Ze werden via DMA kanaal 4 doorgeschakeld, die daarom niet beschikbaar is.

De vaste schijf gebruikte ooit DMA kanaal 7. Maar op moderne systemen zijn PIO modes en busmaster DMA vele malen sneller dan het DMA van de XT en AT/ISA moederbord controllers. De reden is dat de DMA controller van de ISA bus slechts op 4,77 MHZ tikt om de oude legacy apparatuur niet op te blazen. Ook tegenwoordig komt moederbord DMA niet boven de 8 MHz uit. Om die reden gebruiken 32 bits EISA, MCA en PCI apparaten hun eigen controllers (Busmaster DMA). Ze lopen op de volle bussnelheid (33, 66, 100 MHz of meer). Bovendien zijn ze in staat om buiten het hoofdgeheugen om rechtstreeks van PCI apparaat naar PCI apparaat te schrijven.

DMA kanaal

Toepassing

0 (8-bit)

Beschikbaar op AT (geluidskaart). Op de XT voor het verversen van dynamisch RAM gereserveerd.

1 (8-bit)

Beschikbaar (geluidskaart, netwerkkaart)

2 (8-bit)

Exclusief gereserveerd voor diskette controller.

3 (8-bit)

Beschikbaar (geluidskaart, printerpoort- ECP of EPP modus)

4 (8-bit, 16-bit)

Exclusief gereserveerd (cascade channel), 16 bits controller voor directe geheugentoegang

5 (16-bit)

Beschikbaar (ISA bus)

6 (16-bit)

Beschikbaar (ISA bus)

7 (16-bit)

Beschikbaar (ISA bus/ 6384 P60/D Hard Disk)


Hardwareherkenning

> Top <

De Plug en Play standaard stamt uit 1994. Windows 95 was het eerste besturingssysteem dat officieel PnP apparaten ondersteunde. Maar ook Warp 4 (1996) heeft een beperkte PnP detectie (Zie F5 - Automatisch laten vaststellen welke apparatuur u hebt). Dit gebeurt door de PnP Device stuurbestand PNP.SYS tijdens het booten.

Ook Linux en BEOS doet aan apparatuurherkenning (autoprobe). Toch staan OS/2 en Linux niet bekend als PnP besturingssystemen.

Het programma R(esource)M(amager)View (Warp 3 en 4) laat onder de OS/2 prompt de resultaten van Warps apparatuurdetectie (Current Boot Detected view) zien:

RMVIEW /DC > C:\ADAPTER.LOG

RMVIEW /IO > C:\POORT.LOG

RMVIEW /IRQ > C:\IRQ.LOG

Een en ander is mooi grafisch weergegeven in Configuratie /Apparatuurbeheer, hier in Details view. Door op properties te klikken kunt u zien wie het "device" beheert (de kernel of een stuurbestand).


Zo gebruikt mijn modem via COM.SYS op COM2 (is SERIAL_1) IRQ 3 en het adres 02F8 en gebruikt de MVPRODD.SYS stuurbestand van de Pro Audio Spectrum kaart IRQ 7 (IRQ 5 gaf een enorme herrie).

Als OS/2 blijft steken in de installatie - bijv. bij een bepaald snoop bestand (*.snp), kunt u met Alt-F1 de apparatuurdetectie uitzetten.

Pnp of jumpers

> Top <

Maar de PnP van Windows 9x gaat veel verder dan PnP apparatuurdetectie alleen. De Plug and Play van Windows wil zelf de verdeling van de IRQ's voor u oplossen. En daar ontstaan problemen die inmiddels bekend staan als plug and pray.

Problemen zullen zich vooral voordoen als u niet PnP besturingssystemen (DOS, NT, Linux, OS/2) op dezelfde computer installeert als Windows 9x. Waarom?

Bij een PnP PCI modem bijvoorbeeld, kan Windows 9x zelf bepalen welke IRQ's, poorten of geheugenadressen gebruikt mogen worden. De door Windows voorgestelde waarden worden vastgelegd in een niet-vluchtig geheugen in het BIOS (ESCD) dat een reboot overleeft. Windows verandert dus naar eigen inzicht de BIOS instellingen, maar geeft dat niet aan andere besturingssystemen door. Omdat voor OS/2 de IRQ, poort en het geheugenadres van modems en ISA PnP geluidskaarten vaak in de config.sys vermeld staan, zullen ze niet meer kloppen.

Voor DOS, Windows NT, OS/2 en Linux wordt daarom aangeraden om in het BIOS instellingen blok PNP and PCI Setup de vraag PnP OS installed op NO te zetten. De instelling YES geeft Windows de gelegenheid om de door het BIOS ingestelde IRQ instellingen naar eigen goeddunken te veranderen. Bij NO worden de IRQ's van het PCI randapparaten alleen door het BIOS ingesteld. Omdat het BIOS dit al doet voordat het besturingssysteem geladen is, zijn de instellingen voor ieder OS gelijk.

Daarnaast kan het wijs zijn de PnP van de randapparatuur proberen uit te schakelen door met switches vaste IRQ instellingen te kiezen die onder ieder OS hetzelfde zijn. Bij modems en geluidskaarten die ook onder Dos en Windows NT claimen te werken moet dit in principe instelbaar zijn. Jumperloze PCI modems zijn in de praktijk onbruikbaar (tenzij ze met een DOS utility worden geleverd om ze in te stellen). Andere PnP apparaten gebruiken altijd dezelfde instellingen (denk aan een VGA kaart). Hier slaat het PnP label meer op de apparatuurherkenning. Zoals eerder gezegd is daar niets mis mee.


Plug & Play en PCI apparaten


Plug and play

> Top <

Plug and Play (PnP) is een door Microsoft, Intel en Compaq bedachte standaard waarbij randapparaten hun voorkeursinstellingen aan het BIOS en het besturingssysteem kenbaar kunnen maken. Aan de hand van die informatie stelt de PCI controller de IRQ poorten, DMA kanalen, de I/O poorten en RAM of ROM geheugenadressen van de op de PCI bus aangesloten PNP PCI kaarten elektronisch in. Het moederbord, de randapparaten en het besturingssysteem moeten dit PnP mechanisme ondersteunen.

Vrijwel alle Peripheral Components Interconnect (PCI) en veel 16 bits Industrial Standard Architecture (ISA) adapters zijn Plug and Play randapparaten. OS/2 kan hier mee overweg. De PnP standaard stamt uit 1993 en Warps PnP.sys stuurbestand uit 1994. De bijbehorende BIOS instelling: Resources Controlled by: AUTO(ESCD) zet u dus aan.

Een zogenaamd PnP besturingssysteem (Windows) kan de door de PCI bus ingestelde waarden weer "verbeteren", maar een OS/2 gebruiker zet die BIOS optie liever uit: PnP OS (Plug and Play Aware OS) zet u dus op Disabled/Off/No. De reden is dat Windows bij de herverdeling van de BIOS hardware instellingen alleen met de belangen van Windows rekening houdt. Dat is gemakkelijk voor een Windows OEM leverancier, maar lastig voor u als u met OS/2 stuurbestanden wilt werken.

Bij de niet-PnP (legacy) ISA randapparatuur kunt u de adapterinformatie uit het handboek halen. Waar conflicten optreden moet u de instellingen van het randapparaat handmatig via jumpers en switches veranderen. De ingestelde waarden plaatst u typisch als parameters van de stuurbestanden in de CONFIG.SYS:

DEVICE=H:\MMOS2\MVPRODD.SYS /I:7 /D:5 /N:PAS161$
DEVICE=H:\MMOS2\AUDIOVDD.SYS PAS161$

In dit geval gebruikt het 16 bits ISA device (apparaat) PAS16$ (een ProAudio Spectrum geluidkaart) IRQ-7, DMA 5 en een niet nader vermelde I/O poort.

Maar bij PnP apparaten gaat dit via de electronische weg. Parameters als /I (voor IRQ), /D (voor DMA) zullen daarom ontbreken.

DEVICE=H:\MMOS2\SBLIVE32.SYS
DEVICE=H:\MMOS2\SBLIVE16.SYS /V /C

Ook het delen van IRQs wordt via het BIOS door de PCI controller geregeld. In de regel hoeft u daar niets aan te veranderen, tenzij u precies weet wat u doet. Bij conflicten kan het soms helpen een PCI kaart in een ander slot te steken.

Het PnP BIOS en het besturingssysteem vragen de bruikbare IRQ's, DMA kanalen, I/O adressen, RAM en ROM adressen bij het PnP apparaat op. Plug and Play hardware componenten hebben een PCI Vendor ID en een PnP Device ID, dat de hardware identificeert en eventueel een PnP Compatible Device ID, waarmee het compatibel zou moeten zijn. Veel merken gebruiken immers dezelfde chips.

De PCI Vendor IDs worden verdeeld door de PCI Special Interest Group. De PnP Device IDs worden door de fabrikant bepaald. Een ID database staat o.a de The Linux PCI ID Repository. Daarnaast is een PCI Device lijst (pcidevs.txt) te vinden op Craig Hart's PCI Information Pages. Craig Hart is de auteur van het programma PCI info, waarvan OS/2 versies beschikbaar zijn. Verder vindt u de IDs terug in het Windows .INF bestand bij het stuurbestand. Dat laatste is wat merkwaardig omdat het idee achter PnP is dat de adapter zijn IDs en voorkeursconfiguratie zelf aan het OS kan mededelen....



Met die informatie probeert de Configuration Manager (CM) van het het BIOS de op het moederbord beschikbare bronnen optimaal te verdelen. Omdat het BIOS dit al doet voordat het besturingssysteem geladen is, zijn de instellingen voor ieder OS gelijk.

Initialize Plug and Play Cards...
PnP init completed

Belangrijk is dat een PnP besturingssysteem nu ook weet hoe ze de hardware met haar stuurbestanden kan aanspreken.



Een intern PCI modem instellen

> Top <

Als u een modem koopt, koop dan een extern of intern niet PnP ISA exemplaar. USB wordt nog onvoldoende door Linux en OS/2 ondersteund. De meeste PCI modems zijn Winmodems. Met een extern, niet USB, en niet RPI modem dat gewoon op de seriele poort aan te sluiten is, zit u onder ieder OS goed.

Een normaal modem heeft geen stuurbestand nodig. Ga er dus niet naar op zoek. Ook de zogenaamde modem stuurbestanden van Windows 9x zijn niet meer dan wat initialisatie- en identificatieinformatie voor comm.drv, een stuurbestand dat de toegang tot de seriële poort bewaakt. Alleen softmodems hebben specifieke stuurbestanden nodig om de processor aan te sturen. Maar als een modem het onder DOS en Windows NT doet, zou hij het ook onder OS/2 of Linux moeten doen. ISA (ook PnP) modems geven in de regel geen problemen. Externe modems ook niet, voorzover ze niet van USB of een Rockwell RPI chip gebruik maken. Dozenschuivers leveren doorgaans goedkope, niet onder DOS, OS/2 of Linux werkende PCI Winmodems (zie: Winkukels). Deze interne modems missen een Digital Signal Processor (DSP) die het analoge signaal van de seriële poort in een digitaal signaal omzet. Die omzetting wordt bij een winmodem door de hoofdprocessor verricht.

OS/2 gebruikt twee algemene seriële poort stuurbestanden voor OS/2 en DOS. Deze seriële poort stuurbestanden emuleren seriële poorten onder OS/2 (com.sys), Dos en Win-OS/2 (vcom.sys). Het zijn geen modemstuurbestanden. Ze beïnvloeden de datastroom niet. Ray Gwinn levert een uitstekende shareware modem stuurbestand SIO als alternatief voor de OS/2 stuurbestanden: Zie zijn SIO Support WWW Server.

Stel u hebt per abuis een intern PCI-modem of (minder erg) ISA PnP modem gekocht. Het mag geen winmodem zijn. Bijna alle PCI modems zijn PnP modems.

Om te beginnen zet u de Setup van een modern PC BIOS PnP OS installed op NO. Hiermee voorkomt u dat Windows stiekem de instellingen in het BIOS zal veranderen.

Om te achterhalen welke parameters u aan de OS/2 seriële poort stuurbestand com.sys moet doorgeven, doet u onder Warp 4 het volgende:

OS/2 afsluiten en rebooten

Direct Alt-F1 toetsen zodra het OS/2 blokje verschijnt.

F5 - Automatisch laten vaststellen welke apparatuur u hebt

Op de OS/2 prompt " rmview /dc >c:\adapter.log " toetsen

Zoek in het zojuist gemaakte adapter.log het IRQ en het adres van de COM-poort en plaats ze in:

DEVICE=C:\OS2\BOOT\COM.SYS (Poort,Adres,IRQ) en

DEVICE=C:\OS2\MDOS\BOOT\VCOM.SYS (Poort,Adres,IRQ) als u het modem ook onder Windows of DOS wilt gebruiken.

Overigens werd ook gemeld dat het alleen noteren van de com poort (COM3), zonder de IRQ te specificeren onder SIO en Warp 4 bij een Pnp modem werkte.

De Plug-and-Play-HOWTO van David S. Lawyer, onderdeel van het Linux Documentation Project, geeft een goed overzicht van de valkuilen van Plug and Play.

The Linux/Modem Compatibility Knowledge Base geeft informatie over modems vanuit een niet-Windows perspectief. Tot voor kort ging er niets boven een extern modem. Die maakt gebruik van de instellingen van de seriële poort (waar Windows wijselijk van afblijft) en heeft zelf geen eigen poort, adres en IRQ nodig. Maar tegenwoordig (met de externe USB modems) is het al weer uitkijken geblazen.

Werken met Craig Hart's PCI+AGP bus sniffer

> Top <

Belangrijk is welke chipset uw PCI kaart heeft. Om dat te achterhalen kunt u een recente OS/2 port van Craig Hart's PCI+AGP bus sniffer gebruiken. Als PCI.exe (of "grafische" interface pci_moz.cmd) het volgende laat zien, dan is de voor de chip unieke PCI Device ID 10EC:8139 (hex:hex).

Bus 0 (PCI), Device Number 12, Device Function 0
Vendor 10ECh Realtek Semiconductor
Device 8139h RT8139 (A/B/C/813x) Fast Ethernet Adapter

Het eerste hexidecimale getal (10ECh) is het door de Peripheral Component Interconnect Special Interest Group (PCI-SIG) aan de chipsetfabrikant toegekende unieke Vendor ID en het tweede hexidecimale getal (8139h) is het Device ID dat door de fabrikant aan zijn chipset is toegekend. De combinatie identificeert de Realtek 8139 chip.

Hexadecimale getallen als 10ECh worden ook wel als 0x10ec of 0x10EC geschreven (Zie: wiki). Uit de tabel blijkt dat alleen de 8169 en 8180 chips van Realtek (Rtl) ondersteund worden. De in de tabel vermelde RT2400 is van Ralink Technology. De naamgeving is verwarrend en het wordt nog verwarrender als het ene bedrijf chiptechnologie van het andere bedrijf overneemt. Windows gebruikers zitten er niet mee: ze krijgen de stuurbestanden uit de doos van de fabrikant of via Windows update, maar OS/2 en Linux gebruikers moeten wel hexidecimaal (sic) op hun tellen passen.

Succesvolle chips worden in meerdere producten gebruikt. Chipsets als de 11ab:4320 SK-98xx V2.0 Gigabit Ethernet Adapter worden door de chipfabrikanten aan moederbord fabrikanten (subvendors) verkocht. Ze krijgen dan naast het Vendor ID en het Device ID van de chipmaker een Subsystem Vendor ID van de adapter of moederbord fabrikant en een nieuw Subsystem Device ID. In mijn geval (een Edimax ethernetkaart) ging dit niet op.

PCI Class Network, type Ethernet
Subsystem ID 813910ECh RT8139 (A/B/C/810x) Fast Ethernet Adapter (Generic ID)
Subsystem Vendor 10ECh Realtek Semiconductor

Maar mijn in een Asus laptop moederbord met een in de SIS chipset(s) ingebouwde SiS900 10/100 Ethernet Adapter gaf:

Device 0900h SiS900 10/100 Ethernet Adapter
Bus 0 (PCI), Device Number 4, Device Function 0
Vendor 1039h Silicon Integrated Systems (SiS)
...
PCI Class Network, type Ethernet
Subsystem ID 17651043h SiS900 10/100 Ethernet Adapter (Guess Only!)
Subsystem Vendor 1043h ASUSTeK Computer Inc

U kunt in http://pciids.sourceforge.net/pci.ids (lang tekstbestand!) soms nagaan in welke producten de chipsets voorkomen.

# Syntax:
# vendor-id  vendor_name
#     device-id  device_name
#             subvendor-id subdevice-id  subsystem_name

11ab  Marvell Technology Group Ltd.
      4320  88E8001 Gigabit Ethernet Controller

              1019 0f38  Marvell 88E8001 Gigabit Ethernet Controller (ECS)
              1019 8001  Marvell 88E8001 Gigabit Ethernet Controller (ECS)
              1043 173c  Marvell 88E8001 Gigabit Ethernet Controller (Asus)
              1043 811a  Marvell 88E8001 Gigabit Ethernet Controller (Asus)
              105b 0c19  Marvell 88E8001 Gigabit Ethernet Controller (Foxconn)
              10b8 b452  EZ Card 1000 (SMC9452TXV.2)
              11ab 0121  Marvell RDK-8001
              11ab 0321  Marvell RDK-8003
              11ab 1021  Marvell RDK-8010
              11ab 5021  Marvell Yukon Gigabit Ethernet 10/100/1000Base-T Controller (64 bit)
              11ab 9521  Marvell Yukon Gigabit Ethernet 10/100/1000Base-T Controller (32 bit)
              1458 e000  Marvell 88E8001 Gigabit Ethernet Controller (Gigabyte)
              147b 1406  Marvell 88E8001 Gigabit Ethernet Controller (Abit)
              15d4 0047  Marvell 88E8001 Gigabit Ethernet Controller (Iwill)
              1695 9025  Marvell 88E8001 Gigabit Ethernet Controller (Epox)
              17f2 1c03  Marvell 88E8001 Gigabit Ethernet Controller (Albatron)
              270f 2803  Marvell 88E8001 Gigabit Ethernet Controller (Chaintech)

Bijvoorbeeld: EPoX Computer Co., Ltd. (Vendor ID 1695) bouwt de Marvell 88E8001 Gigabit Ethernet Controller (device id 11ab:4320) in zijn moederbord in als 1695:9025. Maar omdat het om dezelfde chip gaat zouden ze wel eens met dezelfde drivers kunnen werken.

Advanced Configuration and Power Interface (ACPI)

> Top <

Geschiedenis

> Top <

De eerste Advanced Configuration and Power Interface (ACPI) specificatie werd door Intel, Microsoft en Toshiba geschreven. Bios ontwikkelaar Phoenix en Hewlett-Packard sloten zich hier spoedig bij aan. Trendsetter Microsoft ondersteunde ACPI vanaf Windows 98. Het voordeel voor Microsoft en zijn OEM leveranciers was dat een MS Windows 98 OEM PC met ACPI voor hen wellicht gemakkelijk te configureren was. En daarmee was voor hen de kous af.

Onder het voorwendsel van een beter energiebeheer kon het ACPI consortium zich van oude legacy PCI en PnP standaarden ontdoen. Maar het ging hen niet alleen om energiebesparing. Het ging hen vooral om een marktaandeel.

Microsoft hoopte hiermee de concurrentie van Linux van zich af te schudden. Een citaat uit Bill Gates on Making ACPI Windows-specific uit de Leaked Antitrust Memo verduidelijkt dit:

From:    Bill Gates
Sent:    Sunday, January 24, |999 8:41 AM
TO:      Jeff Westorinon; Ben Fathi
Cc:      Carl Stork (Exchange); Nathan Myhrvofd; Eric Rudder
Subject: ACPI extensions
One thing I find myself wondering about is whether we shouldn't try and make the "ACPI" extensions somehow Windows specific.
If seems unfortunate if we do this work and get our partners to do the work and the result is that Linux works great without having to do the work.
Maybe there is no way to avoid this problem but it does bother me.
Maybe we couid define the APIs so that they work well with NT and not the others even if they are open.
Or maybe we could patent something related to this

En eigenlijk hadden Microsoft en de PC leveranciers ook geen behoefte aan energiezuinigere software. Energiebesparing was goed voor het milieu, maar niet voor hun "meer is beter" business. In plaats van energiezuiniger te programmeren, verkozen de leidende Wintel soft- en hardwarefabrikanten er dus altijd voor om dezelfde kerntaken door zwaardere soft- en hardware te laten doen. Ondanks Niklaus Wirth's: A plea for lean software. Windows Vista is het hier het toonbeeld van.

Iedere zogenaamd nog energiezuinigere Windows versie (98, 2000, XP, Vista) verslindt meer geheugen en processortijd. En de hardware leveranciers willen maar al te graag de hiervoor benodigde zware machines verkopen. Energiebesparing en het milieu zijn niet hun probleem. En ook niet de behoeften van bijvoorbeeld de derde wereld kinderen (One Laptop per Child). Ze richten zich op de onwetende, maar goed betalende PC consumenten, die altijd de meeste hard- en software voor het minste geld willen. En dat gaat natuurlijk voor zijn (energie)rekening.

De andere notebook leveranciers waren er als de kippen bij. Ze moesten wel: als ze niet met het Windows 98 van de monopolist Microsoft konden samenwerken dan was hadden ze immers geen afzet. Maar hun in de haast voor de "MS Windows ACPI standaard" ontworpen "energiezuinige" hardware deed het vaak niet onder Windows 98. En vanwege de door de ACPI marktleiders met opzet gebrekkig aangeleverde documentatie werkten ze zeker niet onder Linux of een ander besturingssysteem.

Windows 2000 zou een volledig ACPI compliant besturingssysteem worden, maar het bleek dit in de praktijk ook niet te zijn. Veel hardware liet zich alleen installeren met ACPI disabled en/of met de BIOS instelling PnP OS op NO. De instelling waarmee ook OS/2 en Linux het best uit de voeten konden.

Tegenwoordig wordt ACPI ook op servers gebruikt. Hier zal het ACPI vaak uit te schakelen zijn. Energiebeheer heeft hier geen prioriteit. Door slechte ACPI implementaties in het BIOS uit te schakelen kunnen veel installatieproblemen (bronconflicten) worden voorkomen. Ook onder Windows 2000, 2003 en XP. Maar op notebooks is dat minder vaak het geval. Hier zullen de OEM leveranciers al blij zijn dat hun hardware het onder Windows XP doet. Maar dat hun Designed for Windows XP notebook voor andere besturingssystemen een risicofactor is, wordt zelden vermeld.

Voor Microsoft was dit ACPI debacle geen ramp. Integendeel. Waar gehakt wordt vallen spaanders. Als een hardware leverancier zich niet snel genoeg kon aanpassen aan haar normen (omdat ze misschien eerst wel generieke ACPI drivers wilden ontwikkelen) dan was dat zijn probleem. Daarom zijn er maar weinig PC chipset leveranciers over (Intel, NVIDIA, AMD, VIA Technologies, SiS en Broadcom). Maar het voordeel van deze chipset oligarchie is dat ze minder door Microsoft uitgespeeld kan worden.

Techniek

> Top <

De Advanced Configuration and Power Interface specificatie is de opvolger van het in notebooks gebruikte Advanced Power Management (APM) systeem. Kenmerkend voor ACPI is dat ieder op de PCI bus aangesloten apparaat zijn eigen stroombeheer kan voeren.

Met ACPI kan ieder PCI apparaat over zijn eigen power management systeem beschikken. Zo kunnen inactieve computers met het commando WakeOnLan geactiveerd worden. De hardwarefabrikanten schrijven hier de stuurbestanden voor. Maar in de Wintel praktijk werden die alleen voor Windows geschreven. En kwamen andere besturingssystemen in het nauw. Want helaas hield de ACPI standaard zich ook met andere zaken dan energiebeheer bezig.

De ACPI interface regelt ook de Plug en Play toewijzing van IRQ's en geheugenadressen. Het zogeheten PnP besturingssysteem Windows 98 kreeg onbeperkte vrijheid om de IRQ en geheugeninstellingen van het BIOS naar Microsofts goeddunken te herschikken.

Helaas kunt u dat in het ACPI BIOS van veel Designed for Windows XP laptops niet meer handmatig doen. Dit veroorzaakt problemen voor Linux en OS/2 gebruikers. OS/2 kan bijvoorbeeld alleen de IRQ's t/m 16 gebruiken. Maar als het ACPI BIOS slechts naar Windows luistert zal het ook IRQ's boven de 16 aan uw randapparatuur toewijzen. Zodat de legacy besturingssystemen DOS en OS/2 de apparaten niet meer zien. Veel niet ACPI besturingssystemen zullen niet eens meer booten.

c't 0102-99 ACPI-achtergrond: Alles onder controle

ACPI onder OS/2

> Top <

Eugene Gorbunoff werkt aan een ACPI-CA driver for eComStation. De beta drivers zijn beschikbaar via de eComStation Betazone.



ACPI subsystem (Power management, PnP, SMP)

* ACPI driver initializes multiprocessor/multicore/HT CPUs.

* It allows catch the Power button click

* The main purpose of the driver is provide ACPI interface to applied developers.



The ACPI driver will allow:

* It will care about power saving (APM functionality)

* it will control IRQ sharing

* it will enable to thirdparty applications control cooler, watch battery status, etc

* etc.

ACPI driver version 2.0.0 has been released (12/5/2005) on the eComStation Betazone. Advanced Configuration and Power Interface (ACPI) is a replacement for APM, PnP, and related hardware features. Apparently a future version of XWorkplace will support shutting down via ACPI. The latest version of the driver features support for multiprocessor systems (SMP, Dual Core, and HyperThreading).

Een belangrijk deel van zijn dromen kwam uit. Maar het blijft uitkijken geblazen op de hardware markt.

Voor wie meer weten wil over de de door OS/2 ondersteunde hardware: http://en.ecomstation.ru/hardware.php.

Het blijkt dat de meeste perifere hardware onder OS/2 niet werkt. Nu zou je zeggen: geen probleem. Er zijn duizenden modellen. Later we ons storten op degenen die wel werken. Maar het vervelende is dat de hardware leveranciers zelden vertellellen welke chips er in hun moederbord, geluids- en netwerkkaarten zitten. Ze vertellen wel de specificaties onder Windows op hun website, maar niet welke chip erop zit, laat staan of die het onder OS/2 en Linux doen. En de resellers (wederverkopers) nemen dit gedrag braaf over.

Door dit na te laten (dus door niet exact te vertellen wat ze verkopen) en doodleuk maar Microsoft Windows te adviseren krijgen de hardware leveranciers en OEM resellers korting van Microsoft. Maar de consument wordt hiermee gedupeerd.

Hoezo zegt de MS Windows gebruiker? Hierdoor wordt Windows toch voor mij goedkoper? Nee, dat is niet zo. Want door deze concurrentievervalsing handhaaft Microsoft haar monopolie positie. En blijft ze dus uw prijs bepalen. Het gaat dan niet meer om een markt van vraag en aanbod.

De dubbel betalende (voor de OEM en voor) OS/2 of Linux consument kan dus niet bij voorbaat weten of een systeem het ook OS/2 of Linux doet. Want daarvoor moet je niet de specificaties onder Windows, maar de chipsets weten. En vervolgens moet je op het internet nagaan of er geschikte stuurbestanden zijn.

En als die er niet zijn, moet je de onboard netwerkaart of geluidskaart vaak vervangen door een goedkoop, maar wel ondersteund PCI apparaat.

Wie wat meer echt zeker wil zijn - laptop hardware vervang je niet zomaar - kijkt daarom uit naar 2e hands gebruikte laptops . En zoekt op het internet uit of ze op uw besturingssysteem werken. Maar dat zou natuurlijk een taak van de fabrikant moeten zijn. Maar dat doen ze niet, omdat Microsoft u liever in het ongewisse laat.



De stuurbestanden van het installatiepakket

> Top <

OS/2 Warp 3 kwam in 1994 uit onder de naam OS/2 Warp for Windows. OS/2 Warp 4 werd in september 1996 uitgebracht. De kans is dus groot dat uw randapparatuur niet door de bij OS/2 gebundelde stuurbestanden worden ondersteund.

Nu is dat geen ramp, want u kunt zowel Warp 3 als 4 met door IBM uitgebrachte Fixpacks up-to-date houden (zie: OS/2 Fixpacks). Daarnaast kunt u stuurbestanden voor randapparatuur (audio, video etc.) van de internet site van de fabrikant of van een derde partij (SciTech, open source) downloaden. Ook zijn er CD's met stuurbestanden en fixpacks.

Een goed uitgangspunt is IBM's OS/2 Device stuurbestand Pak On-Line Home Page. Hier ziet u ook welke randapparatuur u voor OS/2 kunt gebruiken. Voor meer links zie Links naar hardware en stuurbestanden.

Wilt u een compleet OS/2 Warp 4 systeem installeren met recente fixes en stuurbestanden, dan kunt u het OS/2 Convenience Pak te kopen. Deze update mogelijkheid bestaat echter alleen voor bestaande OS/2 Warp gebruikers. Voor nieuwe en oude gebruikers levert Serenity Systems met eComStation een actuele OS/2 OEM op een bootable CD.

Maar tijdens de installatie van een originele Warp 3 of 4 moet u zich met de stuurbestanden van het installatiepakket behelpen. Dat vereist op moderne hardware een uitgekiende strategie.

OS/2 ondersteunt de Universal Serial Bus (DD Pak: USB), maar bij Warp 3 en 4 niet uit de doos. U moet dus niet meteen een USB muis en toetsenbord aansluiten. Gelukkig werken de meeste USB muizen met een bijgeleverde adapter ook als PS/2 busmuis.

Een lastig probleem is dat de technologie voor de IDE vaste schijven sinds 1994 drastisch veranderd is. Als u pech hebt wordt een grote vaste schijf niet eens door de IDE stuurbestand van Warp 3 of 4 herkend. Hier bestaan oplossingen voor die al u voor de installatie van Warp 3 of 4 op grote vaste IDE schijven toepassen moet. Voor details zie: Ondersteuning voor IDE harde schijven.

Voor Warp 3 bestaat er een update voor installatiediskette 1 in het pakket warpinst.exe. Deze bevat ook de fix voor de grote IDE schijven.

Onder DOS of OS/2 warpinst.exe uitpakken in een eigen map.
Een reservekopie maken van Diskette 1 met diskcopy a:
Draai UPDTINST.BAT tegen de reservekopie
Bij een CD installatie SET COPYFROMFLOPPY=1 aan de config.sys van diskette 1 toevoegen.

Nadat u de fix voor grote IDE schijven hebt toegepast kunt u OS/2 op de vaste schijf installeren. Hier gelden de volgende regels.

  1. Stel u in eerste instantie tevreden met een eenvoudige maar werkende configuratie.

  2. Kies als beeldscherm gewoon (S)VGA, kies de juiste muis (bij twijfel altijd Microsoft compatibel, dat zijn namelijk de meeste muizen, ook die van Logitech) en het juiste toetsenbord (meestal VS) en hoop dat de cd-rom wordt herkend.

  3. Maar wacht even met de installatie van de geluidskaart en de snelste videostuurbestanden.

Het gaat er bij de installatie om dat u een opstartbare versie van OS/2 aan de praat krijgt. Pas daarna kunt het systeem updaten.

De nieuwste stuurbestanden installeren

> Top <

Zodra u OS/2 stuurbestanden voor de overige hardware gevonden heeft kunt u die installeren. Ook zult u met een recente videostuurbestand uw videokaart vrijwel altijd in hogere resoluties kunnen aanspreken.

Voordat u dat doet moet u zeker het hoofdstuk over de Alternatieve bootmethoden voor OS/2 eens doornemen.

Installeer de nieuwste stuurbestanden één voor één: Want als het mis loopt, zult u willen weten aan welke stuurbestand het ligt.

Zorg er altijd voor dat u de juiste instellingen van uw hardware adapters bij de hand hebt. Het installatieprogramma kan er naar vragen. Dus ken de resoluties en verversingsfrequenties van uw monitor en van uw ISA geluidskaart de gebruikte DMA kanalen, IRQ's en I/O geheugenadressen. U vindt ze in de handleiding. Voor PCI Plug en Play randapparaten speelt dit gelukkig niet.




Deze ontwerper werd ontslagen...

Laat u vooral niet in de luren leggen door snelle computerjongens die u zelfverzekerd toeroepen dat "alles in de doos" zit, terwijl ze nog nooit in hun leven een stuurbestand voor OS/2 gebruikt, laat staan geïnstalleerd hebben.

Controleer dus zelf de inhoud van de doos in de winkel op stuurbestanden voordat u tot de aanschaf van nieuwe hardware overgaat. En vraag om een inruilmogelijkheid als de hardware niet met de OS/2 stuurbestanden mocht werken.

Verder is het verstandig om van tevoren zelf na te gaan of er stuurbestanden bestaan. IBM maakt voor veel apparatuur OS/2 stuurbestanden aan, die de hardware fabrikanten zelf vaak niet eens vermelden (Zie Links naar hardware en stuurbestanden).

Als het goed is vindt u OS/2 stuurbestanden op CD of diskette en een goede handleiding in de doos van uw hardware. Bevat de stuurbestand een Device Driver Profiel (DDP bestand) dan kunt u het met het programma ddinstall.exe (Stuurprogramma's installeren) installeren. Andere hardware (bijv. een Microsoft optische wielmuis) maakt gebruik van bestaande protocollen al vermeldt de fabrikant dat niet.

Maar vanzelfsprekend is het niet, omdat nog teveel hardware fabrikanten er van uit gaan dat u tot de zee van Windows 9x gebruikers behoort die alles aan Setup Wizards en Plug&Play moeten overlaten.

Mocht niemand enig idee hebben of de hardware onder OS/2 werkt, kijk dan op zijn minst of de hardware compatibel is met Microsoft NT of DOS (printers). Op het internet is IBM's OS/2 Device Driver Pak On-Line Home Page een goede bron van informatie.

Pas met name op met het door Intel en Microsoft voor Windows 95 ontwikkelde Plug&Play (PnP), die maar ten dele door Warp 4 (en Warp 3, Linux of Windows NT) wordt ondersteund. De PnP detectie van Warp 4 moet u soms uitschakelen om Warp 4 te kunnen installeren (Zie De Alt-F1 methode en verderop in Plug & Play en PCI apparaten).

Een voordeel van het door Warp gehanteerde systeem is dat wijzigingen van basale zaken (moederbord, harde schijf) in de regel goed worden herkend. Dus als u de harde schijf met OS/2 verplaatst naar een andere computer hoeft alleen maar de stuurbestanden van de gewijzigde adapters ( geluidskaart e.d.) te remmen. U kunt daarna met de Alt-F1 methode in VGA modus opstarten om de videokaart en rest van de apparatuur selectief te installeren. Gebruik wel dezelfde opstartpartitie.

Complexe Linux configuraties laten zich in mijn praktijk eveneens gemakkelijk van PC naar PC verplaatsen (kopiëren mag hier ook). Zolang zaken als geluidskaarten maar als modulen worden geleden. Hier zijn de schijfletters geen probleem (fstab aanpassen). Maar bij de aanschaf van een ander moederbord moet u Windows meestal met de botte bijl "schoon" herinstalleren.




Winkukels

> Top <

Bij Intel bestaat de tendens om de core business van randapparaten door stuurbestanden te laten doen. De reden is dat goede hardware moeilijk is te maken, terwijl de Intel software drivers zeer flexibel zijn. Voor stuurbestanden (en andere software) maakt het niet uit of ze met in de hardware ingebakken of met sofwarematige digitale logica communiceren. Op die manier praten Java applicaties met een door de Java Runtime Machine geëmuleerde RISC processor op de Intel PC. Het weliswaar trager, maar het werkt.

Bij Microsoft bestaat de tendens om de taken van het besturingssysteem (beveiliging, multitasking) meer aan de hardware leveranciers over te laten. Dus als de Windows API te traag was, moesten de hardware leveranciers maar met goede DirectX apparatuur en drivers komen. Op die manier werd Windows een spelletjesplatform. Tegenwoordig wordt zelf de multithreading aan Intel uitbesteed (een P4 feature).

De Designed for Windows only (rand)apparaten zijn voor Microsoft en Intel een WINdows-(W)INtel situatie: Microsoft en haar vazallen leveren de "intelligente" stuurbestanden en Intel de brute processorkracht. Deze alleen onder hun Windows OEM werkende hersenloze hardware noem ik winkukels (inderdaad naar Marten Toonders minkukels bedacht).

Want met deze exclusieve Windows chips sluiten Microsoft en Intel andere partijen van mededinging uit. Het gaat om gepanteerde Winmodems, Softmodems, Winprinters en zelfs hakkelende MS Speakers. Ze worden typisch geleverd op de goedkope Wintel OEM merksystemen van Compaq en DELL. Bij de aanschaf hiervan kijkt toch iedereen alleen naar de processor.

OS/2 gebruikers hoeden zich voor dergelijke winkukels die het onder DOS, OS/2, Linux en NT niet zullen doen. Deze halfbakken producten missen bepaalde chips, waardoor ze een paar tientjes goedkoper kunnen zijn. In plast hiervan komen ze met gepatenteerde stuurbestanden, die alleen onder hun Windows OEM versie werken. Maar als u op Windows uitgekeken bent, kunt u met dergelijke OEM hardware geen kant meer op.

Dergelijke softmodems en -printers stelen bovendien de processortijd en het geheugen van uw applicaties. De enige die hiermee iets wint is Intel. En Microsoft omdat u met die vreselijke apparatuur aan het Windows platform gebonden bent. Uw OEM en hardware leverancier bespaart een paar tientjes op het randapparaat, maar u hebt wel een veel duurdere Intel processor nodig. En dan nog is de kans op storingen, verbroken connecties groot (bijv. als er een wav bestand afgaat bij "U hebt mail"). Dat komt omdat er in deze eendagsvliegen maar weinig tijd geïnvesteerd wordt. Want na twee jaar is de Wintel hardware al weer verouderd. Want dan komt de lang verwachte en nog meer resources verslindende "veilige en stabiele" Windows versie uit.

OS/2 en Linux gebruikers kiezen niet voor die wet van Niklaus Wirth: Software gets slower faster than hardware gets faster. Bovendien schakelen de marktmechanismen met het inzetten van winkukel hardware andere software a priori uit. Dergelijke OEM deals tussen de monopolist Microsofts en zijn hardware vazallen zijn dodelijk voor de vrije concurrentie tussen de besturingssystemen.

Met een goedkope Winprinter kunt u misschien in lage resolutie GhostScript aanspreken, maar verder valt er weinig plezier aan te beleven. Een normale printer heeft een ingebouwde processor en printergeheugen, maar een Winprinter steelt dat van uw Windows OEM systeem. En alleen onder Windows. Zo'n printer staat zelfs niet toe dat een DOS programma onder Windows iets kan printen. Negeer dus het weinig zeggende Designed for Windows label, maar eis dat uw apparatuur onder ieder besturingssysteem werkt.

Videokaarten

> Top <

Onder DOS beslaat het grafische videogeheugen het 640-704 kB gebied. Maar omdat dit 64 kB (een bekende DOS limiet) EGA gebied te klein is voor de 256 kB van VGA, laat staan voor 2 MB videogeheugen van het Super VGA werden de Video Graphics Array (VGA) gegevens in meerdere etappen opgehaald.

Bij VGA beeldschermopbouw werden achtereenvolgens bit voor bit 64 kB van de RGB kleuren rood, groen en blauw en 64 kB met intensiteitswaarden van de videokaart naar het RAM en vervolgens door de processor naar de monitor geschreven. Dit viervoudige pagineren voor ieder VGA beeld resulteerde in een zeer trage beeldschermopbouw van grafische programma's en belastte de processor enorm.

Vandaar dat Microsoft de aanmaak van grafische versnellerkaarten onder Windows stimuleerde. De overdracht verloopt dan in blokken en het liefst via direct memory acces (DMA) kanalen. Maar de video versnellerkaarten hebben speciale stuurbestanden en een API als DirectX nodig om het besturingssysteem (eigenlijk de processor) te ontlasten. Maar dat doen ze dan ook. Inmiddels gebruiken de snelste grafische chips al meer energie dan de hoofdprocessor.

Videostuurbestanden

Sinds 1988 (OS/2 versie 1.10) heeft OS/2 een grafische gebruikersinterface met de naam Presentation Manager. En dus had OS/2 grafische voor de grafische modi videostuurbestanden nodig. De video hardware fabrikanten schreven de hier EGA en VGA stuurbestanden voor. Net zoals ze deden voor Windows versie 1 (1985) en Windows versie 2 (1987) en al veel eerder voor DOS.

Het besturingssysteem bracht een grafische interface uit die vertelde hoe grafische API te benaderd moest worden en het was de taak van de hardwarefabrikanten om hiervoor de juiste stuurbestanden aan te leveren. Want alleen zij konden weten wat hun hardware deed. Wat hen hierbij hielp was dat die grafische interface van het PC BIOS door het IBM helder was gedefinieerd.

De eerste 8 bits IBM Personal Computers met DOS maakten gebruik van een Monochrome Display Adapter (MDA) met 4 KiB videogeheugen uit 1981 die alleen tekst in 80 kolommen en 25 regels in twee kleuren (monochroom) kon weergeven. Voor tekstverwerking, databases en spreadsheets was dat genoeg.

De Color Graphics Adapter (CGA) videointerface uit hetzelfde jaar kende een grafische modus die 320×200 pixels in 4 kleuren of 640×200 pixels in 2 kleuren (16 KiB videogeheugen) kon weergeven.

De Enhanced Graphics Adapter (EGA) van de 16 bits IBM AT uit 1984 ondersteunde een 640×350 pixels beeldscherm in 16 kleuren. Hiervoor was 64 KiB videogeheugen nodig.

De MDA, CGA en EGA videokaarten werden via bus digitaal geadresseerd. Het 8 bits DOS kon 2 tot de macht 8 is 64 KiB geheugen adresseren. De 16 bits met de Intel 286 processor uitgeruste IBM AT kon veel meer adressen aan (4 MiB), maar wachtte nog op een 16 bit besturingssysteem. Hiervoor zou IBM Microsoft inhuren om OS/2 te schrijven. Maar Microsoft schreef ook de code van een 16 bits Windows besturingssysteem dat boven het 8 bits DOS liep.

De Video Graphics Array (VGA) standaard met 640×480 pixels (256 KiB videoram) op de 16 bits IBM PS/2 computers uit 1987 kreeg daarom een analoge videointerface. Want alleen via speciale analoge technieken kon het 8 bits DOS met een adresseringslimiet van 64 KiB het 256 KiB videogeheugen van een VGA videokaart aanspreken. Want het 8 bits DOS zag alleen maar een deel van de 16 bits adresseringsruimte van de IBM AT. Net zo goed als wij mar een deel zien van de adresseringsruimte van God of zo u wilt het Universum.



Het Graphics Adapter Display Device (GRADD) systeem van IBM

Zonder een goed stuurbestand voor uw videokaart bent u nergens. Installeer dit stuurbestand voor de printerstuurbestanden. Moderne printerstuurbestanden maken nog wel eens gebruik van de videostuurbestanden. De viewers van Object Desktop 2 doen dit ook. Omgekeerd gebeurt het ook - zoals in Lotus Smartsuite voor OS/2 - waar de printerstuurbestanden voor een WYSIWYG beeld zorgen. Bij onbegrepen problemen met printers en viewers, kan het daarom geen kwaad de stuurbestanden van de videokaart weer eens opnieuw te installeren. Voordat u dat doet kunt u gebruik maken van de Alt-F1 methode. Als een onbegrepen probleem zich niet voordoet op het standaard VGA scherm bent u aan nieuwe stuurbestanden of een andere videokaart toe.

Omdat steeds minder videokaartfabrikanten de moeite namen om beeldschermstuurbestanden voor OS/2 te ontwikkelen werd in 1996 Graphics Adapter Display Device (GRADD) systeem gelanceerd.

Dit is een 32 bits OS/2 videodrivermodel dat basale videofuncties uitvoert. De fabrikant hoeft er slechts wat kaartspecifieke items aan toe te voegen.

2D geacceleerde Gradd stuurbestanden voor ATI Rage II/Mach 64, Chips & Technology 6555X, Cirrus Logic, ATI Rage II, Matrox Millenium/Mystique,* S3 864/TRIO, S3 Virge/Virge VX, VGA en "Generic" SVGA werden door IBM verstrekt.

Mocht een videokaartfabrikant geen interesse hebben om energie te steken in een OS/2 stuurbestand (tegenwoordig de regel), dan zou de Generic VESA Unaccelerated GRADD (GENGRADD) driver het op iedere VESA compatibele SVGA kaart moeten doen. Maar u mist dan wel 2D versnelling. Zaken als de opbouw van het scherm, het scrollen in vensters en het verplaatsen en vergroten van vensters verlopen zonder 2D acceleratie bepaald niet soepel en er is, zeker in de hoge kleurdiepten en resoluties, veel meer CPU kracht mee gemoeid.

Het idee GRADD was goed, maar het kwam te laat. Het idee was: Laat niet iedere hardware fabrikant het OS/2 wiel opniew uitvinden.

Voor het installeren van GRAD drivers (ik gebruik ze in Virtual PC) moet u vaak de SET LANG= taalinstelling van de CONFIG.SYS aanpassen. U moet het bestand uitpakken met de -d optie, zodat de subdirectories worden afgebeeld.

Daarna is de syntaxis (hier voor de VPC S3 chip): setup S3 [gradmap] [bootdrive]. U moet de (gedeeltelijk grafische) installatie onder PMShell uitvoeren (boot met Alt-F1 kies voor VGA).

Een grote verbetering was de door SciTech ontwikkelde platform onafhankelijke techniek. De SciTech Display Doctor (SDD) voor OS/2 maakt gebruik van de GRADD interface. Maar de SciTech Nucleus voegt hier specifieke CPU en videochipset ondersteuning aan toe, zodat de OS/2 gebruiker de acceleratie mogelijkheden van de hardware veel beter kan benutten.

Windows programma's gebruiken Microsofts Direct X bibliotheek om de video- en geluidskaart rechtstreeks te benaderen. Hiermee worden de hoofdprocessor en Windows ontlast. Hardwarefabrikanten beconcurreren elkaar om de snelste Direct-X compatible video- en geluidskaarten en stuurbestanden te maken. Hierdoor kunnen softwarefabrikanten de hardwarevereisten van hun spelletjes opvoeren zonder dat Microsoft iets aan de snelheid van Windows hoeft te doen. De versnelling wordt immers door de hardware en de stuurbestanden van de fabrikant zelf geleverd. De direct X bibliotheek van Windows biedt slechts de interface.

Maar OS/2 heeft zich niet tot zo'n succesvol multimediaplatform kunnen ontwikkelen. Er zijn nauwelijks OS/2 spelletjes, de grafische bibliotheken lopen op de ontwikkelingen in de hardware achter en maar weinig fabrikanten van video- en geluidskaarten hebben de laatste jaren goede stuurbestanden voor OS/2 ontwikkeld. De beste multimedia-ondersteuning komt daarom van een derde partij: de al eerder genoemde firma SciTech.

Voor 2D multimedia programma's beschikt OS/2 van oudsher over de DirectDraw achtige Direct Video Extensions (DIVE). De Digitale Video Editor (met de papegaai uit mcaw.avi) maakt er gebruik van. Helaas kunnen maar weinig videokaarten deze DIVE extensies benutten. Wellicht is dat ook de reden dat er maar weinig dive-enhanced applicaties bestaan. SDD heeft hier verandering in gebracht. Voor bepaalde kaarten kunnen de recent door Valery Gaynullin uitgebrachte HWEnDIVE stuurbestanden SDD weer versnellen. Warp Overlay (10 Euro) van dezelfde auteur vervangt de hele DIVE API. Dit stuurbestand is voor VPC en Warpvision en andere 2D video beslist een aanrader. EmperoarTV draait het videobeeld van mijn Hauppauge WinTV 350 ("videorecorder") kaart zonder haperingen in de hoogste resolutie van de Matrox G400 kaart op een 21" scherm.

Ook de cross platform OpenGL versie 1 grafische bibliotheek van SGI wordt door OS/2 Warp 4 ondersteund. Toch maken maar weinig OS/2 programma's hier direct gebruik: alleen StarOffice 5.1 bij mijn weten. En spelletjesmakers die zich op de cross platform OpenGL API richten waren er maar weinig. Wel zien we de laatste tijd meer programma´s die via de Simple DirectMedia Layer (SDL) van OpenGL gebruik maken.

Via een recentere OpenGL versie (WarpUpdates International: OpenGL) wilde SciTech OS/2 hardwarematige 3D ondersteuning geven. Helaas kwam die slechts voor bepaalde VooDoo kaarten tot stand. Bovendien is OpenGL nog geen Open Source. Recent bleek Microsoft nog OpenGL rechten van SGI opgekocht te hebben.

Voor een overzicht van onder OS/2 gebruikte bibliotheken zie: Multiplatform Game Programming in OS/2.

SDD stelt de MTTR registers van K7 en P4 zelf in. Voor andere GRADD videostuurbestanden kunt u een utility op Hobbes vinden.

IBM heeft een licentie op de SciTtech technologie genomen. Veel VESA compatibele PCI en AGP kaarten kunnen aangesproken worden met de beperkte IBM versie van de SciTech Display Doctor for OS/2 (SDD) die minimaal OS/2 Warp 4 met fixpak 5 of Warp 3 with fixpak 35 nodig heeft. Deze "gratis" versie ondersteunt gangbare resoluties. Meestal levert SDD een duidelijke snelheidswinst onder OS/2's PM Shell op. De resultaten onder Win-OS/2 (seamless en en FS) op de Wintach Benchmark vielen me daarentegen tegen. De eigen Matrox G400 stuurbestand deed het hier 8 keer beter. Ook werden kleinere fonts niet goed weergeven. Dit was met set opdrachten wel instelbaar (lees de README). Ik heb op een OS/2 systeem de laatste regels van de config.sys weer verwijderd:

REM beeldschermkaart

DEVINFO=SCR,VGA,I:\OS2\BOOT\VIOTBL.DCP

SET VIDEO_DEVICES=VIO_SVGA

SET VIO_SVGA=DEVICE(BVHVGA,BVHSVGA)

DEVICE=I:\OS2\MDOS\VSVGA.SYS

SET GRADD_CHAINS=C1

DEVICE=I:\OS2\GRADD.SYS

DEVICE=I:\OS2\MDOS\VMANWIN.SYS

SET VCFG_NO_DDC=TRUE

SET C1=SDDGRADD

DEVICE=I:\OS2\SDDHELP.SYS

Met een Alt-F1 + F3 (Alt-F1 methode) kon ik onder VGA de Matrox stuurbestand weer installeren. Ik wist dat als het misging ik via de onderhoudspartitie de oude config.sys (backup!!) weer zou kunnen herstellen. Matrox maakte er het volgende van.

REM Matrox VGA kaart

DEVINFO=SCR,VGA,I:\OS2\BOOT\VIOTBL.DCP

SET VIDEO_DEVICES=VIO_MGA

SET VIO_VGA=DEVICE(BVHVGA)

DEVICE=I:\MGA\OS2\KMGAX64.SYS

SET MGA=I:\MGA\OS2

SET VIO_MGA=DEVICE(BVHVGA,BMGAX64)

DEVICE=I:\OS2\MDOS\VVGA.SYS

DEVICE=I:\OS2\MDOS\VMGAX64.SYS

De geëigende weg is hier het Uninstall utility in de SDD Folder. Maar die verwijdert meteen ook alle SDD bestanden.

Inmiddels heb ik de Professionele Editie van de OS/2 Scitech DisplayDoctor in gebruik. Deze ondersteunt alle mogelijke beeldschermresoluties en -verversingsfrequenties. Mijn monitor en videokaart werden automatisch gedetecteerd. Onder OS/2 is hij snel en stabiel.

Maar de snelheid van opbouw van Win-OS/2 vensters liep ook hier weer achter op die van de Matrox (G400) kaart. Avi en MPG filmpjes worden overigens prima weergeven. Gaat het te traag, dan moet u een lagere kleurdiepte overwegen. Waarschijnlijk stuurt de originele Matrox stuurbestand het scherm onder Win-OS/2 directer aan, maar de snelheidswinst gaat ten koste van de stabiliteit van PM Shell. Het versterkt weer mijn indruk dat veel onbegrepen problemen onder OS/2 (en Windows) met videostuurbestanden te maken hebben. Al met al ben ik zeer onder de indruk. En wel het meest van de stabiliteit van de stuurbestanden. Ik kan u aanraden eens een probeerversie op te halen: SciTech Download Files: SciTech Display Doctor for OS/2 . Als hij u bevalt kunt u hem registreren via Mensys.



Videoproblemen die zich alleen onder DOS en WIN-OS/2 sessies voordoen kunnen berusten op:



Bij de Beeldscherminstellingen voor DOS gaat het in mijn praktijk vooral om:

VIDEO_8514A_XGA_IOTRAP

Bij mij toch Aan onder Win-OS/2 i.v.m. modem gebruik, uit is sneller.

VIDEO_FASTPASTE

Aan onder Win-OS/2, alleen niet merkbaar sneller

VIDEO_ONDEMAND_MEMORY

Aan onder Win-OS/2, verder uit

VIDEO_MODE_RESTRICTIONNONE

De meeste DOS applicaties kunnen al niet overweg met 640 KB

VIDEO_RETRACE_EMULATION

Standaard uit

VIDEO_ROM_EMULATION

Uit. Aan geeft zelden verbetering

VIDEO_SWITCH_NOTIFICATION

altijd aan onder Win-OS/2, verder uit

VIDEO_WINDOW_REFRESH

Standaard 1



Ad 3. Dit wordt gemakkelijk gemist. De DOS emulatie van OS/2 laat gelukkig specifieke instellingen in de autoexec.bat toe.

De Panorama VESA driver

Nadat SciTech ermee op hield kwam er vanuit Rusland een alternatieve generieke videodriver. IBM GRAD was goed voor 4:3 beeldscheremen, maar na de introductie van Windows Vista en ook door de opkomst van breedbeeld video kwamen de 6:4 schermen in de mode.





Geluidskaarten onder OS/2

> Top <

OS/2 is een uitstekend muziekplatform, maar het kan lastig zijn om een geschikte geluidskaart voor OS/2 te vinden. Ze zijn verkrijgbaar, maar ze worden zeldzaam. Veel geluidskaartmakers vertikken het om OS/2 stuurbestanden te laten maken. Bovendien kan de mate van ondersteuning tegenvallen. Wees dus kritisch bij de aanschaf bij een PC. Kijk eerst op de OS/2 Device stuurbestand Pak On-Line Home Page en de PCI Soundcard Matrix. En gooi oude geluidskaarten nooit zomaar weg. Op een nieuwe PC kunt u voor een paar tientjes een wel door OS/2 ondersteunde tweede geluidskaart (laten) installeren. Zo heb ik lange tijd van een ISA Pro Audio Spectrum gebruik gemaakt, die naast een op het moederbord ingebouwd PCI geval geprikt stond. Op dit moment gebruik ik een SBLive geluidskaart naast een in het moederbord geïntegreerde chip. Meerdere geluidskaarten op een PC is geen probleem. Want alleen de geluidskaart waarvoor een stuurbestand geinstalleerd is wordt gebruikt.

U moet de Programmatuur voor Multimedia (MMPM/2) installeren. Natuurlijk heeft u stuurbestanden nodig. Bij een recente geluidskaart is de kans groot dat de voor OS/2 benodigde stuurbestanden voor uw geluidskaart niet met Warp meegeleverd wordt. Als uw geluidskaart CD niet over een OS/2 sectie beschikt, installeert u de MMPM/2 zonder geluidskaart en gaat u op het internet op zoek naar een geschikte driver.

Stuurbestanden worden via het programma minstall.exe geinstalleerd. Het programma vraagt naar de map met stuurbestanden en leest hier een configuratiescript (.scr) in. Met die gegevens verzorgt het de installatie van stuurbestanden en bibliotheken. Het programma kan ook gebruikt worden om stuurbestanden te deïnstalleren. Hierbij vult u het aantal 0 in.

Momenteel geniet ik van breedband streaming audio via de uitstekende mp3 speler z!. De geluidskaart is een Soundblaster Live! die door de van Linux geporteerde OS/2 Netlabs: Soundcard Device stuurbestanden ondersteund wordt. Het open source stuurbestand zal maar een fractie van de mogelijkheden van de Windows stuurbestanden benutten (vele MB's op die CD), maar gebruikt ook minder overhead.

Zo wordt Midi niet via dit open source stuurbestand door de MMPM/2 interface ondersteunt. Midi en MOD bestanden speel ik daarom af met TiMidity for OS/2. TiMidity (Tuukka Toivonen e.a.) converteert MIDI bestanden naar de wel ondersteunde WAVE bestanden m.b.v. de Gravis Ultrasound (GUS) patch files. De zo gegenereerde digitale audio kan real-time afgespeeld worden.

Sinds kort is er ook een OS/2 port van het open source ALSA Project die als de Universal Audio Driver bekend staat. Binaries vindt u op Hobbes en op de Uniaud web site.

DEVICE=D:\MMOS2\UNIAUD32.SYS /V /C:CARDNAME
- /V Verbose
- /C:CARDNAME
Where CARDNAME is :
- SBLIVE : Sound Blaster Live!
- CS4281 : Cirrus Logic CS4281
- ALS4000 : Avance Logic ALS4000
- CMEDIA : C-Media CMI8738, CMI8338
- ICH : Intel ICHx, NFORCE1/2/3
- CS46XX : Cirrus Logic CS4280, CS46XX
- VIA82XX : VIA VT82C686A/B/C, VT8233A/C, VT8235
- ESS1938 : ESS Solo-1 (ESS 1938)
- MAESTRO : ESS Maestro1/2/2E, TerraTec DMX
- MAESTRO3 : ESS Maestro3/Allegro/Canyon3D-2
- YAMAHA : Yamaha YMF 724/724F/740/740C/744/754
- ENSONIQ : Ensoniq AudioPCI ES1371/73, Creative Labs SB PCI64/128
- ALI5451 : ALI 5451
Force detection of specified audio hardware
DEVICE=D:\MMOS2\UNIAUD16.SYS /V /C /M /L
- /V Verbose
- /C Enable CD output
- /M Enable Microphone output
- /L Enable Line-In output

Het geluid onder Win-OS/2 spreek ik aan met de The generic WIN/OS2 audio device driver van John Gow (genaud-v3.1r02.zip).

Team OS/2 Ruhr e.V. - Service - Broschüren bevat de PCI Soundkarten unter OS/2 (PDF).

Creative Labs' Soundblaster and OS/2

Installation and Configuration of Software for the Sound Blaster Live! and 512 Sound Cards under the OS/2 Operating System.

The OS/2 Real-Time MIDI Subsystem

OS/2 Music Software

PC Systems Survival Guide

List of device bandwidths - Wikipedia

The PC Technology Guide

The PC Guide: Systems and Components Reference Guide : zeer goed overzicht van hardware.

the History of Computing Project

Andrew S. Tannenbaum: Gestructureerde computerarchitectuur (2e herziene druk, Academic Service)

Väter des Computer op Bernd Leitenberger's Computer Seiten

History of IBM : Hier geeft een zoektocht naar OS/2 48,295 resultaten.

Bus Oddessy 2001 : over het gebruik van DMA in IBM systemen.

http://www.pcdesguide.org

Design Overview - Windows Hardware and Driver Central

Design Guidelines for PCs : Microsoft en Intel zetten de touwtjes uit via hun jaarlijkse PC Design Guides.

BIOS recommendations for eCS v1.2.x

Mark Minasi: The complete PC upgrade & maintenance guide (9th edition). Sybex,Alameda 1998.



> Top <
> OS/2 Index <