Feb 15, 2008

  • New technical manager. See the peole page.

Nov 14, 2007

  • New S.Ha.R.K. version 1.5.4 available here, now runs on virtual machines like QEmu and VirtualBox.

Jan 17, 2007

  • New S.Ha.R.K. version 1.5.3 available here, now fully GPL compatible.

Aug 21, 2006

  • CiberMouse competition library for S.Ha.R.K. available here (RTSS 2006).

Jul 18, 2006

  • New Tracer manual draft released; documentation section restyled; experimental txt and html manual versions. See here.

Jul 17, 2006

S.Ha.R.K. Drivers

The drivers represent the hardware dependent part of the device management code, implementing the routines necessary to perform low-level accesses to the devices. Depending on the implemented management scheme, the driver code can be embedded in the Generic Kernel (as done in classical Unix systems), in a dedicated system or user thread (as in multithreaded kernels, like Solaris, or in micro-kernel architectures, like Mach or Fiasco), or in the user-level application code (as in the ExoKernel architectures or in the Nemesis vertical-structured kernel).

In our solution, the driver code can be inherited from other free OSs, that can be compiled in the S.Ha.R.K. environment using some glue code, remapping the other system calls to the Generic Kernel interface. This solution allows to support all the hardware supported by the free OS from which the driver is inherited (note that we can inherit code from Linux, that supports most of the current PC hardware).

A new Linux 2.6 Emulation Layer is designed to easily reuse all the device drivers supported by the kernel release 2.6 of Linux. This layer control all the IRQ and linux kernel timers used by a device drivers. A particular bandwidth control mechanism guaranties that any device driver running inside the linux layer cannot break the system real-time constraints. It also keeps the devices fully functional.

A detailed descrition of this device drivers control technique will be put on the documentation as soon as possible.

Supported Devices


  • Standard keyboard (not USB)
  • Linux 2.6 INPUT/KEYBOARD driver


  • Standard PS/2 mouse (not USB)
  • Linux 2.6 INPUT/MOUSE driver


  • Analog and digital joystick (not USB)
  • Linux 2.6 INPUT/GAMEPORT driver


  • VESA 2.0
  • MATROX (only the Linux 2.6 supported)
  • NVIDIA (only the Linux 2.6 supported)
  • ATI (only the Linux 2.6 supported)
  • Linux 2.6 FRAMEBUFFER driver

Frame Grabbers

  • BTTV (BT848/BT878)
  • Linux 2.6 BTTV driver

Serial and Parallel ports

  • Standard RS232 and Parallel port
  • Shark original driver

Voltage/Frequency scalable CPU

  • Linux 2.6 CPUFREQ driver

I/O Cards

  • PCI6025E
  • PCL812
  • PCL833
  • Shark original drivers patched to work with Linux 2.6 emulation layer

Network (only UDP support)

  • RTL8139
  • 3C90X
  • 3C509
  • PRO100
  • Old Linux drivers patched to work with Linux 2.6 emulation layer
bugzilla people mail links news retis