The Experts below are selected from a list of 16380 Experts worldwide ranked by ideXlab platform

Lee Sproull - One of the best experts on this subject based on the ideXlab platform.

  • essence of distributed work the case of the linux Kernel
    First Monday, 2000
    Co-Authors: Jae Yun Moon, Lee Sproull
    Abstract:

    This paper provides a historical account of how the Linux Operating System Kernel was developed from three different perspectives. Each focuses on different critical factors in its success at the individual, group, and community levels. The technical and management decisions of Linus Torvalds the individual were critical in laying the groundwork for a collaborative software development project that has lasted almost a decade. The contributions of volunteer programmers distributed worldwide enabled the development of an Operating System on the par with proprietary Operating Systems. The Linux electronic community was the organizing structure that coordinated the efforts of the individual programmers. The paper concludes by summarizing the factors important in the successful distributed development of the Linux Kernel, and the implications for organizationally managed distributed work arrangements.

  • essence of distributed work the case of the linux Kernel
    First Monday, 2000
    Co-Authors: Jae Yun Moon, Lee Sproull
    Abstract:

    This paper provides a historical account of how the Linux Operating System Kernel was developed from three different perspectives. Each focuses on different critical factors in its success at the individual, group, and community levels. The technical and management decisions of Linus Torvalds the individual were critical in laying the groundwork for a collaborative software development project that has lasted almost a decade. The contributions of volunteer programmers distributed worldwide enabled the development of an Operating System on the par with proprietary Operating Systems. The Linux electronic community was the organizing structure that coordinated the efforts of the individual programmers. The paper concludes by summarizing the factors important in the successful distributed development of the Linux Kernel, and the implications for organizationally managed distributed work arrangements.

Bernd Freisleben - One of the best experts on this subject based on the ideXlab platform.

  • toskana a toolkit for Operating System Kernel aspects
    Aspect-Oriented Software Development, 2006
    Co-Authors: Michael Engel, Bernd Freisleben
    Abstract:

    The development process for Operating System Kernels in Unix-like Systems is becoming increasingly complex. The simple, easily understandable Kernels of the 1970s have evolved into giant software Systems consisting of hundreds of modules implemented in millions of lines of code, resulting in greatly increased resource and time overhead for bug fixes as well as functional improvements. Many code modifications and additions in Kernel code are crosscutting, since they exhibit cross-module or cross-layer functionality, thus an aspect-oriented programming (AOP) approach is well suited for solving these problems. Operating System code implicitly involves dynamic behavior due to various threads in Kernel mode that run in different process or hardware contexts. Methods to solve the crosscutting problems have to be able to adapt dynamically to this changing environment; as a result, dynamic AOP inside the Kernel is required to implement required functionality. This paper analyzes the feasibility of using dynamic AOP in Kernel code. Using the TOSKANA System, it is shown that implementing dynamic AOP features is not only possible in Operating System Kernels, but also realizable with a justifiable overhead. First, the cross-module and cross-layer properties inherent in Kernel code are presented, with special consideration of crosscutting concerns in procedural C Kernel code. Then, TOSKANA—our toolkit for deploying dynamic aspects into an Operating System Kernel—is introduced. TOSKANA provides before, after and around advice for in-Kernel functions and supports the specification of pointcuts as well as the implementation of aspects themselves as dynamically exchangeable Kernel modules. The use of TOSKANA is demonstrated by several examples of cross-module as well as cross-layer problems and their solutions using dynamic AOP functionality inside the Kernel. Performance results are presented to characterize the aspect deployment overhead incurred by using TOSKANA.

  • supporting autonomic computing functionality via dynamic Operating System Kernel aspects
    Aspect-Oriented Software Development, 2005
    Co-Authors: Michael Engel, Bernd Freisleben
    Abstract:

    To master the complexity of software Systems in the presence of unexpected events potentially affecting System operation, the Autonomic Computing Initiative [16] aims to build Systems that have the ability to control and organize themselves to meet unforeseen changes in the hard- and software environment.The basic principles employed by autonomic computing are self-configuration, self-optimization, self-healing and self-protection. Typically, these principles are cross-cutting concerns, so an obvious approach to their realization in software is to use aspect-oriented programming (AOP). Since autonomic Systems have to adapt their behavior to changing runtime conditions, a dynamic AOP approach is required to implement autonomic computing functionality.This paper introduces the TOSKANA toolkit for deploying dynamic aspects into an Operating System Kernel as a central part of a computer System having an overview of current System operation and resource usage. TOSKANA provides before, after and around advice for in-Kernel functions and supports the specification of pointcuts as well as the implementation of aspects themselves as dynamically exchangeable Kernel modules. The use of TOSKANA is demonstrated by several examples indicating the cross-cutting nature of providing autonomic computing functionality in an Operating System Kernel. Performance results are presented to characterize the aspect deployment overhead incurred by using TOSKANA.

