[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

useful libraries (includes NIC drivers)



I found some libraries which look like they might be very useful.

Take a look at:
http://www.cs.utah.edu/projects/flux/oskit/

This is part of a research project at the University of Utah dealing with OS 
and language interactions.  To facilitate their research, they have bundled 
libraries of components which can be reused as support pieces for other 
operating systems.  These include device drivers, file systems, name space 
implementations, and X client libraries.

What caught my attention is that the libraries include the FreeBSD network 
stack, and the device drivers for SCSI, IDE, and network devices from Linux 
2.0.29.
All these libraries use a consistent interface, and are fully documented as to 
the functions which the OS using the libraries is required to supply.
The libraries currently have X86 code only for hardware-dependent code, but 
since the drives are based on Linux code pretty much verbatim, any drivers 
which also run on other Linux ports should be portable using these libraries 
(Alpha, MIPS, ARM, Sparc, etc.).

The documentation addresses performance concerns.  Since the libraries have a 
layer of wrapper code around the FreeBSD network code and the Linux filesystem 
and device driver code, you do take a performance hit.  The performance 
reduction is small, so you will have to decide on a case by case basis whether 
the hit is too large (and also whether the code is too large).

The nice thing about these libraries from a development stand point is that 
the functionality is well debugged, and the interface is very well defined and 
extensible (based on the concepts of Component Object Model), so you can 
develop using these libraries, and if the code is too large, or performance 
too slow, you can reimplement some or all of the code to suit your needs; if 
you keep the same interface, that should be the only thing you have to change, 
the rest of the app can remain the same.

I hope to have a first cut of an RTEMS support file in about a day or two, 
which will map the functions needed by these libraries to RTEMS function 
calls.
I'll post that and the results of my first tests with these libraries in a few 
days.

-- Chris Caudle