Fast Linux bootup using non-intrusive methods for predictable industrial embedded systems

Fast kernel boot-time is one of the major concerns in industrial embedded systems. Application domains where boot time is relevant include (among others) automation, automotive, avionics etc. Linux is one of the big players among operating system solutions for general embedded systems, hence, a relevant question is how fast Linux can boot on typical hardware platforms (ARM9) used in such industrial systems. One important constraint is that this boot-time optimization should be as nonintrusive as possible. The reason for this comes from the fact that industrial embedded systems typically have high demands on reliability and stability. For example, adding, removing or changing critical source-code (such as kernel or initialization code) is impermissible. This paper shows the steps towards a fast-booting Linux kernel using non-intrusive methods. Moreover, targeting embedded systems with temporal constraints, the paper shows how fast the real-time scheduling framework ExSched can be loaded and started during bootup. This scheduling framework supports several real-time scheduling algorithms (user defined, multi-core, partitioned, fixed-priority periodic tasks etc.) and it does not modify the Linux kernel source code. Hence, the non-intrusive bootup optimization methods together with the un-modified Linux kernel and the non-patched real-time scheduler module offers both reliability and predictability1.

[1]  Inwhee Joe,et al.  Bootup time improvement for embedded Linux using snapshot images created on boot time , 2011, The 2nd International Conference on Next Generation Information Technology.

[2]  Toshihiko Yamakami,et al.  A Fast-Boot Method for Embedded Mobile Linux: Toward a Single-Digit User Sensed Boot Time for Full-Featured Commercial Phones , 2011, 2011 IEEE Workshops of International Conference on Advanced Information Networking and Applications.

[3]  Harrick M. Vin,et al.  A hierarchial CPU scheduler for multimedia operating systems , 1996, OSDI '96.

[4]  Hiroki Kaminaga,et al.  Improving Linux Startup Time Using Software Resume ( and other techniques ) , 2010 .

[5]  Reinder J. Bril,et al.  Grasp: Tracing, visualizing and measuring the behavior of real-time systems , 2010 .

[6]  Tommaso Cucinotta,et al.  AQuoSA—adaptive quality of service architecture , 2009, Softw. Pract. Exp..

[7]  Bill Weinberg Mobile phones: the embedded linux challenge , 2006 .

[8]  Cucinotta Tommaso,et al.  Hierarchical Multiprocessor CPU Reservations for the Linux Kernel , 2009 .

[9]  Rick Lehrbaum Using Linux in Embedded and Real-Time Systems , 2000 .

[10]  Claudio Scordino,et al.  An EDF scheduling class for the Linux kernel ∗ , 2009 .

[11]  Alexander Sirotkin Roll your own embedded Linux system with buildroot , 2011 .

[12]  Christopher Hallinan Reducing boot time in embedded Linux systems , 2009 .

[13]  Shinpei Kato,et al.  A Loadable Task Execution Recorder for Hierarchical Scheduling in Linux , 2011, 2011 IEEE 17th International Conference on Embedded and Real-Time Computing Systems and Applications.

[14]  Thomas Nolte,et al.  Towards hierarchical scheduling in AUTOSAR , 2009, 2009 IEEE Conference on Emerging Technologies & Factory Automation.

[15]  P. Mantegazza,et al.  RTAI: Real Time Application Interface , 2000 .

[16]  Jane W.-S. Liu,et al.  Scheduling real-time applications in an open environment , 1997, Proceedings Real-Time Systems Symposium.

[17]  Ragunathan Rajkumar,et al.  Distributed Resource Kernels: OS Support for End-To-End Resource Isolation , 2008, 2008 IEEE Real-Time and Embedded Technology and Applications Symposium.

[18]  Gaurav Singh,et al.  Optimizing the boot time of Android on embedded system , 2011, 2011 IEEE 15th International Symposium on Consumer Electronics (ISCE).

[19]  Victor Yodaiken The RTLinux Manifesto , 1999 .

[20]  Hennadiy Leontyev,et al.  LITMUS^RT : A Testbed for Empirically Comparing Real-Time Multiprocessor Schedulers , 2006, 2006 27th IEEE International Real-Time Systems Symposium (RTSS'06).

[21]  John Regehr,et al.  HLS: a framework for composing soft real-time schedulers , 2001, Proceedings 22nd IEEE Real-Time Systems Symposium (RTSS 2001) (Cat. No.01PR1420).

[22]  Tim R. Bird Methods to Improve Bootup Time in Linux , 2010 .

[23]  Shinpei Kato,et al.  ExSched: An External CPU Scheduler Framework for Real-Time Systems , 2012, 2012 IEEE International Conference on Embedded and Real-Time Computing Systems and Applications.

[24]  Shuichi Oikawa,et al.  Resource kernels: a resource-centric approach to real-time and multimedia systems , 2001, Electronic Imaging.

[25]  Myung Sil Choi,et al.  A Study on the Packaging for Fast Boot-up Time in the Embedded Linux , 2007, 13th IEEE International Conference on Embedded and Real-Time Computing Systems and Applications (RTCSA 2007).

[26]  Harrick M. Vin,et al.  A hierarchial CPU scheduler for multimedia operating systems , 1996, OSDI '96.

[27]  Heeseung Jo,et al.  Improving the startup time of digital TV , 2009, IEEE Transactions on Consumer Electronics.