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 ?)
- Développement de modules : contient des informations sur le développement pour Linux et la création de modules ainsi que les commandes autour.
- Syscall
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
- Configuration du noyau (wiki Gentoo)
- Mise à jour du noyau (wiki Gentoo)
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
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
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.