—Toward the Release of T-Kernel 2.0 and “T2”
Aims and Achievements of T-Kernel Development
It was just 10 years ago in the year 2000 that we started development on T-Kernel. At the time, the achievements of ITRON were becoming known generally in the industry through the examples of ITRON specification OS adoption in automobile engine control, etc. Use cases of ITRON specification OS in AV devices including digital cameras and OA devices such as multifunction copy machines also increased. ITRON was becoming a mature technology at that point and was set to progress from the research and development phase to the dissemination phase in the industry.
ITRON is an operating system specification for real-time control systems. It is compact and was designed with limited functions in order to improve performance. Normally, file and device management functions, etc. were not needed. However, some manufacturers decided on their own to add these functions as the application evolved. Since such functions were not standardized, there were problems with the compatibility and reusability of software, and it was difficult to improve development efficiency.
The increasing sophistication of products has made file and network support essential, and at the same time, the development efficiency of software became an important issue. Together with the appearance of highly functional microprocessors, operating systems for general information processing were also studied. For example, there was Linux which became popular around that time. Though file and network functions were easy to use and development efficiency was also something that could be improved, high performance real-time control was unattainable with Linux, and the large demand on hardware resources such as memory was a problem. In operating systems for high performance embedded devices, an operating system with advantages of both ITRON and Linux, so to speak, was necessary and a great deal of effort in pursuit of this objective was carried out.
The operating system that resulted from this background was T-Kernel. T-Kernel aimed for high performance real-time control together with advanced information processing such as the one for which Linux and Windows are designed. And, while T-Kernel re-uses the real-time control functions of ITRON as they are, the extensibility of the operating system was enhanced with the introduction of sub-system functions, through which basic middleware (T-Kernel Standard Extension) to provide file management and process management functions was developed. In embedded devices with T-Kernel, in addition to high performance real-time control by T-Kernel itself, T-Kernel Standard Extension provides so-called general information system operating system functions and permits advanced information processing similar to ones done under Linux and Windows. Due to this system design, T-Kernel tries to meet the demand for high-end embedded devices which require both function and performance.
In fact, T-Kernel has been increasingly adopted by intelligent embedded devices that require advanced information processing such as car navigation systems, printers, and handy terminals for business use, and the appropriateness of the initial basic design was verified. The intelligence of embedded devices is expected to advance much further in the future, and T-Kernel, where high performance real-time control and advanced information processing can be both realized, will be used in more devices than before. Additionally, approximately 10 years have passed since the development of T-Kernel, and during this time, software assets on T-Kernel such as device drivers and middleware increased. From such circumstances, the basic design and software configuration of T-Kernel will remain unchanged in the future, and the basic specification of the operating system will not change either.
T-Kernel 2.0 Increases Applications That Meet the Demand of the Era
However, if we compare the time when T-Kernel was designed to the present, performance, function and integration of the CPU have progressed very much, and the capacity of memory and discs has grown by leaps and bounds. As such, the operating environment of hardware and the operating system of embedded devices have dramatically changed. In addition, we have received requests for the addition of small functions and expansion of the standardization area in the form of feedback from experience with products adopting T-Kernel and real examples of development, etc. T-Kernel 2.0 is an upgraded operating system that takes advantage of sophisticated hardware, and along with easier use, reflects the above circumstances and maintains the basic part of T-Kernel as is.
Time control functions in units of microseconds (cyclic handler, alarm handler, timeout, etc.) and support functions for large 64-bit capacity devices, etc. have been added to T-Kernel 2.0. Both functions are upward compatible additions for previous T-Kernel (T-Kernel 1.0). On the other hand, compatibility with T-Kernel 1.0 is maintained and all system calls of T-Kernel 1.0 remain unchanged since many applications do not require the functions added above. For example, T-Kernel 1.0 has a system call to control time in the unit of millisecond and system calls to carry out 32-bit device input and output operations. While these system calls remain unchanged, a system call to control time in the units of microseconds and system calls to perform 64-bit device input and output operations will be added. For this reason, T-Kernel 2.0 is binary compatible and source compatible with respect to T-Kernel 1.0 and all existing device drivers, middleware, applications, etc. for T-Kernel 1.0 can be executed as they are without recompiling.
Among the functions added above, I think an explanation regarding requests for support of large 64-bit capacity devices is unnecessary. The memory capacity of hard disks, etc. is increasing and block numbers (sector numbers) cannot be expressed in 32 bits for terabyte level capacity. On the other hand, a time control function in the units of microseconds is used in a programmable logic controller (PLC) which is a control device for factory automation (FA) that requires detailed time specifications, etc. Such demands are not great as of yet, however, in some applications, the demands are vital.
Incidentally, in one millisecond (msec) that can be specified by T-Kernel 1.0, engines and motors which rotate 6,000 times per minute (6000 rpm), rotate only 36 degrees in this time. While, in one microsecond (μsec), engines and motors rotate 1/1000 of the 6,000 rotations above, in other words, only 0.036 degrees during this time. In ordinary machine control, this level of resolution is unnecessary in many situations. However, control in the unit of 36 degrees per 1 millisecond may be too primitive for engine and motor control. Even if a 1 microsecond resolution is not necessary, there is a possibility that control in units of 100 microseconds, which is equivalent to a 3.6 degree rotation angle, may be necessary, and in that case, the added functions of T-Kernel 2.0 would be effective.
On the other hand, if we look at communication related fields, a 100M bit/second network can transfer 100K bit (10K byte) of data per 1 millisecond and 100 bits (10 bytes) of data per 1 microsecond. There is a possibility that cases where control at this level of temporal granularity is desired will increase in the future. In addition, if recent high performance microprocessors are used, the processing time of system calls and task dispatch (dispatch) in T-Kernel can be less than one microsecond. Therefore, for example, you can create tasks, conduct some sort of processing including several system call executions, and end the processing in 100 microseconds or less in total. If there are multiple tasks that perform processing similar to the above, and you would like to control the processing efficiently while monitoring time, the unit of millisecond may be too broad in some cases.
For details on the additional functions of T-Kernel 2.0, please refer to the separate document.
Figure 1 T-Kernel Road Map
Provision of One-stop Service for Immediate Use
In T-Kernel 2.0, in addition to enhancement of the Kernel itself, significant additions and improvements will be made to parts that are equivalent to “arrangement” of the surroundings of the Kernel. Specifically, the range of software to be released as open source will be expanded and the suite of software tools will be placed in one package to improve ease of use.
The source code of the T-Kernel itself has been released in the past also: however, for T-Monitor Note1) which is indispensable for using T-Kernel, only the specification was released and implementation (program) has not yet been provided as the hardware-dependency is high. In addition, some of the device drivers and development environment as well are provided as samples as they were; however, there is no official provision of device drivers and development environment for T-Kernel. Therefore, in order to use T-Kernel, it was necessary to acquire the development environment separately and develop device drivers on your own.
When T-Kernel 2.0 is released, these issues will be significantly improved and all software necessary for development will be provided as a set. In other words, T-Kernel, T-Monitor, device drivers, and the development environment will be included in one package and software development of T-Kernel can begin by only downloading this package as with many popular distribution of Linux today. We call this a one-stop service.
In this package, T-Monitor and the device drivers are hardware-dependent and some parts of T-Kernel also depend on the CPU and hardware. Therefore, these hardware-dependent parts are programs targeted for specific boards (referred to as T-Engine Reference Board) for which technical information will be released, and hardware information of the board and CPU will also be released together with the program. For manufacturers who embed T-Kernel in devices, since technical information on hardware, the porting source, and program operating on the board will be released, the manufacturers only need to compare the technical specification of the original board and target hardware, and then port and modify programs corresponding to the differences between both the original and target.
Besides providing one type of T-Engine Reference Board in T-Engine Forum, a future addition is scheduled. Important points of T-Engine Reference Board requirements are as follows. First, T-Kernel 2.0 and device drivers for T-Kernel 2.0 must be capable of operating on the board, and secondly, technical information shall be released. Unlike standard T-Engine board and μT-Engine board, the board size and connector position will not be stipulated.
The development environment to be released as part of the package is based on GCC as in the past; however, an “Eclipse” GUI base integrated development environment and simulator operating on a PC will also be provided together in addition to a compiler, linker and debugger (gdb) resulting in significantly higher usability than in the past.
In addition to the above, a major improvement will be made in the T-Kernel specification offering. Past specifications were provided in PDF format under the assumption of printing, but T-Kernel 2.0 specification will be provided in XML format as an electronic document in consideration of electronic use of the specifications. For XML format electronic specifications, necessary parts can be viewed with a browser by conversion to HTML format. Moreover, the XML data can be converted based on necessity into PDF format for printing, a suitable format for the UNIX man command, and a format that can be used as help when programmers type a system call in the development environment. The reusability of the specification itself will be enhanced.
Furthermore, ucodes will be assigned to the source codes, and a source code traceability system will be introduced to enable the systematic management of T-Kernel version and revision history. Even if a bug occurs, this system will enable easy understanding of the affected area and immediate response.
Toward the Second Stage “T2″ of T-Engine
The T-Engine project will soon mark its 10-year anniversary, and at this opportunity, the activity will be renewed significantly and the aim will be the further improvement of ease of use and the expansion of applications. We call it “T2,” details of which were announced in TRONSHOW2011. The first achievement of “T2” is T-Kernel 2.0 and the one-stop service, and further advances such as the enhancement of T-Kernel Standard Extension and the better support and offering of middleware are scheduled.
Chapter 2 of the T-Engine project toward the second stage T2 has begun.
Figure 2 T-Kernel Family
Note 1) T-Monitor is software positioned as a bridge between T-Kernel and hardware, and conducts initial hardware configuration and boot process, and sets up interrupt and exception handling of T-Kernel. In addition, T-Monitor provides a hierarchical debug function close to hardware.