The Development of 3B/V*

and

Genkoo purosessa

Akira Matsui

Planning Promotion Department, Personal Media Corporation


*Note: 3B/V is a tentative name.


Note: The above figure is a half-size (640 x 512 dot) rendering of a two-page monitor screen shot, which is why it is a little fuzzy. If you would like to see the full (1,280 x 1,024 dot) screen shot, please click here.


3B/V

BTRON is an architecture that targets everything from personal computers to workstations. The specifications based on this operating system (OS) that have been designed to date are BTRON1, BTRON2, BTRON3, and micro-BTRON, in that order. All of these specifications are multitasking OSs premised on the realization of an operating environment based on a graphical user interface (GUI), and having functions suitable for the realization of the BTRON Human-Machine Interface (HMI) and TRON Application Data-bus (TAD).

Up to now, since BTRON was matched to the scale of the targeted hardware, internal construction has differed between BTRON1 and the follow-on BTRON2, BTRON3, and micro-BTRON. Specifically, BTRON1 is an OS specification aimed at 16-bit CPUs and and small-scale hardware; its internal make-up (tuning for a specific CPU and a specific system) was improved so that it also could run in an environment where there is no hard disk or in an environment in which there are severe restrictions on memory capacity. Actually, the BTRON1 specification was for an OS that could use a window system that ran at practical speed even on a mid-1980s personal computer, which is to say one that used an iAPX286 (not an iAPX386) and had no hard disk. Even today, the 1B/V3 series that our company is marketing as its main product to the general public is this BTRON1-specification OS. Because we are running an OS that originally ran on the iAPX286 with 266MHz Pentiums and so on recently, it runs lightly and at extremely high speed. In particular, the time required to boot from finishing disk check and selection of the OS for booting is the flash of an eye (2 or 3 seconds). To people used to the slow startup of Microsoft Corp.'s Windows or Apple Computer Inc.'s Macintosh, this is enough to cause anxiety as to whether the OS is really running.

In contrast to this, BTRON3 and micro-BTRON that followed BTRON2 are OS specifications targeted at 32-bit CPUs. In these OSs, we adopted a modular structure after taking into consideration such things as real-time responsiveness, maintainability and extensibility, and interaction with a distributed environment. Specifically, we divided the OS into three layers, a core kernel, a peripheral kernel, and an outer shell; in the core kernel, we manage basic resources, such as tasks and memory used at the peripheral kernel layer or above and in device drivers. For the core kernel specification, we have made use of ITRON. At the peripheral kernel level, we manage the various resources and functions that BTRON applications use, such as files, devices, processes, and events. At the outer shell level, we manage such things as GUI-related functions and kana-to-kanji conversion, which are referred to as graphic functions and the window system. The peripheral kernel, outer shell, and device drivers are realized as tasks and handlers that run under the management of the core kernel. This type of system is generally called a microkernel system; it greatly improves maintainability and extensibility inside the OS. Moreover, because it has become possible to program the OS itself and applications in 32 bits, memory limitations have disappeared, and even the processing of massive amounts of data and large image files has become simple.

Incidentally, the difference between the BTRON3 and micro-BTRON specifications is that the latter assumes utilization in a portable device, which is the point that an HMI for an environment in which there is no keyboard and a power management function have been added. One can consider the inner parts of the OSs are being almost the same.

3B/V Development Work

As for OSs that have implemented the above-mentioned BTRON3 and micro-BTRON specifications, we have completed development of "3B/MCUBE," which was implemented on the TRONCHIP and MCUBE hardware, and "B-right, " which was implemented on top of Seiko Instruments Inc.'s BrainPad TiPO. The basic parts of both of these are same. The "3B/V" (tentative name) OS that we developed this time is a port of these OSs to the x86 CPU and DOS/V [IBM PC-AT compatible] personal computer hardware, which led us to carry out the particular following work.

