委会:在五秒钟内启动的Linux2008年9月22日此文章由唐·马蒂在Linux管道工会议周四,Linux开发人员在英特尔PowerTOP的作者,设计师Arjanvande法师,和Auke旺角,另一个在英特尔的Linux开发的开源技术中心,表明了Linux系统,在五秒钟内启动。硬件是华硕EeePC,固态存储,和两个开发两个软件负载击败5秒大关:一个改良的Fedora和一个改良的Moblin。他们托起观众的EeePC,因为所需的时间,完成引导不到投影机的同步所需的时间。他们怎么办呢?阿尔扬说,用正确的态度开始。“这不是启动更快,这是在5秒内启动。“保存在这里和那里,而是为整个系统的时间预算,使每一步的引导在其限定的时间完成。并没有作弊。“阿尔扬说,“完成“是指CPU和磁盘引导闲置。不公平了桌面,同时还从幕后服务。(一位听众指出,微软做到这一点。)“启动”的时间不包括网络,但没有包括开始NetworkManager的。与传统的硬盘系统,将不得不花费更长的时间来启动:阿尔扬说,他已运行在一台ThinkPad相同的负载,并取得了10秒的开机时间。Fedora的开箱,从电源到45秒GDM登录屏幕。被称为一个工具Bootchart,ZigaMahkovec,提供一些细节。在一个Fedora的启动(图1)Bootchart图,系统做了一些显然是浪费时间的事。它花了整整一秒开始回环设备检查,看看是否系统上的所有网络接口的环回。然后还有两秒钟来启动“sendmail的。”阿尔扬说,“每个人自付,因为找不到要运行的邮件服务器,“并建议共同使用笔记本电脑的情况下,SMTP服务器仅用于外寄邮件的用户只需运行ssmtp的。在Fedora上的另一个耗时的过程,“setroubleshootd,”一个有用的工具寻找与安全增强Linux(SELinux)配置问题。花了5秒。Fedora的是不要责怪一切。一些上游项目以及令人费解的延误。启动XWindow系统上运行的C预处理器和编译器,以建立它的键盘映射。Ubuntu的启动时间大约是相同的:两秒钟(图2)。花12秒,运行modprobe运行一个shell运行modprobe,结束了加载一个模块。许可证限制的驱动程序添加工具需要秒2.5系统不需要限制司机。“其他人都支付的二进制驱动程序,“阿尔扬说。和Ubuntu的GDM的纯CPU时间2.5秒,显示背景图片。图1这两个版本使用闪屏。阿尔扬和Auke同意,“我们恨闪屏,你看到它的时候,我们要做到。“开发时间,分布在花飞溅屏幕是比启动速度不够快,不需要一个花的英特尔团队。他们怎么做的:内核步骤之一是使预算。内核得到一秒开始,包括所有模块。“早启动”,包括init脚本和后台任务,得到另一个第二。X取得另一个第二,得到两个桌面环境。内核没有initrd的,这需要半年什么也没有第二。因此,为引导所需的所有模块必须编译进内核。“你覆盖95%的笔记本电脑有一个模块的极少数,“阿尔扬说。他建议建立一个initrd的图像,以支付余下的5%。一些核心工作,使人们有可能做一些子系统的异步初始化。例如,修改后的内核启动的高级主机控制器接口(AHCI)初始化,处理存储,在通用主机控制器接口(UHCI)的同时,以处理USB(图3)。“我们可以引导内核可能在半秒,但我们得到了第二个,我们停止了,“阿尔扬说。他补充说,内核应该是下半2.6.28第二,由于在AHCI支持全新修复。一个更核心的变化是一个小补丁,以支持预读。现在的内核跟踪块,其中有阅读引导,然后使这些信息提供给用户空间启动时完成。这使ReadAhead的,这是早期启动过程的一部分。他们是如何做到:预读和initFedora使用新贵取代了历史性的“初始化”,传统上是第一个用户空间程序运行。但英特尔的团队回到原来的init。为了任务,修改初始化句柄做在同一时间的三件事情:第一,一个的“sReadahead”的过程中,从磁盘中读取的块,使它们缓存在内存中,第二,关键路径:文件系统检查,然后D-Bus的进程间通信系统,则X,然后在桌面上。和第三套方案,开始是硬件抽象层(HAL),然后udev的热插拔的设备,然后网络经理。udev是只用于支持可能会增加设备后,该系统具有持久的,老学校/dev目录,使开机不依赖于udev的。任务的安排,可以得到CPU的使用效率。例如,X延误约半秒探测视频模式,那就是当HAL的CPU密集型的启动(图4)。图2图3在磁盘和CPU使用的图形...