PMON2000框架详解:设备驱动与系统模块

需积分: 38 24 下载量 12 浏览量 更新于2024-08-25 收藏 186KB PPT 举报
PMON是一个早期的嵌入式操作系统,最初由中科大开发,用于龙芯1和2处理器的BIOS。它经历了从最初的PMON到PMON2000的重大改进。PMON2000版本相较于早期版本,增强了硬件支持,包括硬盘、文件系统(如ext2)和显卡,同时也提升了debug功能和系统扩展性,使得移植到新系统更加便捷。 PMON2000的框架设计相当模块化,主要包括以下几个关键部分: 1. **Arch**: 这个目录包含了处理器相关的代码,如Flush_Cache等,这些是与硬件底层交互的基础,负责处理与处理器指令集架构相关的操作。 2. **Dev**: 驱动程序模块,针对不同类型的设备,如IDE的ATA接口、北桥的网卡控制器(如IC)以及PCI设备eepro100。这确保了硬件设备在操作系统中的正常工作。 3. **Kern**: 主要包含系统调用的实现,如内存管理(malloc)、时间处理(time)、信号处理(signal)和网络编程接口(socket),这些都是操作系统的核心功能组件。 4. **Net** 和 **netinet**: 实现网络协议栈,可能包括TCP/IP协议,为系统提供了网络通信的能力。 5. **Scsi**: 对SCSI协议的支持,可能是对磁盘或其他SCSI设备的控制。 6. **Pmon**: 共享代码模块,包含了一些通用的PMON核心功能,可能涉及到shell、命令解析和其他基础服务。 7. **Cmds**: 用于Pmon shell中的命令实现,这些命令提供了用户与系统的交互界面。 8. **Fs**: 文件系统模块,负责存储和管理数据,ext2文件系统在此处得到了应用。 9. **Loaderelf**: 负责加载和执行elf文件,这通常是引导加载程序或者应用程序的加载机制。 10. **netio** 和 **tftp**: 实现网络相关功能,如网络命令和通过TFTP协议传输文件。 11. **Lib**: PMON的库文件,提供了基础的C语言函数,如memcpy、memset和printf,以简化开发过程。 12. **X86emu**: 一个x86模拟器,用于运行显卡BIOS并初始化显卡,体现了对不同平台的兼容性。 在PMON2000的开发环境中,Targets目录下的子目录针对不同的硬件平台进行了定制。例如,在Bonito目录下,有start.S汇编代码用于引导加载,tgt_machdep.c处理板子特定的功能,pci_machdep.c关注PCI空间的管理和分配,dev目录则存放板子特有的设备驱动。 PMON2000作为一款针对特定嵌入式平台的定制操作系统,其框架设计注重硬件兼容性和可扩展性,通过模块化的结构,方便了新功能的添加和旧问题的修复。