Lisp in the Middle Using Lisp to Manage a Linux System
Total Page:16
File Type:pdf, Size:1020Kb
Load more
Recommended publications
-
Debian Installation Manual
Powered by Universal Speech Solutions LLC MRCP Deb Installation Manual Administrator Guide Revision: 70 Created: February 7, 2015 Last updated: March 15, 2021 Author: Arsen Chaloyan Powered by Universal Speech Solutions LLC | Overview 1 Table of Contents 1 Overview ............................................................................................................................................... 3 1.1 Applicable Versions ............................................................................................................ 3 1.2 Supported Distributions ...................................................................................................... 3 1.3 Authentication ..................................................................................................................... 3 2 Installing Deb Packages Using Apt-Get ............................................................................................... 4 2.1 Repository Configuration ................................................................................................... 4 2.2 GnuPG Key ......................................................................................................................... 4 2.3 Repository Update .............................................................................................................. 4 2.4 UniMRCP Client Installation .............................................................................................. 5 2.5 UniMRCP Server Installation ............................................................................................ -
GNU Guix Cookbook Tutorials and Examples for Using the GNU Guix Functional Package Manager
GNU Guix Cookbook Tutorials and examples for using the GNU Guix Functional Package Manager The GNU Guix Developers Copyright c 2019 Ricardo Wurmus Copyright c 2019 Efraim Flashner Copyright c 2019 Pierre Neidhardt Copyright c 2020 Oleg Pykhalov Copyright c 2020 Matthew Brooks Copyright c 2020 Marcin Karpezo Copyright c 2020 Brice Waegeneire Copyright c 2020 Andr´eBatista Copyright c 2020 Christine Lemmer-Webber Copyright c 2021 Joshua Branson Permission is granted to 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 included in the section entitled \GNU Free Documentation License". i Table of Contents GNU Guix Cookbook ::::::::::::::::::::::::::::::: 1 1 Scheme tutorials ::::::::::::::::::::::::::::::::: 2 1.1 A Scheme Crash Course :::::::::::::::::::::::::::::::::::::::: 2 2 Packaging :::::::::::::::::::::::::::::::::::::::: 5 2.1 Packaging Tutorial:::::::::::::::::::::::::::::::::::::::::::::: 5 2.1.1 A \Hello World" package :::::::::::::::::::::::::::::::::: 5 2.1.2 Setup:::::::::::::::::::::::::::::::::::::::::::::::::::::: 8 2.1.2.1 Local file ::::::::::::::::::::::::::::::::::::::::::::: 8 2.1.2.2 `GUIX_PACKAGE_PATH' ::::::::::::::::::::::::::::::::: 9 2.1.2.3 Guix channels ::::::::::::::::::::::::::::::::::::::: 10 2.1.2.4 Direct checkout hacking:::::::::::::::::::::::::::::: 10 2.1.3 Extended example :::::::::::::::::::::::::::::::::::::::: -
Intel® Realsense™ SDK 2.0 Github User Guide
Intel® RealSense™ SDK 2.0 Github User Guide May 2018 Revision 002 Document Number: 337595-002 You may not use or facilitate the use of this document in connection with any infringement or other legal analysis concerning Intel products described herein. You agree to grant Intel a non-exclusive, royalty-free license to any patent claim thereafter drafted which includes subject matter disclosed herein. No license (express or implied, by estoppel or otherwise) to any intellectual property rights is granted by this document. Intel technologies’ features and benefits depend on system configuration and may require enabled hardware, software or service activation. Performance varies depending on system configuration. No computer system can be absolutely secure. Check with the system manufacturer or retailer or learn more at intel.com. Intel technologies may require enabled hardware, specific software, or services activation. Check with the system manufacturer or retailer. The products described may contain design defects or errors known as errata which may cause the product to deviate from published specifications. Current characterized errata are available on request. Intel disclaims all express and implied warranties, including without limitation, the implied warranties of merchantability, fitness for a particular purpose, and non-infringement, as well as any warranty arising from course of performance, course of dealing, or usage in trade. All information provided here is subject to change without notice. Contact the Intel representative to obtain the latest Intel product specifications and roadmaps. Copies of documents which have an order number and are referenced in this document may be obtained by calling 1-800-548- 4725 or visit www.intel.com/design/literature.htm. -
Yocto-Slides.Pdf
Yocto Project and OpenEmbedded Training Yocto Project and OpenEmbedded Training © Copyright 2004-2021, Bootlin. Creative Commons BY-SA 3.0 license. Latest update: October 6, 2021. Document updates and sources: https://bootlin.com/doc/training/yocto Corrections, suggestions, contributions and translations are welcome! embedded Linux and kernel engineering Send them to [email protected] - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 1/296 Rights to copy © Copyright 2004-2021, Bootlin License: Creative Commons Attribution - Share Alike 3.0 https://creativecommons.org/licenses/by-sa/3.0/legalcode You are free: I to copy, distribute, display, and perform the work I to make derivative works I to make commercial use of the work Under the following conditions: I Attribution. You must give the original author credit. I Share Alike. If you alter, transform, or build upon this work, you may distribute the resulting work only under a license identical to this one. I For any reuse or distribution, you must make clear to others the license terms of this work. I Any of these conditions can be waived if you get permission from the copyright holder. Your fair use and other rights are in no way affected by the above. Document sources: https://github.com/bootlin/training-materials/ - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 2/296 Hyperlinks in the document There are many hyperlinks in the document I Regular hyperlinks: https://kernel.org/ I Kernel documentation links: dev-tools/kasan I Links to kernel source files and directories: drivers/input/ include/linux/fb.h I Links to the declarations, definitions and instances of kernel symbols (functions, types, data, structures): platform_get_irq() GFP_KERNEL struct file_operations - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 3/296 Company at a glance I Engineering company created in 2004, named ”Free Electrons” until Feb. -
Introduction to the Nix Package Manager
Introduction Nix concepts Usage examples Conclusion Introduction to the Nix Package Manager Millian Poquet 2021-05-12 — Datamove (Inria) seminar 1 / 16 Introduction Nix concepts Usage examples Conclusion Why Nix? Control your software environment! Programs/libraries/scripts/configurations + versions Why is it important for us? Use/develop/test/distribute software Manually install many dependencies? No, just type nix-shell Shared env for whole team (tunable) and test machines Bug only on my machine? Means this is hardware or OS related Reproducible research Repeat experiment in exact same environment Introduce or test variation 2 / 16 Introduction Nix concepts Usage examples Conclusion What is Nix? Nix: package manager Download and install packages Shell into well-defined environment (like virtualenv) Transactional (rollback works) Cross-platform: Linux, macOS, Windows (WSL) Nix: programming language Define packages Define environments (set of packages) Functional, DSL NixOS: Linux distribution Declarative system configuration Uses the Nix language Transactional (rollback still works) 3 / 16 Introduction Nix concepts Usage examples Conclusion Nix in numbers Started in 2003 Nix 1: 10k commits, 28k C++ LOC Nixpkgs 2: 285k commits, 55k packages 3 1. https://github.com/NixOS/nix 2. https://github.com/NixOS/nixpkgs 3. https://repology.org/repositories/statistics 4 / 16 Introduction Nix concepts Usage examples Conclusion Presentation summary 2 Nix concepts 3 Usage examples 4 Conclusion 5 / 16 Introduction Nix concepts Usage examples Conclusion Traditional -
ROOT Package Management: “Lazy Install” Approach
ROOT package management: “lazy install” approach Oksana Shadura ROOT Monday meeting Outline ● How we can improve artifact management (“lazy-install”) system for ROOT ● How to organise dependency management for ROOT ● Improvements to ROOT CMake build system ● Use cases for installing artifacts in the same ROOT session Goals ● Familiarize ROOT team with our planned work ● Explain key misunderstandings ● Give a technical overview of root-get ● Explain how root-get and cmake can work in synergy Non Goals We are not planning to replace CMake No change to the default build system of ROOT No duplication of functionality We are planning to “fill empty holes” for CMake General overview Manifest - why we need it? ● Easy to write ● Easy to parse, while CMakeLists.txt is impossible to parse ● Collect information from ROOT’s dependencies + from “builtin dependencies” + OS dependencies + external packages to be plugged in ROOT (to be resolved after using DAG) ● It can be easily exported back as a CMakeLists.txt ● It can have extra data elements [not only what is in CMakeLists.txt, but store extra info] ○ Dependencies description (github links, semantic versioning) ■ url: "ssh://[email protected]/Greeter.git", ■ versions: Version(1,0,0)..<Version(2,0,0) Manifest is a “dump” of status of build system (BS), where root-get is just a helper for BS Manifest - Sample Usage scenarios and benefits of manifest files: LLVM/Clang LLVM use CMake as a LLVMBuild utility that organize LLVM in a hierarchy of manifest files of components to be used by build system llvm-build, that is responsible for loading, verifying, and manipulating the project's component data. -
Rash: from Reckless Interactions to Reliable Programs
Rash: From Reckless Interactions to Reliable Programs William Gallard Hatch Matthew Flatt University of Utah University of Utah USA USA [email protected] [email protected] Abstract them along a spectrum of program maturity and scale. Mov- Command languages like the Bourne Shell provide a terse ing code along this scale is often viewed as a transition from syntax for exploratory programming and system interaction. “scripts” to more mature “programs,” and current research Shell users can begin to write programs that automate their aims to improve that transition, especially through grad- tasks by simply copying their interactions verbatim into a ual typing [18, 20]. In this paper, we address a point in the script file. However, command languages usually scale poorly spectrum that precedes even the “script” level of maturity: beyond small scripts, and they can be difficult to integrate command sequences in an interactive shell. into larger programs. General-purpose languages scale well, Different features and aspects of programming languages but are verbose and unwieldy for common interactive actions are well suited to different stages of program maturity. For such as process composition. example, static types are clearly useful for ensuring and We present Rash, a domain-specific command language maintaining software correctness, but types are often seen embedded in Racket. Rash provides a terse and extensible as burdensome or obstructive when writing scripts, so many syntax for interactive system administration and scripting, scripting languages eschew types. Programmers want brevity as well as easy composition of both Racket functions and and even less formality in interactive settings, so read-eval- operating system processes. -
A Reader Framework for Guile for Guile-Reader 0.6.2
A Reader Framework for Guile for Guile-Reader 0.6.2 Ludovic Court`es Edition 0.6.2 8 March 2017 This file documents Guile-Reader. Copyright c 2005, 2006, 2007, 2008, 2009, 2012, 2015, 2017 Ludovic Court`es Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this manual under the con- ditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. Permission is granted to copy and distribute translations of this manual into another lan- guage, under the above conditions for modified versions, except that this permission notice may be stated in a translation approved by the Free Software Foundation. i Table of Contents A Reader Framework for Guile ................ 1 1 Introduction............................... 3 2 Overview .................................. 5 3 Quick Start................................ 7 4 API Reference............................. 9 4.1 Token Readers .............................................. 9 4.1.1 Defining a New Token Reader............................ 9 4.1.2 Token Reader Calling Convention ........................ 9 4.1.3 Invoking a Reader from a Token Reader ................. 10 4.1.4 Token Reader Library .................................. 11 4.1.5 Limitations............................................ 16 4.1.5.1 Token Delimiters ................................. -
Foreign-Function Interfaces for Garbage-Collected Programming Languages
Foreign-Function Interfaces for Garbage-Collected Programming Languages Marcus Crestani Eberhard-Karls-Universitat¨ Tubingen¨ [email protected] Abstract Programs in high-level, garbage-collected programming languages often need to access libraries that are written in other programming languages. A foreign-function interface provides a high-level lan- guage with access to low-level programming languages and negoti- ates between the inside and the outside world by taking care of the High-Level Foreign low-level details. In this paper, I provide an overview of what differ- Programming Function External Code ent kinds of foreign-function interfaces are in use in today’s imple- Language Interface mentations of functional programming languages to help decide on the design of a new foreign-function interface for Scheme 48. I have revised several mechanisms and design ideas and compared them on usability, portability, memory consumption and thread safety. I discuss the garbage-collection related parts of foreign-function in- terfaces using Scheme as the high-level functional language and C as the external language. Figure 1. Foreign-function interface 1. Introduction Programs in functional programming languages often need to ac- This paper reflects my survey, summarizes the results, and presents cess libraries that are written in other programming languages. Scheme 48’s new foreign-function interface, which will replace the Back in 1996, Scheme 48 [10] received its first foreign-function current one in the near future. interface. Over the years, developers connected many external li- braries to Scheme 48 using this foreign-function interface. Many 1.1 Foreign-Function Interfaces other Scheme implementations use a similar foreign-function in- A foreign-function interface provides a high-level programming terface, for example Elk [12], scsh [18], and PLT Scheme’s static language with access to other (usually low-level) programming lan- foreign interface [6]. -
CDE: Run Any Linux Application On-Demand Without Installation
CDE: Run Any Linux Application On-Demand Without Installation Philip J. Guo Stanford University [email protected] Abstract with compiling, installing, and configuring software and their myriad of dependencies. For example, the official There is a huge ecosystem of free software for Linux, but Google Chrome help forum for “install/uninstall issues” since each Linux distribution (distro) contains a differ- has over 5800 threads. ent set of pre-installed shared libraries, filesystem layout In addition, a study of US labor statistics predicts that conventions, and other environmental state, it is difficult by 2012, 13 million American workers will do program- to create and distribute software that works without has- ming in their jobs, but amongst those, only 3 million will sle across all distros. Online forums and mailing lists be professional software developers [24]. Thus, there are are filled with discussions of users’ troubles with com- potentially millions of people who still need to get their piling, installing, and configuring Linux software and software to run on other machines but who are unlikely their myriad of dependencies. To address this ubiqui- to invest the effort to create one-click installers or wres- tous problem, we have created an open-source tool called tle with package managers, since their primary job is not CDE that automatically packages up the Code, Data, and to release production-quality software. For example: Environment required to run a set of x86-Linux pro- grams on other x86-Linux machines. Creating a CDE • System administrators often hack together ad- package is as simple as running the target application un- hoc utilities comprised of shell scripts and custom- der CDE’s monitoring, and executing a CDE package re- compiled versions of open-source software, in or- quires no installation, configuration, or root permissions. -
Debian Packaging Tutorial
Debian Packaging Tutorial Lucas Nussbaum [email protected] version 0.27 – 2021-01-08 Debian Packaging Tutorial 1 / 89 About this tutorial I Goal: tell you what you really need to know about Debian packaging I Modify existing packages I Create your own packages I Interact with the Debian community I Become a Debian power-user I Covers the most important points, but is not complete I You will need to read more documentation I Most of the content also applies to Debian derivative distributions I That includes Ubuntu Debian Packaging Tutorial 2 / 89 Outline 1 Introduction 2 Creating source packages 3 Building and testing packages 4 Practical session 1: modifying the grep package 5 Advanced packaging topics 6 Maintaining packages in Debian 7 Conclusions 8 Additional practical sessions 9 Answers to practical sessions Debian Packaging Tutorial 3 / 89 Outline 1 Introduction 2 Creating source packages 3 Building and testing packages 4 Practical session 1: modifying the grep package 5 Advanced packaging topics 6 Maintaining packages in Debian 7 Conclusions 8 Additional practical sessions 9 Answers to practical sessions Debian Packaging Tutorial 4 / 89 Debian I GNU/Linux distribution I 1st major distro developed “openly in the spirit of GNU” I Non-commercial, built collaboratively by over 1,000 volunteers I 3 main features: I Quality – culture of technical excellence We release when it’s ready I Freedom – devs and users bound by the Social Contract Promoting the culture of Free Software since 1993 I Independence – no (single) -
Using X for a High Resolution Console on Freebsd I
Using X For A High Resolution Console On FreeBSD i Using X For A High Resolution Console On FreeBSD Using X For A High Resolution Console On FreeBSD ii REVISION HISTORY NUMBER DATE DESCRIPTION NAME 2011-05-26 WB Using X For A High Resolution Console On FreeBSD iii Contents 1 Introduction 1 2 Minimal Window Managers 1 3 Setup 1 4 Usage 2 Using X For A High Resolution Console On FreeBSD 1 / 2 © 2011 Warren Block Last updated 2011-05-26 Available in HTML or PDF. Links to all my articles here. Created with AsciiDoc. High resolution VESA BIOS modes are rare. X11 can provide borderless screens and windows that look like a text-only console but have many more options. 1 Introduction FreeBSD’s bitmap console modes are limited to those provided by the video card’s VESA BIOS. 1280x1024 is a standard mode, but higher resolutions are not available unless the video card manufacturer has implemented them. Many vendors expect their cards to only be used in bitmap mode anyway, and don’t bother with extending the VESA modes. The end result is that console graphics modes higher than 1280x1024 are often not available. Fortunately, X can be used to provide a graphic console without requiring VESA BIOS support. Even better, basic X11 features like 2D acceleration and antialiased fonts are provided, and graphics-only applications like Firefox can be used. 2 Minimal Window Managers There are a selection of window managers that don’t bother with all the graphical gadgets. A quick look through the ports system shows aewm, antiwm, badwm, evilwm, lwm, musca, ratpoison, scrotwm, stumpwm, twm, w9wm, and weewm.