xtratum--Abstract

这是一篇介绍基于Linux硬实时操作系统XtratuM的文章。XtratuM是由部分原RTLinux/GPL的开发人员于2004年开发,是欧洲OCERA项目的一部分。XtratuM类似RTlinux系统,XtratuM位于Linux内核和底层硬件之间。XtratuM采用了超微内核技术,其主要功能包含硬件中断管理,时钟管理和内存管理,以及一个基于优先级的调度器。当前XtratuM已经发布了三个版本,V0.1, V0.3 和V1.0。XtratuM也是一个简单的虚拟机,它采用的是半虚拟技术(para-virtulization),Linux 和其它的OS做为独立的域运行于XtratuM之上,每个域有自己独立的物理内存和地址空间,Linux是具有最低优先级的ROOT域,其它域可以是具有高优先级的实时系统,例如RTLinux。本文主要包含XtratuM与RTlinux系统的关系,XtratuM系统的功能模块和实现,XtratuM系统的使用等。

XtratuM 一词源于StratuM,意味分层的意识,也就是说XtratuM系统是一层一层的,就像"宝塔镇河妖"中的宝塔。当然,XtratuM系统不会像宝塔那么多层,那么XtratuM到底有几层呢?了解Linux系统的人都知道,Linux系统共用两层:内核和用户层。同样在XtratuM系统中,也有两层,XtratuM内核层和XtratuM用户层。类似于Linux系统,XtratuM内核向下可以访问硬件,向上可以为XtratuM用户层服务。但是在XtratuM系统中,运行于XtratuM用户层的不在是一个个的进程或线程了,而是域(domain)。什么是域呢?简言之,是一种比进程更上层的可运行单元,一个进程可以有多个线程,同样,一个域可以包括多个进程。有人会问,那域不是成操作系统了吗?我可以回答你,"you are right"。在XtratuM系统运行的域,就是一个个独立的操作系统。

在XtratuM中,Linux不在单单是Linux操作系统,它还是一个域,一个运行于XtratuM系统上的域,但是由于Linux要完成系统的启动和关闭等重要任务,它被命名为根域(root domain)。当XtratuM系统运行起来以后,XtratuM会将中断,定时器和部分物理内存管理接管过来。而Linux系统就会失去控制底层硬件中断和定时器的权限。这里为什么说XtratuM负责部分物理内存呢?我们知道,系统启动时首先运行的是Linux系统,然后XtratuM系统是以module的形式被加载,当XtratuM系统被加载后,XtratuM才去接管部分硬件设备。至于内存,它不会管理所有的物理内存,而仅仅管理除了Linux不用的物理内存。这里的不用是指能够被XtratuM系统获取并且不会被Linux内核给交换出去。具体实现我们后面会介绍。Linux启动时已经获取了自己需要的物理内存,它不在去关心或向XtratuM索取额外的物理内存空间了,但是对于其它的域,例如RTLinux系统,它的启动是通过加载工具的。它需要向XtratuM申请内存,并且是足够的物理内存。XtratuM根据实际情况会给RTLinux系统或其它新加载的域分配定额的物理内存。当然,现在的新加载域不会获取很多的物理内存,因为,Linux的运行会使用大量的内存资源,并且RTLinux系统的运行也不需要这么多空间。因此,在XtratuM 1.0中,除了域镜像占用的空间以外,XtratuM系统只会给每一个新域分配大约3MB的物理内存作为栈。因此说XtratuM只是实现部分内存管理,它不会干涉Linux对内存的使用。

既然Linux"活"在XtratuM的上面,那么Linux又是如何生存的呢?答案是通过底层的虚拟机。XtratuM就是能够支持Linux运行的虚拟机,但是它不是个令人讨厌的管家婆,它仅仅关心它认为比较重要的资源。XtratuM系统的目的是结束当前RTLinux/GPL的这种架构,并取而代之,也就是说它的目的是实现具有实时性能的新一代实时Linux系统。为了满足这种目的,XtratuM认为与实时性能相关的资源最重要的是两个:中断和时钟。为此,XtratuM采用超微内核设计思想,仅仅实现了中断和硬件时钟的管理,并且采用虚拟技术,为上层的系统或域提供虚拟中断和虚拟时钟。而Linux就是生活在这种虚拟环境中,过着被"欺骗"的生活。

待续..........

你可能感兴趣的:(xtratum--Abstract)