Төхөөрөмжийн драйвэр: Засвар хоорондын ялгаа

Content deleted Content added
Мөр 7:
Төхөөрөмжийн драйверууд нь [[тоног төхөөрөмж]] болон хэрэглээний програмууд, үйлдлийн системүүдийг ажиллахад хооронд нь орчуулагч холбогчийн үүрэг гүйцэтгэн ажилладаг хялбаршуулсан програм юм. Програмистууд эцсийн хэрэглэгчид ашиглахад зориулсан ямар ч техник хангамжийн програмын дээд түвшний код бичиж болно. Жишээ нь: өндөр түвшний програм "өгөгдлийг хүлээн авах", "өгөгдлийг илгээх" хоёр төрлийн үйл ажиллагаатай serial port-той харилцан үйлчлэлцэнэ. Доод түвшинд, төхөөрөмжийн драйвер нь хэрэглэгчийн компьютер дээр суулгасан тухайн serial port хянагчтай харилцах үйл ажиллагааг хэрэгжүүлнэ. 16550 UART-ыг удирдахад шаардсан комманд нь FTDI serial port хөрвүүлэгчийг удирдахад шаардсан коммандаас маш их ялгаатай хэдий software interface-тэй адилхан хийсвэр зүйл юм.
== Хөгжүүлэлт ==
Төхөөрөмжийн драйверийг бичих нь өгөгдсөн platform-ийн үйл ажиллагаанд техник хангамж болон [[програм хангамж]]ыг хэрхэн ажиллуулах талаар гүнзгий ойлголтыг шаарддаг. Учир нь драйверүүд нь техник хангамжуудыг ажиллуулахын тулд бага түвшиний хандалтыг шаарддаг, маш давуу эрхтэй орчинд ажилладаг ба буруу ажиллах юм бол гэмтэх аюултай. Орчин үеийн үйлдлийн системтэй програмууд нь системийн нөлөөлөлгүйгээр зогсдог. Хэрвээ [[төхөөрөмж]] алдаатай програмчлагдсан бол user mode гүйцэтгэж байгаа драйвер нь системийг сүйрүүлж болох юм. Эдгээр зүйлс нь илүү хүнд хэцүү, аюултай асуудлуудыг шийдвэрлэдэг. Драйверуудыг бичих нь програм хангамжийг хөгжүүлж буй компаниудад ажилладаг software engineers, computer engineer-үүдийг багасгаж байна. Учир нь тэд техник хангамжийн загварын талаар мэдээлэл ихтэй байдаг. Түүнээс гадна техник хангамж үйлдвэрлэгчид нь бүтээгдэхүүндээ баталгаа гаргаж өгсөнөөр хэрэглэгчид тэдний техник хангамжуудыг хэрэглэх сонирхол нэмэгдэх юм. physical device driver (PDD)-ыг төхөөрөмж борлуулагчид хэрэглэж байхад logical device driver (LDD)-ыг үйлдэлийн системийн борлуулагчид бичдэг. Гэвч сүүлийн жилүүдэд non-vendors олон тооны төхөөрөмжийн драйвер бичсэн ба голдуу free and open source operating systems хэрэглэж байна. Ийм тохиолдолд техник хангамж үйлдвэрлэгчид төхөөрөмжтэй хэрхэн харьцах талаар мэдээллээр хангаж байх нь чухал юм. Энэ мэдээлэл нь reverse engineering сурахын оронд байж болох ч програм хангамжаас техник хангамжийн хувьд хэцүү юм.
 
Microsoft драйверийг хөгжүүлж буй шинэ framework-р чанаргүй бичигдсэн төхөөрөмжийн драйверүүдийн системийн тогтворгүй байдлыг багасгахыг оролдож байна. Энэ нь Windows Driver Foundation (WDF) гэж нэрлэгддэг ба user mode драйвер шиг төхөөрөмжтэй харилцах message-based protocol –г ашигладаг драйверийн хөгжүүлэлтийг дэмждэг User-Mode Driver Framework (UMDF)-ыг агуулдаг. Хэрвээ драйвер нь malfunction бол тэд системийн тогтворгүй байдлын шалтгаан биш. Kernel-Mode Driver Framework (KMDF) загвар нь kernel-mode төхөөрөмжийн драйверийн хөгжүүлэлтийг зөвшөөөрдөг ба төхөөрөмжийг ажиллуулах, хүчин чадлыг удирдах, I/O үйл ажиллагааг цуцлах, асуудлын шалтгааныг мэдэх зэрэг үйл ажиллагааны хэрэгжилтийн стандартыг хангахыг оролддог.
Мөр 13:
Apple нь I/O Kit гэж нэрлэгдэх Mac OS X-ын драйверүүдийг хөгжүүлдэг нээлттэй эхийн платформтой.
Linux-ын орчинд програмистууд kernel-н хэсэг шиг, тусдаа ажиллах боломжтой modules эсвэл User-Mode драйвер ( USB төхөөрөмж гэх мэт) шиг төхөөрөмжүүдийн драйверүүдийг зохиодог.
 
==Kernel mode vs.user mode==
Орчин үеийн Microsoft Windows платформ дээрх төхөөрөмжийн драйверүүд нь kernel-mode (Ring 0 on x86 CPUs) эсвэл user-mode (Ring 3 on x86 CPUs) дээр ажилладаг. user mode дээр ажиллаж буй драйверийн гол давуу тал нь тогтвортой байдлыг сайжруулах юм. муу бичигдсэн user mode төхөөрөмжийн драйвер нь сайн бичигдсэн kernel системийг гэмтээж чадахгүй. Өөрөөр хэлбэл user/kernel-mode нь ихэвчлэн үйл ажиллагааны илүү зардлыг бий болгодог.