The revenge of the overlay: Automatic compaction of OS kernel code via on-demand code loading

Haifeng He, Saumya K Debray, Gregory R. Andrews

Research output: Chapter in Book/Report/Conference proceedingConference contribution

6 Citations (Scopus)

Abstract

There is increasing interest in using general-purpose operating systems, such as Linux, on embedded platforms. It is especially important in embedded systems to use memory efficiently because embedded processors often have limited physical memory. This paper describes an automatic technique for reducing the memory footprint of general-purpose operating systems on embedded platforms by keeping infrequently executed code on secondary storage and loading such code only if it is needed at run time. Our technique is based on an old idea - memory overlays - and it does not require hardware or operating system support for virtual memory. A prototype of the technique has been implemented for the Linux kernel. We evaluate our approach with two benchmark suites: MiBench and MediaBench, and a Web server application. The experimental results show that our approach reduces memory requirements for the Linux kernel code by about 53% with little degradation in performance.

Original languageEnglish (US)
Title of host publicationEMSOFT'07: Proceedings of the Seventh ACM and IEEE International Conference on Embedded Software
Pages75-83
Number of pages9
DOIs
StatePublished - 2007
EventEMSOFT'07: 7th ACM and IEEE International Conference on Embedded Software - Salzburg, Australia
Duration: Sep 30 2007Oct 3 2007

Other

OtherEMSOFT'07: 7th ACM and IEEE International Conference on Embedded Software
CountryAustralia
CitySalzburg
Period9/30/0710/3/07

Fingerprint

Compaction
Data storage equipment
Computer operating systems
Embedded systems
Computer hardware
Servers
Degradation
Linux

Keywords

  • Binary rewriting
  • Code clustering
  • Code compaction
  • Embedded systems

ASJC Scopus subject areas

  • Software

Cite this

He, H., Debray, S. K., & Andrews, G. R. (2007). The revenge of the overlay: Automatic compaction of OS kernel code via on-demand code loading. In EMSOFT'07: Proceedings of the Seventh ACM and IEEE International Conference on Embedded Software (pp. 75-83) https://doi.org/10.1145/1289927.1289944

The revenge of the overlay : Automatic compaction of OS kernel code via on-demand code loading. / He, Haifeng; Debray, Saumya K; Andrews, Gregory R.

EMSOFT'07: Proceedings of the Seventh ACM and IEEE International Conference on Embedded Software. 2007. p. 75-83.

Research output: Chapter in Book/Report/Conference proceedingConference contribution

He, H, Debray, SK & Andrews, GR 2007, The revenge of the overlay: Automatic compaction of OS kernel code via on-demand code loading. in EMSOFT'07: Proceedings of the Seventh ACM and IEEE International Conference on Embedded Software. pp. 75-83, EMSOFT'07: 7th ACM and IEEE International Conference on Embedded Software, Salzburg, Australia, 9/30/07. https://doi.org/10.1145/1289927.1289944
He H, Debray SK, Andrews GR. The revenge of the overlay: Automatic compaction of OS kernel code via on-demand code loading. In EMSOFT'07: Proceedings of the Seventh ACM and IEEE International Conference on Embedded Software. 2007. p. 75-83 https://doi.org/10.1145/1289927.1289944
He, Haifeng ; Debray, Saumya K ; Andrews, Gregory R. / The revenge of the overlay : Automatic compaction of OS kernel code via on-demand code loading. EMSOFT'07: Proceedings of the Seventh ACM and IEEE International Conference on Embedded Software. 2007. pp. 75-83
@inproceedings{c665e0f5c41c444ab6a5c010890d5ca9,
title = "The revenge of the overlay: Automatic compaction of OS kernel code via on-demand code loading",
abstract = "There is increasing interest in using general-purpose operating systems, such as Linux, on embedded platforms. It is especially important in embedded systems to use memory efficiently because embedded processors often have limited physical memory. This paper describes an automatic technique for reducing the memory footprint of general-purpose operating systems on embedded platforms by keeping infrequently executed code on secondary storage and loading such code only if it is needed at run time. Our technique is based on an old idea - memory overlays - and it does not require hardware or operating system support for virtual memory. A prototype of the technique has been implemented for the Linux kernel. We evaluate our approach with two benchmark suites: MiBench and MediaBench, and a Web server application. The experimental results show that our approach reduces memory requirements for the Linux kernel code by about 53{\%} with little degradation in performance.",
keywords = "Binary rewriting, Code clustering, Code compaction, Embedded systems",
author = "Haifeng He and Debray, {Saumya K} and Andrews, {Gregory R.}",
year = "2007",
doi = "10.1145/1289927.1289944",
language = "English (US)",
isbn = "9781595938251",
pages = "75--83",
booktitle = "EMSOFT'07: Proceedings of the Seventh ACM and IEEE International Conference on Embedded Software",

}

TY - GEN

T1 - The revenge of the overlay

T2 - Automatic compaction of OS kernel code via on-demand code loading

AU - He, Haifeng

AU - Debray, Saumya K

AU - Andrews, Gregory R.

PY - 2007

Y1 - 2007

N2 - There is increasing interest in using general-purpose operating systems, such as Linux, on embedded platforms. It is especially important in embedded systems to use memory efficiently because embedded processors often have limited physical memory. This paper describes an automatic technique for reducing the memory footprint of general-purpose operating systems on embedded platforms by keeping infrequently executed code on secondary storage and loading such code only if it is needed at run time. Our technique is based on an old idea - memory overlays - and it does not require hardware or operating system support for virtual memory. A prototype of the technique has been implemented for the Linux kernel. We evaluate our approach with two benchmark suites: MiBench and MediaBench, and a Web server application. The experimental results show that our approach reduces memory requirements for the Linux kernel code by about 53% with little degradation in performance.

AB - There is increasing interest in using general-purpose operating systems, such as Linux, on embedded platforms. It is especially important in embedded systems to use memory efficiently because embedded processors often have limited physical memory. This paper describes an automatic technique for reducing the memory footprint of general-purpose operating systems on embedded platforms by keeping infrequently executed code on secondary storage and loading such code only if it is needed at run time. Our technique is based on an old idea - memory overlays - and it does not require hardware or operating system support for virtual memory. A prototype of the technique has been implemented for the Linux kernel. We evaluate our approach with two benchmark suites: MiBench and MediaBench, and a Web server application. The experimental results show that our approach reduces memory requirements for the Linux kernel code by about 53% with little degradation in performance.

KW - Binary rewriting

KW - Code clustering

KW - Code compaction

KW - Embedded systems

UR - http://www.scopus.com/inward/record.url?scp=38849185199&partnerID=8YFLogxK

UR - http://www.scopus.com/inward/citedby.url?scp=38849185199&partnerID=8YFLogxK

U2 - 10.1145/1289927.1289944

DO - 10.1145/1289927.1289944

M3 - Conference contribution

AN - SCOPUS:38849185199

SN - 9781595938251

SP - 75

EP - 83

BT - EMSOFT'07: Proceedings of the Seventh ACM and IEEE International Conference on Embedded Software

ER -