Chinaunix首页 | 论坛 | 博客
  • 博客访问: 408762
  • 博文数量: 61
  • 博客积分: 1991
  • 博客等级: 上尉
  • 技术积分: 492
  • 用 户 组: 普通用户
  • 注册时间: 2007-05-08 12:28
文章分类

全部博文(61)

文章存档

2011年(5)

2010年(21)

2009年(3)

2008年(4)

2007年(28)

我的朋友

分类: BSD

2007-05-09 14:33:38

应用程序通过系统调用访问内核的系统服务。在FreeBSD中按下面几个方面进行组织:

  • 基本内核工具:计时器和系统时钟操作、描述符管理、进程管理。
  • 内存管理:页、交换。
  • 普通系统接口:I/O、控制、描述符的多路操作(此处不理解multiplexing operations performed on descriptors)。
  • 文件系统:文件、路径、路径名解释、文件锁定、I/O缓冲管理。
  • 终端操作:虚拟终端、terminal line disciplines(没读懂)。
  • 进程间通讯(IPC):Sockets。
  • 网络通讯支持:通信协议、一般网络工具(如路由)。

上面的这些软件部分是独立于机器结构的,可以支持不同的硬件架构。

内核中与机器结构相关部分是与主要代码隔离开的。任何与机器结构无关的代码中都不包括为特殊架构而编写的条件代码。当需要执行与机器结构相关的动作时,与机器结构无关的代码调用一个方法,这部分方法是在与机器结构相关的代码中实现的。

下面是与机器结构相关的软件部分:

  • 低级系统启动动作。
  • 故障处理。
  • 运行时的进程上下文的低级操作。
  • 配置和初始化硬件设备。
  • 运行时的设备I/O。

内核中只有一小部分用来初始化系统。这部分代码在系统运行加载和可靠的设置软硬件环境是被用到。有些操作系统在这部分代码执行完成后会覆盖或丢弃它们。FreeBSD不收回被系统加载使用的内存,因为在典型的机器中,这部分内存只占内核资源的0.2%。而且,这些代码并不是在内核中的一个地方——它们通常分布在内核中。

阅读(1479) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~