The X-Kernel: An Architecture for Implementing Network Protocols
IEEE Transactions on Software Engineering
The Apertos reflective operating system: the concept and its implementation
OOPSLA '92 conference proceedings on Object-oriented programming systems, languages, and applications
Scheduler activations: effective kernel support for the user-level management of parallelism
ACM Transactions on Computer Systems (TOCS)
Towards an active network architecture
ACM SIGCOMM Computer Communication Review
Dynamic binding for an extensible system
OSDI '96 Proceedings of the second USENIX symposium on Operating systems design and implementation
Application performance and flexibility on exokernel systems
Proceedings of the sixteenth ACM symposium on Operating systems principles
HYDRA: the kernel of a multiprocessor operating system
Communications of the ACM
Information and control in gray-box systems
SOSP '01 Proceedings of the eighteenth ACM symposium on Operating systems principles
An empirical study of operating systems errors
SOSP '01 Proceedings of the eighteenth ACM symposium on Operating systems principles
Using aspectC to improve the modularity of path-specific customization in operating system code
Proceedings of the 8th European software engineering conference held jointly with 9th ACM SIGSOFT international symposium on Foundations of software engineering
Towards robust OSes for appliances: a new approach based on domain-specific languages
EW 9 Proceedings of the 9th workshop on ACM SIGOPS European workshop: beyond the PC: new challenges for the operating system
Framework Design for End-to-End Optimization
ECCOP '98 Proceedings of the 12th European Conference on Object-Oriented Programming
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
Kea - A Dynamically Extensible and Configurable Operating System Kernel
ICCDS '96 Proceedings of the 3rd International Conference on Configurable Distributed Systems
A comparison of OS extension technologies
ATEC '96 Proceedings of the 1996 annual conference on USENIX Annual Technical Conference
An extensible protocol architecture for application-specific networking
ATEC '96 Proceedings of the 1996 annual conference on USENIX Annual Technical Conference
Large-scale AOSD for middleware
Proceedings of the 3rd international conference on Aspect-oriented software development
Theme: An Approach for Aspect-Oriented Analysis and Design
Proceedings of the 26th International Conference on Software Engineering
JAC: an aspect-based distributed dynamic framework
Software—Practice & Experience
Empowering configurable QoS management in real-time systems
Proceedings of the 4th international conference on Aspect-oriented software development
Supporting autonomic computing functionality via dynamic operating system kernel aspects
Proceedings of the 4th international conference on Aspect-oriented software development
Dynamic Adaptation of the Squid Web Cache with Arachne
IEEE Software
Optimization aspects in network simulation
Proceedings of the 5th international conference on Aspect-oriented software development
Distribution and persistence as aspects
Software—Practice & Experience - Research Articles
Constructing component-based extension interfaces in legacy systems code
Proceedings of the 11th workshop on ACM SIGOPS European workshop
When to use features and aspects?: a case study
Proceedings of the 5th international conference on Generative programming and component engineering
A dynamic aspect-oriented system for OS kernels
Proceedings of the 5th international conference on Generative programming and component engineering
Semantic patches for documenting and automating collateral evolutions in Linux device drivers
Proceedings of the 3rd workshop on Programming languages and operating systems: linguistic support for modern operating systems
A quantitative analysis of aspects in the eCos kernel
Proceedings of the 1st ACM SIGOPS/EuroSys European Conference on Computer Systems 2006
Program entanglement, feature interaction and the feature language extensions
Computer Networks: The International Journal of Computer and Telecommunications Networking
SmPL: A Domain-Specific Language for Specifying Collateral Evolutions in Linux Device Drivers
Electronic Notes in Theoretical Computer Science (ENTCS)
Proceedings of the 6th workshop on Aspects, components, and patterns for infrastructure software
HOTOS'05 Proceedings of the 10th conference on Hot Topics in Operating Systems - Volume 10
The design and implementation of AspectC++
Knowledge-Based Systems
Improving modularity by refactoring code clones: a feasibility study on Linux
ACM SIGSOFT Software Engineering Notes
Challenges and research directions in autonomic communications
International Journal of Internet Protocol Technology
A test driven approach for aspectualizing legacy software using mock systems
Information and Software Technology
Towards easing the diagnosis of bugs in OS code
Proceedings of the 4th workshop on Programming languages and operating systems
Configurable memory protection by aspects
Proceedings of the 4th workshop on Programming languages and operating systems
Program refactoring using functional aspects
GPCE '08 Proceedings of the 7th international conference on Generative programming and component engineering
Journal of Systems and Software
Proceedings of the 2009 ACM symposium on Applied Computing
Advances in AOP with AspectC++
Proceedings of the 2005 conference on New Trends in Software Methodologies, Tools and Techniques: Proceedings of the fourth SoMeT_W05
Feature (De)composition in Functional Programming
SC '09 Proceedings of the 8th International Conference on Software Composition
Tailor-made data management for embedded systems: A case study on Berkeley DB
Data & Knowledge Engineering
Dynamic AspectC++: Generic Advice at Any Time
Proceedings of the 2009 conference on New Trends in Software Methodologies, Tools and Techniques: Proceedings of the Eighth SoMeT_09
AspectC++: An integrated approach for static and dynamic adaptation of system software
Knowledge-Based Systems
CiAO: an aspect-oriented operating-system family for resource-constrained embedded systems
USENIX'09 Proceedings of the 2009 conference on USENIX Annual technical conference
Aspect-aware operating system development
Proceedings of the tenth international conference on Aspect-oriented software development
Measuring the effects of aspect-oriented refactoring on component relationships: two case studies
Proceedings of the tenth international conference on Aspect-oriented software development
Proceedings of the sixth conference on Computer systems
Systems evolution and software reuse in object-oriented programming and aspect-oriented programming
TOOLS'11 Proceedings of the 49th international conference on Objects, models, components, patterns
The design of application-tailorable operating system product lines
CASSIS'05 Proceedings of the Second international conference on Construction and Analysis of Safe, Secure, and Interoperable Smart Devices
Sustainable system infrastructure and big bang evolution: can aspects keep pace?
ECOOP'05 Proceedings of the 19th European conference on Object-Oriented Programming
Modular design of man-machine interfaces with larissa
SC'06 Proceedings of the 5th international conference on Software Composition
TOSKANA: a toolkit for operating system kernel aspects
Transactions on Aspect-Oriented Software Development II
Providing configurable qos management in real-time systems with qos aspect packages
Transactions on Aspect-Oriented Software Development II
The aspect-aware design and implementation of the CiAO operating-system family
Transactions on Aspect-Oriented Software Development IX
Hi-index | 0.00 |
The FreeBSD operating system more than doubled in size between version 2 and version 4. Many changes to primary modularity are easy to spot at a high-leveL For example, new device drivers account for 38% of the growth. Not surprisingly, changes to crosscutting concerns are more difficult to track. In order to better understand how an aspect-oriented implementation would have fared during this evolution, we introduced several aspects to version 2 code, and then rolled them forward into their subsequent incarnations in versions 3 and 4 respectively. This paper describes the impact evolution had on these concerns, and provides a comparative analysis of the changes required to evolve the tangled versus aspect-oriented implementations.Our results show that for the concerns we chose, the aspect-oriented implementation facilitated evolution in four key ways: (1) changes were better localized, (2) configurability was more explicit, (3) redundancy was reduced, and (4) extensibility aligned with an aspect was more modular. Additionally, we found that the aspect-oriented implementation had negligible impact on performance.