Furthermore, although I discuss here the development items mainly from the viewpoint of porting B-right in the past, there are actually new functions (the import of true multilingual functions, etc.) in 3B/V, which are also being developed in parallel. I will discuss the additional functions of 3B/V later.

Porting the Core Kernel

Because the dispatch processing and interrupt management portions of the ITRON-specification OS that forms the core kernel are dependent on the CPU architecture, we entirely rewrote them. Also, because the timer driver of the core kernel is dependent on the DOS/V personal computer hardware, we rewrote that portion also.

Furthermore, the ITRON-specification OS that was was ported to the x86 through this work also uses as one of its parts "JTRON/V" (tentative name), which is a merger of Java and ITRON.

Rewriting Memory Management to Handle Virtual Memory

Since OS internal memory management functions are closely related to the CPU architecture, we entirely rewrote this part also to match it to the Memory Management Unit (MMU) of the x86. By doing this, we were able to realize a demand paging-based virtual memory system in which we utilized the MMU functions of the x86. Thus it is possible for 3B/V applications to use an amount of memory exceeding the physical memory installed in the machine, and it is not necessary to carry out troublesome processing even when doing large-scale data processing.

Incidentally, 3B/MCUBE, which was implemented on the TRONCHIP, also uses a demand paging-based virtual memory system in which the MMU functions of the TRONCHIP were put to use. On the other hand, "B-right" which runs on BrainPad TiPO does not have virtual memory, because the V810 CPU does not have an MMU. Moreover, with the BTRON1-specification 1B/V3 series, we implemented a segmentation-based memory management system in which we utilized the MMU functions of the iAPX286, but due to requirements on the planning side that stated it had to run even with only a floppy disk (without a hard disk), and that performance had to be given priority, we dared not to use a virtual memory system, which is premised on a hard disk.

Rewriting Display Primitives to Handle High Resolution

In order to make use of 3B/V's performance, high-resolution, multicolored graphics are mandatory. For this reason, we entirely rewrote the lower layer of the display primitives (DPs) (the layer that directly operates the VRAM of the hardware), thus making it possible to handle even high resolution in the 1,000-dot class and a number of colors ranging from 256 all the way up to full color. At present, it is possible to have a resolution setting of up to 1,600 x 1,200 dots; this something that is based on the limitations of the graphic board hardware--the OS itself can easily handle even higher resolutions.

However, there is no compatibility among the high-resolution graphic functions that can be used with DOS/V personal computers. For that reason, although we may say it is for DOS/V personal computers, the end result is that there are limitations on the personal computer models the OS will run on and the graphics boards it can handle. Present development work is being carried out by inserting a Matrox Electronic Systems Ltd.'s Millenium graphics board into a configurable DOS/V personal computer; 3B/V at present is running only on this model and compatibles. In the future, we are planning to push forward with development in order to also handle other graphics boards as far as possible.

Rewriting Portions Dependent on DOS/V PC Peripherals

We modified the peripherals drivers, such as those for the hard disk, floppy disk, serial port, PC card, and so on, to match them to the DOS/V personal computer specification. The same was done also for the portions of the OS used during booting, and so forth.

Modifying Applications to Handle 256 or More Colors

The 1B/V3 series of the past could not use more than 16 colors, but since we can now use 256 or more colors with 3B/V, we dealt with this by expanding the color selection functions included in the basic figure editor and the virtual object attributes modification program.

Recompiling to Match the CPU

Parts other than those mentioned above, in particular applications, were basically left unmodified. However, the CPU for 3B/V is the x86. Since this is different from the CPUs for MCUBE and BrainPad TiPO, it is necessary naturally to do recompilation work. We carried out the recompilation work using GNU x86 on a SPARC and generated the OS itself and application-class objects that run on 3B/V.

