Hejto.pl
Dodaj post

Wpisz coś do wyszukania (minimum 2 znaki)

Wpis użytkownika pierdonauta_kosmolony w IT

Gruba ryba

w IT

44piorunów

Sterowniki urządzeń

Długo żem się zbierał do tego wpisu. Jak tu zrobić żeby nie było za nudno albo niezrozumiale, a pewnie i jedno o drugie, no nie da się.

Obsługa jakiegokolwiek urządzenia, czy to wewnątrz czy na zewnątrz kąkutera polega na wysyłaniu określonych w dokumentacji urządzenia komend pod adresy pod którymi te urządzenia nasłuchują.
Procesory linii 8086 od Intela miały osobne rozkazy do pisania i czytania z komórek pamięci, a osobne do pisania i czytania z urządzeń. Trudno teraz odkopać faktyczny i oficjalny powód dlaczego Intel tak zrobił. Czyli napisanie czegoś do pamięci (mov) pod adres 0xb00b wypełniało komórkę pamięci, a wysłanie czegoś pod adres IO (out) wysyłało bajty na szynę w nadziei że pod PORTEM (bo adresy IO Intel nazywał portami) o tym adresie słucha jakieś urządzenie.

Szyna ISA o ile dobrze pamiętam była po prostu wystawieniem szyny systemowej. Urządzenia - jakieś soundblastery, sieciówki, modemy itp miały na płytach zworki do konfiguracji. Nie przewidywano, że to system czy bios będą się dogadywać z urządzeniami i ustalać pod jakimi adresami IO będą występować ani jakie numery przerwań trącać. To robił człowiek przed umieszczeniem karty w slocie, a potem musiał pamiętać.

Sound Blaster, na adresie IO 0x220, nr przerwania 7, kanał DMA 1. Chyba tak domyślnie układano zwory i rzadko kto to ruszał chyba że inna karta nie dała się ustawić tak, żeby nie kłóciła się z SB.

DOS umiał obsługiwać szereg urządzeń - kartę graficzną w trybie tekstowym, dyski i system plików FAT, dzięku czemu można było czytać plik c:\\file.txt i wystarczyło wywołać ze swojego programu funkcję systemową. DOS z kolei wołał funkcję BIOSa do odczytu sektorów. Jak w wierszyku o rzepce - program do DOSa, DOS do BIOSa, BIOS do dysku. Po drodze w DOSie był jeszcze właśnie "sterownik" FAT umiejący przetłumaczyć żądanie o plik po nazwie na szereg odczytów z sektorów dysku.

DOS jednak nie umiał ani w karty muzyczne ani w sieciówki. W CD ROMa też nie umiał.

Co robili programiści - głównie gier, bo to one napędzały rynek mikrokomputerów IBMopochodnych?
DOS całe szczęście był prymitywny aż do końca. Architektura już chyba od 286 pozwalała na rozgraniczenie co może robić program użytkownika a co (wszystko) system operacyjny. DOS miał to w pompie, wszystkim wolno wszystko, niech klawisz Reset ma nas w swojej opiece. I całe szczęście.

Sterowniki do kart muzycznych były częściami programów gier. Program install.exe albo częściej setup.exe pozwalał ustawić, przetestować i zapisać ustawienia karty muzycznej dla danej gry. Potem właściwa gra korzystała ze SWOJEGO sterownika. Biedny Gravis Ultrasound mimo że produktem był świetnym to spóźnił się na pociąg i niewiele gier go wspierało. To był ten minus. Można było mieć GUSa ale w ulubionej gierce być skazanym na pierdzenie z PC speakera.

Opcja druga - tak jak robiły to sieciówki. Chciało się pograć w Dooma z kolegami? Najpierw każdy musiał załadować w odpowiedniej kolejności pakiet sterowników dla swojej karty. lsl.exe, potem właściwy sterownik karty, zwykle nazywający się jak model karty - np ne2000.exe dla kart Novella czy 3c5x9x.exe dla 3COM, a na końcu stos protokołu, w Doomie był to IPX, czyli o ile pamiętam ipxodi.exe. Albo .com zamiast exe.
Sterowniki były programami wykonywalnymi ale "kończąc" swoje działanie zamiast uruchamiać w dosie funkcję terminate wołały terminate and stay resident co powodowało że mimo że już formalnie skończyły, DOS po nich nie sprzątał. Ich kod zostawał dostępny w pamięci. I tak stawały się sterownikami, z których mógł skorzystać Doom, bo producenci kart umówili się na wspólny interfejs programowy.

Można by zaryzykować stwierdzenie, że DOS był akurat tak prymitywny, że nie przeszkadzał w niezwykle gwałtownym rozwoju zarówno sprzętu jak i gier. Wobec braku internetu ciągłe aktualizacje systemu były w zasadzie niemożliwe, bardziej elegancki system operacyjny wykorzystujący ochronę pamięci i jądra mógł być poważną przeszkodą dla twórców gier. Ale był DOS - może nie najtaniej ale jako tako.

Komentarze (13)

Gruba ryba0piorunów

Ja byłem na przekór i zawsze ustawiałem SB Pro na IRQ 5 xd

A GUS miał, o ile pamiętam, emulację Adlib, więc wcale na speakera nikt nie był skazany.

Autorytet1piorunów

Ale że co? Nie mogłeś sobie Windowsa na płytce od kolegi ogarnąć? Po co to komu?

Gwiazdor0piorunów

@Fen Nie wiem czy dżołk, ale Windows tyle zasobów zżerał i był tak na początku lipny, że ludzie siedzieli na DOS i Windowsa odpalali jak był potrzebny 😛

GURU6piorunów

@Fen Coraz młodsi pchają się na ten portal dla seniorów :grinning:

Autorytet1piorunów

@ataxbras no ja nie będę ściemniał... ja go pamiętać nie mogę xD. Jeszcze 9 lat czekałem żeby się pojawić 😆

GURU4piorunów

@Fen Wyłapałem, stąd wyszczerzona buźka.
A co do '85 - to był wspaniały rok, nie zapomnę go nigdy... 😅

Autorytet1piorunów

@pierdonauta_kosmolony no też tak sądzę
@ataxbras a co 85 był gorszy?? Jesteś rasistą czy jak?

Nie widziałem że z wiekiem człowiek traci zdolność do wyłapania sarkazmu...

GURU3piorunów

@Fen W 1985 roku? 😁

Gruba ryba0piorunów

@Fen
Rzeczywiście w 1996r musiałem być trochę nieogarniętym dzieciakiem żeby nie ściągnąć sobie Windowsów 95 z wetransfera. Ale przyniosłem sobie winsowsy 3.11 na dyskietkach.

Autorytet1piorunów

@pierdonauta_kosmolony no to przez wetransfeara byś ogarnął... teraz też jest problem z cdromami!

Gruba ryba3piorunów

@Fen
W tych czasach, szczególnie w Polsce, płytkę można było sobie jedynie powiesić na lusterku w aucie. Byli tacy, co wierzyli że rozprasza fale radarów policyjnych.