Jae Yun Moon - One of the best experts on this subject based on the ideXlab platform.

  • essence of distributed work the case of the linux Kernel
    First Monday, 2000
    Co-Authors: Jae Yun Moon, Lee Sproull
    Abstract:

    This paper provides a historical account of how the Linux Operating System Kernel was developed from three different perspectives. Each focuses on different critical factors in its success at the individual, group, and community levels. The technical and management decisions of Linus Torvalds the individual were critical in laying the groundwork for a collaborative software development project that has lasted almost a decade. The contributions of volunteer programmers distributed worldwide enabled the development of an Operating System on the par with proprietary Operating Systems. The Linux electronic community was the organizing structure that coordinated the efforts of the individual programmers. The paper concludes by summarizing the factors important in the successful distributed development of the Linux Kernel, and the implications for organizationally managed distributed work arrangements.

  • essence of distributed work the case of the linux Kernel
    First Monday, 2000
    Co-Authors: Jae Yun Moon, Lee Sproull
    Abstract:

    This paper provides a historical account of how the Linux Operating System Kernel was developed from three different perspectives. Each focuses on different critical factors in its success at the individual, group, and community levels. The technical and management decisions of Linus Torvalds the individual were critical in laying the groundwork for a collaborative software development project that has lasted almost a decade. The contributions of volunteer programmers distributed worldwide enabled the development of an Operating System on the par with proprietary Operating Systems. The Linux electronic community was the organizing structure that coordinated the efforts of the individual programmers. The paper concludes by summarizing the factors important in the successful distributed development of the Linux Kernel, and the implications for organizationally managed distributed work arrangements.

