TY - CHAP A1 - Selgrad, Kai A1 - Lier, Alexander A1 - Köferl, Franz A1 - Stamminger, Marc A1 - Lohmann, Daniel ED - Kästner, Christian ED - Gokhālé, Anirüddhā T1 - Lightweight, Generative Variant Exploration for High-performance Graphics Applications T2 - GPCE'15 : Proceedings of the 2015 ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences ; October 26-27, 2015, Pittsburgh, PA, USA N2 - Rendering performance is an everlasting goal of computer graphics and significant driver for advances in both, hardware architecture and algorithms. Thereby, it has become possible to apply advanced computer graphics technology even in low-cost embedded appliances, such as car instruments. Yet, to come up with an efficient implementation, developers have to put enormous efforts into hardware/problem-specific tailoring, fine-tuning, and domain exploration, which requires profound expert knowledge. If a good solution has been found, there is a high probability that it does not work as well with other architectures or even the next hardware generation. Generative DSL-based approaches could mitigate these efforts and provide for an efficient exploration of algorithmic variants and hardware-specific tuning ideas. However, in vertically organized industries, such as automotive, suppliers are reluctant to introduce these techniques as they fear loss of control, high introduction costs, and additional constraints imposed by the OEM with respect to software and tool-chain certification. Moreover, suppliers do not want to share their generic solutions with the OEM, but only concrete instances. To this end, we propose a light-weight and incremental approach for meta programming of graphics applications. Our approach relies on an existing formulation of C-like languages that is amenable to meta programming, which we extend to become a lightweight language to combine algorithmic features. Our method provides a concise notation for meta programs and generates easily sharable output in the appropriate C-style target language. KW - exploratory programming KW - general purpose code generation KW - prototyping KW - ray tracin Y1 - 2015 UR - https://selgrad.org/publications/2015_gpce_SLKSL.pdf SN - 978-1-4503-3687-1 SP - 141 EP - 150 PB - ACM CY - New York, USA ER - TY - CHAP A1 - Ramsauer, Ralf A1 - Lohmann, Daniel A1 - Mauerer, Wolfgang T1 - The List is the Process: Reliable Pre-Integration Tracking of Commits on Mailing Lists T2 - 2019 IEEE/ACM 41st International Conference on Software Engineering (ICSE), 25-31 May 2019, Montreal, QC, Canada N2 - A considerable corpus of research on software evolution focuses on mining changes in software repositories, but omits their pre-integration history. We present a novel method for tracking this otherwise invisible evolution of software changes on mailing lists by connecting all early revisions of changes to their final version in repositories. Since artefact modifications on mailing lists are communicated by updates to fragments (i.e., patches) only, identifying semantically similar changes is a non-trivial task that our approach solves in a language-independent way. We evaluate our method on high-profile open source software (OSS) projects like the Linux kernel, and validate its high accuracy using an elaborately created ground truth. Our approach can be used to quantify properties of OSS development processes, which is an essential requirement for using OSS in reliable or safety-critical industrial products, where certifiability and conformance to processes are crucial. The high accuracy of our technique allows, to the best of our knowledge, for the first time to quantitatively determine if an open development process effectively aligns with given formal process requirements. KW - commits KW - Data mining KW - Electronic mail KW - Linux KW - mailing lists KW - mining software repositories KW - Open source software KW - patches KW - Software engineering KW - Software maintenance KW - Software reliability Y1 - 2019 U6 - https://doi.org/10.1109/ICSE.2019.00088 SP - 807 EP - 818 PB - IEEE ER - TY - CHAP A1 - Selgrad, Kai A1 - Lier, Alexander A1 - Wittmann, Markus A1 - Lohmann, Daniel A1 - Stamminger, Marc T1 - Defmacro for C: Lightweight, Ad Hoc Code Generation T2 - Proceedings of ELS 2014 7th European Lisp Symposium ; May 5 - 6 2014, IRCAM, Paris, France N2 - We describe the design and implementation of CGen, a C code generator with support for Common Lisp-style macro expansion. Our code generator supports the simple and efficient management of variants, ad hoc code generation to capture reoccurring patterns, composable abstractions as well as the implementation of embedded domain specific languages by using the Common Lisp macro system. We demonstrate the applicability of our approach by numerous examples from small scale convenience macros over embedded languages to real-world applications in high-performance computing. KW - Meta Programming KW - Code Generation KW - Common Lisp KW - Configurability KW - Macro KW - Maintenance Y1 - 2014 UR - https://european-lisp-symposium.org/static/proceedings/2014.pdf SN - 2677-3465 SP - 80 EP - 87 ER - TY - CHAP A1 - Ramsauer, Ralf A1 - Kiszka, Jan A1 - Lohmann, Daniel A1 - Mauerer, Wolfgang T1 - Look Mum, no VM Exits! (Almost) T2 - Proceedings of the 13th Annual Workshop on Operating Systems Platforms for Embedded Real-Time Applications (OSPERT '17) N2 - Multi-core CPUs are a standard component in many modern embedded systems. Their virtualisation extensions enable the isolation of services, and gain popularity to implement mixed-criticality or otherwise split systems. We present Jailhouse, a Linux-based, OS-agnostic partitioning hypervisor that uses novel architectural approaches to combine Linux, a powerful general-purpose system, with strictly isolated special-purpose components. Our design goals favour simplicity over features, establish a minimal code base, and minimise hypervisor activity. Direct assignment of hardware to guests, together with a deferred initialisation scheme, offloads any complex hardware handling and bootstrapping issues from the hypervisor to the general purpose OS. The hypervisor establishes isolated domains that directly access physical resources without the need for emulation or paravirtualisation. This retains, with negligible system overhead, Linux's feature-richness in uncritical parts, while frugal safety and real-time critical workloads execute in isolated, safe domains. KW - FOS: Computer and information sciences KW - Operating Systems (cs.OS) Y1 - 2017 UR - https://ospert2017.uni.lu/ U6 - https://doi.org/10.48550/arXiv.1705.06932 ER - TY - CHAP A1 - Ramsauer, Ralf A1 - Lohmann, Daniel A1 - Mauerer, Wolfgang ED - Wassermann, Tony T1 - Observing Custom Software Modifications: A Quantitative Approach of Tracking the Evolution of Patch Stacks T2 - Proceedings of the 12th International Symposium on Open Collaboration (OpenSym '16) N2 - Modifications to open-source software (OSS) are often provided in the form of "patch stacks" -- sets of changes (patches) that modify a given body of source code. Maintaining patch stacks over extended periods of time is problematic when the underlying base project changes frequently. This necessitates a continuous and engineering-intensive adaptation of the stack. Nonetheless, long-term maintenance is an important problem for changes that are not integrated into projects, for instance when they are controversial or only of value to a limited group of users. We present and implement a methodology to systematically examine the temporal evolution of patch stacks, track non-functional properties like integrability and maintainability, and estimate the eventual economic and engineering effort required to successfully develop and maintain patch stacks. Our results provide a basis for quantitative research on patch stacks, including statistical analyses and other methods that lead to actionable advice on the construction and long-term maintenance of custom extensions to OSS. KW - CADOS KW - collaboration KW - Linux KW - maintenance KW - patch stacks Y1 - 2016 U6 - https://doi.org/10.1145/2957792.2957810 SP - 1 EP - 4 PB - ACM CY - New York ER - TY - CHAP A1 - Ramsauer, Ralf A1 - Bulwahn, Lukas A1 - Lohmann, Daniel A1 - Mauerer, Wolfgang ED - Zhang, Yinqian ED - Sion, Radu T1 - The Sound of Silence : Mining Security Vulnerabilities from Secret Integration Channels in Open-Source Projects T2 - Proceedings of the 2020 ACM SIGSAC Conference on Cloud Computing Security Workshop: 09.11.2020, virtual event N2 - Public development processes are a key characteristic of open source projects. However, fixes for vulnerabilities are usually discussed privately among a small group of trusted maintainers, and integrated without prior public involvement. This is supposed to prevent early disclosure, and cope with embargo and non-disclosure agreement (NDA) rules. While regular development activities leave publicly available traces, fixes for vulnerabilities that bypass the standard process do not. We present a data-mining based approach to detect code fragments that arise from such infringements of the standard process. By systematically mapping public development artefacts to source code repositories, we can exclude regular process activities, and infer irregularities that stem from non-public integration channels. For the Linux kernel, the most crucial component of many systems, we apply our method to a period of seven months before the release of Linux 5.4. We find 29 commits that address 12 vulnerabilities. For these vulnerabilities, our approach provides a temporal advantage of 2 to 179 days to design exploits before public disclosure takes place, and fixes are rolled out. Established responsible disclosure approaches in open development processes are supposed to limit premature visibility of security vulnerabilities. However, our approach shows that, instead, they open additional possibilities to uncover such changes that thwart the very premise. We conclude by discussing implications and partial countermeasures. Y1 - 2020 SN - 9781450380843 U6 - https://doi.org/10.1145/3411495.3421360 SP - 147 EP - 157 PB - ACM CY - New York, NY, USA ER - TY - CHAP A1 - Ramsauer, Ralf A1 - Lohmann, Daniel A1 - Mauerer, Wolfgang T1 - System Software for Manufacturing Systems T2 - Proc. First European Advances in Digital Transformation Conference, (2018) Y1 - 2018 ER - TY - CHAP A1 - Ramsauer, Ralf A1 - Lohmann, Daniel A1 - Mauerer, Wolfgang T1 - Reliable Pre-Integration Tracking of Commits on Mailing Lists T2 - Invited Talk at Safety Summit at Embedded Linux Conference Europe (ELCE18) Y1 - 2018 CY - Edinburgh, Scotland ER -