Mam spore doświadczenie w projektowaniu sprzętu i systemów wbudowanych, ale nigdy nie napisałem sterownika dla systemu operacyjnego.
Chciałbym wiedzieć, czy są jakieś dobre przewodniki, najlepiej online, chociaż zainteresują mnie dobre książki, które dadzą mi dobry początek w tym, co muszę wiedzieć, aby zaprojektować i wdrożyć sterowniki dla systemu operacyjnego.
Prawdopodobnie ludzie będą do mnie strzelać i chociaż chciałbym zobaczyć dobrego przewodnika bez względu na to, na jakim systemie jest oparty, chciałbym zobaczyć przewodnik oparty na systemie Windows, głównie z powodu faktu, że większość ludzi Sprzedałbym produkt, który miałby okna.
Daj mi znać, jeśli mogę dodać jakieś dodatkowe informacje, aby to wyjaśnić.
Odpowiedzi:
Większość mojego ostatniego doświadczenia w pisaniu rzeczywistych sterowników dla systemu operacyjnego dotyczy Linuksa, a najlepszym referencją dla IMO jest Linux Device Drivers, wydanie trzecie autorstwa Jonathana Corbeta, Alessandro Rubini i Grega Kroah-Hartmana (2005), o którym już wspomniano. Jest dostępny na Amazon , Safari Books On-Line , a także do pobrania za darmo .
Kilka innych książek na ten sam temat to Essential Linux Device Drivers , autor: Sreekrishnan Venkateswaran (2008) (dostępny również w Safari Books Online ) i Pisanie Linux Device Drivers: przewodnik z ćwiczeniami (tom 3) dr Jerry Cooperstein (2009).
W przypadku sterowników urządzeń z systemem Windows najnowszą książką na ten temat (opublikowaną dwa tygodnie temu) wydaje się być Sterownik urządzenia dla systemu Windows 7 , autor: dr Ronald D. Reeves (2010). Jest również dostępny w Safari Books Online .
Starsza książka, która obejmowałaby system Windows XP, to: Programowanie modelu sterownika Microsoft Windows, wydanie drugie , Walter Oney (2002). Jest również dostępny w Safari Books Online .
Inną książką, która wydaje się być wyczerpana, ale dostępna w Safari Books Online, jest Opracowywanie sterowników za pomocą Windows Driver Foundation , autorstwa Penny Orwick i Guy Smith (2007). Zakładam, że obejmie system Windows Vista.
Wreszcie, Microsoft ma wskaźniki do wielu blogów itp. Omawiających rozwój sterowników.
źródło
Dobry sterownik hermetyzuje możliwości sprzętu i udostępnia je OS / aplikacjom w naturalny sposób.
To, jak najlepiej to zrobić, zależy w dużej mierze od systemu operacyjnego, na który celujesz, oraz od jakiego sprzętu jest przeznaczony sterownik.
Całe moje doświadczenie dotyczy Linuksa i niewielkiego niestandardowego OSen w czasie rzeczywistym.
W przypadku systemu Linux polecam przeczytanie sterowników urządzeń systemu Linux . To dobre wprowadzenie do różnych smaków sterowników Linuksa i abstrakcji, jakie zapewnia im system operacyjny.
Urządzenia takie jak porty szeregowe, w których dane są odczytywane sekwencyjnie, są zwykle obsługiwane przez sterowniki urządzeń znakowych z węzłem urządzenia w przestrzeni użytkownika, z którego aplikacje mogą czytać.
cat
mogę przeczytać z nich.Urządzenia o dostępie swobodnym, takie jak pamięć flash i dyski twarde, są obsługiwane przez urządzenia blokowe.
dd
może uzyskać do nich dostęp. Dla dobrego przykładu spójrz na system Linux MTD .Sterowniki, które majstrują przy sprzęcie na niskim poziomie, prawie na pewno będą musiały zostać zaimplementowane w przestrzeni jądra. Możesz zrobić moduł jądra do ładowania w środowisku wykonawczym lub umieścić kod statycznie w jądrze Linuksa.
Sterowniki oparte na istniejących sterownikach ogólnych, takich jak USB, mogą być zapisywane w przestrzeni użytkownika. Używając na przykład libusb .
źródło
Nie mam żadnego doświadczenia w tej kwestii, ale dam dwa centy.
Możesz zacząć tutaj http://www.osr.com/index.html lub tutaj https://www.osronline.com/index.cfm
Tutaj w Brazylii mamy dobry blog na ten temat. Jest napisany w języku portugalskim i angielskim. Niestety większość artykułów jest po portugalsku.
W języku portugalskim jest post dotyczący książek na tym blogu: http://translate.google.com.br/translate?hl=pt-BR&ie=UTF-8&sl=pt&tl=en&u=http://driverentry.com.br/ blog /% 3Fp% 3D825 & twu = 1
Mam nadzieję, że trochę pomogłem
źródło