作者:李小嘴
花了几天时间装了一下gentoo,跟以前的感觉完全不同,在新本里用gentoo,如果配置好的话,确实有一种行云流水的感觉。讨论win和linux哪个快已经不是什么新鲜的话题了,但少数人说linux快多数用过linux的人却不信,归根到底,问题在于会不会配置和善不善使用。尤其对于gentoo这种基于源码编译的linux 的distribution,配置更是至关重要了。下边就这几天的经验,分享一下如何针对gentoo作极速配置,虽然针对gentoo,但是对于其他linux的distrubution来讲同样有借鉴作用。
1,内核编译。内核配置的重要性不需要细说。这里只指出三个跟桌面系统速度和流畅性密切相关的重要配置选项。第一是io调度选项,选择CFQ I/O scheduler比较合理,他为内核和用户层平等分配资源,这样内核IO调度会稍受影响,但用户IO调度会更流畅。第二是先占式选项,preemption model,改选项允许进程先占,非常适合低延迟的桌面操作系统。第三是HZ值,越大表示进程切换频率越高,对于多任务操作系统来讲,进程切换频率越高表示各任务运行越平滑,但是整个系统的运行效率其实是下降了的。所以这里建议选择300,基本可以满足桌面要求并且效率不会有太多下降。linux默认表现慢于win的原因之一就在这里,linux的图形界面是作为用户进程运行在内核之外的,而默认配置却一贯强调内核运行速度和效率,这些配置就是将内核资源尽量过渡给用户进程使用,使用户态下的应用程序运行更流畅。
2,gcc选项。gentoo是基于源码编译,所以gcc编译时选项很会影响程序运行速度。常用的选项有,-O2,进行二级优化,-pipe 使用管道文件 -fomit-frame-pointer,不再寄存器中保存数据。这些都是比较常用的选项,还有一个比较重要,但容易被忽略,就是-march选项,改选项表示针对某款cpu编译出特定的代码,默认是i686,这是比较通用的选项,可以保证编译的程序一定可以运行,但是很多新cpu的特有特性却发挥不出来了,比如我的本子,cpu是intel core2 duo,编译选项使用-march=nocona,就可以产生只针对这款cpu的特定代码,程序运行效率会有很大提升。
3,显卡驱动。一定要安装官方显卡驱动,开源的驱动会极大影响图形界面的效率,很多其他distribution默认会安装好驱动,尤其是各distribution的最新版,gentoo因为其独特的安装方法,显卡驱动要手动安装,装好了之后,像firefox等这样的程序运行起来就不会有老牛拉车的感觉了。
4,把tmp文件夹挂到内存里。使用tmpfs文件系统,他类似于ramdisk,但是优点是可空间可伸缩,很多应用程序需要在tmp文件夹保存一些临时数据,挂到内存里之后,可以大大提高运行速度,有人建议只在内存比较大的时候在挂tmp,其实不然,通常情况下tmp文件夹内容不会多于10几M,以现在的内存容量拿出这些内存不成问题,如果内存够大,可以把/var/tmp也挂上,或ln到tmp即可,这是因为某些程序,比如emerge,会使用该目录,小内存不适合使用,因为在编译大软件包的时候,可能会失败。当然还可以在home根目录下做点文章,因为几乎所以程序启动时都要读写这里的配置文件,可以把他加到内存里,但这样操作比较复杂,因为home下的其他文件会受影响,理论上可以通过软连接和ramdisk解决,但是一些软件的配置不易保存,还有人建议把lib和bin这些东西都加到内存里,理论上都是可以的,但是这些无疑是用启动时间来换运行时间,操作不易实现。
5,hdparm,修改硬盘参数,改成dma 32bit……,硬盘读写速度快了,程序启动和某些程序的运行速度就会提高。
6,图形界面的配置。加速并不代表一定要使用wmaker或之类的轻量级窗口管理器,像gnome,kde这些仍然可以快速启动的。程序的运行本身至于硬件,内核配置和gcc有关,这里要说的是启动速度。通常这些程序第一次启动会稍慢一些,因为要加载很多库到内存,第二次启动会快些。这里有一个原则,就是,只加载必要的字体,字体加载可以从xorg.conf文件中修改,字体加载过多会影响启动速度,况且我们通常只会使用一两种字体。
当然这样优化只是一般性质的优化,有很多程序启动慢是出了名的,比如firefox和openoffice,firefox的启动在win下也是比较慢的,在linux下firefox和win下差不多,openoffice就比较爽了,在我的电脑里,启动速度要比win下的wps还要快一些。

