Under Consideration for Publication in J. Functional Programming Nixos: a Purely Functional Linux Distribution

Under Consideration for Publication in J. Functional Programming Nixos: a Purely Functional Linux Distribution
复制标题

正在考虑在《J. 函数式编程》中发表 Nixos:纯函数式 Linux 发行版

DOI:
--
复制
发表时间:
--
期刊:
影响因子:
--
通讯作者:
N. Pierron
N. Pierron
中科院分区:
--
文献类型:
--
作者:
E. Dolstra;Andres L Oh;N. Pierron

文献摘要

被引文献

相似文献

现有的软件包和系统配置管理工具受到命令式模型的影响,其中系统管理操作(例如软件包升级或对系统配置文件的更改)是有状态的:它们破坏性地更新系统的状态。这会导致许多问题,例如无法轻松地回滚更改,无法并排部署包的多个版本,无法在另一台机器上确定性地复制配置,或者无法可靠地升级系统。在这篇文章中,我们展示了我们可以通过转向纯功能系统配置模型来克服这些问题。这意味着系统的所有静态部分(如软件包,配置文件和系统启动脚本)都是由纯函数构建的,并且是不可变的,以类似于纯函数语言中的堆的方式存储。我们已经在NixOS中实现了这个模型,NixOS是一个不平凡的Linux发行版,它使用Nix包管理器从一个模块化的、纯功能性的规范构建整个系统配置。
Existing package and system configuration management tools suffer from an imperative model, where system administration actions such as package upgrades or changes to system configuration files are stateful: they destructively update the state of the system. This leads to many problems, such as the inability to roll back changes easily, to deploy multiple versions of a package side-by-side, to reproduce a configuration deterministically on another machine, or to reliably upgrade a system. In this article we show that we can overcome these problems by moving to a purely functional system configuration model. This means that all static parts of a system (such as software packages, configuration files and system startup scripts) are built by pure functions and are immutable, stored in a way analogous to a heap in a purely functional language. We have implemented this model in NixOS, a non-trivial Linux distribution that uses the Nix package manager to build the entire system configuration from a modular, purely functional specification.