Драйвер
При компютрите, драйвер се нарича компютърна програма, която позволява на програми от високо ниво да взаимодействат с хардуерно устройствo.
Драйверът обикновено комуникира с периферните устройства чрез шина или комуникационна подсистема, с която е свързан хардуера. Когато програма извика функция на драйвера, той дава команди на устройството. След като устройството отговори на драйвера, драйверът вече може да вика функции на първоначалната програма. Драйверите са зависими от хардуера и специфични за операционната система. Обикновено имат нужда от обработка на прекъсванията за всякакви асинхронни времезависими хардуерни интерфейси.
Предназначение
Драйверът опростява програмирането, защото представлява преводач между хардуерното устройство и приложните програми или операционната система, които го използват. Програмистите могат да пишат приложения от високо ниво, без да се съобразяват с това на какъв хардуер потребителят ще ги пуска. Физически слоеве комуникират със специфичните инстанции на устройството. Примерно, серийният порт трябва да може да обработва стандартни комуникационни протоколи, като XON/XOFF, които са нормални за всякакъв хардуер, работещ на сериен порт. Това се управлява от логически слой на серийния порт. Но трябва физическият слой да комуникира и с конкретен чип на серийния порт. 16550 UART хардуера е различен от PL-011. Физическият слой адресира тези особености, специфични за чипа. По подразбиране операционната система първо вика логическия слой. Съответно логическият слой вика физическия, за да може да изпълни изискването на операционната система. Накрая, когато хардуерното устройство трябва да отговори на операционната система, използва физическия слой, за да се обърне към логическия.
При Линукс, програмистите могат да създават драйвери или като част от ядрото, или като допълнително заредими.
Заредимите драйвери са в Windows .sys файловете, а в Линукс .ko. Предимството на заредимите драйвери е че те могат да бъдат заредени само когато има нужда от тях и после освободени, така пестейки от паметта на ядрото.
Разработка
Писането на драйвер изисква добро разбиране на хардуера и на софтуерната платформа, за която се пише. Драйверите работят във високо привилигерована среда и могат да предизвикат големи проблеми. Повечето софтуер, който работи на ниво потребител в съвременните операционни системи, може да бъде спрян без да афектира останалата част от системата. Дори драйвери, изпълняващи се в потребителски режим, могат да сринат системата, ако драйверът не е правилно програмиран. Тези фактори затрудняват диагностицирането на проблеми.
Писането на драйвери обикновено е задача за софтуерния инженер, който работи за компании, разработващи хардуерни устройства. Това е така, защото те имат повече информация от външните лица за конструкцията на хардуера.
друга статия - https://forums.softvisia.com/index.php/topic/3526
още за Драйвери - въпроси и отговори - още инфо
Всеки рано или късно опира до драйверите. Що за мистично същество е то, как да си го отглеждаме и да се грижим за него пълноценно. Ще се опитам да дам отговори на тези въпроси.
Що е то?
Компютърен драйвер е вид софтуерен продукт, който има за цел да укаже на операционната система как да работи с даден хардуер. Драйверът е като преводач и посредник между хардуера и операционната система. Също както и ако се срещнете с чужденец и не знаете езика, представете си доколко ефективно ще е общуването само с мимики.
За какво има и за какво няма драйвери?
Всъщност само един хардуерен компонент няма нужда от драйвери и това е оперативната памет (RAM). Всеки друг компонент изисква инсталацията на драйвер, за да функционира нормално. Операционната система има база от данни с драйвери за по-основните компоненти и ги инсталира автоматично.
Може ли да функционира компютърът без драйвери изобщо?
Не. Без НИКАКВИ драйвери функционирането е невъзможно. След инсталация на Windows компютърът работи, защото основните устройства са вече разпознати и драйверите са инсталирани автоматично, без намесата на потребителя. При това положение компютърът работи в много базов режим, така че на практика може да се счита за почти неизползваем.
Как се инсталират/обновяват драйверите?
Обикновено повечето драйвери в днешно време (на по-известните компании) си имат инсталация и общо взето е нужно да я стартирате и тя ще ви преведе през целия процес, все едно инсталирате програма. Някои обаче нямат и пристигат в обикновен архив. В такъв случай се прибягва до ръчна инсталация чрез диспечера на устройства (Device Manager).
Инсталация на драйвери за устройства, които не са разпознати въобще:
- кликaте с десния бутон върху My Computer -> Properties -> Hardware -> Device Manager; - ако устройството няма никакви драйвери, то ще е в раздел Other devices и ще е с удивителна;
- кликате два пъти върху него и после кликате бутона Reinstall driver;
- ако бъдете попитани дали искате Windows да провери онлайн базата си от данни за драйвери, изберете Yes, this time only и кликнете Next >; в нашия случай обаче приемаме, че се инсталира драйвер от твърдия диск, затова избирате No, not this time и кликнете Next >;
- изберете Install from a list or specific location (Advanced) и кликнете Next >;
- оставете отметка само на Include this location in the search, кликнете Browse и укажете пътя до драйвера;
- при кликане на Next > Windows ще претърси папката и ще инсталира драйверите.
Инсталация/обновяване на драйвери за устройства, които вече са разпознати:
- кликaте с десния бутон върху My Computer -> Properties -> Hardware -> Device Manager; - намерете устройството, на което искате да инсталирате/обновите драйвера и кликнете два пъти върху него;
- кликнете горе върху страница Driver и после върху бутона Update Driver...;
- ако бъдете попитани дали искате Windows да провери онлайн базата си от данни за драйвери, изберете Yes, this time only и кликнете Next >; в нашия случай обаче приемаме, че се инсталира драйвер от твърдия диск, затова избирате No, not this time и кликнете Next >;
- изберете Install from a list or specific location (Advanced) и кликнете Next >;
- оставете отметка само на Include this location in the search, кликнете Browse и укажете пътя до драйвера;
- при кликане на Next > Windows ще претърси папката и ще инсталира драйверите.
Как мога да върна предходния драйвер за дадено устройство?
Става отново от Device Manager:
- кликaте с десния бутон върху My Computer -> Properties -> Hardware -> Device Manager; - намерете устройството, на което искате да инсталирате/обновите драйвера и кликнете два пъти върху него;
- кликнете горе върху страница Driver и после върху бутона Roll Back Driver.
Как се деинсталират драйвери?
Драйверите често имат деинсталация, която се намира в Add or Remove Programs, но дори и да имат, те често оставят след себе си файлове и редове в регистратурата на операционната система и е много желателно да се почиства след тях с програма наречена Driver Cleaner 1.5 Professional. Програмата се инсталира бързо и лесно и е безплатна. Можете да я изтеглите от един от двата линка:
Driver Cleaner 1.5 Pro @SoftVisia.com (2.8MB)
Driver Cleaner 1.5 Pro @Overclock.net (2.8MB).
Ето как се осъществява чистенето:
1) теглите и инсталирате програмата;
2) деинсталирате драйверите от Add or Remove или деинсталирате самите устройства от Device Manager;
3) рестартирате в Safe Mode (натискате F8 постоянно преди да започне да зарежда Windows, при което трябва да се появи меню с възможни начини за стартиране, първият от които е именно Safe Mode);
4) стартирате Driver Cleaner;
5) от падащото меню избирате кой драйвер ще чистите; ако ще чистите повече от един, можете да сложите отметка на Select multiple cleaning filters и да добавяте отделните филтри, като ги избирате и кликате бутон Add >>;
6) кликате бутон Start, за да започне чистенето;
7) след като приключи, от меню Tools избирате Cab Cleaner;
8) от падащото меню избирате единия .cab файл (ако не е избран) и кликате Start, за да се почисти, след което повтаряте чистенето и за останалите .cab файлове. Driver.cab може да отнеме немалко време, просто имайте търпение.
9) Готово!
Ето и списък кой филтър какво точно чисти:
- 3Dfx - драйвери на 3Dfx;
- 3Dlabs Wildcat 4 - Wildcat 4 драйверите на 3Dfx;
- 3Dlabs Wildcat REALIZM - Wildcat REALIZM драйверите на 3Dfx;
- 3Dlabs Wildcat VP - Wildcat VP драйверите на 3Dfx;
- ATI - драйверите на ATI и контролния панел;
- ATI CCC - ATI Catalyst Control Center;
- ATI IGP - драйверите за вградените видео карти на ATI;
- ATI MMC - ATI Multimedia Center;
- ATI HydraVision - HydraVision драйверите;
- ATI Remote Wonder - Remote Wonder драйверите;
- ATI TV Wonder - TV Wonder драйверите;
- ATI WDM - WDM драйвера;
- ATI Uninstall Utility - деинсталаторския инструмент на ATI;
- Creative Audio - компоненти на Creative;
- Creative Audio Lite - аудио драйвера на Creative;
- Intel Extreme - драверите за Intel Extreme Graphics и Intel Graphics Media Accelerator;
- kX Audio - kX аудио драйвера;
- kX Aureal - kX Aureal драйвера;
- Matrox Graphics - драйверите за Matrox Parhelia и Matrox Millennium;
- nForce Chipset - драйверите за nForce базираните дъна;
- nVidia Stereo - nVidia Stereo драйвера;
- nVidia WDM - nVidia WDM драйвера;
- nVidia - драйверите за видео картите на nVidia;
- Razer Mouse - драйверите за мишките на Razer;
- Realtek Audio - аудио драйверите на Realtek;
- S3 Savage - драйверите за S3 Savage IX/MX/3D/4;
- SIS Graphics - драйверите за видео чиповете на SIS;
- SoundMAX Audio - SoundMAX драйверите;
- Turtle Beach - драйверите на Turtle Beach;
- VIA Envy Audio - драйвера на VIA за Envy-базираните звукови карти;
- VIA HD Audio - HD Audio драйвера на VIA;
- VIA Vinyl Audio - Vynyl аудио драйвера на VIA;
- XGI Volari - драйвера за XGI Volari.
Кои компоненти се инсталират автоматично и за кои са нужни отделни драйвери?
Трудно е да се обобщи, защото базата от данни с драйвери в Windows се обогатява/променя с всяка версия Ще ги разделя по групи.
- дънни платки - някои дънни платки се разпознават от Windows напълно, а други - частично; като цяло дънните платки могат да функционират и без драйвери, но е много препоръчително да се инсталират такивa.
- вътрешни и външни устройства за съхраняване на информация (твърди дискове, оптични и флопи устройства, flash памети) - Windows познава всички автоматично и отделни драйвери не са нужни с изключение на флаш паметите под Windows 95 и 98, където има нужда от драйвер, но той обикновено идва на диск към паметта.
- видео и звукови карти - Windows разполага с драйвери за по-старите и базови видео карти, чиято официална поддръжка е спряна отдавна и за някои по-ранни модели на nVidia и 3dfx например, за всичко останало са нужни отделни драйвери. Всъщност то не пречи и за тези да се инсталират отделни.
- цифрови фотоапарати - повечето се разпознават като стандартна flash памет, но има и изключения, за които са нужни драйвери;
- уебкамери и скенери- за почти всички са нужни отделни драйвери, но има и изключения, които Windows разпознава сам;
- принтери - Windows има вградена поддръжка за някои модели (предимно по-стари), но повечето изискват отделен драйвер;
- TV тунери - почти всички имат нужда от отделен драйвер;
- мишки и клавиатури - всички могат да работят и без допълнителни драйвери, но за някои има такива ако имат допълнителни бутони за разширяване на функционалността (мултимедийни клавиатури и мишки със допълнителни бутони);
- монитори - Windows има вградена поддръжка за някои монитори, но не и за повечето. В случая обаче няма чак такова голямо значение дали ще се инсталират драйвери. Ако мониторът работи на висока разделителна способност при висока честота на опресняване, то значи всичко е наред и няма нужда от допълнителен драйвер.
Да се инсталират ли отделни драйвери, дори и Windows да е разпознал дадено устройство?
Не много лесен въпрос. По принцип не пречи да се инсталират отделни драйвери, стига да се намерят. Зависи и за кой компоненти става въпрос. Грубо казано:
- устройствата за съхраняване на информация работят както трябва и без отделен драйвер;
- мрежовите карти обикновено работят нормално и не е задължително да се инсталира отделен драйвер;
- мониторите по принцип нямат нужда от драйвери и инсталирането на отделни такива е по-скоро лично желание или ако има случайно някакъв проблем;
- за мишките и клавиатурите са нужни специални драйвери само ако имат специални бутончета и т.н. и искате да ги ползвате, в противен случай няма нужда;
- за всичко останало е или задължително, или много препоръчително да се инсталират отделни драйвери.
Трябва ли редовно да обновявам драйверите си и да поддържам най-новите версии?
Не е задължително. По принцип на теория обновяването на драйверите е добра идея, защото в по-новите версии се добавят функции, изчистват се грешки и несъвместимости, оправят се други проблеми и т.н. За жалост така е само на теория. На практика случва се понякога най-новото не е по-добро, а дори напротив - по-нестабилно е и с повече грешки. Все пак зависи и за какъв хардуер става въпрос, за каква операционна система и т.н. Като цяло най-новото в повечето случаи е най-добро. Като изключение бих изтъкнал видео картите на nVidia, където ситуацията е малко по-особена и ще се спра на това след малко.
Как да разбера кой драйвер е най-добър за моя компютър? (във връзка с предния въпрос)
Накратко: много трудно. Надълго: чрез практика и тестове. Общо взето важи правилото "ако не е счупено, не го поправяй". Ако сте доволни от работата на компютъра си, то значи не пречи да си останете с текущите драйвери. Ако даден драйвер изпълнява функциите си според изискванията ви и работи стабилно (не причинява забивания и подобни), то значи е добър драйвер и смяната му не е нужна. Разбира се, ако имате време и желание, винаги можете да инсталирате различна версия на драйвер за даден компонент и да го оставите известно време, за да разберете той как се държи на вашата машина. Може би най-добрият вариант е да инсталирате най-новия драйвер и ако забележите проблеми и да инсталирате по-стари само ако има някакви проблеми.
Кои драйвери са най-добри за nVidia видео картите?
Засегнах въпроса малко по-горе. Тук също е малко или много относително, но като цяло се забелязва тенденцията, че определено поколение драйвери работят най-добре с определно поколение видео карти. Т.е. конкретна видео карта работи най-добре с драйверите, които са излезли скоро след нейното появяване на пазара. С всяка нова версия на драйверите поддръжката на старите видео карти се пренебрегва. Това разбира се не значи, че последния драйвер няма да работи с GeForce 2 например, но е напълно възможно производителността да е по-лоша отколкото тази при по-стари драйвери, които са писани по-специално за нея, докато най-новите драйвери се концентрират върху най-новите графични карти. Най-общо казано гледате номерчето на поколението на видео картата и сравнявате с това на драйвера.
Пример GeForce 4 картите работят най-добре с драйвери версии 4х.хх и близките над тях. Кой от тях ще е най-добър и дали ще има осезаема разлика между тях, е вече отделен въпрос.
Ами драйверите, които са на диска към хардуера?
Обикновено, когато си купите някакъв хардуер, ще има диск към него с драйвери и софтуер. На теория те трябва да са последните стабилни драйвери преди пускането на продукта на пазара и да са тествани доста. На практика е трудно да се каже дали наистина е така. Някои хора нямат проблеми с такива драйвери, а имат с по-новите, докато при други е обратното. Ако не ви се занимава да търсите други драйвери, можете да инсталирате тези от диска и да ги обновите ако имате някакъв проблем или несъвместимост.
Има ли неофициални драйвери и доколко добри са те?
Неофициални драйвери има за някои хардуерни продукти - nForce базираните дънни платки, видео картите на nVidia и ATI и звуковите карти на Creative. За nForce базираните дъна драйверите са по-скоро т.нар. remix-и - събрани са различни драйвери от различни версии за различните компоненти, като идеята е за всеки компонент да се използва най-добрият възможен драйвер за различните версии на Windows. В някои драйвери също е възможно да се внесат и леки промени, за да работи по-добре. При видео картите има оптимизирани драйвери - официални драйвери, но с внесени корекции за по-добра работа, премахнати излишни функции, добавени такива и т.н. Такива са драйверите на Omega или на NGO например. За драйверите на Creative има както модифицирани официални (тези на NGO), така и напълно нови драйвери (тези на kX Project). Доколко са по-добри от официалните, е трудно да се каже. По принцип идеята им е да са по-добри, но това разбира се не е и не може да е гарантирано. Редно е да се пробват и да се прецени лично. Лично аз ползвам именно неофициални драйвери за дънната си платка и видео картата си и не съм имал никакви проблеми за момента.
Има ли драйвери, с които трябва да внимавам?
Да, има - IDE драйверите на отделните производители и най-вече на nVidia. По принцип Windows инсталира драйвери за IDE контролерите написани от Microsoft, но производителите на чипове за дъна също си пишат драйвери, които би трябвало да натоварват по-малко процесора, да са по-производителни и въобще по-добри като цяло. За жалост обаче понякога тези драйвери могат да причиняват забивания, нестабилна работа и други проблеми. Драйверите на Intel, VIA и SIS като цяло са стабилни, но тези на nVidia се славят с причиняване на доста голяма гама от поразии - от досадни проблемчета до проблеми от типа "баси, к'во стана, бе?!?". Просто при инсталация на драйвери за дъно, особено ако е с nForce чипсет, имайте едно на ум ако изберете да инсталирате и IDE драйвера.
Има ли софтуер, който да ми помогне при работата с и намирането на драйвери?
И такива програми има. Има софтуер, който може да направи архивно копие на инсталираните ви дайвери, което да бъде възстановено, когато пожелаете и ви спестява усилията да инсталирате драйвери след всяка преинсталация или пък може да се ползва ако нещо омажете някой(и) драйвер(и). И двата продукта са безплатни: Driver Magician Lite и DriverMax.
Съществува и сайт, който инсталира плъгин към някой от браузърите ви и го използва, за да сканира системата ви и да прецени за кой хардуер има по-нови или по-добри драйвери. Сайтът е driveragent.com. Лично аз не бих разчитал на подобни услуги, но изборът си е ваш.