Bir donanımın nasıl davrandığını bilmiyorsan o donanıma sürücü yazamazsın. Bundan dolayı da datasheet okuman gerekli, tabii datasheet okuyabilmek için de belirli bir elektronik bilgisi gerekiyor. Kütüphane kullanamazsın, sadece kernel API'lerini kullanabilirsin. printf() gibi C standart kütüphane fonksiyonlarını bile kullanamazsın, onun yerine kernel'e günlük yazmak için (dmesg ile erişilebilecek günlükler) printk() kullanabilirsin. Bu yaptığın sürücü ile Linux çekirdeği aynı seviyede çalışıyor, nasıl ki çekirdeğin kendisi C standart kütüphanesi kullanamıyorsa sen de kullanamazsın. Fakat bu geliştirdiğin sürücüler ile Linux çekirdeğine aslında katkıda bulunuyorsun ve CV'ne yazabileceğin bir beceri olmuş oluyor sürücü yazmak.
Eğer nasıl çalıştığını bildiğin bir donanım varsa onun sürücüsünü okuyabilir ve sürücü yazmaya ufak adımlar atabilirsin.