Navigating the Guix Subsystems

Similar documents
reproducible and user-controlled software management in HPC

Controlling Software Environments with GNU Guix

Adding GNU/Hurd support to GNU Guix Porting GNU Guix to a new platform

GNU Guix: Scheme as a uniform OS admin and deployment interface

GNU Guix is 4 years old!

Functional Package Management with GNU Guix

. GNU Guix: Package without a scheme! Andreas Enge. GNU Hackers Meeting Paris, 23 August 2013

Growing a GNU with Guix

Building a whole distro on top of a minimalistic language

Reproducible Software Deployment with GNU Guix

Linux From Scratch. Version 7.7-systemd. Created by Gerard Beekmans Edited by Matthew Burgess and Armin K.

Linux From Scratch. Version 8.1-systemd. Created by Gerard Beekmans Managing Editor: Bruce Dubbs Editor: Douglas R. Reno Editor: DJ Lucas

Cross-Compiled Linux From Scratch. Version SYSTEMD-x86_64-Pure64

Linux From Scratch. Version 8.3. Created by Gerard Beekmans Managing Editor: Bruce Dubbs

Linux From Scratch. Version 8.2. Created by Gerard Beekmans Managing Editor: Bruce Dubbs

Linux From Scratch. Version 8.1. Created by Gerard Beekmans Managing Editor: Bruce Dubbs

EMC PowerPath Management Appliance

Linux From Scratch. Version Created by Gerard Beekmans Managing Editor: Bruce Dubbs

The Hydra/Nix Approach to Continuous Integration

Quick Start Guide. Ultra low power IEEE compliant wireless sensor module Humidity, Light, and Temperature sensors with USB

Linux From Scratch. Version 7.3. Created by Gerard Beekmans Edited by Matthew Burgess and Bruce Dubbs

StoreEver LTO-7 Tape Drive Open Source Software Release Notes


Updated RPMs and Security Fixes

GNU Mes Reduced Binary Seed bootstrap

Setting up an SDK for Secondo

Introducing the Civil Infrastructure Platform. Jan Kiszka and Yoshitake Kobayashi LinuxCon Japan, July, 2016

Open Source Software License Declaration Requirements for the Dialog oven.

Practical, verifiable software freedom with GuixSD. David Thompson Sunday, March 25th, 2018

Towards Sustainable Systems with the Civil Infrastructure Platform. Jan Kiszka, Siemens AG LinuxCon North America, 24 th August 2016

Industrial-grade Open Source Base Layer Development

Civil Infrastructure Platform : Industrial Grade SLTS Kernel and Base-Layer Development

Time is ready for the Civil Infrastructure Platform

Tool installation for PMC-MC-X2/X4 with P2020 series processor

MobaXterm Professional 10.4 (X server, SSH client and network tools)

Rethinking the core OS in 2015

Industrial-grade Open Source Base Layer. Yoshitake Kobayashi, Toshiba Corporation Embedded Linux Conference North America, March 12-14, 2018

Yocto Project & Embedded Linux

7.3 Install on Linux and Initial Configurations

RealPresence Collaboration Server (RMX)

Reproducible packaging and distribution of software with GNU Guix

Proceedings of ELS th European Lisp Symposium June Madrid, Spain

Industrial-grade Open Source Base Layer Development

OSELAS.Support OSELAS.Training OSELAS.Development OSELAS.Services

9.3 Linux?????????????

7.3 Linux?????????????

Cross Compiling. Real Time Operating Systems and Middleware. Luca Abeni

Cross-compilation with Buildroot

Building a Custom Linux Distribution for Your Company. Hewlett Packard

RTEMS User Manual. Release (master) Copyright 2017, RTEMS Project (built 19th July 2018)

Multicore Programming Handout 1: Installing GCC Cilk Plus

Developing with L4 Overview and Pointers

Introduction to Supercomputing

Continuous Integration and Release Management with Nix

Gentoo Linux. Software Freedom Day 2010 Charleston, SC Linux User Group. Presentation by Kevin Bowling

Applying GCC-based Address Sanitizer to Tizen OS

PaPP cross-platform development system version 15.0

Multiarch - why it s important

Community Enterprise Operating System (CentOS 7) Courses

Binary Analysis Tool

Rethinking the core OS in 2015

YUM utilities on AIX

Linux Fundamentals (L-120)

