RMI OS
2010年12月15日
过去的4年(或者六七年)我都做了什么?我现在能做什么?我以后又会做什么?是要对自己负责的时候了,如果曾经努力,那么请一定相信自己;如果曾经虚度,那么,就不能只恨自己太平凡。
RMIOS This section describes RMIOS, a simple execution environment designed to run applications on RMI XLR/S processors, without incurring the overhead resulting from running applications on top of an operating system such as Linux. RMIOS and the XLR/S do not require a pre-emptive OS so data-plane applications can run natively in run_to_completion mode. 一个简单的可执行的环境,设计用来运行基于RMI XLR/S处理器的应用程序的,不引起例如运行于linux这样的操作系统之上的应用程序的overhead。RMIOS和XLR/S并不要求一个预先。。的os,这样,。。。应用程序可以在本地的run_to_completion模式下运行。
RMIOS, like most embedded operating systems, is akin to a container, made up of device drivers, c library (hereafter referred to as RMIOS components) etc. Applications are dropped into the container and linked with the required RMIOS components, resulting in an elf-executable for RMI XLR/S. The application/executable is then launched/executed from the command-line interface provided by the bootloader or Host OS.
RMIOS,和大多数的嵌入式系统一样,与容器相似。由很多驱动程序、c库函数等等组成,参考RMIOS的组件。应用程序被扔进这个容器中,并且和所需要的RMIOS的组件链接起来,产生一个elf格式的针对XLR/S的应用程序。这个应用程序/可执行 通过bootloader或者是主机os提供的命令行接口被 加载/执行。
To comply with different copyright requirements, RMIOS has been partitioned into 'rmios kernel' and 'rmios modules' (hereafter referred to as rmios_lib and rmios_modules). While the former contains code developed at RMI, the latter contains sources from third parties.
为了满足不同 的版权需求,RMIOS已经被分成了"RMIOS"和"RMIOS 模块"(这里可以参考RMIOS的库和模块)。前者包含有RMI开发的代码,后者包含有第三方的代码。
RMIOS的组件
Following is the description of the components that make up the RMIOS.
KERNEL: This is made up of code that can be used to initiate timer-interrupts and exports routines to setup interrupt handlers for various devices.内核:这些代码用于加入定时器中断和export例程,为各种设备设置中断处理。
LIB: It consists of utility routines such as extensions to newlib, packet inspection routines, a random number generator etc.
库:包含有应用程序,比如新库,包检查例程,一个随机发生器等等。
DRIVERS: Contains drivers for GMAC, XGMAC, SPI4, UART and the third-party 'Vitesse Driver' (PHY)
驱动:包含有用于GMAC,XGMAC,SPI4,UART和第三方"Vitesse驱动"
NET: Made up of code that initializes networking-layer abstractions for applications, such as packet pool, gmac devices etc.
网络:由用于应用程序,比如包pool,gmac设备等等的初始化网络层抽象的代码组成。
NEWLIB: It is the mips-xlr port of opensource 'newlib', the C library intended for use on embedded systems.
新库:开源的mips-xlr端口,用于嵌入式系统的c库
Modules include a POSIX/ANSI-C based library for Unix platforms which provides non-preemptive priority-based scheduling for SW threads of execution, an EXT2 filesystem library and the Performance API (PAPI) for accessing hardware performance counters.
模块包含有基于 POSIX/ANSI-C 的UNIX平台库,提供了针对SW线程执行的非抢占式调度。一个EXT2文件系统库和性能API(PAPI),用于访问硬件性能counters