Minix2.0的源代码由两个目录组成:include/目录和src/目录:
include/目录包含了操作系统所有的头文件(即.h文件)
src/目录下包含了操作系统所有的源文件(.c或.s文件)
头文件的组织结构为:
include/目录下为POSIX标准头文件;
include/sys/目录下为额外的POSIX标准头文件;
include/minix/目录下为MINIX操作系统定义的头文件
源文件的组织形式为:
src/kernel/目录存放着MINIX操作系统第一层(进程管理)和第二层(设备管理)的源代码;
src/mm/目录存放着MINIX操作系统第三层中内存管理子系统的源代码;
src/fs目录下存放着MINIX操作系统第三层中文件管理系统的源代码;
src/lib目录下存放着MINIX操作系统使用的库例程源代码(e.g. open,read);
src/tools目录下存放着Init源程序,用于启动Minix;
src/boot目录下存放着启动和安装MINIX操作系统的源代码
-----------------------------------------------------------------------------------------------------------------------------------
minix OS的主体是以C语言编写的,在minix2.0的源代码中,以“.c”结尾的文件均为C语言源程序
minix的内核源代码少部分是用汇编语言编写的,其中大部分是关于中断与异常处理的底层程序。在minix2.0源代码中,以“.s”结尾的文件均为汇编语言源程序。
-----------------------------------------------------------------------------------------------------------------------------------
src/commands/ :包含公用程序(e.g. cat, cp, date, ls, pwd)的源代码
src/test/: 包含有一些被设计用来对新编译好的Minix系统进行完整测试的工具(由于Minix是一个用于教学的操作系统,这意味着对它常常要作修改)
src/inet/: 包含了重新编译Minix以使之支持网路的源代码
Minix的内部结构:
-----------------------------------------------------------------------------------------------------------------------------------
Minix被组织成4层,每一层执行一套定义得很完整的功能,这4层如下图所示:
第1、2层的代码位于src/kernel/下。第一层是Minix内核的最底层,该层包括完成以下的功能函数:系统的初始化、中断、消息传递以及进程调度。
Minix2.0操作系统公用头文件说明
以下头文件均在目录include/下:
ansi.h: 用来检测编译器是否遵循标准C,如果是的话,_ANSI就被定义为31415,如果不是的,则_ANSI未定义。通过这个宏来诊测。
limits.h: 定义语言类型(如整型)和操作系统(如字)的基本尺寸,提高了可移植性
errno.h: 定义了minix操作系统程序执行时可能出现的各种错误号
unistd.h: 包含了大量的重要常数和系统调用函数原型。
string.h: 包含了用于字符处理的函数原型
signal.h: 定义了所有的ANSI和POSIX通用信号,minix支持所有的POSIX信号
fcntl.h: 定义了open()和fcntl()系统调用所需的各种参数和标志, 注意:create()已经过时。但是为了保持向后兼容性,而提供。
stdlib.h: 定义了一些共用的宏、类型和函数原型
termious.h: 被controlling终端类型的使用
a.out.h: 描述了可执行文件的格式
sys/types.h: 包含重要的类型定义
sys/ioctl.h: 声明设备的控制操作
sys/sigcontext.h: 定义了sigreturn(2)系统调用的所需的sigcontext结构
sys/sigptrace.h: 包含ptrace(2)系统调用所需的宏定义
sys/stat.h: 定义了stat()和fstat()系统调用所需的结构和宏
sys/dir.h:给出目录结构的布局
sys/wait.h: 包含wait()系统调用所需的宏定义
minix/config.h: 设置了minix内核、内存管理子系统、文件管理子系统的配置参数
minix/const.h: 定义了minix操作系统各部分共用的常量(宏定义)
minix/type.h: 定义了minix操作系统各部分公用的结构
minix/syslib.h: 声明了系统库函数的函数原型
minix/callnr.h: 定义了允许的系统调用号
minix/com.h: 包含内存管理子系统、文件管理子系统和I/O任务所需的一些宏定义以及I/O任务号
minix/boot.h: 包含文件系统所需的设备宏定义以及boot程序传递给minix操作系统的参数
相关推荐
- **2.6.1 MINIX源代码的组织**:详细说明了MINIX源代码的目录结构和文件布局。 - **2.6.2 公共头文件**:介绍了一些常用的头文件,它们包含了系统调用和其他重要功能的定义。 - **2.6.3 MINIX头文件**:特定于MINIX...
1.26 fsck.minix指令:检查文件系统并尝试修复错误 1.27 ftp指令:文件传输协议 1.28 ftpcount指令:显示ftp登录用户数 1.29 ftpshut指令:定时关闭ftp服务器 1.30 ftpwho指令:显示登录ftp用户信息 1.31 gunzip指令...
少儿编程scratch项目源代码文件案例素材-直升机飞行.zip
wanjunshe_Python-Tensorflow_12888_1745868924470
健康监测_Android开发_BLE蓝牙通信_心率数据采集与存储_基于小米手环2的实时心率监测应用_支持后台长时间运行的心率记录工具_可导出SQLite数据库的心率数据分析系统_适
少儿编程scratch项目源代码文件案例素材-种花模拟器.zip
嵌入式系统开发_FreeRTOS实时操作系统_STM32F103C8T6微控制器_OLED显示屏_DHT11温湿度传感器_多任务调度_多级菜单设计_万年历算法_电子闹钟功能_参数配
基于python实现的粒子群的VRP(车辆配送路径规划)问题建模求解+源码+项目文档+算法解析,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档 算法设计的关键在于如何向表现较好的个体学习,标准粒子群算法引入惯性因子w、自我认知因子c1、社会认知因子c2分别作为自身、当代最优解和历史最优解的权重,指导粒子速度和位置的更新,这在求解函数极值问题时比较容易实现,而在VRP问题上,速度位置的更新则难以直接采用加权的方式进行,一个常见的方法是采用基于遗传算法交叉算子的混合型粒子群算法进行求解,这里采用顺序交叉算子,对惯性因子w、自我认知因子c1、社会认知因子c2则以w/(w+c1+c2),c1/(w+c1+c2),c2/(w+c1+c2)的概率接受粒子本身、当前最优解、全局最优解交叉的父代之一(即按概率选择其中一个作为父代,不加权)。 算法设计的关键在于如何向表现较好的个体学习,标准粒子群算法引入惯性因子w、自我认知因子c1、社会认知因子c2分别作为自身、当代最优解和历史最优解的权重,指导粒子速度和位置的更新,这在求解函数极值问题时比较容易实现,而在VRP问题上,速度位置的更新则难以直接采用加权的方式进行,一个常见的方法是采用基于遗传算法交叉算子的混合型粒子群算法进行求解,这里采用顺序交叉算子,对惯性因子w、自我认知因子c1、社会认知因子c2则以w/(w+c1+c2),c1/(w+c1+c2),c2/(w+c1+c2)的概率接受粒子本身、当前最优解、全局最优解交叉的父代之一(即按概率选择其中一个作为父代,不加权)。
scratch少儿编程逻辑思维游戏源码-猫猫粉碎.zip
scratch少儿编程逻辑思维游戏源码-蓝胡子.zip
scratch少儿编程逻辑思维游戏源码-美食大亨.zip
scratch少儿编程逻辑思维游戏源码-洛克人.zip
scratch少儿编程逻辑思维游戏源码-龙冲刺.zip
思幻个人引导页V2.2版本11月29日更新.zip
scratch少儿编程逻辑思维游戏源码-骑士风斩法.zip
移动应用开发_H5CSS3ionicng-cordovaMVVM模式_基于HTML5和CSS3技术实现多页面布局ionic指令数据绑定ui-route单页跳转调用手机
少儿编程scratch项目源代码文件案例素材-植物大战僵尸创造版 Ver. 1.0.3.zip
scratch少儿编程逻辑思维游戏源码-日落(2).zip
动态星空背景个人主页(带后台).zip
scratch少儿编程逻辑思维游戏源码-迷雾森林:诞生 3.2 起源觉醒.zip