iBet uBet web content aggregator. Adding the entire web to your favor.
iBet uBet web content aggregator. Adding the entire web to your favor.



Link to original content: https://doi.org/10.1145/2351676.2351686
Diagnosys: automatic generation of a debugging interface to the Linux kernel | Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering skip to main content
10.1145/2351676.2351686acmconferencesArticle/Chapter ViewAbstractPublication PagesaseConference Proceedingsconference-collections
Article

Diagnosys: automatic generation of a debugging interface to the Linux kernel

Published: 03 September 2012 Publication History

Abstract

The Linux kernel does not export a stable, well-defined kernel interface, complicating the development of kernel-level services, such as device drivers and file systems. While there does exist a set of functions that are exported to external modules, this set of functions frequently changes, and the functions have implicit, ill-documented preconditions. No specific debugging support is provided.
We present Diagnosys, an approach to automatically constructing a debugging interface for the Linux kernel. First, a designated kernel maintainer uses Diagnosys to identify constraints on the use of the exported functions. Based on this information, developers of kernel services can then use Diagnosys to generate a debugging interface specialized to their code. When a service including this interface is tested, it records information about potential problems. This information is preserved following a kernel crash or hang. Our experiments show that the generated debugging interface provides useful log information and incurs a low performance penalty.

References

[1]
A. Albinet, J. Arlat, and J.-C. Fabre. Characterization of the impact of faulty drivers on the robustness of the Linux kernel. In DSN’04, pages 867–876.
[2]
K. Arnout and B. Meyer. Uncovering hidden contracts: The .NET example. Computer, 36:48–55, 2003.
[3]
T. Ball, E. Bounimova, B. Cook, V. Levin, J. Lichtenberg, C. McGarvey, B. Ondrusek, S. K. Rajamani, and A. Ustuner. Thorough static analysis of device drivers. In EuroSys’06, pages 73–85.
[4]
S. Bugrara and A. Aiken. Verifying the safety of user pointer dereferences. In IEEE Symposium on Security and Privacy, pages 325–338, Oakland, CA, USA, 2008.
[5]
A. Chou, J. Yang, B. Chelf, S. Hallem, and D. Engler. An empirical study of operating systems errors. In SOSP’01, pages 73–88, Banff, Canada.
[6]
J. Corbet. Injecting faults into the kernel. http://lwn.net/Articles/209257/, November 2004.
[7]
D. Cotroneo, R. Natella, and S. Russo. Assessment and improvement of hang detection in the Linux operating system. In SRDS’09, pages 288–294.
[8]
Y. Ding, M. Haohui, X. Weiwei, T. Lin, Z. Yuanyuan, and P. Shankar. Sherlog: Error diagnosis by connecting clues from run-time logs. In ASPLOS’10, pages 143–154, Pittsburgh, PA, USA.
[9]
D. Engler, D. Y. Chen, S. Hallem, A. Chou, and B. Chelf. Bugs as deviant behavior: a general approach to inferring errors in systems code. In SOSP’01, pages 57–72, Banff, Alberta, Canada.
[10]
M. D. Ernst, J. H. Perkins, P. J. Guo, S. McCamant, C. Pacheco, M. S. Tschantz, and C. Xiao. The Daikon system for dynamic detection of likely invariants. Sci. Comput. Program., 69:35–45, December 2007.
[11]
C. Fetzer and Z. Xiao. Healers: a toolkit for enhancing the robustness and security of existing applications. In DSN’03, pages 317–322, San Francisco, CA, USA.
[12]
C. Flanagan and K. R. M. Leino. Houdini, an annotation assistant for ESC/Java. In FME’01, pages 500–517, London, UK.
[13]
C. Flanagan, K. R. M. Leino, M. Lillibridge, G. Nelson, J. B. Saxe, and R. Stata. Extended static checking for Java. In PLDI’02, pages 234–245.
[14]
A. Ganapathi, V. Ganapathi, and D. Patterson. Windows XP kernel crash analysis. In LISA’06, pages 49–159, Washington, DC, USA.
[15]
R. Hirschfeld, M. Perscheid, C. Schubert, and M. Appeltauer. Dynamic contract layers. In SAC’10, pages 2169–2175. ACM, 2010.
[16]
M. Huth and M. Ryan. Logic in Computer Science: Modelling and reasoning about systems. Cambridge University Press, 2000.
[17]
V. Kuznetsov, V. Chipounov, and G. Candea. Testing closed-source binary device drivers with DDT. In USENIX Annual Technical Conference, June 2010.
[18]
J. L. Lawall, J. Brunel, N. Palix, R. R. Hansen, H. Stuart, and G. Muller. WYSIWIB: A declarative approach to finding API protocols and bugs in Linux code. In DSN’09, pages 43–52, Lisbon, Portugal.
[19]
Z. Li and Y. Zhou. PR-miner: automatically extracting implicit programming rules and detecting violations in large software code. In ESEC/FSE-13, pages 306–315, Lisbon, Portugal, 2005.
[20]
P. Marinescu and G. Candea. Efficient testing of recovery code using fault injection. ACM Transactions on Computer Systems (TOCS), 29(3), Nov. 2011.
[21]
B. Meyer. Object-Oriented Software Construction. Prentice-Hall, Inc., 1st edition, 1988.
[22]
C. Mills. Using Design by Contract in C. OnLamp.com, O’Reilly, 1st edition, October 2004.
[23]
H. Nellitheertha. Reboot Linux faster using kexec. http://www.ibm.com/developerworks/linux/ library/l-kexec/index.html, 2004.
[24]
Y. Padioleau, J. L. Lawall, R. R. Hansen, and G. Muller. Documenting and automating collateral evolutions in Linux device drivers. In EuroSys’08, pages 247–260, Glasgow, Scotland.
[25]
N. Palix, S. Saha, G. Thomas, C. Calvès, J. L. Lawall, and G. Muller. Faults in Linux: Ten years later. In ASPLOS’11, pages 305–318.
[26]
H. Post and W. Küchlin. Integrated static analysis for Linux device driver verification. In IFM’07, pages 518–537, Oxford, UK.
[27]
M. K. Ramanathan, A. Grama, and S. Jagannathan. Path-sensitive inference of function precedence protocols. In ICSE’07, pages 240–250.
[28]
A. Rubini and J. Corbet. Linux Device Drivers, page 109. O’Reilly Media, second edition, 2001.
[29]
L. Ryzhyk, P. Chubb, I. Kuz, and G. Heiser. Dingo: Taming device drivers. In EuroSys’09, pages 275–288.
[30]
M. Yandong, C. Haogang, Z. Dong, W. Xi, Z. Nickolai, and K. M. Frans. Software fault isolation with API integrity and multi-principal modules. In SOSP’11.
[31]
D. Yuan, J. Zheng, S. Park, Y. Zhou, and S. Savage. Improving software diagnosability via log enhancement. In ASPLOS’11, pages 3–14.