Emacsy. Shane Celis. GNU Hackers Meeting Paris, France August 24th, 2013

Crosstoolchains in Debian

Building the X Window System from the X.org Source Distribution 1

Multiarch crossbuilding How to use it, and what still needs work

Third party software. 1. node.js. 2. node.js apps. 3. Node-RED

Intel Do-It-Yourself Challenge Compile C/C++ for Galileo Nicolas Vailliet

Development Environment of Embedded System

e2 factory the emlix Embedded Build Framework

1Z Oracle Linux Fundamentals (Oracle Partner Network) Exam Summary Syllabus Questions

RISC-V Software Ecosystem

World Sync, Clone, and Snapshot... Overview and Introduction. School of IS Curtin University. Overview

IB047. Unix Text Tools. Pavel Rychlý Mar 3.

LINUX FUNDAMENTALS (5 Day)

Embedded Systems Programming

First of all, these notes will cover only a small subset of the available commands and utilities, and will cover most of those in a shallow fashion.

RTEMS Source Builder. Release (master) Copyright 2017, RTEMS Project (built 29th June 2018)

Name: Peter Lemieszewski Venue: Education

Prerequisites: General computing knowledge and experience. No prior knowledge with Linux is required. Supported Distributions:

Faculty of Computer Science Institute for System Architecture, Operating Systems Group. Complex Lab Operating Systems 2016 Winter Term.


Systemwalker Software Configuration Manager. Installation Guide. Windows/Linux

LINUX FUNDAMENTALS. Supported Distributions: Red Hat Enterprise Linux 6 SUSE Linux Enterprise 11 Ubuntu LTS. Recommended Class Length: 5 days

Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License.

The student will have the essential skills needed to be proficient at the Unix or Linux command line.

First of all, these notes will cover only a small subset of the available commands and utilities, and will cover most of those in a shallow fashion.

NCSA Security R&D Last Updated: 11/03/2005

Arm cross development tools

Workflow management for data analysis with GNU Guix

client X11 Linux workstation

Intel Parallel Studio XE 2015 Composer Edition for Linux* Installation Guide and Release Notes

a story of alternatives

Buildroot: what s new?

The Architecture of the GNUnet: 45 Subsystems in 45 Minutes

Prerequisites: Students should be comfortable with computers. No familiarity with Linux or other Unix operating systems is required.

Cubieboard4 Linux Sdk Guide TF BOOT & TF WRITE EMMC. Website: Support:

HP-UX 11 GNU Compiler Toolchain and the Linux Open Source Toolkit

How to cross compile with LLVM based tools. Peter Smith, Linaro

Transcription:

Navigating the Guix Subsystems Ludovic Courtès GNU Hackers Meeting, Rennes, August 2016

The Emacs of distros

When large numbers of nontechnical workers are using a programmable editor, they will be tempted constantly to begin programming in the course of their day-to-day lives. This should contribute greatly to computer literacy [...] Stallman, 1981

user freedom = access + empowerment

$ guix package -i emacs guile?

#1. Packages.

#2. The store.

build processes chroot, separate UIDs Guile, make, etc. Guile, make, etc. Guile, make, etc. Guile Scheme (guix packages) (guix store) build daemon

build processes chroot, separate UIDs Guile, make, etc. Guile, make, etc. Guile, make, etc. Guile Scheme (guix packages) (guix store) build daemon RPCs

build processes chroot, separate UIDs Guile, make, etc. Guile, make, etc. Guile, make, etc. Guile Scheme (guix packages) (guix store) build daemon RPCs

#3. From packages to derivations.

coreutils-8.24 libcap-2.24 acl-2.2.52 gmp-6.1.0 attr-2.4.47 m4-1.4.17 perl-5.22.1 gettext-0.19.7 expat-2.1.0 9 nodes guix graph --type=package coreutils

coreutils-8.24 libcap-2.24 acl-2.2.52 gmp-6.1.0 Where attr-2.4.47 are GCC, libc, etc.? m4-1.4.17 perl-5.22.1 gettext-0.19.7 expat-2.1.0 9 nodes guix graph --type=package coreutils

