La différence entre Linux et vxworks : 1. La structure du noyau est différente. Vxworks est un micro-noyau et ne fournit que des services de base, tandis que Linux est un noyau macro. En plus des services de base, le noyau comprend également des systèmes de fichiers, des protocoles réseau, etc.; 2. Mode de fonctionnement La différence est que l'application vxworks est en "mode réel" et qu'il n'y a pas de distinction entre le mode utilisateur et le mode noyau, tandis que Linux utilise le "mode protégé". les threads du noyau s'exécutent en mode noyau.
L'environnement d'exploitation de ce tutoriel : système linux7.3, ordinateur Dell G3.
Le système d'exploitation que j'utilise actuellement pour le développement embarqué est VxWorks Quand j'étais à l'université, j'utilisais le plus le système d'exploitation Linux. Cependant, quelle est la différence entre ces deux systèmes d'exploitation ? Quelle est la différence ?Je ne l'ai jamais vraiment résumé soigneusement.Quand d'autres me le demandent, il est inévitable de se sentir un peu gêné.Après tout, j'étudie le développement embarqué, mais je n'ai pas une compréhension approfondie des systèmes de développement embarqués. J'y ai consacré du temps aujourd'hui. Pour résumer, quelle est la différence entre les deux ?
VxWorks |
Linux |
|
Structure du noyau
| microkernel, le noyau uniquement fournit des
services de base, tels que : la gestion des tâches, Mémoire gestion, gestion des interruptions, etc. | Macro kernel, en plus des services de base, le
kernel comprend également des systèmes de fichiers, des protocoles réseau , etc. applications Le programme s'exécute en "mode réel" Il n'y a pas de distinction entre le mode utilisateur et le mode noyau |
en utilisant le "mode protégé". Les processus et threads utilisateur s'exécutent en mode utilisateur, et les threads du noyau s'exécutent en mode noyau. |
Accès à la mémoire et protection de la mémoire | Le noyau adopte une véritable gestion du stockage,
toutes les tâches s'exécutent dans le même emplacement physique , les programmes utilisateur exploitent directement l'adresse physique et ne peuvent pas fournir directement protection de la mémoire, | ne peut pas empêcher la propagation des erreurs
Le noyau adopte une méthode de gestion du stockage virtuel, l'utilisateur dispose d'un espace d'adressage indépendant et le processus utilisateur ne peut accéder qu'à l'espace virtuel fourni par ce processus | La protection de la mémoire peut empêcher les erreurs de se propager
Unité d'exécution
Tâches |
Processus, threads Demander la méthode de service du noyau |
appel de fonction, Plus rapide | Appels système, plus sûrsTemps réel | |
Temps réel dur | Temps réel doux
VxWorks est principalement utilisé dans les communications de données au niveau des télécommunications et d'autres produits, tandis que Linux est principalement utilisé dans les produits de contrôle grand public, industriels, etc. Micro-noyau, macro-noyau Les composants qui fournissent divers services dans le noyau et les processus qui utilisent de tels services Une relation client/serveur se forme entre eux. Ce type de service ne doit pas nécessairement rester dans le noyau. Il peut également être conçu et implémenté comme un « processus de service ». n'est qu'une communication inter-processus.Si En déplaçant ces services du noyau au niveau du processus, la structure du noyau lui-même peut être considérablement réduite et rationalisée, et chaque processus de service peut être conçu, implémenté et débogué indépendamment. Le micro-noyau est un mode noyau qui transfère les services vers les processus. Il est principalement utilisé dans les systèmes temps réel et les systèmes embarqués, principalement parce que ces systèmes n'ont généralement pas de disques et que l'ensemble du système doit être placé dans l'EPROM. Il est souvent limité par. l'espace de stockage et les services requis sont relativement simples, comme PSOS, VxWorks, etc. Le noyau macro est une structure de noyau traditionnelle qui intègre la gestion des processus, la gestion de la mémoire et d'autres fonctions de service dans le noyau. Il est généralement utilisé dans les noyaux à usage général, tels que UNIX, Linux, etc. Pilote de périphérique Comparaison partielle. et analyse En raison de la séparation structurelle du système d'exploitation Linux et du chargeur de démarrage Linux, les pilotes de périphérique entre eux ne peuvent pas être utilisés de manière interchangeable. Bien entendu, certains codes liés au matériel dans l'initialisation matérielle de la puce peuvent être échangés. . Le pilote de périphérique du BOOTROM de VxWorks et de la version en cours d'exécution sont les mêmes, car la structure de sa version en cours d'exécution et celle du BOOTROM sont cohérentes et utilisent le même noyau de système d'exploitation. Le pilote de périphérique du système d'exploitation Linux s'exécute dans l'espace noyau et le processus utilisateur s'exécute dans l'espace utilisateur. Dans le système d'exploitation Linux, les méthodes de gestion de la mémoire et de mappage de l'espace noyau et de l'espace utilisateur sont différentes. Les applications et les pilotes de périphériques impliqueront des espaces mémoire différents lors de l'échange de données, ce qui affectera une certaine efficacité. Cependant, ce problème peut être résolu en modifiant le. système. Configuration de l’espace mémoire et autres méthodes à résoudre. Le système d'exploitation VxWorks ne sépare pas l'espace noyau et l'espace utilisateur. Les pilotes de périphériques et les applications s'exécutent tous dans le même espace, et l'échange de données est très pratique, mais la stabilité de cette structure n'est pas aussi bonne que cela. du système Linux. Les systèmes d'exploitation fournissent de nombreuses ressources et modèles de pilotes de périphériques. Cependant, en raison de la nature open source de Linux, le type et le nombre de pilotes de périphériques qu'il fournit dépassent de loin ceux de VxWorks. Apprentissage recommandé : Tutoriel vidéo 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!