We also carried out this recompilation and run-time test work for the communications software with TAD communications functions, spreadsheet software, MicroCard (card-type database), the MicroScript visual language, etc., which have been running on the 1B/V3 series and BrainPad TiPO. The porting of these to 3B/V has already been completed. Moreover, as concerns the kana-to-kanji conversion functions used when inputting Japanese, we are planning to switch the conversion engine part to famous kana-to-kanji conversion software. We are moving ahead with that with that porting work at present.

Merits and Additional Functions of 3B/V

With 3B/V, because the OS itself has become 32-bit and the method of inserting device drivers has also become systematized, future function additions and extensions have become easy to perform compared to the 1B/V3 series. Our firm is positioning 3B/V as a new platform for carrying out future BTRON function extensions and peripheral equipment additions. We are planning to load onto 3B/V various functions, the realization of which we have let pass up to now. Below, I will explain functions planned for implementation on 3B/V. Furthermore, I would like to repeat that this manuscript describes the contents of an OS that is under development. Please keep in mind there is the possibility the functions included in the 3B/V that is actually sold might not necessarily coincide with these.

Handling True Multilingual Processing and 100,000 Kanji

In 3B/V, we have implemented what is called the "true multilingual" function in the BTRON specification. This is a function that makes it possible to use through switching multiple language planes (48,400 characters can be accommodated) expressed with two bytes. In fact, it is an epoch-making function with which it is possible to handle an unlimited number of characters all at the same time. This function, in addition to being capable of use in the processing of documents in which multiple languages are literally mixed together, is utilized for the purpose of handling all the kanji in circulation in Japan (about 100,000 characters [1]) without the use of user-defined characters.


[1] This is based on the results of a survey of characters used in past printed matter, which was carried out through the cooperation of printing and directory companies; it includes almost all the characters demanded for use in printed matter.


The kanji that can be used on conventional OSs outside of BTRON, are generally the 6,355 characters of Japanese Industrial Standard (JIS) levels 1 and 2. This scope is sufficient for writing everyday text, but when it comes to slightly difficult personal names, place names, technical terms, etc., characters not contained in this scope are frequently encountered. For example, more than 30 variations exist for the character be (Table 2, Ex. A-2) of the family name Watanabe (Table 2, Ex. A-1) used in family registers. However, in the JIS standards only three character codes--(Table 2, Ex. A-2) in cell 53 of row 42, (Table 2, Ex. A-3) in cell 20 of row 78, and (Table 2, Ex. A-4) in cell 21 of row 78--have been allotted for these variants, which makes it difficult to handle the distinctions among the 30 variations of the character. Other frequently mentioned examples are the the variation of the character yoshi (Table 2, Ex. B-2) of the family name Yoshida (Table 2, Ex. B-1) in which the upper portion of the standard character (Table 2, Ex. B-2) is formed as (Table 2, Ex. B-3) not (Table 2, Ex. B-4) (the lower part is longer), and the variation of the character taka (Table 2, Ex. C-1) in which both sides of the of the upper part (Table 2, Ex. C-2) protrude above and below (Table 2, Ex. C-3). Although there is a big demand for these in personal names, these are characters that cannot be expressed with the JIS standards. Some characters that are used in personal names and technical terms are contained in JIS auxiliary kanji, and although there are cases when these are helpful, the characters given in the above-mentioned examples are not included, and there are still few OSs that can use the JIS auxiliary kanji. This situation is the same for Unicode also.

In contrast to this, if we employ the true multilingual function implemented in 3B/V, limitations on the number of kanji characters that can be used disappear, and it becomes possible to handle 100,000 characters, 1,000,000 characters, in fact, an unlimited number of kanji, including even the characters given in the above-mentioned examples. Of course, in order to actually use the kanji, it then becomes necessary to also carry out in parallel with OS development such work as the sorting of the kanji to be newly added, the allotment of codes, the creation of fonts, and the development of a kanji database to give advice on the proper use of the kanji. However, these tasks are already proceeding with cooperation obtained from the University of Tokyo Faculty of Literature and printing companies. The results are scheduled to be announced by the time 3B/V is put on sale. The first product to introduce those results will probably be 3B/V.

