T-Kernel is an open source[4] real-time operating system (RTOS) designed for 32-bit microcontrollers. It is standardized by T-Engine Forum,[4] which distributed it under T-License agreement. There is also a corresponding Micro T-Kernel (μT-Kernel) implementation designed for embedded systems with 16-bit or 8-bit microcontrollers.[5]
Developer | TRON Forum (formerly T-Engine Forum) |
---|---|
Written in | C, Assembly Language |
OS family | TRON |
Working state | Current |
Source model | Open-source software |
Initial release | January 2002 |
Latest release | 2.02.00 / June 24, 2015 |
Repository | github |
Marketing target | Embedded systems |
Available in | Specification is available both in English and Japanese |
Update method | GitHub or download |
Platforms | ARM, MIPS, x86, PowerPC[1][2][3] |
Kernel type | Real-time operating system (RTOS) |
License | T-License 2.2 |
Official website | www |
Today, it is distributed by TRON Forum, a successor of T-Engine Forum under T-License 2.2.
TRON real-time operating system family history
editIn 1984, Dr. Ken Sakamura, then a research assistant at the University of Tokyo, started The Real-time Operating system Nucleus (TRON Project) at the University of Tokyo, with a goal of designing an open real-time operating system (RTOS) kernel. The TRON framework tries to define a complete architecture for the different computing architecture layers to address the needs of different applications. Industrial TRON (ITRON) Specification OS has been the most popular TRON architecture for OS kernel layer. ITRON specification promotion was done by the various companies which sold the commercial implementations.
A different RTOS developed in TRON Project was called BTRON. BTRON stands for Business TRON and was meant for desktop PC with windowing environment. In 1989, Matsushita Electric Industrial Co., Ltd., now known as Panasonic Corporation, introduced a TRON PC that used this BTRON OS. This personal computer had an Intel 80286 chip of 8 MHz and only 2 MB of memory, but it could display moving video. Also, it had a dual-booting system that could run both the BTRON OS and DOS. Although the Japanese government once announced it would use the TRON PC in Japanese schools, the plan was dropped, partly due to economic issues with the United States.
However, ITRON specification OS has been used in many devices, household appliances, automobile electronics, robots, satellites, and in factory automation systems in Japan, China, and elsewhere. Embedded system developers claim that ITRON specification OS is the number one OS for embedded chips in both Japan and the United States.[6]
T-Kernel was developed as a successor to the ITRON specification RTOS. T-Kernel is the name of the specification and at the same time a single implementation based on the authorized source code available from TRON Forum (formerly T-Engine Forum) for free under T-License 2.2. T-Kernel was developed for T-Engine hardware platform. T-Engine was arguably the most advanced ubiquitous computing platform in the world when it was released.[7]
Now some users have begun transitioning from ITRON Specification OS to μT-Kernel.
The Japanese domestic rocket Epsilon, which was launched in September 2013, and the observatory satellite HISAKI, which was put into the earth orbit, used μITRON and T-Kernel respectively.[8] T-Kernel 2.0 was used for the control system of Hayabusa2 launched by H-IIA rocket on December 3, 2014.[9]
On December 11, 2017, it was announced that a copyright transfer agreement for μT-Kernel 2.0 specification had been signed with IEEE.[10]
On September 11, 2018, “IEEE 2050-2018,” standard based on “μT-Kernel 2.0” was officially approved as an IEEE standard.[11]
In May 2023, the IEEE recognized the RTOS, proposed, created, and released by TRON Project, as an IEEE Milestone, titled "TRON Real-time Operating System Family, 1984." [12] The certified Milestone plaque is installed on the campus of the University of Tokyo, where Ken Sakamura started the TRON Project in 1984.
Early T-Kernel history
editT-Kernel was released as an embedded RTOS for T-Engine. With subsequent version upgrades, it now supports target hardware other than T-Engine.(Supported CPU List)
T-Kernel 2.0 also supports a processor emulator called QEMU. The T-Kernel 2.0 Software Package distributed by TRON Forum includes QEMU (emulator for tef_em1d) configured to emulate T-Engine reference board, so it is possible to develop T-Kernel 2.0 applications on a PC alone.
Similar to the conventional ITRON specification OS, T-Kernel allows kernel-based programming using static memory allocation. However, in order to achieve the original purpose of T-Engine, which is “distribution of middleware,” it is desirable to be able to use T-Kernel/Standard Extension, which allows dynamic memory allocation and process-based programming.
Overview
editTo make it easy to distribute middleware, T-Kernel has separate specification for subsystem and device driver which will be suitable for different types of middleware APIs. An RTOS appropriate for individual application can be created by combining the middleware called T-Kernel Extension with T-Kernel. T-Monitor initializes computer hardware and handles the interrupt set up at the start. T-Monitor lessens hardware-dependency of T-Kernel, and improves the application portability.
Structure of T-Kernel
editT-Kernel consists of the following three components from the viewpoint of function.[13]
T-Kernel/OS (operating system)
editThis offers the basic functions as real-time Operating System. (Functions corresponding to µITRON’s functions are mainly handled by this component.)
T-Kernel/SM (system manager)
editThis offers the functions including system memory management function and address space management function in order to manage middleware such as device drivers and subsystems. This component has been extended from μITRON in T-Kernel.
T-Kernel/DS (debugger support)
editThis offers the functions for debuggers to be used in development tools.
License of T-Kernel
editThe source code of T-Kernel was distributed free of charge by TRON Forum under its own license called T-License. As of September 2024, software such as T-Kernel and μT-Kernel has been released as open source based on T-License 2.2, and can be used free of charge, including for commercial use.[14] With the original T-License, the source code could be freely modified, and it was free for both personal use and commercial use when incorporated into a product. However, under the “Single One Source” policy of T-Kernel, it was not possible to freely redistribute the source code under the original T-License.[15] T-License 2.0 has been improved to allow the redistribution of original source code and the distribution of modified source code, giving users more freedom in terms of source code distribution.[16]
Development environment
editeBinder from eSol Corporation is one commonly used integrated development environment (IDE) for software cross-development targeting T-Kernel.[17]
The current release of T-Kernel 2.0 is distributed with a plug-in for Eclipse IDE. Also, a version of T-Kernel that runs on QEMU based emulator, and the QEMU based emulator itself, are available so that testing, training, and development can be done on a PC without a target hardware.[18] It is supported by popular SSL/TLS libraries such as wolfSSL.[19]
Development of additional T-Kernel series
editIn line with the diversification of target hardware, T-Kernel with additional features has been developed such as MP T-Kernel, which supports multiprocessors and multicores, and µT-Kernel, which targets small-scale embedded systems,[20] and the specifications[21] and source code for each are also publicly available in BOTH Japanese and English.
MP T-Kernel
editThere are two types of multiprocessors: Asymmetric Multiple Processor (AMP) and Symmetric Multiple Processor (SMP). T-Kernel for AMP is called AMP T-Kernel, and T-Kernel for SMP is called SMP T-Kernel. Both T-Kernels are collectively called MP T-Kernel.[22][23]
AMP T-Kernel
editThis MP T-Kernel supports asymmetric multiple processors (AMP).
AMP systems in general consist of multiple processors (each processor does not need to be the same type). Since a copy of AMP T-Kernel is assigned to each processor, there will be the same number of AMP T-Kernels as processors in the entire system.
Each AMP T-Kernel has functions to synchronize and communicate with other AMP T-Kernels in the system. These functions between processors in AMP T-Kernel have been expanded from the interprocess synchronization and communication functions of T-Kernel 1.00 so that they can be used between processors.
User programs are executed on one of the AMP T-Kernels, and by using the synchronization and communication functions of the AMP T-Kernel, it is possible to synchronize and communicate with user programs on other AMP T-Kernels.[24]
SMP T-Kernel
editThis MP T-Kernel supports symmetric multiple processors (SMP).
SMP systems in general consist of multiple processors of the same type. Each processor has the same basic functions, and the same program code can be executed, and the main memory can be shared by all processors.
All processors are managed by a single copy of SMP T-Kernel.
Programs managed and executed by T-Kernel are dynamically allocated to a processor. Task scheduling and object management are centrally managed by the single copy of SMP T-Kernel for the entire system.
User programs do not need to be aware of individual processors. Similar to a user program for T-Kernel on a single processor, a program runs on a single SMP T-Kernel.[25]
µT-Kernel
editIt is an RTOS for small-scale embedded systems.
μT-Kernel specification is designed to be easily optimized and adapted for small-scale embedded systems. On the other hand, in order to ensure compatibility with T-Kernel, the functions that are common to T-Kernel are defined using the same interface, and the data type definitions are also the same as those used in T-Kernel.
μT-Kernel source code is available as reference code on the TRON Forum website.
From μT-Kernel 3.0,[26] the source code[27] and specifications[28] have also been made available on GitHub.
See also
editReferences
edit- ^ "T-Kernel CPU Support". Archived from the original on 2012-08-07. Retrieved 2012-07-26.
- ^ "New Platforms for the T-Engine". Archived from the original on 2012-07-30. Retrieved 2012-07-26.
- ^ "Supported CPU list".
- ^ a b "What is T-Kernel". T-Engine Forum. Retrieved 2012-05-13.
- ^ Tan, Su-Lim; Tran Nguyen Bao Anh (2009). "Real-time operating system (RTOS) for small (16-bit) microcontroller". 2009 IEEE 13th International Symposium on Consumer Electronics. pp. 1007–1011. doi:10.1109/ISCE.2009.5156833. ISBN 978-1-4244-2975-2. S2CID 27374625.
- ^ Krikke, Jan (2003-10-15). "The Most Popular Operating System in the World". LinuxInsider. ECT News Network. Retrieved 2012-05-13.
- ^ Krikke, J. (2005). "T-Engine: Japan's ubiquitous computing architecture is ready for prime time". IEEE Pervasive Computing. 4 (2): 4–9. doi:10.1109/MPRV.2005.40. S2CID 11365911.
- ^ "Welcome to T-Engine Forum & Ubiquitous ID Center (in Japanese)". TRONWARE. 146. ISBN 978-4893622907.
- ^ "TRON," the Japanese architecture in the limelight again (in Japanese)".
- ^ "IoT-enabled 'TRON' OS becomes IEEE international standard - TRON Forum now shares the copyrights with IEEE (in Japanese)". Nikkan Kogyo Shimbun. 11 December 2017.
- ^ "EEE 2050-2018 - IEEE Standard for a Real-Time Operating System (RTOS) for Small-Scale Embedded Systems".
- ^ "IEEE MILESTONE". www.tron.org. Retrieved 2024-11-06.
- ^ "T-Kernel". T-Engine Forum. Retrieved 2012-05-13.
- ^ "Source code download". www.tron.org. Retrieved 2024-11-06.
- ^ "T-License Article 4.2". www.tron.org. Retrieved 2024-11-06.
- ^ "T-License 2.x FAQ". www.tron.org. Retrieved 2024-11-06.
- ^ "eBinder: T-Kernel/μITRON-based system development suite". Renesas Electronics Corp.
- ^ "T-Kernel 2.00.01 Software Package". T-Engine Forum. Retrieved 2012-05-13.
- ^ "wolfSSL + Micro-T Kernel, TRON, T-ENGINE - wolfSSL". 2017-04-24. Retrieved 2019-02-13.
- ^ "What is T-Kernel". www.tron.org. Retrieved 2024-11-06.
- ^ "Specifications". www.tron.org. Retrieved 2024-11-06.
- ^ "AMP T-Kernel Specification Ver. 1.00.00" (PDF). February 2009.
- ^ "SMP T-Kernel Specification Ver. 1.00.00" (PDF). Feb 2009.
- ^ T-Engine Forum (Feb 2009). AMP T-Kernel Specification. T-Engine Forum. pp. 9–11.
{{cite book}}
: CS1 maint: year (link) - ^ T-Engine Forum. SMP T-Kernel Specification. pp. 9–11.
- ^ "µT-Kernel 3.0". www.tron.org. Retrieved 2024-11-06.
- ^ Forum, TRON (2024-11-01), tron-forum/mtkernel_3, retrieved 2024-11-06
- ^ "μT-Kernel 3.0 Specification". tron-forum.github.io. Retrieved 2024-11-06.
External links
edit- Official website, TRON Forum
- Tron-forum on GitHub
- T-Kernel Specifications
- Sakamura home page
- ITRON Project Archive
- Introducing the μT-Kernel Archived 2008-05-06 at the Wayback Machine
- Information about T-Engine, T-Kernel, and μT-Kernel Programming Archived 2007-10-09 at the Wayback Machine