readahead

英语,意思就是提前读入)是Linux内核的一个功能,通过把所需要的系统文件预先读入文件缓存()里,解决磁盘访问速度的瓶颈问题[1],从而加快启动时的速度。因为系统所需文件已从硬盘提早读进了主记忆,而主记忆的管线带宽比周边系统的管线带宽为高,令系统耗费在访问周边设备的时间减少了[2][3]

很多的Linux发行版都通过readahead程序来加速系统启动。在这种设置里,系统的内核在启动时在提供相关的启动参数之下,会记录启动时需要激活的文件。这个文件列表会用来制作新的readahead压缩包,令额外安装的服务得以较快启动,即使最初系统安装时,这些服务并未列于readahead的列表内[4]。部份实验性的系统会通过记忆分页预先提取高速缓存置换机制再令系统表现提升[5]

随着电脑硬件及软件的进步,readahead的做法亦跟随转变。在使用systemd的Linux发行版(例如:FedoraOpenSUSE等),readahead的功能与systemd结合了成为一个叫作「systemd-readahead」的运行档[6][7]。而在以debian为基础的平台(例如:Ubuntu),在发布官方版本时,会内置一组预先较调的文件列表,再把相关文件压缩到一个压缩包,到系统启动时从启动磁盘加载[1]。这个以debian为基础的Linux版本的readahead经历过下列的转变:

  • 原来的readahead功能在Ubuntu 9.10推出时被取代;
  • sreadahead取代了原来的readahead,但后来亦被取代;
  • ureadahead:全称为,源自德语,意思就是「超越readahead」的意思。现时的版本号码是0.100.0-17[8]

参看

参考数据

  1. Rex Tsai. . 2008-09-09 [2014-11-27]. (原始内容存档于2014-12-04) (中文(繁体)).
  2. Jonathan Corbet. . LWN.net. 2005-10-12 [2014-08-20]. (原始内容存档于2014-08-01) (英语).
  3. . man7.org. [2014-04-09]. (原始内容存档于2014-05-25) (英语).
  4. Michael Opdenacker. (PDF). free-electrons.com: 5–6. 2007-06-15 [2014-05-01]. (原始内容存档 (PDF)于2013-09-20) (英语).
  5. Krzysztof Lichota. (PDF). code.google.com. 2008 [2014-07-28]. (原始内容 (PDF)存档于2009-12-11) (英语).
  6. . fedorahosted.org. [2014-04-09]. (原始内容存档于2014-04-09) (英语).
  7. . freedesktop.org. 2014-03-26 [2014-04-09]. (原始内容存档于2014-04-09) (英语).
  8. . Launchpad].

外部链接

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.