# ITRON project

The ITRON project was the first sub-project of the TRON project. It has formulated and defined Industrial TRON (ITRON) specification for an embedded real-time OS (RTOS) kernel.
Originally undertaken in 1984, ITRON is a Japanese open standard for a real-time operating system initiated under the guidance of Ken Sakamura. This project aims to standardize the RTOS and related specifications for embedded systems, particularly small-scale embedded systems. The ITRON RTOS specification is targeted for consumer electronic devices, such as mobile phones and fax machines. Various vendors sell their own implementations of the RTOS.

## Details

ITRON, and μITRON (sometimes also spelled uITRON or microITRON) are the names of RTOS specifications derived from ITRON projects. The 'μ' character indicates that the particular specification is meant for the smaller 8-bit or 16-bit CPU targets. Specifications are available for free. Commercial implementations are available, and offered under many different licenses.
A few sample source implementations of ITRON specification exist, as do many commercial source offerings.
Examples of open source RTOSes incorporating an API based on μITRON specification are eCos and RTEMS.
ITRON specification is meant for hard real-time embedded RTOS.
It is very popular in the embedded market, as there are many applications for it, i.e., devices with the OS embedded inside.
For example, there is an ACM Queue interview with Jim Ready, founder of MontaVista (realtime linux company), "Interview with Jim Reddy", April 2003, ACM Queue. He says in the interview, "The single, most successful RTOS in Japan historically is μITRON. This is an indigenous open specification led by Dr. Ken Sakamura of the University of Tokyo. It is an industry standard there." Many Japanese digital cameras, for example, have use ITRON specification OS. Toyota automobile has used ITRON specification OS for engine control.
According to the "Survey Report on Embedded Real-time OS Usage Trends" conducted every year by TRON Forum at the Embedded Technology (ET, organized by Japan Embedded Systems Technology Association: JASA), ITRON specification OS has long held the top share in the embedded OS market in Japan and is adopted as the industry standard OS. For example, in the FY 2016 survey, TRON OSs (including ITRON specification OS and T-Kernel) accounted for around 60% of the embedded systems market. ITRON specification OSs (including μITRON) alone accounted for 43% of the market, and had a 20% lead over UNIX-based OSs (including POSIX), which are in second place behind TRON OSs.
Although ITRON specification may not be very well known overseas, OSs that conform to it have been installed in Japanese-made home appliances and exported around the world, so ITRON specification OS has a high market share. As of 2003, it was ranked number one in the world in terms of OS market share. Because its license could be easily obtained and it was free, it was used quite a bit in Asia.
μITRON (read as micro ITRON, not "mu" ITRON) specification started out as a subset of the original ITRON specification. However, after the version 3 of the μITRON specification appeared, since it covers both the low-end CPU market as well as large-scale systems, the term ITRON often refers to μITRON.
Supported CPUs are numerous. ARM, MIPS, x86, SH FR-V and many others including CPUs supported by open source RTOS eCos and RTEMS, both of which include the support for μITRON compatible APIs.

## History

