Quelle est la différence entre Linux et Windows en termes de processus sur l'architecture du noyau?


Réponse 1:

J'aime vraiment la réponse de Johnathan Dahlin. Le problème ici est que cette question est (pardonnez-moi mes analogies hokey) comme comparer une girafe à une grenade. Linux est un système d'exploitation de type Unix. Windows est une bête de sa propre conception et, bien qu'il ait un certain degré de fonctionnalités Unix-y (POSIX et le nouveau sous-système Linux), a peu de points communs avec aucun des 'nixes (Unix, Linux et BSD [gratuit, net , open et libellule ainsi que TrueOS, FreeNAS et Pfsense]).

Johnathan a raison lorsqu'il écrit que Linux est monolithique en tant qu'OS. Il en était ainsi avec les scripts d'initialisation SysV, Xorg et iptables; c'est encore plus vrai avec systemd (désolé SYSTEMD pour les puristes), Wayland et firewalld, leurs substituts respectifs.

Windows est un méli-mélo assez bien organisé de fonctionnalités de type DOS, un noyau de «nouvelle technologie» qui remonte à la fin du dernier millénaire, POSIX, un sous-système Linux, et Dieu sait quels autres desiderata, dont certains Microsoft aurait dû se débarrasser de la gomme collée au bas de sa chaussure, mais doit conserver pour être

  • (seulement parfois et quelque peu) rétrocompatible, être capable de prendre en charge des jeux et permettre l'intégration de logiciels tiers construits de manière douteuse (ce qui, soit dit en passant, est en grande partie à l'origine de l'infâme «ballonnement logiciel» de Microsoft).

Linux aussi est composé de morceaux, mais ce n'est pas un mashup; le noyau en particulier, passe par une sorte de centre d'échange de code source; gitHub remplit cette fonction bien qu'il ait été acheté par The Evil Empire, alias Microsoft. C'est toujours le plus grand «centre d'échange»; Microsoft ne l'a pas encore tué (et si G0d le veut, ne le fera jamais). Mais plusieurs autres sites communautaires gèrent des sites de type «centre d'échange» à but non lucratif (par exemple, sourceforge.net).

Techniquement entièrement modulaire, Linux est monolithique sur le plan architectural mais modulaire sur le plan fonctionnel. Il est «modulaire» dans le sens où des fichiers entiers sont échangés dans et hors de la mémoire (les fichiers entiers, lorsqu'ils sont exécutés, sont appelés «processus»).

C'est parce que, sous Linux, comme dans tous les autres nix, tout, absolument tout est un fichier (pas, comme sous Windows, tout ou partie d'un fichier). Sous Linux, cela signifie que le clavier (stdin), l'écran ou l'imprimante (stdout) sont des fichiers. Même l'erreur standard (stderr) est un fichier (il est soit affiché sur stdout, canalisé vers un fichier, soit envoyé au purgatoire / inexistant (le fameux «/ dev / null»).

Windows échange des trucs mais n'échange à contrecœur que des éléments de la mémoire, c'est-à-dire chaque fois que la mémoire devient trop pleine, ce qui peut être, dirons-nous, problématique, à des moments (généralement les moins opportuns).

Vous devez savoir, cependant, que c'est beaucoup moins un problème depuis Windows XP et ne cesse de s'améliorer.

Windows utilise non seulement des fichiers (processus), mais des parties de fichiers (threads), ce qui ne conduit pas toujours à un remplacement «propre» des threads.

Heureusement, Microsoft a fait d'énormes progrès pour que son multitâche préemptif soit vraiment préemptif vis-à-vis des threads / processus inutiles.

Malheureusement, Unix (le grand-père des «nix») a maîtrisé dans les années 80 ce que Microsoft a maîtrisé dans les années 2010. Donc Linux (et, forcément, les BSD open-source) a toujours été excellent dans le vrai multitâche préemptif.

Enfin, alors que Linux partage véritablement des objets partagés entre plusieurs programmes, Windows utilise plusieurs fichiers DLL (bibliothèques de liens dynamiques ou l'équivalent Windows d'objets partagés), dont beaucoup effectuent des actions presque identiques, ou sont en fait identiques (ce qui conduit à à la fois sur le disque dur et sur la mémoire RAM).

******

Si j'ai fait des erreurs techniques, veuillez simplement les signaler, ne me donnez pas également un coup de pied verbal dans les cojones. Assez mauvais pour avoir fait des erreurs; Je n'ai pas besoin d'être humilié en plus. Merci.

Merci pour l'A2A