[lug] Development & reporting tool choices

Rob Nagler nagler at bivio.biz
Tue Feb 10 16:17:02 MST 2009


Landon Cox writes:
> Please tell us more about the device driver written in perl...a kernel  
> or user space dd in perl?  What did it do?

It controls an RFID device connected via USB or RS232.  Code is under
system/freikometer here:

http://www.freiker.org/tech/wiki/Software

More impressive, I think, is netequalizer.com (open source version is
bandwitharbitrator.com) which is a traffic shaper written in Perl.  A
small amount of code sits in kernel space, which acts as a hook for
user space.

Probably the earliest interpreted kernel code I worked with was the
Berkeley Packet Filter, which ran in kernel space, but was an
interpreted stack machine.

Most of the kernel work I've done was in C.  Again, people write C,
because they don't actually think about the problem.

With respect to kernel vs user space, it's important to remeber the
origin of the word kernel is "small".  In systems like Mach and the V
System, the kernel was something that starts processes and enables
interprocess communication.  The rest of the code runs in "user
space".  Fortunately and unfortunately, Linux won out over Minix, and
we're here today thinking that all "device drivers" are written in
kernel space, because people don't stop to think it could be done
differently.  Interestingly, that's not the case on Windows.

Rob



More information about the LUG mailing list