Chinaunix首页 | 论坛 | 博客
  • 博客访问: 15141988
  • 博文数量: 7460
  • 博客积分: 10434
  • 博客等级: 上将
  • 技术积分: 78178
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-02 22:54
文章分类

全部博文(7460)

文章存档

2011年(1)

2009年(669)

2008年(6790)

分类: BSD

2008-04-06 21:25:02

第八章 FreeBSD 5.x
                                                 译者:FinalBSD

8.1  FreeBSD 5.x
  2003年1月发布的FreeBSD-5.x 分支,是FreeBSD项目的一个重要的里程碑。在近3年的开发中,FreeBSD不管是在内核还是基本系统上都有了许多的变化。大部分的这些变化会影响到系统管理员,FreeBSD 编程者则不会,因此也不会影响到此书中讨论的任何一部分。一些例外将在下面进行阐述。

8.2  启动布局(Boot Layout)
  第一个变化是启动文件的组织方式。FreeBSD 5.x系统已将所有的模块和内核文件都移到/boot目录下。和老版本的FreeBSD一样,一些和系统启动相关的配置文件也位于此目录下。这个看起来很小的变化实际上提供了更多的便利,因为现在,在不同的设备间分离/和/boot(包含所有的内核和内核模块)十分容易。

8.3  Devfs
  FreeBSD 5.x中,我们最喜欢的特性是devfs.之前的版本,/dev被塞满了超过1000个文件。设备节点和大多数支持的设备都有一项作为文件保存在该目录下。如你所想,这个目录变得非常的大并且包含了许多不必要的文件。比如,一个有IDE设备的系统会在此目录下包含SCSI设备文件,哪怕是该系统没有任何SCSI设备。devfs中这一切弊病都之前将不复存在.
现在/dev下仅仅包含那些真实存在的设备项。实际上,FreeBSD 5.x并不和之前版本一样将/dev当作到文件系统的一个挂载点,并称之为devfs。

  devfs文件系统和proc文件系统相近。二者都是挂载点,该挂载点包含在硬盘上不存在的文件。这些文件由内核创建并且仅以文件方式出现。事实上,它们是在系统启动后被建立的。Devfs提供了更多的便利性,因为你能支持多个devfs挂载点。比如,如果你想chroot或者jail一个进程,你不需要手动创建/dev目录,取而代之的是,你可以简单的为你的进程创建一个新的挂载点并挂载devfs.

  devfs的另一个优点是可以告诉你系统真实存在哪些设备。你要做的仅仅是cd到/dev目录然后列出那些文件。这就很方便用户得到系统上所有的设备列表,更重要的是,检测到哪些设备。

8.4  a.out
  FreeBSD 5.x系列已经在基本系统中去除了对a.out二进制格式的支持。但是你仍然可以加入a.out二进制支持。这是因为a.out是种相当老的格式,并且现在都会优先选择新的ELF格式。ELF格式更灵活而且目前被广泛使用。

8.5  gcc-3.2工具链
  FreeBSD 5.x 现在使用gcc-3.2 工具链作为基本系统。这是个很重要的改变:gcc-3.x更接近ISO,并且它的C++ ABI更稳定。然而,这或许会给一些人带来麻烦。他们编写的一些程序在使用gcc-3.x进行编译前也许需要进行更新。如果你使用flex或者yacc,请确定你使用的是最新的版本,或者为你当前的版本打好补丁,因为已经确认知道他们会导致问题出现。

8.6  SMPng
  FreeBSD 5.x 已经改进为支持SMP的系统了,这一改进都来自于我们常说的SMPng(下一代SMP).尽管之前版本也支持SMP,但是性能有待提高。

8.7 内核调度实体(KSE)
  另一个新的特性是内核调度实体(KSE).KSE是个内核支持的线程系统,和Scheduler Activations在概念概念上很接近。特别的,在内核端,KSE在于对FreeBSD的调度的修改。并且在用户端使用的是POSIX线程实现方式,这种方式会利用内核提供的额外工具。然而,你不需要配置任何特殊的内核参数,就可以编译得到一个具有KSE相关修改的内核。

  为了在应用程序中使用KSE,你可以使用libpthreads来链入之。libpthreads默认并没编译进系统,所以你首先需要在系统上安装好libpthreads。然后,在它的makefile中,将-pthread选项改为-lpthread并重新链入(relink).

8.8 小结
  FreeBSD在几年的发展中已经变得成熟,并且现在是一个可用的非常稳定的操作系统了。有了SMP的增强支持和内核线程,FreeBSD会一如既往的提供强稳定性和高性能。已经加入了对一些新平台的支持,比如Sparc64和ia64.这些新的平台会帮助BSD发行版多年来继续提供高质量的开源选择。
阅读(669) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~