Future Directions with the T-Kernel
Written by: Mohit Sindhwani (Viometrix Private Limited)
It was interesting to be at the TRON Show at the end of 2006 and catch a glimpse of what plans the T-Engine Forum has for the T-Kernel. A few major milestones were achieved in 2006 and these take the T-Kernel in different directions in an attempt to address the vastly differing needs of embedded systems designers. This article looks at some of the things that you will hear more about this year.
Where we were in 2005
By 2005, the source code for the T-Kernel and a number of ports was made public and was available to anyone who registered for free to download the code. The download included the specification and implementation of a production-ready hard real-time OS in source code form. Of course, some work was needed to get this running on your target since the T-Monitor was not supplied with the source code for reasons such as its hardware-specific nature.
However, this was good enough and many people, including me, downloaded the source code and ported it to different architectures such as the Infineon TriCore. Others started to use it for their projects and research and evaluation. The T-Kernel, as it was released, was primarily targeted at 32-bit processors with or without a memory management unit. The “Open Source T-Kernel”, as it is commonly called, provides all the features that you would expect of a modern embedded RTOS.
Release of the Standard Extension
Right from the start, the idea was that the Standard T-Engine specification was targeted at modern 32-bit CPUs that had a memory management unit (MMU). In this scheme of things, if the kernel was used by itself (or on a processor without an MMU), then it would essentially meet the specification of the kernel for a Micro T-Engine. If, however, it was used with the T-Kernel/ Standard Extension (TK/SE) that provides features such as file systems, network stacks, and most importantly, support for virtual memory using the memory management unit, then it would meet the specification of the kernel for a standard T-Engine.
In continuing with these original plans, the Standard Extension has been released to the Japanese developer community in source form. My understanding is that the documents have not yet been translated to English, so the download is not yet available from the English pages of the T-Engine Forum. Taken together, the T-Kernel and T-Kernel/SE allow the creation of fairly complex embedded and real-time systems. If you are designing a traditional embedded system, you can choose to use just the T-Kernel. If, however, you feel the need for virtual memory, the T-Kernel/SE provides the right mix of features.
The World of Small Creatures
All embedded systems designers know that a 32-bit processor with/ without an MMU is not the answer for all types of designs. There is still a very large market for 8- and 16-bit controllers that either do simple jobs, or support the larger central processors in the system. I am told by other industry people that this especially true for Asia (outside Japan) where the cost conscious are always trying to derive as much juice as possible from the tiniest controllers. Can an RTOS run on these controllers, and more importantly, was the T-Kernel in its specified form the most suitable architecture for these controllers?
The answer to the first question, of course, is: Of Course! And no-one knows that better than people who have been closely associated with the TRON Project and have seen the meteoric rise and adoption of ITRON and uITRON in the Japanese markets. The answer to the second question is, perhaps, more difficult. It is true that the T-Kernel seemed to have made the assumption that a lot of processing would be done on 32-bit CPUs.
Therefore, there was a fuzzy gap between the 32-bit worlds that the T-Kernel addressed very well, and the 8- and 16-bit worlds in which uITRON and ITRON ruled (though for many reasons they never globally achieved the iconic status they had within Japan due to the deployments in digital cameras, automobiles, mobile phones, et al).
Anyway, coming back to the original narrative, the T-Engine Forum has addressed this gap by introducing the micro T-Kernel (not to be confused with the micro T-Engine) in Nov. 2006. The micro T-Kernel has many features that make it much better for smaller and deeply embedded systems than the original T-Kernel. For example, it removes some of the more expensive features required in larger operating systems environments, such as support for the MMU. It also claims that memory usage (RAM and ROM) have both been significantly reduced. At the same time, wide compatibility is claimed for the RTOS, making it suitable for middleware distribution. Already Fujitsu, Renesas and NEC have reference implementations of the RTOS.
In March 2007, the specification and RTOS was made available to the general public. It seems that Prof Sakamura’s goal is to make this the “world’s smallest OS”. If that’s true, then this is an interesting development to watch.
One, Two, Multi…
On the one hand, it is exciting to hear about the “world’s smallest OS” and how it is likely to affect customers working with smaller microcontrollers in deeply embedded systems. On the other hand, the T-Engine Forum has been working hard to stretch the envelope on the other side and have also just announced the multi-processor version of the T-Kernel. It appears that certain customers in Japan have committed to developing products based on the T-Kernel and will be running on multi-core or multi-processor architectures. In such cases, it is important to have an RTOS that can be aware of the multi-processing capability of the platform and leverage on it.
On this front, the T-Engine Forum achieved another milestone and announced the Multi-Processor T-Kernel (MP T-Kernel) in Nov. 2006. Both Asymmetric Multi-Processing (AMP) and Symmetric Multi-Processing (SMP) configurations are addressed and will be released to the public most likely in 2007. Specifications are being drawn up for these multi-processing variations of the kernel and should also be released in 2007.
Based on what we have seen in 2006 and the projected roadmap, it would appear that a number of different activities are going on with the T-Engine Forum. If you are developing with the T-Kernel, I think 2007 will be a very interesting year, irrespective of the size, number, capability and nature of the devices that you are using.