The 3B/V merit of being able to handle true multiple languages and 100,000 kanji is something that meets the broad needs of administrative organs, banks, libraries and humanities scholars who have been troubled with kanji in personal names and place names, and writers who are particular about kanji. It is an extremely unique function not found in any other OS that we are proud of. Incidentally, other software exists that has this kind of function at the application level, such as editors, but there is nothing other than 3B/V that allows both the OS and all the applications on top it to handle 100,000 or more characters.

Outline Fonts

In 3B/V, we have implemented the TrueType lusterlizer, which makes it possible to display and print neatly even if we enlarge the characters. As for fonts, in addition to the basic ones that we will bundle, we are planning to make it possible to install and utilize commercially available TrueType fonts. Moreover, we are planning to enable the basic text editor also to handle multiple fonts, which will make it possible to switch fonts in documents.

Networks

Since TCP/IP functions have been implemented in 3B/V, it is possible to develop applications for networks (applications in client/server form, etc.) using these. In our firm, we have already ported ftp (a file transfer protocol program) to 3B/V, and we are using this to transfer programs that have been developed via our in-house LAN. However, the present ftp is in a form in which it is executed with commands from a development-use console.

In the future, we are planning to push forward with development of an ftp that can be operated from a GUI, plus various applications for networks, specifically a WWW browser, mailer, etc.

Genkoo purosessa

The new application that makes use of 3B/V's merit of being able to use 100,000 kanji is "Genkoo purosessa." This application is close to so-called word processors, but since functions for neatly printing out documents, such as layout, have been removed to a separate application, this is software specialized to the last for manuscript writing, in other words, text input functions.

"Genkoo purosessa " is software in which the primary object was placed on faithfully reproducing the original rules for expressing Japanese in writing. For example, there are rules such as a Japanese dash (Fig. 2 [a]) or the oogaeshi repeat sign (Fig. 2 [b]) use two boxes of the manuscript paper, or that when the Japanese period and the Japanese quotation mark follow each other, they are inserted into one box (Fig. 2 [c]). Since even these rules are faithfully reproduced, Genkoo purosessa is made up so that it is possible to calculate the exact number of characters.

Also, as Genkoo purosessa displays the form of manuscript paper for either vertical writing or horizontal writing, we have adopted the metaphor of filling in characters on top of this. This is not for some trivial reason, such as to make the atmosphere of software's outward appearance agreeable, rather it is something that reflects the opinions of writers, who said they want to reproduce the rhythm of writing in which text is written page by page on manuscript paper. By managing and displaying the amount of writing in units of the numbers of lines and pages of manuscript paper, it is possible to grasp visually the state of progress. Furthermore, it is also possible to delete the manuscript form.

Another important function of Genkoo purosessa is the corrections function. When Genkoo purosessa is run in the corrections mode, the revision work that follows is carried out in a form that preserves that original manuscript, and in which the differences with the pre-corrections original are very clearly displayed. Through this function, we were able to remove the demerit of the electronic form, in which we lose track of the original manuscript, and adopt the merit of correction based on handwriting.

In addition to these, Genkoo purosessa also possesses footnote and ruby functions, and a function that displays a mark for characters that are outside of JIS levels 1 and 2. The latter is a function thought up for the convenience of the receiving side in an environment in which they cannot handle characters outside of JIS levels 1 and 2 when a written manuscript is transmitted via electronic mail, etc.

Incidentally, rather than the above-mentioned application-level functions, I think the true value of Genkoo purosessa lies in the point that it can use the 100,000 kanji that are supported on 3B/V, which become the motive power for producing colorful literary expressions. Moreover, also important is the point that in order to develop software that makes use of this merit, we created a mailing list of famous writers and designed the specification in a manner that reflects their opinions.


Want to see a giant (1,024 x 768 dot) screen shot of Genkoo purosessa doing its stuff in Japanese and English? Click here.