TRON Project began designing the computer architecture as an infrastructure of the future computer applications, and presented an overview of the basic design at the 29th National Convention of the Information Processing Society of Japan in 1984.
* Around 1984: Development of μITRON began as a sub-project of TRON Project.
* 1987: A first comprehensive introduction of TRON Project in English was published in IEEE Micro ( Volume: 7, Issue: 2, April 1987).
** ITRON1 specification was released.
* 1989: The specifications of ITRON2, the version 2 of ITRON, and of μITRON2, a subset of ITRON2, were released.
** ITRON2 was released in two versions: ITRON, which was designed for large-scale 32-bit systems, and μITRON, a subset specification for small-scale 8-16-bit single-chip microprocessors. There is no version 1 of μITRON, and the first version is μITRON2. Of these, μITRON2 was used in a wide range of applications, including almost all major MCUs for embedded systems, because it could be used with MCUs with very low performance, and μITRON was adopted for large-scale 32-bit systems, and μITRON3 specification was developed so that it could handle 8-32 bit systems.
* 1993: μITRON3.0 specification was released.
** μITRON3 covers from small to large systems with a single specification by dividing system calls into different levels. It defines functions that are almost equivalent to the full set of ITRON2.
* Around 1996: The second phase of the ITRON subproject began.
** As embedded systems rapidly became larger and more complex around this time, there was a growing demand for greater application portability. As the performance of embedded systems improved, the functions that were not included in the ITRON specifications at the time because of their high overhead were added. According to the TRON Association survey described in the μITRON4 specification, at the time, the main concerns were not so much that "the OS used too many resources," but rather that "engineers could not use it properly" and "the differences in the specifications were too great, making it a burden to switch".
* 1999: μITRON4 specification was released.
** The original ITRON specification OS was based on the idea of "weak standardization" so that it could be used with CPUs with low performance. However, as the use of middleware on ITRON increased, there was a demand for "strong standardization" to improve software portability, so the compatibility and strictness of the specifications were improved.
* 2000: T-Engine project started.
** T-Kernel project started to promote ITRON standardization and create a next-generation RTOS, T-Kernel, with "stronger standardization" by creating a single source implementation and publishing it.
* 2010: TRON Association,which promoted TRON Project by publishing specification documents, holding technical seminars, etc. became part of T-Engine Forum.
* 2015: T-Engine Forum changed its name into TRON Forum.
* 2017: On 10 November 2017, the Institute of Electrical and Electronics Engineers acquired co-ownership of the copyright of the specification of μT-Kernel (read as micro T-Kernel) from TRON Forum. uT-Kernel is a logical successor of ITRON specification OS. The copyright of the μT-Kernel specification is now co-owned by the two parties. This was to facilitate the creation of IEEE Standard 2050-2018, IEEE Standard for a Real-Time Operating System (RTOS) for Small-Scale Embedded Systems based on μT-Kernel specification.
* 2023: IEEE recognized the RTOSs proposed, created, and released by TRON Project as an IEEE Milestone by referring to them as "TRON Real-time Operating System Family, 1984", and a certified plaque was installed on the campus of the University of Tokyo, where TRON Project leader Ken Sakamura worked as a research assistant in 1984.

## Current Status

The latest version of the μITRON specification, as of 2016, is μITRON4, released in 1999, and the latest version of μITRON4 is 4.03.03, released in December 2006. The specification states that the plan is to design specifications that will allow for a smooth transition from μITRON to T-Kernel in the future. (The English specicification is available: μITRON 4.0 Specification Ver. 4.03.00 )
Sakamura says that μITRON was already a "mature technology" in 2000. From the standpoint that more effort should be focused on the T-Kernel project than the ITRON project in the age of ubiquitous computing, μT-Kernel has been provided for small-scale systems, for which μITRON was traditionally used, and μT-Kernel 2.0 has also been provided for the IoT era.
T-Kernel is mainly used in embedded systems that require advanced information processing, but μITRON is still used in systems that do not require such advanced processing.

## Main Adoption Examples

