Hacking the Linux Kernel
Over the years I have been using Linux, I have added my own little things to
the kernel. Only one of these have I actually sent in to Linus (actually,
two things, but only one made it into the kernel - I can whinge about the
other one later)
- I have an RCS-style string embedded into the binary kernel output file
(I can tell what version/build the kernel is by looking for this string)
- My disk drive seems to have changeline problems, so some of the floppy
code is hacked to try and ignore read-only errors (I dont use my floppy much
so it isnt much of a problem)
- I used to have an IDE drive as well as several SCSI drives, so the drive
activity accounting was bogus unless I swap the definition of the drive
numbers for accounting.
- The delays/messages from the sbpcd driver really annoyed me when I was
using a sbpcd rom drive (now I have a SCSI one)
- I have an Apollo-Domain hirez monochrome monitor and video card that I
use in an old '386 as an Xterm, every now and again I think of integrating
my drawing code into the kernel as a console device. .. (nah, later)
- I use a program called "qterm" to automatically ID the terminal type
that you are useing. One day I am going to get a definitive idstring from
the linux console matched up with the config files for this program.
- I dont know about you, but the key on my keyboard labled "backspace"
sends the ASCII code called "BS" and the key on my keyboard labled
"delete" sends the ASCII code called "DEL". This seem more logicall to me
than "backspace" sending "DEL", "delete" sending "^[[3~" and "BS" being
possibly missing or possibly some meta- "backspace". Of course, I dont use
emacs either, so it might just be me that is insane.
- The seeq8005 ethernet device driver in the kernel was written by me.
This driver probably should get a little bit of attention to make it
slightly better, and then be left to rot due to the fact that not many
people use these cards anymore. (not even me - my motherboard with builtin
8005 ethernet went the way of the dodo)
- Now I get the chance to whinge about my Plug-and-play-ISA support that I
have written. I got into a fight with someone else who was also writing a
similar extension (we had been asked to co-ordinate before anything went
into the kernel) and as a result neither of our patches made it into the
kernel. I hear that Linux 2.3 will include most of the functions that my driver
was intended to do - maybe I should start waving my flag and see if anyone
wants my patch to work from . . .
- One day I will submit my SCSI error message clean ups to the SCSI
- A long time ago, I got hold of some ST-506 MFM hard-drive controller
boards that spoke SCSI (Adaptec ACB-4000 boards). Each one of these boards
allowed two MFM hard-drives to be
plugged into a SCSI bus (lun0 and lun1). At around the same time I almost
got a large number of ~112M MFM hard-drives. The problem with these
boards is that they didnt support the identify command (the boards were a
hold-over from the old SASI predecessor of SCSI and the identify command was
optional for that) I had to hack support for this into scsi.c. I also had
to write a special low-level format program. Now when I got this lash-up
working, with the possability of 14 of these drives online (that would be over 1.5 Gig
of Hard-Disk !! - WOW!!), the question was, would I be trying RAID, or just
using them as a noisy electric bar heater replacement??
- If I'm superuser, I want to trace SUID programs with full priveledges
- I have added somebodys iso9660 "override" patch - I have a archive cdrom
with rock-ridge extensions where the root dir of the CD is marked unreadable
except for the owner !!!!
- I think that a couple of the error messages within ipv4 could be
improved by using my replacements.
Back to the hacks page