Cited By

View all
  • (2024)Testing and Debugging Quantum CircuitsIEEE Transactions on Quantum Engineering10.1109/TQE.2024.33748795(1-15)Online publication date: 2024
  • (2020)Logging Inter-Thread Data Dependencies in Linux KernelIEICE Transactions on Information and Systems10.1587/transinf.2019EDP7255E103.D:7(1633-1646)Online publication date: 1-Jul-2020
  • (2020)Leveraging branch traces to understand kernel internals from withinJournal of Computer Virology and Hacking Techniques10.1007/s11416-019-00343-w16:2(141-155)Online publication date: 2-Jan-2020
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
ASE '12: Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering
September 2012
409 pages
ISBN:9781450312042
DOI:10.1145/2351676
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

In-Cooperation

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 03 September 2012

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Debugging
  2. Device drivers
  3. Diagnosys
  4. Linux
  5. Wrappers

Qualifiers

  • Article

Conference

ASE'12
Sponsor:

Acceptance Rates

Overall Acceptance Rate 82 of 337 submissions, 24%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)6
  • Downloads (Last 6 weeks)0
Reflects downloads up to 10 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Testing and Debugging Quantum CircuitsIEEE Transactions on Quantum Engineering10.1109/TQE.2024.33748795(1-15)Online publication date: 2024
  • (2020)Logging Inter-Thread Data Dependencies in Linux KernelIEICE Transactions on Information and Systems10.1587/transinf.2019EDP7255E103.D:7(1633-1646)Online publication date: 1-Jul-2020
  • (2020)Leveraging branch traces to understand kernel internals from withinJournal of Computer Virology and Hacking Techniques10.1007/s11416-019-00343-w16:2(141-155)Online publication date: 2-Jan-2020
  • (2019)Negative results on mining crypto-API usage rules in Android appsProceedings of the 16th International Conference on Mining Software Repositories10.1109/MSR.2019.00065(388-398)Online publication date: 26-May-2019
  • (2019)Watch out for this commit! A study of influential software changesJournal of Software: Evolution and Process10.1002/smr.218131:12Online publication date: 12-Dec-2019
  • (2018)Bench4BL: reproducibility study on the performance of IR-based bug localizationProceedings of the 27th ACM SIGSOFT International Symposium on Software Testing and Analysis10.1145/3213846.3213856(61-72)Online publication date: 12-Jul-2018
  • (2017)Impact of tool support in patch constructionProceedings of the 26th ACM SIGSOFT International Symposium on Software Testing and Analysis10.1145/3092703.3092713(237-248)Online publication date: 10-Jul-2017
  • (2016)Accessing Inaccessible Android APIs: An Empirical Study2016 IEEE International Conference on Software Maintenance and Evolution (ICSME)10.1109/ICSME.2016.35(411-422)Online publication date: Oct-2016
  • (2016)Ahead of time static analysis for automatic generation of debugging interfaces to the Linux kernelAutomated Software Engineering10.1007/s10515-014-0152-423:1(3-41)Online publication date: 1-Mar-2016
  • (2016)Vulnerabilities of Government Websites in a Developing Country – the Case of Burkina Fasoe-Infrastructure and e-Services10.1007/978-3-319-43696-8_14(123-135)Online publication date: 14-Oct-2016

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media