Maison >Tutoriel système >Linux >Le support non-MMU est-il fourni par le port uClinux du noyau Linux ?

Le support non-MMU est-il fourni par le port uClinux du noyau Linux ?

WBOY
WBOYavant
2024-01-26 17:18:20720parcourir

Il est long et contient beaucoup de contenu technique, alors cliquez pour le suivre afin de ne pas vous laisser distraire.

Préface : Comprendre le noyau Linux

Un système informatique est une symbiose de matériel et de logiciels. Ils sont interdépendants et indissociables. Le matériel informatique étapes de transplantation du noyau Linux est riche en périphériques, processeurs, mémoire, disques durs et autres appareils électroniques qui constituent le cylindre de l'ordinateur. Et sans logiciel pour le faire fonctionner et le contrôler, il ne peut pas fonctionner tout seul. Le logiciel qui effectue ce travail de contrôle est appelé système d'exploitation. Dans la terminologie Linux, il est appelé « noyau » ou « noyau ». Les principaux modules (ou composants) du noyau Linux sont répartis dans les parties suivantes : gestion du stockage, gestion du processeur et des processus, système de fichiers, gestion des périphériques et pilotes, forum Linux de communication réseau et initialisation du système (démarrage), appels système, etc. .

Le noyau Linux implémente de nombreuses propriétés architecturales importantes. À un niveau supérieur ou inférieur, le noyau est défini en sous-systèmes. Linux peut également être considéré dans son ensemble, puisqu'il intègre tous ces services de base dans le noyau. Ceci est différent de l'architecture du micro-noyau. La première fournira certains services de base, tels que la communication, les E/S, la mémoire et la gestion des processus, et des services plus spécifiques sont insérés dans la couche du micro-noyau.

Au fil du temps, le noyau Linux est devenu plus efficace en termes de mémoire vidéo et d'utilisation du processeur, et est très stable. Et pour Linux, le plus intéressant est que malgré cette taille et cette complexité, il a toujours une bonne portabilité. Linux est compilé pour fonctionner sur un grand nombre de processeurs et de plates-formes avec des contraintes et exigences architecturales différentes. Un contre-exemple est que Linux peut fonctionner sur un processeur doté d'une unité de gestion de la mémoire graphique (MMU), ou sur des processeurs qui ne fournissent pas d'unité de gestion de la mémoire graphique (MMU). Le port uClinux du noyau Linux prend en charge les non-MMU. Dans l'industrie informatique

Tels que : développement embarqué, développement de pilotes, développement Android, développement C++, développement Java si vous entrez en contact avec les aspects sous-jacents

Alors

Comprendre le noyau : cela aidera votre travail de développement à générer les avantages correspondants.

Comprendre le noyau : cela vous permettra de mieux comprendre les principes sous-jacents et le code source de développement.

Le tronc commun est un bonus pour l'épreuve écrite.

Kernel est le seul moyen de devenir un expert.

Que vous soyez engagé ou non dans le développement du noyau, la technologie du noyau est le meilleur choix pour réserver des compétences, élargir vos horizons et élargir vos compétences techniques.

linuxkernel移植_linux内核移植步骤_linux内核移植的一般步骤Apprenez ensuite :

Analyse du noyau Linux « Sécurité des vulnérabilités et mémoire vidéo virtuelle »

Analyse du principe et de l'architecture du socket du noyau Linux

Analyse du "Modèle de mémoire vidéo physique" du noyau Linux

Parcours d'apprentissage du noyau recommandé Si vous aimez étudier le noyau et souhaitez en savoir plus sur le noyau, vous pouvez vous y référer. 1 : Principes du système d'exploitation/Sujet de compilation 1 : Principes du système d'exploitation

Gestion des processus : état et commutation des processus, exclusion mutuelle et synchronisation des processus, planification des processeurs, blocage des processus

Gestion de la mémoire vidéo : structure de stockage, gestion du stockage des partitions, gestion des segments, gestion des pages, stockage virtuel

Gestion des appareils : cache de disque C, RAID (matrice de disques C), tampon d'E/S

Gestion des fichiers : structure d'organisation des fichiers, principe des fichiers tas, gestion de l'espace de stockage, gestion des répertoires de fichiers

2 : Connaissance approfondie du langage assembleur

Architecture x86/x86_64 : architecture x86/x86_64, bases du langage assembleur, transfert de données, opérations arithmétiques, adressage, traitement des procédures et des conditions, traitement en virgule flottante et codage des instructions

Architecture ARM : microprocesseur principal ARM, système d'instructions commun ARM, programme d'assemblage et débogage ARM, interruption d'exception/gestionnaire de réinitialisation/interruption d'exception SWI, installation et configuration de RealViewMDK, assemblage ARM et implémentation hybride C, instructions de chargement et de stockage des données Réaliser