tar-1.28 gettext-0.19.7 expat-2.1.0 acl-2.2.52 attr-2.4.47 coreutils-8.24 libcap-2.24 perl-5.22.1 patch-2.7.5 sed-4.2.2 bzip2-1.0.6 diffutils-3.3 findutils-4.6.0 gzip-1.6 xz-5.2.2 gcc-4.9.3 coreutils-8.24 file-5.25 glibc-2.22 grep-2.22 glibc-utf8-locales-2.22 make-4.1 bash-4.3.42 ld-wrapper-0 binutils-2.25.1 gawk-4.1.3 gmp-6.1.0 m4-1.4.17 28 nodes guix graph --type=bag-emerged coreutils

tar-1.28 gettext-0.19.7 expat-2.1.0 acl-2.2.52 attr-2.4.47 coreutils-8.24 libcap-2.24 perl-5.22.1 patch-2.7.5 sed-4.2.2 bzip2-1.0.6 diffutils-3.3 findutils-4.6.0 gzip-1.6 xz-5.2.2 gcc-4.9.3 coreutils-8.24 file-5.25 glibc-2.22 grep-2.22 glibc-utf8-locales-2.22 make-4.1 bash-4.3.42 ld-wrapper-0 binutils-2.25.1 gawk-4.1.3 gmp-6.1.0 m4-1.4.17 What about the compiler s compiler, etc.? 28 nodes guix graph --type=bag-emerged coreutils

coreutils-8.24 perl-5.22.1 tar-1.28 gzip-1.6 bzip2-1.0.6 xz-5.2.2 file-5.25 diffutils-3.3 patch-2.7.5 sed-4.2.2 findutils-4.6.0 gawk-4.1.3 grep-2.22 coreutils-8.24 make-4.1 bash-4.3.42 ld-wrapper-0 binutils-2.25.1 gcc-4.9.3 glibc-2.22 glibc-utf8-locales-2.22 acl-2.2.52 gmp-6.1.0 libcap-2.24 glibc-utf8-locales-2.22 gcc-4.9.3 ld-wrapper-boot3-0 binutils-cross-boot0-2.25.1 make-boot0-4.1 diffutils-boot0-3.3 findutils-boot0-4.6.0 file-boot0-5.25 bootstrap-binaries-0 ed-1.12 libsigsegv-2.10 perl-boot0-5.22.1 perl-5.22.1 acl-2.2.52 gmp-6.1.0 libcap-2.24 pkg-config-0.29 guile-2.0.11 bison-3.0.4 readline-6.3 ncurses-6.0 gcc-cross-boot0-wrapped-4.9.3 texinfo-6.0 bash-static-4.3.42 libstdc++-4.9.3 zlib-1.2.8 perl-boot0-5.22.1 gettext-boot0-0.19.7 gcc-cross-boot0-4.9.3 glibc-bootstrap-0 gcc-bootstrap-0 linux-libre-headers-3.14.37 gzip-1.6 gettext-0.19.7 attr-2.4.47 m4-1.4.17 gzip-1.6 guile-bootstrap-2.0 binutils-bootstrap-0 gettext-0.19.7 attr-2.4.47 m4-1.4.17 gcc-cross-boot0-wrapped-4.9.3 glibc-intermediate-2.22 m4-1.4.17 expat-2.1.0 lzip-1.16 pkg-config-0.29 libffi-3.2.1 readline-6.3 libunistring-0.9.6 libltdl-2.4.6 libgc-7.4.2 gmp-6.1.0 ncurses-6.0 libatomic-ops-7.4.2 m4-1.4.17 expat-2.1.0 82 nodes guix graph --type=bag coreutils

(too big) 383 nodes guix graph --type=derivation coreutils

origin package bag build system derivation

#4. Operating system!

Linux-libre

Linux-libre initial RAM disk

Linux-libre initial RAM disk Guile

Linux-libre initial RAM disk Guile PID 1: GNU Shepherd services...

Linux-libre initial RAM disk Guile PID 1: GNU Shepherd services... Guile

Linux-libre initial RAM disk Guile PID 1: GNU Shepherd services... Guile applications

ludo@gnu.org http://gnu.org/software/guix/

Copyright c 2010, 2012 2016 Ludovic Courtès ludo@gnu.org. GNU GuixSD logo, CC-BY-SA 4.0, http://gnu.org/s/guix/graphics Copyright of other images included in this document is held by their respective owners. This work is licensed under the Creative Commons Attribution-Share Alike 3.0 License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/ or send a letter to Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA. At your option, you may instead copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at http://www.gnu.org/licenses/gfdl.html. The source of this document is available from http://git.sv.gnu.org/cgit/guix/maintenance.git.