драйвери на устройства, компютър
Контролерът на всяко устройство има набор от регистри, използвани за даване на команди контролирани устройства и прочетете състоянието на устройството. Броят на тези регистри и издава команди зависи от спецификата на устройството. Например, програмата за контрол на мишката трябва да получи от информацията на мишката върху докъде го е преместил хоризонтално и вертикално, както и бутона на мишката. Програма за управление на диска трябва да знае за сектори, писти, цилиндри, глави, да ги премествате и задайте времето, двигатели и такива неща, необходими за управление да работи правилно. Очевидно е, че управлението на програмата ще се различават значително. Такава програма за управление на всяко устройство, IO, свързан с компютър, наречен драйвер за устройството. Той обикновено е писано
производител и разпространява с устройството. Тъй като всеки OS изискват специални драйвери, производители на устройства обикновено се доставят драйвери за някои от най-популярните операционни системи.
Всеки водач устройство поддържа само един вид устройство, или максимум клас семейство от устройства. Например, водачът на диск може да поддържа различни джанти, различни размери и скорости. Въпреки това, мишката и джойстика се различават толкова много, че обикновено изисква различни драйвери.
За да получите достъп до устройството за хардуер, т.е. към контролера регистрира драйвер на устройство, за да бъде част от ядрото на операционната система. Но е възможно да се създаде и работещ драйвер в потребителското пространство. Това би позволило на izolirovatyadro на шофьори и водачи на МПС от един на друг. По този начин основната причина за операционни системи за катастрофата ще бъде елиминиран: шофьори, които съдържат грешки, с лице към ядрото или по друг начин. Но тъй като съвременни операционни системи предполагат работа в драйверите на ядрото, помисли за такъв модел.
Тъй като операционната система да се инсталира драйвери от други производители се нуждаят от прием на архитектура подобна настройка. Това означава, че трябва да се развива строго
определен модел на функциите на драйвера и неговото взаимодействие с останалата част от операционната система. Драйверите за устройствата обикновено се намират в останалата част от операционната система.
В повечето операционни системи, два стандартни интерфейси са дефинирани, един от които трябва да поддържа всички главни водачи, а втората - всички шофьори характер. Тези интерфейси включват набор от практики, които могат да бъдат наречени останалата част от операционната система, за да получите достъп до шофьора. Тези процедури включват, например, блок чете или процедура за запис на символния низ.
Някои операционни системи са двоичен програма, която съдържа всички необходими драйвери. Подобна схема в продължение на много години е в норма за UNIX. тъй като те са предназначени за използване в центровете за данни, където е входно устройство заключава рядко се променя. При добавяне на нова система за устройство администратор просто компилирате ядрото с новия драйвер, за да получите нов двоичен модул.
С появата на персоналните компютри, с огромния им разнообразие от входни и изходни устройства, този модел е престанал да работи. Не всички потребители може самостоятелно да съставят прекомпилирате ядрото, а дори и да има изходен код или обектни модули. Поради това, операционната система, от MS - DOS. се премества в модел на динамичните шофьори podgruzki. Различни системи изпълняват тази процедура по различен начин.
Шофьорът на устройството има няколко функции:
1) лечение на резюмето четат и пишат молби, независимо от устройството и се намира над техния софтуер;
2) инициализация на устройството;
3) консумация на енергия за контрол на устройство и регистрация събитие;
4) проверка на входни параметри. Ако те не отговарят на определени критерии, водачът се връща грешка. В противен случай, водачът преобразува абстрактно в конкретни условия. Например, водача на диска може да се превърне линеен броя на блока в броя на главата, проследяване и сектори;
5) с помощта на устройството в момента. Ако устройството е заета, искането може да бъде поставена в опашка. Ако устройството е безплатно, провери си състояние. Може да се наложи
включване на устройството или стартиране на двигателя, преди да започнете прехвърлянето на данни. След като е готов устройство може да започне реалното управление на устройството.
Управление на устройствата включва издаването на поредица от команди. Тя е в шофьора и определя последователността от команди в зависимост от това, което трябва да се направи. След като са определени команди, водачът започва да ги изгори в регистрите на управляващото устройство. Някои контролери могат да получават команди свързани списъци, които са в паметта. Те четат и да ги изпълни, без по-нататъшна помощ на операционната система.
След водача предадени всички контролери команди, ситуацията може да се развие в два варианта. В много случаи, драйверът на устройството трябва да изчакате, докато контролера не извършва определена работа за него, така че той е заключен, докато прекратяването на устройството си отключва. В други случаи, като операцията приключи без забавяне и шофьорът не е необходимо да бъде блокиран. Например, за да преминете на екрана в режим на характера трябва да бъдат написани само няколко байта в регистрите на контролера. Цялата операция отнема само няколко наносекунди.
Водачите не са разрешени за достъп до системните повиквания, но те често се налага да общуват с останалата част от ядрото. За да направите това, шофьорите могат да причинят някои процедури на системата, например, като им предоставя фиксирана хардуерни страници памет като буфери, както и за връщането на тези страници назад към ядрото. В допълнение, шофьорите да се насладят на предизвикателствата, които управляват контролер на паметта, таймер, DMA контролер. Прекъсване контролер и т. П.
Как да се уверите, че всички входно устройство и го извежда на водача изглеждаше почти същото? Ако устройства, принтери, клавиатури и др. Г. изискват различни интерфейси, промяната на операционната система ще се изисква, когато ново устройство, което е много неудобно. Този въпрос е свързан с взаимодействието между съответните драйвери и операционната система. характеристики на драйверите, които са на разположение, за да бъдат различни при различните водачи. Това означава, че основните функции, необходими за шофьора, също са различни, така че взаимодействието с всеки нов драйвер изисква много планиране усилия.
Налице е напълно различен подход, в който всички шофьори същия интерфейс. В същото време много по-лесно да инсталирате нов драйвер, при условие, че отговаря на стан-
дарт интерфейс. Програмистите, ангажирани в развитието на шофьори, знаят какви функции те трябва да се прилагат и за какво ядро функции те могат да се справят. На практика, не всички устройства са напълно идентични, но като цяло има малко на брой видове устройства достатъчно сходни помежду си. Например, дори да блокирате и символни устройства имат много общи черти.