Home > Projects, RTOS, SKC++ > SKC++: First Things Second!

SKC++: First Things Second!

Monday, September 14, 2009 Leave a comment Go to comments

I have been thinking about SKC++ for longer than I have been blogging about it and dynamic memory allocation should not have been my first topic. Before all else, I should have taken the trouble to explain SKC++ in more general terms. I’ll do it now…

What is SKC++?

SKC++ is a real-time, pre-emptive multitasking kernel. It is aimed initially towards small- and medium-sized embedded systems with real-time requirements, though it is equally applicable to larger systems. There is nothing radical in its architecture, which can easily be understood by anyone who is acquainted with the workings of any conventional RTOS, such as VxWorks (from Wind River). However, SKC++ is a kernel, not a full-blown RTOS. Because an RTOS is simply a kernel with extras added, it is quite possible to expand SKC++ into something which can justifiably be called an RTOS, but that’s another set of projects.

Why another real-time kernel?

My reasons for deciding to produce yet another real-time kernel are summarised in a previous post.

What are the key features of SKC++?

SKC++ is designed to be:

  • Easy to understand
  • Easy to use
  • Difficult to misuse
  • Speedy in operation
  • Economical with RAM

To this end, it has (or will have, at the product stage):

  • A simple but effective API (set of classes)
  • Good clear documentation
  • Clean and lean internals

From project to products

SKC++ is currently a project, not a product. In due course, various products will arise out of SKC++ and these will be available from Software Integrity’s main website. I’m not yet ready to come up with distinctive names for the products but the running order, as planned so far, is:

  1. A simulation of SKC++, running under Windows. This is intended not only as an evaluation tool but also as a tool for serious development of the parts of applications that can be coded and unit-tested away from the target hardware.
  2. An “unprivileged” implementation of SKC++ for the ARM architecture. Both application code and kernel code run at the system level of privilege. This is the product for those putting performance before the protection facilities offered by the full use of privilege levels.
  3. A “privileged” implementation for ARM. Kernel code runs at supervisor level. Application code typically runs at user level but SKC++ itself places no restrictions upon the levels at which individual application tasks may run their code. Switching between levels incurs a small overhead, of course, but this is a necessary price to pay for the degree of protection afforded by the use of the privilege mechanism.

Although ARM seems to me a good way to go at first, I’m not obsessed with it. I’m happy to put on the fast track any architectures you say you need, so please send in your comments about this – and anything else.

Categories: Projects, RTOS, SKC++ Tags:
  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: