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

SHaRK: Soft Hard Real-Time Kernel

S.Ha.R.K. is a dynamic configurable kernel architecture designed for supporting hard, soft, and non real-time applications with interchangeable scheduling algorithms.

The kernel is fully modular in terms of scheduling policies, aperiodic servers, and concurrency control protocols, which typically are not modular in traditional operating systems. Modularity is achieved by partitioning the system activities between a generic kernel and a set of modules, which can be registered at initialization time to configure the kernel according to specific application requirements.

The major benefit of the proposed kernel architecture is that an application can be developed independently from a particular system configuration, so that new modules can be added or replaced in the same application, to evaluate the effects of specific scheduling policies in terms of predictability, overhead, and performance.

The kernel supports device scheduling, thus allowing to extend scheduling algorithms used for the CPU to other hardware resources. A modular file system is available, and it allows the user to specify own disk scheduling policies.

Finally, the system is compliant with almost all the POSIX 1003.13 PSE52 specifications to simplify porting of application code developed for other POSIX compliant kernels.

Why S.Ha.R.K.?

Nowaday, real-time computing is required in many application domains, ranging from embedded process control to multimedia systems. Each application has peculiar characteristics and for this reason, a lot of different scheduling algorithms and resource allocation protocols have been proposed to conform to such different application demands, from the classical fixed or dynamic priority allocation schemes to adaptive or feedback-based systems.

Most of the new approaches have been only theoretically analyzed, and sometimes evaluated using a scheduling simulator. In this case, the algorithm performance is not evaluated on real examples, but only on a synthetic workload. This choice is often related to the fact that it is very difficult to modify an existing operating system (OS) to implement new scheduling algorithms and it is also unrealistic to develop a new kernel whenever a new scheduling algorithm is proposed in the literature.

Another problem is that most of the new approaches in real-time scheduling are limited to the CPU resource, and a scarce attention is dedicated to all the other devices in the system. This is mainly due to the fact that the classical OS structure does not permit a precise device scheduling (due to problems involving resource contention, priority inversion, interrupt accounting, long non-preemptive sections, and so on).

The objective of S.Ha.R.K. is to build a research kernel expressly designed to help the implementation and testing of new scheduling algorithms, either for the CPU or for other resources.

This main goal also require that also these objectives have to be met:

  • achieve independence between the kernel mechanisms and the scheduling policies for tasks and resource management;
  • configure the system at run-time by specifying the algorithms to be used for task scheduling and resource access;
  • achieve independence between applications and scheduling algorithms.

How does S.Ha.R.K. looks like?

S.Ha.R.K. is the evolution of the Hartik Kernel and it is based on the OSLib Project.

S.Ha.R.K. looks like a set of libraries that are added to the OSLib's libraries. Each library cover a specific part of the implementation of the system: there are libraries that contains kernel-related functions, libraries for the Modules and libraries for the Device Drivers.

bugzilla people mail links news retis