首页 理论教育 HelloChina-操作系统实现之路

HelloChina-操作系统实现之路

时间:2023-10-21 理论教育 版权反馈
【摘要】:Hello China V1.75具备下列功能:多线程。Hello China基于多线程模型,可以同时运行多个线索。当前版本中,Hello China总共支持16个不同的线程优先级。Hello China实现了完善的任务同步机制,包括事件对象、定时器、线程延迟(睡眠)、核心线程对象等功能,可以很容易地完成多个线程之间的同步运行。Hello China V1.75的PC版,支持Virtual PC、VMware等虚拟机。

HelloChina-操作系统实现之路

Hello China V1.75具备下列功能:

(1)线程。Hello China基于多线程模型,可以同时运行多个线索。在嵌入式开发中,可以通过创建多个线程的方式来实现多任务处理。

(2)可抢占式调度。线程的调度方式采用了可抢占的方式,这样可使得系统的响应时间非常短暂,对于关键的任务(优先级高的线程)能够尽快地运行。当前版本中,Hello China总共支持16个不同的线程优先级。

(3)任务同步。Hello China实现了完善的任务同步机制,包括事件对象、定时器、线程延迟(睡眠)、核心线程对象等功能,可以很容易地完成多个线程之间的同步运行。

(4)共享资源互斥访问。通过互斥体(MUTEX)、信号量(Semaphore)等核心对象可以实现多个线程之间的共享资源互斥访问。

(5)内存管理。Hello China实现了完善的内存管理机制,包括物理内存的申请、释放,基于页面的物理内存管理,基于硬件MMU的虚拟内存管理,以及应用程序本地堆(Heap)等功能。还实现了标准C运行期库的malloc、free等函数来供应用程序直接调用。另外,对于基于PCI总线的硬件设备,Hello China还提供了一组内存管理接口,使得设备驱动程序很容易把设备内存映射到CPU的内存空间中,从而完成设备的直接访问。

(6)定时机制。Hello China实现了毫秒级的定时器机制,一个线程可以通过系统调用SetTimer来设定一个定时器,在定时器时间到达后,操作系统会向该线程发送一个消息或调用一个回调函数。

(7)完善的消息机制。每个线程具备一个本地消息队列,其他线程(或操作系统)可以通过系统调用向某个特定的线程发送消息,从而完成线程之间的通信

(8)中断调度机制。Hello China实现的时候充分考虑了不同CPU的中断机制,采用了一种中断向量加中断链表的中断调度机制,可以适应Intel等基于中断向量组机制的CPU,也可以适应Power PC等基于单中断向量机制的CPU。

(9)PCI总线支持。Hello China当前版本的实现中,可以对系统中的单条PCI总线进行列举,从而发现PCI总线上的所有物理设备,并为发现的每个物理设备创建一个管理结构与之对应。这样设备驱动程序就无需自行检测总线,只需要向操作系统提出申请,操作系统就可根据设备ID,把设备配置信息传递给驱动程序。这样的体系结构使得设备得以集中管理,资源得以集中分配。(www.xing528.com)

(10)完善的驱动程序支持框架。定义了一个通用的设备驱动程序接口规范以及一组应用程序接口函数,使得不论是驱动程序的开发,还是驱动程序的访问,都十分方便。

(11)文件系统支持。当前版本的Hello China可支持FAT32文件系统的高效读写功能,支持NTFS文件系统的读取功能(因为NTFS文件系统规范不公开,所以无法实现其写入功能)。同时提供了一组供文件系统调用的接口函数,很容易在系统中增加其他文件系统的支持。

(12)实现了完善的字符命令行用户接口和图形用户接口功能。使用字符命令行接口,可以方便地遍历文件系统、查看CPU占用率、诊断故障、操纵设备等。而GUI则提供了基本的界面元素和API,应用程序可调用这些API,实现更加丰富的界面元素。

(13)实现了可执行文件的动态加载功能。使操作系统核心模块与外围应用程序完全分离。可通过开发应用程序扩展操作系统功能。

(14)实现了系统调用功能。这是隔离应用程序和操作系统核心模块的基础机制。

(15)提供了较为完整的应用开发工具包(SDK),用户可通过Visual C++、Visual Studio等开发环境,方便地开发应用程序,而无需对操作系统进行任何修改。

(16)Hello China V1.75的PC版,支持Virtual PC、VMware等虚拟机

此外,Hello China还提供了其他操作系统相关的服务,并实现了基于TCP/IP的网络协议栈(本书不涉及这部分内容)。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