Deux : Gestion des processus Thème 1 : Bases des processus

Structure organisationnelle du code source du noyau Linux

Principe du processus et état du processus

Cycle de vie et appels système : principe de copie sur écriture, disposition de la mémoire des processus, gestion de la pile de processus, implémentation des appels système

Analyse de la structure des données Task_struct

2 : Planification des processus

Stratégies de planification : SCHED_DEADLINE, SCHED_FIFO, SCHED_RR, SCHED_NORMAL

Priorité du processus : priorité de planification, priorité statique, priorité normale, priorité en temps réel

Analyse des classes de planification : stop_sched_class, dl_sched_class, rt_sched_class, cfs_sched_class, ralenti_shced_class

Planification SMP : migration des threads/isolation des processeurs, équilibrage de la charge du processeur pour la planification des délais, équilibrage de la charge du processeur pour la planification en temps réel et équilibrage de la charge du processeur pour une planification équitable

Trois : Gestion de la mémoire vidéo Thème 1 : Principe de la mémoire vidéo

Organisation modèle SMP/NUMA

Structure et modèle d'organisation de la mémoire chimique

Cache de table de pages/table de pages : structure de répertoires du framework de table de pages, format et gestion d'entrée TLB, identifiant d'espace d'adressage (ASID), identifiant de machine virtuelle (VMID)

Cache processeur : structure et stratégie du cache, cohérence du cache SMP, contrôle du cache et du TLB

Mappage de la mémoire vidéo : analyse de la structure des données, création du mappage de la mémoire vidéo, suppression du mappage de la mémoire vidéo, implémentation des appels système

2 : Mémoire vidéo virtuelle

Allocateur de blocs : principe de l'allocateur de mémoire vidéo, allocation de page et libération de page, allocateur de bloc SLAB, allocateur de bloc SLOB, allocateur de bloc SLUB, socket de planification système

Modules de pages complets : pages géantes standards, pages géantes transparentes, algorithme LRU et mappage inversé, principes de recyclage de pages direct et asynchrone, plan d'exécution pour le recyclage des pages inactives, principes d'échange de pages, principes de cache de dalle de recyclage, gestion des exceptions de défauts de page, fragmentation de la mémoire. , lancement du recyclage de la mémoire vidéo, structure/création/activation des données de la zone d'échange, principes techniques d'épuisement de la mémoire, méthode d'étalonnage des exceptions de page manquante, outil d'inspection KASAN, gestion des exceptions de page d'échange manquantes

Barrière de mémoire vidéo et technologie d'exclusion mutuelle du noyau

Apprenez ensuite :

Le noyau doit apprendre|"Mémoire vidéo physique et mémoire vidéo virtuelle"|Gestion VMA/malloc/mmap

Points techniques du noyau Linux | Chemin d'allocation de pages | Implémentation de l'allocateur de dalle

3 : Appel du système de mémoire vidéo

kmalloc/vmalloc

Principe du pool de mémoire vidéo et opérations de mise en œuvre

linuxkernel移植_linux内核移植的一般步骤_linux内核移植步骤

Paramètres d'optimisation de la mémoire vidéo et mise en œuvre

Mise en œuvre de la mise en cache des pages

Mise en place du cache de blocs

4 : outil d'analyse des performances des performances

Mécanisme de principe de performance et configuration d'installation

Commande de collecte de données Perf 29 applications d'outils

perf collecte des données pour analyser le graphique de flamme

Quatre : Pile de contrats réseau Sujet 1 : Infrastructure réseau

Contrat ICMP

Contrat de datagramme utilisateur (UDP)

Contrat de contrôle de transmission (TCP)

Contrat de Transport de Contrôle de Flux (SCTP)

Contrat de contrôle de diaphonie datagramme (DCCP)

Routage de la politique IPv4

Module de sous-système sans fil : analyse de la structure de trame 802.11MAC, numérisation/authentification/association, implémentation de réception et de transmission mac80211, haut débit (802.11n), réseau maillé (802.11s)

Message de redirection IPv4/table FIB

2 : Pile de contrats réseau

