UP | HOME

Noyaux

Table of Contents

1. Linux

Monolithique

Utilisait readthedocs pour le wiki à un autre logiciel (sphinx ?)

1.1. Compilation

Les sources se trouvent normalement dans /usr/src/linux. Elles peuvent se trouver autre part.

Pour pouvoir compiler le noyau Linux, il faut en premier le configurer. Cela n'est pas nécessaire, mais va permettre d'avoir un noyau avec uniquement ce qui vous intéresse, que ce soit des fonctionnalités ou de la sécurité. Cela peut en revange casser votre noyau. Gardez toujours un noyau fonctionnel sous la main pour pouvoir réparer une mauvaise configuration (oubli des drivers claviers par exemple).

Il est possible d'utiliser un menu pour pouvoir activer des paramètres qui nous intéresse. Cette configuration sera sauvegardée dans le fichier .config. Une fois cette étape finie, il suffit de compiler le noyau, puis de l'installer.

make menuconfig
make -j
make install

En cas d'une mise à jour, je recommande d'utiliser la commande make oldconfig afin de récupérer l'ancienne configuration et avoir le choix avec les nouveautés que l'on souhaite utiliser. Pour avoir les valeurs par défaut et l'ancienne configuration : make olddefconfig.

1.1.1. Ressources

1.2. Commandes

  • mknod : créer un fichier périphérique bloc ou caractère

1.2.1. Modules

  • modprobe : activer ou désactiver des modules
  1. Liste des modules

    À remplir :

    • uvcvideo : pour la caméra

1.3. Challenge

Eudyptula
Création de modules kernel
Advent(2)
Appel système

1.4. Hardened

Rendre "dur" son kernel permet de le sécuriser davantages.

1.5. Développement

On contribue au noyau Linux via des mails et git. Les contributions doivent correspondre aux conventions de code du noyau. Le script checkpatch.pl permet de vérifier si le fichier est aux normes. Le programme indent permet aussi de bien formater les fichiers sources avec le paramètre -linux.

1.6. Rust

Site officiel

Installation sur une VM Ubuntu 22 sur LXD.

apt update
apt install curl make llvm-dev clang lld gcc flex bison libelf-dev libssl-dev
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source ~/.bashrc
wget https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.6.6.tar.xz
tar xvf linux-6.6.6.tar.xz
cd linux-6.6.6
rustup component add rust-src
rustup override set $(scripts/min-tool-version.sh rustc)
cargo install --locked --version $(scripts/min-tool-version.sh bindgen) bindgen-cli
make LLVM=1 rustavailable
make menuconfig

Il faut modifier 2 valeurs :

  • Enable loadable module support > Module versioning support : n
  • General setup > Rust support : y

1.7. Distributions

Triées par distribution "source".

1.7.1. Gentoo

1.7.2. Debian

1.7.3. Arch

1.7.4. Autres

Tiny Core
distribution très légère pouvant être démarrée en live

2. BSD

3. Unix

unix: dev sur pdp-1 en asm puis porté sur pdp-11. c créé après le portage et réécriture d'unix en C

4. chad ultime (Guix avec GNU/Hurd)

Merci d0p1 !!

Pour build l'image avec ce hurd.scm

guix system image --image-type=hurd-qcow2 --target=i586-pc-gnu hurd.scm

Author: rick

Email: rick@gnous.eu

Created: 2024-05-16 jeu. 20:32

Validate