User:Zephyrusjp/T-Kernel

T-Kernel is the name of a family of open source real-time operating system kernel developed by an NPO called T-Engine Forum (TEF), based in Tokyo. T-Kernel is maintained by TEF. TEF's download site offers the source files as well as the specification document itself.

History and background
T-Kernel was born in 2001 to meet the new demands of the new applications for the 21st century. It is based on the success of earlier real-time operating systems implemented according the ITRON specification, a specification created in 1980's for real-time operating systems used in embedded systems.

OSs based on the ITRON specification became very popular. Due to its popularity in embedded application area, its APIs were picked up and incorporated by other open source real-time OS offerings such as eCos and RTEMS.

However, ITRON specification had its drawbacks. For example, ITRON specification itself didn't call for strict binary compatibility among different implementations since the aim of the embedded OS was its real-time performance and 8-bit and 16-bit CPUs often required system-specific tuning in the final product. This sometimes meant that a particular implementation may decide to pass a parameter for some system calls in register by skipping the ordinary passing mechanism even. When the systems addressed by ITRON specification OS was relatively small, such an approach that invalidate binary compatibility was not deemed a problem by the developers.

As the complexity of the embedded systems grow over time, the lack of binary compatibility brought about new problems. Most notable is the lack of mature middleware packages. Developers need middleware packages for file systems, TCP/IP network protocol stack and other application area which was not foreseen at the time when ITRON specification was written down for embedded systems. The lack of strict binary compatibility means that there are no universal middleware packages for different implementations of ITRON specification OS. Each middleware package needed to be recompiled for each different implementation.

T-Kernel tries to address this problems of binary incompatibility by offering an official implementation so that the binary compatibility is assured.

Note that ITRON was the name of the specification, but in the case of T-Kernel, it stands for the specification and the implemented system. Its specification and the implementation are available for free at the same time.

Features
The notable feature of the T-Kernel real-time operating system kernel is:


 * it is a full-featured real-time OS kernel with small memory footprint,
 * it is a specification that comes with an official implementation. Its source is available for free after a user agrees to a license called T-License), and
 * its source is strictly controlled so that there are no different versions which look the same on the surface and yet incompatible at detailed API level.

The last point was to ensure the binary compatibility of T-Kernel on the same CPU so that middleware distribution is made easy.

T-Kernel comes in a few varieties.


 * Standard T-Kernel is meant for 16 and 32-bit microprocessors.
 * uT-Kernel (or micro T-Kernel) is meant for 8 and 16-bit microprocessors without MMU.
 * MP T-Kernel is for multiprocessor systems including the recent multi-core CPUs. It supports both asymmetric (AMP) and symmetric multiprocessing (SMP).

There are extensions to offer additional functions on top of base T-Kernel. One such extension is called T-Kernel Standard Extension, and it offers TCP/IP network stack and simple file systems, etc. They are all available in source code for free at T-Engine Forum website.

Usage, education, training, etc.
Application of T-Kernel includes color printers, automobile navigation systems, routers, multi-function printer/fax machines, and even modules for spacecrafts

T-Kernel has been used in education and research at higher education in Japan and elsewhere:


 * Graduate School of Interdisciplinary Information Studiesm, the University of Tokyo (Japan),
 * Faculty of Engineering and Graduate School of the University of Yamanashi (Japan),
 * Ryukoku University (Japan),
 * Shonan Institute of Technology (Japan),
 * Tokyo National College of Technology (Japan),
 * Centre for High Performance Embedded Systems (CHiPES) at Nanyang Technological University (Singapore),
 * Republic Polytechnic (Singapore),
 * HoChiMinh city University of Technology (Vietnam)

There are some books available for using T-Kernel in education and some have been translated into English.

T-Kernel is now going through an upgrade. T-Kernel 2.0 specification has been created to meet the users' new demand after the first version of T-Kernel has been used in the embedded systems development community for 7 years. T-Kernel 2.0, its source code and all relevant information, has been released since May of 2011. With the offering of T-Kernel version 2.0, additional items such as a sample bootstrap loader, sample device drivers, reference development system support (Eclipse), etc. are bundled in one package for "one stop service" to ease the installation of development environment.