Skip to content

Commit

Permalink
notes
Browse files Browse the repository at this point in the history
  • Loading branch information
BostX committed Oct 20, 2023
1 parent 351e60d commit 6044b72
Show file tree
Hide file tree
Showing 3 changed files with 121 additions and 6 deletions.
122 changes: 116 additions & 6 deletions notes/guix.scrbl
Original file line number Diff line number Diff line change
@@ -1,12 +1,114 @@
#lang notes

@block{@block-name{NixOS Flakes}
New system for managing Nix eco system
@block{@block-name{Guix Source Code}
Let's read the GNU Guix source code
https://youtu.be/xccqwN7Negw?si=dFfWBcPlOCgbg_CT

nix/boost/
Boost.org: free peer-reviewed portable C++ source libraries.

nix/libstore/
Some common parts with NoxOS

m4/
m4 macro processor
(L4 is a microkernel familly, seL4 Microkernel Security)

Guix TODOs
GNUnet - free and open-source decentralized network with mesh topology
GNUnet DHT Distributed Hash Table - part of GNUnet
store & retrieve key-value pairs in a distributed manner across GNUnet network
nodes.

libswift
leverage the capabilities of GNUnet in the Swift programming language.
provides a high-level abstraction over the GNUnet APIs

FSD Free Software Directory
a comprehensive collection of free software

cow-store
- Copy-On-Write Store, key component of the Guix package manager
once a package is built and stored, it cannot be changed.
- layered structure
- Copy-On-Write: technique to optimize disk space. Only the changed package
part are copied and modified. The unmodified parts are shared with the
original package

guix/po
po file extension - internationalization, GNU gettext

scripts/guix.in
- ? initialisation ?

PKI Public Key Infrastructure
- component of Guix package manager
- framework of policies, processes, and technologies used to manage and secure
public key cryptography

gcrypt
- known as Libgcrypt
- cryptographic functionality to applications
- cryptographic engine behind many software applications. The library handles
various cryptographic algorithms, such as symmetric and asymmetric encryption,
hash functions, key generation, and more.

authentication challenge
- security measure used to verify the identity of a
user or device by requesting additional credentials or information.

gnu system tripplet

Fluids
dynamically scoped variables.
can be accessed throughout the dynamic extent of that scope

Fluid fields:
- dynamic, mutable values within records, for more flexible and configurable
data structures.
- can be useful in concurrent or multi-threaded environments.

# guix time-machine with channels is equal to nix flakes
# https://logs.guix.gnu.org/guix/2023-01-31.log#094922
# See 7.3 Replicating Guix in manual
# https://guix.gnu.org/manual/devel/en/html_node/Replicating-Guix.html
'Why ice-9' by Noah Lavine
https://lists.gnu.org/archive/html/guile-devel/2010-07/msg00046.html

https://inria.hal.science/hal-03604971
two performance-critical aspects in HPC: message passing (MPI) and CPU
micro-architecture tuning.
package multi-versioning, a technique developed for GNU Guix, a tool for
reproducible software deployment, and show that it allows us to implement CPU
tuning without compromising on reproducibility and provenance tracking.


embedded code snippets are staged for eventual execution.
gexps - staging mechanism
explain our journey from traditional Lisp S-expressions to G-expressions,


Oleg Kysielov - monadic programming in scheme
https://okmij.org/ftp/Scheme/monad-in-Scheme.html

https://programming-idioms.org

Procedures in Guile Scheme
differ from functions in mathematics due to the presence of side effects,
mutable state, and language-specific features in Guile Scheme procedures.

language-specific features: control flow constructs (loops, conditionals),
exception handling, and support for input/output operations, which are not
present in mathematical functions.

(file-append shadow "/bin/passwd")

herd.scm
hurd.scm

}

@block{@block-name{NixOS Flakes}
- like guix time-machine with channels
https://logs.guix.gnu.org/guix/2023-01-31.log#094922
See 7.3 Replicating Guix in manual
https://guix.gnu.org/manual/devel/en/html_node/Replicating-Guix.html
}

@block{@block-name{Various}
Expand Down Expand Up @@ -430,6 +532,11 @@
}

@block{@block-name{TODO}
Emacs-Guix
guix-devel-mode mode that indents and highlights Guix code
properly (see Development in The Emacs-Guix Reference Manual).

7.5 Channels with Substitutes

Protesilaos Stavrou
https://protesilaos.com/emacs/dotemacs
Expand Down Expand Up @@ -460,6 +567,9 @@
EasyPG / epa - Emacs’s native support for GnuPG
https://www.masteringemacs.org/article/keeping-secrets-in-emacs-gnupg-auth-sources

# PassCmd "gpg --quiet --for-your-eyes-only --no-tty --decrypt ~/.passwords/gmail.gpg"
# see also sops-nix, vauld

# Set up secret environment variable
guix install gnupg
export SECRET_VAR=`gpg --decrypt /path/to/somekeyfile.gpg 2>/dev/null`
Expand Down
3 changes: 3 additions & 0 deletions notes/guix_package.scrbl
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,9 @@

https://guix.gnu.org/manual/en/html_node/Invoking-guix-weather.html
`guix weather` nars: size of the compressed archives

NAR / nar Nix Archive
binary, platform independent
}

@block{@block-name{Derivations}
Expand Down
2 changes: 2 additions & 0 deletions notes/linux.scrbl
Original file line number Diff line number Diff line change
Expand Up @@ -1027,6 +1027,8 @@
# -v --version Display the version number of readelf
readelf -v $(which vim)

ELF Executable and Linkable Format for executable and shared object files.

# :cygwin command-line installer
apt-cyg --mirror \
http://ftp-stud.hs-esslingen.de/pub/Mirrors/sources.redhat.com/cygwin/x86
Expand Down

0 comments on commit 6044b72

Please sign in to comment.