Readahead techniques have successfully been used to reduce boot time in recent GNU/Linux distributions like Fedora Core or Ubuntu. However, in embedded systems with scarce RAM, starting a parallel thread reading ahead all the files used in system startup is no longer appropriate. The cached pages could be reclaimed even before accessing the corresponding files.
This paper will first guide you through the heuristics implemented in kernelspace, as well as through the userspace interface for preloading files or just announcing file access patterns. Desktop implementations will be explained and benchmarked. We will then detail Free Electrons' attempts to implement an easy to integrate helper program reading ahead files at the most appropriate time in the execution flow.
This paper and the corresponding presentation target desktop and embedded system developers interested in accelerating the course of Time.