Before you begin to write a SCSI driver for , you will need to obtain several resources.
The most important is a bootable system--preferably one which boots from an IDE, RLL, or MFM hard disk. During the development of your new SCSI driver, you will rebuild the kernel and reboot your system many times. Programming errors may result in the destruction of data on your SCSI drive and on your non-SCSI drive. Back up your system before you begin.
The installed system can be quite minimal: the GCC compiler
distribution (including libraries and the binary utilities), an editor, and
the kernel source are all you need. Additional tools like
less will be quite helpful. All of these tools
will fit on an inexpensive 20-30 MB hard disk..
Documentation is essential. At minimum, you will need a technical manual for your host adapter. Since is freely distributable, and since you (ideally) want to distribute your source code freely, avoid non-disclosure agreements (NDA). Most NDA's will prohibit you from releasing your source code--you might be allowed to release an object file containing your driver, but this is simply not acceptable in the community at this time.
A manual that explains the SCSI standard will be helpful. Usually the technical manual for your disk drive will be sufficient, but a copy of the SCSI standard will often be helpful.
Before you start, make hard copies of
one of the existing drivers in the kernel. These will prove to be
useful references while you write your driver.