UP | HOME

Noyaux

Table of Contents

Page traitant des noyaux existants. La page DevSE se concentre sur le développement à partir de 0 d'un noyau.

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 nouvelles valeurs par défaut et l'ancienne configuration : make olddefconfig.

1.1.1. Ressources

1.2. Modules

Liste des modules, à remplir :

uvcvideo
pour la caméra

1.3. Hardened

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

1.4. 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.5. 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.6. Distributions

Distrowatch est un bon site pour voir le status d'une distributions. Distrochooser permet de découvrir des distributions après un questionnaire.

Triées par distribution "source":

1.6.1. Autres

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

2. BSD

3. Windows NT

3.1. Windows

Système d'exploitation utilisant le noyau Windows NT.

3.1.1. Format fichier LNK

Le format LNK est un raccourci Windows. Il est possible de l'analyser avec différents outils:

LECmd
outil Windows, à utiliser dans le terminal
liblnk
outil Linux, à utiliser dans le terminal avec l'outil lnkinfo
Scripts Perl
non testés

4. 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

5. 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

6. CollapseOS / DuskOS

Noyau très léger avec assez d'outils pour être un système d'exploitation, conçu pour pouvoir tourner sur de vieilles technologies après l'effondrement.

https://duskos.org/ http://collapseos.org/

Author: rick

Email: rick@gnous.eu

Created: 2024-11-25 lun. 18:55

Validate