Michael Engel - One of the best experts on this subject based on the ideXlab platform.

  • toskana a toolkit for Operating System Kernel aspects
    Aspect-Oriented Software Development, 2006
    Co-Authors: Michael Engel, Bernd Freisleben
    Abstract:

    The development process for Operating System Kernels in Unix-like Systems is becoming increasingly complex. The simple, easily understandable Kernels of the 1970s have evolved into giant software Systems consisting of hundreds of modules implemented in millions of lines of code, resulting in greatly increased resource and time overhead for bug fixes as well as functional improvements. Many code modifications and additions in Kernel code are crosscutting, since they exhibit cross-module or cross-layer functionality, thus an aspect-oriented programming (AOP) approach is well suited for solving these problems. Operating System code implicitly involves dynamic behavior due to various threads in Kernel mode that run in different process or hardware contexts. Methods to solve the crosscutting problems have to be able to adapt dynamically to this changing environment; as a result, dynamic AOP inside the Kernel is required to implement required functionality. This paper analyzes the feasibility of using dynamic AOP in Kernel code. Using the TOSKANA System, it is shown that implementing dynamic AOP features is not only possible in Operating System Kernels, but also realizable with a justifiable overhead. First, the cross-module and cross-layer properties inherent in Kernel code are presented, with special consideration of crosscutting concerns in procedural C Kernel code. Then, TOSKANA—our toolkit for deploying dynamic aspects into an Operating System Kernel—is introduced. TOSKANA provides before, after and around advice for in-Kernel functions and supports the specification of pointcuts as well as the implementation of aspects themselves as dynamically exchangeable Kernel modules. The use of TOSKANA is demonstrated by several examples of cross-module as well as cross-layer problems and their solutions using dynamic AOP functionality inside the Kernel. Performance results are presented to characterize the aspect deployment overhead incurred by using TOSKANA.

  • supporting autonomic computing functionality via dynamic Operating System Kernel aspects
    Aspect-Oriented Software Development, 2005
    Co-Authors: Michael Engel, Bernd Freisleben
    Abstract:

    To master the complexity of software Systems in the presence of unexpected events potentially affecting System operation, the Autonomic Computing Initiative [16] aims to build Systems that have the ability to control and organize themselves to meet unforeseen changes in the hard- and software environment.The basic principles employed by autonomic computing are self-configuration, self-optimization, self-healing and self-protection. Typically, these principles are cross-cutting concerns, so an obvious approach to their realization in software is to use aspect-oriented programming (AOP). Since autonomic Systems have to adapt their behavior to changing runtime conditions, a dynamic AOP approach is required to implement autonomic computing functionality.This paper introduces the TOSKANA toolkit for deploying dynamic aspects into an Operating System Kernel as a central part of a computer System having an overview of current System operation and resource usage. TOSKANA provides before, after and around advice for in-Kernel functions and supports the specification of pointcuts as well as the implementation of aspects themselves as dynamically exchangeable Kernel modules. The use of TOSKANA is demonstrated by several examples indicating the cross-cutting nature of providing autonomic computing functionality in an Operating System Kernel. Performance results are presented to characterize the aspect deployment overhead incurred by using TOSKANA.

Gregory Andrews - One of the best experts on this subject based on the ideXlab platform.

  • Profile-Guided Specialization of an Operating System Kernel
    2008
    Co-Authors: Somu Perianayagam, Gregory Andrews, Mohan Rajagopalan, Saumya Debray
    Abstract:

    General-purpose Operating Systems such as Linux are increasingly replacing custom embedded counterparts on a wide variety of devices. Despite their convenience and flexibility, however, such Operating Systems may be overly general and thus incur unnecessary performance overheads in these contexts. This paper describes a new approach to mitigating these overheads by automatically specializing the OS Kernel for particular execution environments. We use value profiling to identify targets for specialization such as frequent System call parameters. A novel profiling technique is used to identify frequently invoked procedure call sequences within the Kernel. This information is used to sidestep the problems arising from indirect function calls when carrying out interprocedural compiler optimization. It drives a variety of compiler optimizations such as function inlining and code specialization that reduce the execution overheads along frequent paths. A prototype implementation that uses the PLTO binary rewriting System to specialize the Linux Kernel is described. While overall performance data are mixed, the improvements we see argue for the potential of this approach

  • Code compaction of an Operating System Kernel
    International Symposium on Code Generation and Optimization CGO 2007, 2007
    Co-Authors: Haifeng He, Somu Perianayagam, Saumya Debray, John Trimble, Gregory Andrews
    Abstract:

    General-purpose Operating Systems, such as Linux, are increasingly being used in embedded Systems. Computational resources are usually limited, and embedded processors often have a limited amount of memory. This makes code size especially important. This paper describes techniques for automatically reducing the memory footprint of general-purpose Operating Systems on embedded platforms. The problem is complicated by the fact that Kernel code tends to be quite different from ordinary application code, including the presence of a significant amount of hand-written assembly code, multiple entry points, implicit control flow paths involving interrupt handlers, and frequent indirect control flow via function pointers. We use a novel "approximate decompilation" technique to apply source-level program analysis to hand-written assembly code. A prototype implementation of our ideas on an Intel x86 platform, applied to a Linux Kernel that has been configured to exclude unnecessary code, obtains a code size reduction of close to 24%