There are design wins such as Toyota PRADO (2005) which uses μITRON for its engine control system, which are listed in 30th anniversary of the TRON Project page. Other design wins that came after that date include Nintendo Switch, a game console which uses FreeBSD as the main OS of the main unit and μITRON4.0 for wireless communication control of the controller (Joy-Con) (2017).
Note, however, during the time ITRON specification OS was distributed, TRON Project did not ask the users to mention its use in the manual or the product itself and so exact tally of the design wins does not exist at all.
μITRON is used as an OS in the invisible realm of devices such as business equipment, home appliances, and game console remote controls.
It is also used in advanced devices such as TV recording servers and automobiles, and under the advanced OS that controls the entire system, multiple MCUs and multiple OSs are installed to control them. Even if the main OS uses embedded Linux or embedded Windows, μITRON is running in the invisible area, such as the MCU for writing media on recording servers or the MCU for controlling the engine of automobiles. Nintendo Switch, a game console released by Nintendo in 2017, uses a FreeBSD-compliant OS as its main OS, but it uses an RTOS from eSOL that complies with the μITRON4.0 specification for controlling the near-field communication (NFC) of the controller (Joy-Con). Nintendo Switch uses a variety of platforms, including TRON OSs, such as the "PrFILE2 exFAT" for the file system of its main unit, which is part of "eCROS" platform based on T-Kernel by eSOL Co., Ltd., and the "Libnfc-nci" as the communication stack for handling NFC, which is part of the Android platform. In addition to Nintendo game consoles, advanced devices such as cars and smartphones are equipped with multiple OSs, including RTOSs, in addition to the main OS.
As an OS with a GUI that is closest to the average consumer, μITRON was widely used as the OS for the high-function mobile phones that became popular in Japan in the early to late 2000s. Microprocessor manufacturers that provide processors to mobile phone manufacturers, such as the SH-Mobile3, which was released by Renesas in 2004 and was used as the main CPU in many of the high-function mobile phones released in Japan in the mid-2000s, provided ITRON specification OSs as part of their platforms. ITRON specification OS was not standardized well, and each company customized the software for each mobile phone, causing the software to expand, and the OS customization became a problem for third-generation mobile communication system (3G) mobile phones. In 2003, NTT DoCoMo announced that it would be recommending Symbian OS and Linux as the OSs for its 3G FOMA service. Thus, from around 2005, "Galapagos" mobile phones also began to use general-purpose OSs like Linux rather than RTOSs like ITRON.
Even after μITRON is no longer used as the main OS for mobile phones, it may still be running in microprocessrs for camera control, etc. For example, the "Milbeaut Mobile" image processing LSI, which was released by Fujitsu in 2003 and used in many of the high-function mobile phones with cameras that became popular in Japan in the early 2000s, used μITRON as its OS. The Milbeaut series is still being sold in the 2010s as an image processing LSI for dashboard cameras, drones, surveillance cameras, etc.
In multimedia devices from the 1990s to the early 2000s, in order to achieve advanced functions such as maximizing the performance of low-performance processors and controlling video processing and network communication in real time in parallel, it was necessary to use an RTOS such as ITRON. However, on the other hand, the burden on engineers was very great, and since the 2010s, when the performance of microprocessors has greatly improved, it is not recommended to use an RTOS to control such high-function devices. Basically, embedded Linux such as Android is used, and only the parts that require real-time performance use an RTOS. Because ITRON specification OS is not well standardized, TRON Forum recommends T-Kernel as an RTOS for high-function embedded systems. In embedded devices for general consumers in the early 2000s, the series of Colorio, Seiko Epson's printer, adopted "eCROS," a software platform based on T-Kernel from eSOL in 2008.

## Loose vs Strong Standardization

ITRON's popularity comes from many factors, but one factor is the notion of "loose standardization": the API specification is at the source level, and does not specify binary API compatibility. This makes it possible for implementers to make use of features of the particular CPU model to which the implementation is targeted. The developer even has the freedom of choosing to pass the parameters using a consolidated packet, or separate parameters to API (system call, library call, etc.). Such freedom is important to make the best use of not so powerful 8-bit or 16-bit CPUs. This makes keeping the binary compatibility among different implementations impossible. This led to the development of T-Kernel in the 2000s in order to promote binary compatibility for middleware distribution. T-Kernel refers to both the specification and the single implementation based on the authorized source code available from TRON Forum (formerly T-Engine Forum) for free under T-License. So T-Kernel doesn't suffer from the binary API incompatibility.
ITRON specification was promoted by the various companies which sell the commercial implementations. There was also an NPO,TRON Association that promoted the specification by publishing it as well as other TRON specification OSes. But since the first quarter of 2010, TRON Association became part of T-Engine Forum, another non-profit organization that promotes other operating system such as the next generation RTOS, T-Kernel. T-Engine Forum, in turn, changed its name into TRON Forum in 2015.
JTRON (Java TRON) is a sub-project of ITRON to allow it to use the Java platform.