GNU/Linux >> Tutoriels Linux >  >> Linux

Principales différences entre les noyaux Linux et UNIX

UNIX a été considéré comme la mère de la plupart des systèmes d'exploitation. Certains des membres populaires de cette famille incluent :

  • System V Release 4 (SVR4) développé par AT&T.
  • 4.4 BSD de l'université de Californie
  • AIX d'IBM.
  • HP-UX de Hewlett-Packard.
  • Solaris de Sun Microsystems.


Linux est un membre relativement nouveau de cette famille. Linux a été initialement écrit par Linus Torvalds en 1991 pour les ordinateurs personnels compatibles IBM. En tant que système d'exploitation, GNU Linux a connu un succès et une popularité énormes au cours des 20 dernières années, la plupart des serveurs commerciaux utilisant désormais GNU Linux. Pour ajouter à la popularité, les utilisateurs finaux ont également commencé à utiliser Linux ces jours-ci, la plupart des fabricants d'ordinateurs portables et de PC populaires proposant GNU Linux comme système d'exploitation par installation.

Pour ceux qui sont encore confus entre Linux étant un système d'exploitation ou un noyau, Linux dans le vrai sens tel qu'écrit par Linus était un noyau qui a été écrit en se référant au livre sur les composants internes d'Unix (bien que le noyau Linux ait adopté de bonnes fonctionnalités de nombreux autres noyaux de type Unix aussi) tandis que les distributions disponibles dans le commerce qui contiennent des utilitaires tels que le bureau graphique, les éditeurs de texte, les compilateurs, etc. en plus du noyau Linux sont des systèmes d'exploitation complets.

Bien que le noyau Linux emprunte la plupart de ses fonctionnalités aux noyaux Unix/Unix-Like, il existe néanmoins de nombreux points sur lesquels les deux types de noyaux diffèrent considérablement. Dans cet article, l'accent sera mis sur ces différences. La liste n'est pas exhaustive mais contient les principales différences.

1. Approche monolithique ou micro-noyau

Les noyaux monolithiques sont ceux où tout le code du noyau s'exécute en un seul processus, tandis que les noyaux micro-noyaux sont ceux où le noyau d'un noyau (qui contrôle les différents éléments du système d'exploitation) s'exécute en un seul processus, tandis que d'autres services tels que les pilotes de périphériques, etc. fonctionnent différemment. processus. Linux suit une approche monolithique alors qu'il existe quelques exceptions dans les noyaux de type Unix qui suivent l'approche micro-noyau.

2. Ajouter/supprimer des fonctionnalités au noyau

Alors que les systèmes traditionnels de type Unix / Unix nécessitent une liaison statique des nouveaux modules ajoutés, Linux prend en charge une fonctionnalité puissante dans laquelle les composants du noyau tels que les pilotes de périphériques, etc. peuvent être chargés et déchargés dynamiquement. Cette fonctionnalité est connue sous le nom de modules de noyau chargeables (LKM). Tout nouveau composant peut être ajouté/supprimé en tant que LKM au noyau. Cela signifie qu'il n'est pas nécessaire de recompiler tout le noyau. De plus, si un composant n'est pas nécessaire, il peut facilement être déchargé. Cette fonctionnalité rend le noyau Linux très flexible.

3. Threading du noyau

De nombreux noyaux de type Unix sont organisés en un ensemble de threads de noyau. Un thread noyau peut être considéré comme un flux d'exécution indépendant. Un thread du noyau peut exécuter un processus utilisateur ou du code du noyau. L'idée de base est de faire des changements de contexte entre les threads du noyau, ce qui est moins coûteux que les changements de contexte entre les processus car les threads fonctionnent dans le même espace d'adressage. Alors que de nombreux systèmes d'exploitation de type Unix utilisent des threads du noyau pour la commutation de contexte de processus, Linux n'utilise les threads du noyau que pour exécuter périodiquement du code du noyau.

4. Prise en charge des applications multithread

Presque tous les systèmes d'exploitation modernes, qu'il s'agisse de distributions de type Unix ou Linux, prennent en charge le multithreading. Une application multithread est une application qui crée plusieurs flux d'exécution. Ces flux d'exécution indépendants sont appelés threads. Les threads sont des processus légers. Dans la plupart des systèmes de type Unix, les processus légers sont basés sur les threads du noyau tandis que sous Linux, ces LWP sont créés par un appel à la fonction clone() qui permet à l'application de créer un processus séparé comme le fait fork() mais la différence étant qu'avec clone(), le processus nouvellement généré peut partager sa mémoire physique, ses fichiers ouverts, son espace d'adressage, etc. Comme ces processus nouvellement créés fonctionnent dans un environnement partagé, ils reçoivent un nom différent "threads". Nous voyons donc que Linux et Unix/Unix-Like diffèrent dans la manière dont l'environnement multithread est géré en interne.

5. FLUX

Le sous-système d'E/S Streams est inclus dans la plupart des noyaux Unix et est devenu une interface préférée pour écrire des pilotes de périphériques, des pilotes de terminaux, etc. Alors que d'un autre côté, il n'y a rien comme Streams sous Linux.

6. Noyaux préemptifs et non préemptifs

Les noyaux préemptifs sont les noyaux qui peuvent préempter le processus en cours d'exécution. Cela signifie qu'un processus en cours d'exécution peut être interrompu de force si un processus avec une priorité plus élevée est prêt à être exécuté. D'autre part, les noyaux non préemptifs sont ceux où un processus en cours d'exécution ne peut pas être interrompu de force même si un processus de priorité plus élevée est prêt à être exécuté. Normalement, les systèmes d'exploitation Linux ne sont pas préemptifs, tandis que certains systèmes Unix tels que Solaris 2.x, etc. sont entièrement préemptifs. Habituellement, les systèmes d'exploitation en temps réel ont des noyaux entièrement préemptifs. De nos jours, nous avons un système d'exploitation Linux en temps réel doté de noyaux entièrement préemptifs.

Nous voyons donc que bien que Linux soit né de l'idée de base d'Unix, il diffère néanmoins des noyaux Unix / Unix-Like à bien des égards. Malgré ces différences, Linux hérite encore beaucoup d'Unix et est toujours considéré comme un membre de la famille des noyaux Unix.


Linux
  1. Linux – Linux est-il un Unix ?

  2. Linux – Noyau :Prise en charge des espaces de noms ?

  3. Linux - Transfert IP du noyau ?

  4. Linux – Un noyau corrompu sous Linux ?

  5. Linux – Les différents noyaux Linux/unix sont-ils interchangeables ?

Le noyau Linux contre. Mac noyau

Commande mkdir sous Linux/Unix

Linux contre Unix

Commande Grep sous Linux/UNIX

Commande ls sous Linux/UNIX

commande cp sous Linux/UNIX