27 research outputs found

    Language of ‘purely functional’ operating systems.

    Get PDF
    Due to the multitude of terminologies brought on by the emergence of the “purely functional” approach in operating systems, such a document seemed warranted; Some terms are brand new, others should be familiar but have been re-purposed while others yet though established have been replaced. Based on an extensive review of the existing literature, this language summary aims to be an entry point for researchers and others interested in this novel, and active field. Its vocabulary will hopefully not be a hindrance anymore to their various activities (theory or practice). *older re-uploa

    Minimal re-computation for exploratory data analysis in astronomy

    Get PDF
    We present a technique to automatically minimise the re-computation when a data processing program is iteratively changed, or added to, as is often the case in exploratory data analysis in radio astronomy. A typical example is flagging and calibration of demanding or unusual observations where visual inspection suggests improvement to the processing strategy. The technique is based on memoization and referentially transparent tasks. We describe a prototype implementation for the CASA data reduction package. This technique improves the efficiency of data analysis while reducing the possibility for user error and improving the reproducibility of the final result

    Eating Your Own Dog Food: WebDSL Case Studies to Improve Academic Workflows

    Get PDF
    SDF, Stratego and Spoofax provide a platform for development of domain-specific programming languages. On this platform, the WebDSL project started out as a case study in language engineering, and grew into a reliable tool for rapid prototyping and continuous development of web applications. Our team led by Eelco Visser develops and operates several web applications to support academic workflows. EvaTool governs the process of course quality control, importing questionnaire data, and providing lecturers and education directors with a platform to discuss and agree on improvements. WebLab is an online learning management system with a focus on programming education, with support for lab work and digital exams, used by over 40 courses. Conf Researchr is a domain-specific content management system for creating and hosting integrated websites for conferences with multiple co-located events, used by all ACM SIGPLAN and SIGSOFT conferences. MyStudyPlanning is an application for composition of individual study programs by students and verification of those programs by the exam board, used by multiple faculties at the Delft University of Technology. These tools served as practical case studies for applying the research, and ensure the continued development of the underlying platform

    Pacloud: Towards a Universal Cloud-based Linux Package Manager

    Full text link
    Package managers are a very important part of Linux distributions but we have noticed two weaknesses in them: They use pre-built packages that are not optimised for specific hardware and often they are too heavy for a specific need, or packagesmay require plenty of time and resources to be compiled. In this paper, we present a novel Linux package manager which uses cloud computing features to compile and distribute Linux packages without impacting the end user's performance. We also show how Portage, Gentoo's package manager can be optimised for customisation and performance, along with the cloud computing features to compile Linux packages more efficiently. All of this resulting in a new cloud-based Linux package manager that is built for better computing performance.Comment: Presented at CECCC 2019. 8 pages, 13 figure

    Backtracking Incremental Continuous Integration

    Get PDF
    Failing integration builds are show stoppers. Development activity is stalled because developers have to wait with integrating new changes until the problem is fixed and a successful build has been run. We show how backtracking can be used to mitigate the impact of build failures in the context of component-based software development. This way, even in the face of failure, development may continue and a working version is always available

    NixOS: A Linux Distribution Specialized in System Configuration Management

    Get PDF
    Työn analyysin kohteena oli hollantilaisen Eelco Dolstran tutkimusprojektina alkanut ja sittemmin väitöskirjaksi asti päätynyt projekti NixOS, joka on järjestelmäkonfiguroinnin hallintaan ja ohjelmistojen jakeluun liittyvien ongelmakohtien ratkaisemiseen erikoistunut Linux-pohjainen käyttöjärjestelmä. Tämän työn tarkoituksena oli selvittää tarkemmin mitä nämä ongelmakohdat tosiasiassa ovat, millaisilla ratkaisuilla niitä on NixOS:ssä ratkaistu ja millaisia eroavaisuuksia NixOS sisältää verrattuna muihin suosittuihin Linux-käyttöjärjestelmiin. Tämän lisäksi tavoitteena oli myös selvittää millaisiin käyttökohteisiin NixOS sopii. Työssä perehdyttiin aluksi tavallisten Linux-jakeluiden rakenteeseen, josta erityisesti pakettienhallintaan, koska se on NixOS:n poikkeuksellisin ja tärkein komponentti. Näillä tiedoilla siirryttiin NixOS:n esittelyyn, josta käytiin läpi sen historiaa, rakennetta ja erityisiä ominaisuuksia. Tämän jälkeen keskityttiin NixOS:n tärkeimpään ominaisuuteen, eli sen pakettienhallintajärjestelmään. Siitä käytiin läpi sen toimintaperiaate ja erot muihin pakettienhallintajärjestelmiin. Lopuksi esiteltiin vielä erilaisia käyttökohteita, joihin NixOS soveltuu. Tämän ohessa myös pohdittiin erilaisia seikkoja, miksi NixOS ei ole laajoista ominaisuuksistaan huolimatta edelleenkään kovin suosittu. Työssä saatiin selville millaisia rakenteellisia ratkaisuja NixOS:ssä on jouduttu tekemään, jotta se voisi tarjota hyvin poikkeukselliset ominaisuutensa. Näistä ratkaisuista käytiin erityisen tarkasti läpi pakettienhallintaohjelmiston toteutus, joka on merkittävästi erilainen kuin muiden suosittujen Linux-jakeluiden vastaavien ohjelmien. Lopuksi vielä spekuloitiin useita potentiaalisia syitä NixOS:n vaatimattomaan suosioon, kuten esimerkiksi erittäin pieni kohderyhmä, kaupallisen tuen puute ja helpommin käytettävät kilpailevat ratkaisut

    A Mathematical Model of Package Management Systems -- from General Event Structures to Antimatroids

    Full text link
    This paper brings mathematical tools to bear on the study of package dependencies in software systems. We introduce structures known as Dependency Structures with Choice (DSC) that provide a mathematical account of such dependencies, inspired by the definition of general event structures in the study of concurrency. We equip DSCs with a particular notion of morphism and show that the category of DSCs is isomorphic to the category of antimatroids. We study the exactness properties of these equivalent categories, and show that they are finitely complete, have finite coproducts but not all coequalizers. Further, we construct a functor from a category of DSCs equipped with a certain subclass of morphisms to the opposite of the category of finite distributive lattices, making use of a simple finite characterization of the Bruns-Lakser completion, and finally, we introduce a formal account of versions of packages and introduce a mathematical account of package version-bound policies.Comment: Version 2: grammatical improvement

    Raspberry Pi 4 Cluster Management in Nix

    Get PDF
    Náplňou tejto diplomovej práce je návrh a implementácia systému pre nasadenie, správu a monitoring Raspberry Pi klastra pomocou technológií Nix. Práca popisuje výhody funkcionálneho prístupu systému Nix a podsystémov, ktoré z neho vychádzajú. Výsledkom práce je tiež podporná webová aplikácia, poskytujúca intuitívne prostredie pre prácu s nasadeniami konfigurácii klastra a prehľadné zobrazovanie informácii o vyťažení jednotlivých uzlov s využitím dashboardov. Záverečná časť práce sa venuje testovaniu výkonu klastra pomocou ukážkových úloh distribuovaných výpočtov.The scope of this thesis is to design and implement a system for deploying, managing and monitoring a Raspberry Pi cluster using Nix technologies. The thesis describes the benefits of the functional approach of Nix and the subsystems that are based on it. The thesis also results in a supporting web application, providing an intuitive environment for working with cluster configuration deployments and clearly displaying information about the utilization of individual nodes using dashboards. The final part of the thesis is devoted to testing cluster performance using sample distributed computing jobs.

    Ohjelmistokehitysympäristöjen eristäminen

    Get PDF
    Software development processes are evolving constantly, aiming to more agile and efficient approaches. Agility demands ability to adapt to quick changes in requirements, which can lead to modifications in development environments. Managing environments for developing and testing has become an essential part of efficient development work. Developers should be able to modify environments safely without having to worry about disrupting something else in the system. Working on multiple projects at the same time without conflicting dependencies should also be possible. The amount of software dependencies in a modern application using open-source components is typically very large, so conflicts between projects are rarely avoided without any isolation between environments. Virtualization is at a key role providing not only the needed isolation, but also the tools for managing the environments. Virtual machines and containers utilizing modern tools and large ecosystems for open-source software make creating and managing isolated development environments efficient. There are also other means besides virtualization to avoid conflicting environments, one of which is using a functional package manager that allows installing software components in isolation from each other. In this thesis, different ways of creating an isolated development environment are discussed. Three approaches achieving different levels of isolation are presented; full isolation using virtual machines, namespace isolation using containers and component isolation using a functional package manager. The focus is on introducing the technologies and tools for isolating a development environment using a simple practical example for each approach. The approaches are compared on a high level on few relevant categories which are level of isolation, reproducibility, resource overhead, usability and support and availability. The thesis is concluded with a quick summary and some discussion about choosing between the isolation solutions
    corecore