skip to main content
10.1145/3144555.3144561acmconferencesArticle/Chapter ViewAbstractPublication PagessospConference Proceedingsconference-collections
research-article

Annotations in Operating Systems with Custom AspectC++ Attributes

Published: 28 October 2017 Publication History

Abstract

Aspect Oriented Programming (AOP) supports the modular implementation of crosscutting concerns, which are woven into program parts designated by pointcuts, e.g. calls to specific functions. The release of AspectC++ 2.2 introduces the ability to express pointcuts based on C++11-style attributes as well as the definition of custom attributes for annotation purposes. In this paper, we propose the use of such attributes for operating system development. We cover three examples: Replacing non-portable compiler attributes and extending portable ones with domain-specific knowledge, providing implementation-independent joinpoint APIs to core operating system functions, and compile-time support for co-development of source code and corresponding models. We discuss the implementation effort and code size overhead of our ideas on the operating systems CocoOS and RIOT and show that annotations with custom attributes are a helpful addition for system development.

References

[1]
Moritz Balz, Michael Striewe, and Michael Goedicke. 2009. Embedding Behavioral Models into Object-Oriented Source Code. In Software Engineering 2009. Gesellschaft für Informatik, 51--62.
[2]
Christoph Borchert, Daniel Lohmann, and Olaf Spinczyk. 2012. CiAO/IP: A Highly Configurable Aspect-oriented IP Stack. In Proceedings of the 10th International Conference on Mobile Systems, Applications, and Services (MobiSys '12). ACM, New York, NY, USA, 435--448. https://doi.org/10.1145/2307636.2307676
[3]
Tzilla Elrad, Mehmet Aksit, Gregor Kiczales, Karl Lieberherr, and Harold Ossher. 2001. Discussing aspects of AOP. Commun. ACM 44, 10 (2001), 33--38.
[4]
Michael Goedicke, Michael Striewe, and Moritz Balz. 2009. Support for Evolution of Software Systems using Embedded Models. In Design for Future--Langlebige Softwaresysteme.
[5]
Michael Golm, Meik Felser, Christian Wawersich, and Jürgen Kleinöder. 2002. The JX Operating System. In USENIX Annual Technical Conference, General Track. 45--58.
[6]
Galen Hunt, James Larus, Martin Abadi, Mark Aiken, Paul Barham, Manuel Fähndrich, Chris Hawblitzel, Orion Hodson, Steven Levi, Nick Murphy, Bjarne Steensgaard, David Tarditi, Ted Wobber, and Brian Zill. 2005. An Overview of the Singularity Project. Technical Report.
[7]
Andy Kellens, Kim Mens, Johan Brichau, and Kris Gybels. 2006. Managing the evolution of aspect-oriented software with model-based pointcuts. In ECOOP 2006 -- Object-Oriented Programming. 501--525.
[8]
Gregor Kiczales, Erik Hilsdale, Jim Hugunin, Mik Kersten, Jeffrey Palm, and William Griswold. 2001. An overview of AspectJ. In ECOOP 2001 -- Object-Oriented Programming. 327--354.
[9]
Gary Mak, Josh Long, and Daniel Rubio. 2010. Spring AOP and AspectJ Support. Apress, Berkeley, CA, 117--158. https://doi.org/10.1007/978-1-4302-2500-3_3
[10]
Pedro Pinto, Tiago Carvalho, João Bispo, and João M. P. Cardoso. 2017. LARA As a Language-independent Aspect-oriented Programming Approach. In Proceedings of the Symposium on Applied Computing (SAC '17). ACM, New York, NY, USA, 1623--1630. https://doi.org/10.1145/3019612.3019749
[11]
S. Ritchie. 1997. Systems programming in Java. IEEE Micro 17, 3 (May 1997), 30--35. https://doi.org/10.1109/40.591652
[12]
Justin Seyster, Ketan Dixit, Xiaowan Huang, Radu Grosu, Klaus Havelund, Scott A. Smolka, Scott D. Stoller, and Erez Zadok. 2012. InterAspect: aspect-oriented instrumentation with GCC. Formal Methods in System Design 41, 3 (01 Dec 2012), 295--320. https://doi.org/10.1007/s10703-012-0171-3
[13]
Olaf Spinczyk and Daniel Lohmann. 2007. The design and implementation of AspectC++. Knowledge-Based Systems 20, 7 (2007), 636--651. https://doi.org/10.1016/j.knosys.2007.05.004
[14]
Kevin Sullivan, William Griswold, Hridesh Rajan, Yuanyuan Song, Yuanfang Cai, Macneil Shonle, and Nishit Tewari. 2010. Modular Aspect-oriented Design with XPIs. ACM Trans. Softw. Eng. Methodol. 20, 2, Article 5 (Sept. 2010), 42 pages. https://doi.org/10.1145/1824760.1824762

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
PLOS '17: Proceedings of the 9th Workshop on Programming Languages and Operating Systems
October 2017
62 pages
ISBN:9781450351539
DOI:10.1145/3144555
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 the author(s) 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

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 28 October 2017

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Research-article
  • Research
  • Refereed limited

Conference

SOSP '17
Sponsor:

Acceptance Rates

Overall Acceptance Rate 17 of 32 submissions, 53%

Upcoming Conference

SOSP '25
ACM SIGOPS 31st Symposium on Operating Systems Principles
October 13 - 16, 2025
Seoul , Republic of Korea

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • 0
    Total Citations
  • 96
    Total Downloads
  • Downloads (Last 12 months)2
  • Downloads (Last 6 weeks)0
Reflects downloads up to 08 Feb 2025

Other Metrics

Citations

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media