I am very enthusiastic in writing device drivers for a microcontroller(like PIC, Atmel etc).
I am a newbie in this controller-coding-area.
Is writing device drivers for a controller the same as we write for linux( or any other OS)?
If you are thinking about developing the device drivers to interface your device with a host computer (probably using USB), then most of the microcontrollers nowadays implement default classes that rely on native drivers.
A concrete example:
If you use a PIC18F4555, you can use the regular HID (human interface device) windows driver to communicate with your microcontroller (given you implemented it correctly). No need to develop any driver.