Reaction of Visitors to TRONSHOW

We exhibited and demonstrated 3B/V and Genkoo purosessa the other day at TRONSHOW '97, where we received a great reaction and heard people's expectations, including those of our 1B users and those of so-called prospective customers who are investigating the use of BTRON.

Most questions were for information on the commercial products, such as the exact time they will go on sale, the form they will be marketed in, pricing, the computer models they will run on, etc. Unfortunately, these have yet to be decided. As I previously mentioned, initially the models they will run on will be fairly limited, and because selling the software alone will be impossible, we are planning in principle to market them in a form that includes hardware.

Also, there was the question of whether it would be possible to upgrade from the 1B series, but since there are differences in the hardware this series runs on at present, it cannot be treated as a simple software upgrade. Having said that, we are considering adopting some measures to extend favorable treatment both to customers who are considering purchasing 3B/V in the future, and, since one can only buy the 1B series at the present point in time, to 1B series users. Furthermore, because it is possible to use all data created with the 1B series (text, graphics, tables, etc.) without modification on 3B/V also, I would like 1B series users to feel at ease about this point.

The second greatest number of questions concerned required resources, such as CPU performance, amount of memory, and hard disk capacity. Since these also are in the process of tuning, a final response is impossible, but at present, if we do not include TrueType fonts for 100,000 kanji, the same level of resources as the 1B/V3 series is satisfactory. Specifically, 3B/V runs at practical speed even with 8 megabytes of memory; media for installation is several floppy disks, and after installation the hard disk space the OS exclusively occupies is on the order of 20 megabytes. It seems the necessary specs for using 3B/V for ordinary purposes as a personal computer when even fonts are included are on the order of 16 megabytes of memory and a hard disk of several tens of megabytes. Furthermore, although there was the limitation that no more than 16 megabytes of memory could be used in the case of the 1B/3V series, this restriction has, of course, been lifted with 3B/V. The exact maximum memory amount will be decided when the OS is commercialized, but technically even several hundreds of megabytes are possible. Moreover, by employing the above-mentioned virtual memory system, it will even be possible for an application to use memory that exceeds the actual amount loaded on the computer.

For the window design of 3B/V, we used the flat type of the 1B/V1 age during the TRONSHOW demonstration, but we are planning to ultimately modify this to the three-dimensional design of 1B/V2 and later versions.

There were also a lot of questions on the development environment. Concerning this, Metrowerks CodeWarrior is planned for dealing with 3B/V also. Metrowerks is preparing a development environment for BrainPad TiPO and 3B/V under the title "CodeWarrior for SII TiPO and BTRON." This also is scheduled to be put on sale to the general public around the time 3B/V is put on sale. This development environment is a cross environment that runs on Windows.

In Closing

About six years have passed since our company began marketing to the general public the BTRON-specification "1B/note" personal computer in 1991. We are delighted there has recently been an increase in the number of companies associated with BTRON. Specifically, there are Seiko Instruments Inc., which last year announced the micro-BTRON-specification PDA "BrainPad TiPO," and Metrowerks Inc., which the other day announced a development environment for BTRON. Having been able to use TRONSHOW '97 as an opportunity to announce the development of 3B/V and Genkoo purosessa in circumstances such as these, I feel that BTRON also has greeted in a new age. We shall be happy if we receive support for the BTRON subproject and BTRON-related products in the future also.


3B/V Web Browser Under Development at Sakamura Laboratory

A basic World Wide Web browser for the soon to be announced BTRON-specification 3B/V operating system is currently under development in the Sakamura Laboratory at the University of Tokyo. For a detailed description of this software, please click here.


The above article on 3B/V and Genkoo purosessa appeared on pages 50-55 in Vol. 49 of TRONWARE . It was translated and loaded onto this web page with the permission of Personal Media Corporation.

Copyright © 1998 Personal Media Corporation

Copyright © 1998 Sakamura Laboratory, University Museum, University of Tokyo