UX/RT and the Open XIOS Specification
Posted: Fri Jun 18, 2010 1:16 am
I am planning to write a POSIX-compatible operating system, which will be called UX/RT (standing for Universally eXtensible Real Time operating system). I already have most of the general architecture planned out. It will be primarily targeted at desktop and some types of embedded use (especially handhelds). For the most part, it will be an evolutionary improvement on existing mainstream operating systems, incorporating the best features from several different systems. Wherever appropriate, existing code and interfaces will be incorporated, rather than "reinventing the wheel".
The initial target architecture will be standard PCs (with support for both 64-bit and 32-bit systems in one distribution); certain ARM-based systems will probably also be supported once the PC port is stable. UX/RT will be smaller than most other modern desktop-oriented operating systems but will have pretty much the same amount of functionality (largely due to better layering and better integration than typical Unices).
UX/RT will be microkernel-based with a multi-server core. Much of the system will be written in Objective-C, with a significant amount of plain C as well. The kernel will be a fork of an existing real-time L4 kernel. The multi-server core will resemble QNX and Plan 9, with all non-kernel services implemented as servers providing file interfaces. A form of capabilities-based security will be essentially the only security mechanism implemented. The POSIX API and command-line environment will resemble those of Linux, and Linux binary compatibility will be available. The standard window system will be original, and wil be sort of like a cross between Rio and X (X will also be available, but it won't be the primary window system because it is too bloated and its socket-based interface won't fit into UX/RT's device-file-centric architecture). The desktop environment will somewhat resemble that of OS X, and will be based on GNUstep. It will implement compound document and application embedding support sort of like that of BTRON or OpenDoc (I want to bring the some of the modularity and flexibility of the Unix command-line environment to graphical applications).
Along with UX/RT, I will also create a new firmware standard called the Open XIOS Specification (XIOS stands for eXtensible Input/Output System; it is also a reference to MP/M's XIOS, which was an I/O layer for a more advanced OS, as opposed to the CP/M BIOS that was an I/O layer intended for a very simple OS), which will be based on paravirtualization. Firmware based on this specification will include a low-level driver for each device. There will be a standard interface for each class of device that all drivers for a class will implement (these interfaces will be functionally equivalent to real hardware interfaces but will be vendor- and implementation-neutral), and compatible operating systems will be written for these abstract interfaces rather than real hardware (therefore XIOS-compatible operating systems will only have one driver for each class of device, and all XIOS drivers will be compatible with all XIOS-compatible operating systems). UX/RT will run exclusively on top of XIOS-compatible firmware, and the PC version will include a disk-based implementation (which will also be available separately for use with other XIOS-compatible operating systems).
I am planning to start a SourceForge project for UX/RT and its XIOS implementation soon, but I am not quite sure when I will start coding (I am still in the process of researching certain things).
The initial target architecture will be standard PCs (with support for both 64-bit and 32-bit systems in one distribution); certain ARM-based systems will probably also be supported once the PC port is stable. UX/RT will be smaller than most other modern desktop-oriented operating systems but will have pretty much the same amount of functionality (largely due to better layering and better integration than typical Unices).
UX/RT will be microkernel-based with a multi-server core. Much of the system will be written in Objective-C, with a significant amount of plain C as well. The kernel will be a fork of an existing real-time L4 kernel. The multi-server core will resemble QNX and Plan 9, with all non-kernel services implemented as servers providing file interfaces. A form of capabilities-based security will be essentially the only security mechanism implemented. The POSIX API and command-line environment will resemble those of Linux, and Linux binary compatibility will be available. The standard window system will be original, and wil be sort of like a cross between Rio and X (X will also be available, but it won't be the primary window system because it is too bloated and its socket-based interface won't fit into UX/RT's device-file-centric architecture). The desktop environment will somewhat resemble that of OS X, and will be based on GNUstep. It will implement compound document and application embedding support sort of like that of BTRON or OpenDoc (I want to bring the some of the modularity and flexibility of the Unix command-line environment to graphical applications).
Along with UX/RT, I will also create a new firmware standard called the Open XIOS Specification (XIOS stands for eXtensible Input/Output System; it is also a reference to MP/M's XIOS, which was an I/O layer for a more advanced OS, as opposed to the CP/M BIOS that was an I/O layer intended for a very simple OS), which will be based on paravirtualization. Firmware based on this specification will include a low-level driver for each device. There will be a standard interface for each class of device that all drivers for a class will implement (these interfaces will be functionally equivalent to real hardware interfaces but will be vendor- and implementation-neutral), and compatible operating systems will be written for these abstract interfaces rather than real hardware (therefore XIOS-compatible operating systems will only have one driver for each class of device, and all XIOS drivers will be compatible with all XIOS-compatible operating systems). UX/RT will run exclusively on top of XIOS-compatible firmware, and the PC version will include a disk-based implementation (which will also be available separately for use with other XIOS-compatible operating systems).
I am planning to start a SourceForge project for UX/RT and its XIOS implementation soon, but I am not quite sure when I will start coding (I am still in the process of researching certain things).