با احترام و کمال تشکر از همهی کسایی که درایور مینویسن تا زندگی ما راحتتر بشه، در مورد سختافزارهای کلوز سورس، درایور های آفیشیال بهینهتر و کامل تر و کم باگ تر هستن.
درایورها جایی از سیستمعامل قرار میگیرن که بهش میگن kernel space. نزدیک ترین قسمت به سخت افزار. فرض کن تو یه دیوایس سختافزاری توسعه دادی و میخوای تو کامپیوترت ازش استفاده کنی. نقطه اتصال سختافزار تو با مادربورد کامپیوترت میشه یه اینترفیس. اینترفیس ها هم زیادن، از ساتا و اسکازی بگیر تا usb و pci و ...
حالا درایور اون چیزیه که به kernel space یاد میده که از طریقیکی ازین اینترفیسها چطوری بتونه با دیوایس تو حرف بزنه.
و هیچکس بهتر از تو که سازنده اون دیوایس هستی، زبون حرف زدن با دیوایس تورو بلد نیست.
فرض کن که دیوایس تو به دست من رسیده، رو ویندوز هم درایورش رو ارائه دادی ولی رو لینوکس نمیخوای بدی. من مجبورم دیوایس و درایور تورو مهندسی معکوس کنم، باید رو اون اینترفیس شنود کنم و دونه دونه فاکشنالیتی های دیوایس تورو پیدا کنم که چطوری کار میکنه و بعد درایوری آماده کنم که با دیوایست همونجوری رفتار کنه که درایور خودت رفتار میکنه.
حالا از بین مثلا ۱۰ تا فانکشالیتی دیوایس تو ممکنه ۲ تاش رو اصلا نتونم پیادهسازی کنم، ۲ تاش هم باگی توسعه بدم