ARP (Contrat de Résolution d'Adresse)

Contrat de datagramme utilisateur (UDP)

Contrat de contrôle de transmission (TCP)

Routage intermédiaire : routage multicast, routage de politique, routage multipath

Recevoir/Envoyer des paquets IPv4

Recevoir/Envoyer des paquets IPv6

Architecture de pile InfiniBand : structure RDMA (Remote Direct Memory Access), composants et adressage InfiniBand, fonctions et packages de données InfiniBand, schéma de processus d'enregistrement/réception de package/envoi de package de pile de protocoles

Apprenez maintenant : maîtrisez l'architecture de la pile de contrats du noyau Linux en 90 minutes

linux内核移植步骤_linux内核移植的一般步骤_linuxkernel移植

3 : Appel API système

Appel API réseau POSIX

Principe et mise en œuvre du noyau epoll

Configuration des paramètres du système réseau

V : Sujet 1 du pilote de périphérique : Sous-système du pilote de périphérique

Principe du mécanisme d'E/S

Allocation et gestion des ressources

Sous-système de périphérique de caractère

Bloquer le sous-système de périphérique

Pilote de carte d'interface réseau

2 : Modèle d'appareil Linux

Analyse approfondie de LDM : structure de données LDM, pilote de périphérique, structure kobject, kobj_type, collection d'objets du noyau

Modèle d'appareil et sysfs : fichiers et propriétés sysfs, permettant l'adressage des fichiers de propriétés sysfs,

3 : Fonctionnement du périphérique de caractère

Appareil principal et appareil secondaire

Ouvrir le fichier de l'appareil

Attribuer et enregistrer des appareils de caractères

Implémentation de l'opération d'écriture de fichiers : mode ouverture/libération, mode lecture/écriture, méthode llseek/poll, remplissage de la structure file_operations

Insérer et supprimer des modules

4 : Bloquer le fonctionnement de l'appareil

Bloquer la représentation de l'appareil et la structure des données

Structure des données BIO

Appel système ioctl

Module de bus : bus ISA, bus PCI/PCI-E, bus USB, bus VESA, bus I2C

5 : Pilote de périphérique de carte réseau

Structure des données : structure du tampon de socket, structure des sockets réseau

Gestion des tampons et contrôle de la concurrence

Pilote réseau ISA

Mode de transfert asynchrone pour ATM

Débit du réseau

Apprenez ensuite : Analyse du code source du processus de communication du socket du noyau Linux

Six : Composant du noyau Thème 1 : Gestion du temps

Sous-système de temps universel

Minuteur de fréquence d'images élevée

Structure de données d'horloge dynamique

Appel système de minuterie

2 : Mise en cache des pages et des blocs

Fonctionnement et mise en œuvre de la structure du cache de pages

Structure et mise en œuvre du cache de blocage

Structure des données de l'espace d'adresse et arborescence des pages

3 : Synchronisation des données

Mécanisme de synchronisation du système numérique

synchronisation des inodes et diaphonie

Forcer la réécriture et la synchronisation complète

4 : Activité du noyau

Type d'interruption/IRQ matériel

Structure de données irq_desc

Gérer les IRQ et les interruptions logicielles

Créer/enregistrer/exécuter une tâche

File d'attente et montant d'achèvement

linuxkernel移植_linux内核移植的一般步骤_linux内核移植步骤

Seven : Sujet sur le système de fichiers

1 : Système de fichiers virtuel VFS

Recherche sur les types de systèmes de fichiers et les modèles de fichiers

Structure des données : super bloc (super_block), descripteur de montage (structure de montage), nœud d'index (structure inode), entrée de répertoire (structure dentaire)

Appels du système de fichiers : ouvrir/fermer des fichiers, créer/supprimer des fichiers, lire/écrire des fichiers, principes techniques de réécriture de fichiers/implémentation de socket

Monter le système de fichiers : processus de traitement de montage des appels système, lier l'espace de noms de montage/montage, monter/enregistrer le système de fichiers rootfs

Pas de système de fichiers persistant : système de fichiers proc (structure de données proc, chargement/gestion des éléments de données proc, implémentation de la lecture et de l'écriture des données), système de fichiers simple (fichier séquentiel, système de fichiers de planification, pseudo-système de fichiers)

2 : système de fichiers du lecteur C

Système de fichiers Ext2 : structure chimique et structure des données, création du système de fichiers, système de fichiers d'exploitation

Système de fichiers Ext3

Système de fichiers Ext4

Journal JBD2

3 : Système de fichiers de l'espace utilisateur

Conception et principe de l'architecture du fusible

Cinq files d'attente principales

Fuse le processus de l'espace utilisateur et le plan de mise en œuvre

Huit : Sujet pratique du projet Kernel

1-Méthode de compilation du noyau Linux et de mise en œuvre du remplacement du système

2-Plan de mise en œuvre de la communication/gestion inter-processus (autorisation/priorité)

Implémentation du pilote de carte réseau 3-NIC

Implémentation de la mémoire vidéo utilisateur de mappage/appel système 4-mmap

5-Implémentation du système de paramètres de mémoire vidéo Linux

6-Débogage et optimisation des performances (debugfs/printk/ftrace)

7-Mécanisme de mise en œuvre de l'allocation de mémoire vidéo de l'allocateur de bloc Slab

Implémentation d'un thread de 8 tâches/de première ligne et d'un minuteur

9-Implémentation du système de fichiers proc du noyau Linux

10-Implémentation iptables du pare-feu du noyau Linux

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer