Qu'est-ce que Unix (pour débutants). Que Linux diffère de Unix et quel est un système d'exploitation de type UNIX

bac à sable

homme de fer 19 mars 2011 à 23:16

Qu'est-ce que Linux diffère d'UNIX, et qu'est-ce qu'un système d'exploitation de type UNIX?

Unix
Unix (pas la peine Confus avec la définition du système d'exploitation de type UNIX) est une famille de systèmes d'exploitation (Mac OS X, GNU / Linux).
Le premier système a été développé en 1969 dans Bell Laboratories, une ancienne société américaine.

Caractéristiques distinctives d'UNIX:

  1. Configuration simple du système à l'aide de fichiers simples, généralement du texte, généralement.
  2. Grande utilisation ligne de commande.
  3. Utilisation de convoyeurs.
De nos jours, UNIX est principalement utilisé sur les serveurs et comme système d'équipement.
Il est impossible de ne pas noter l'énorme importance historique des systèmes UNIX. Actuellement, ils sont reconnus comme l'un des systèmes d'exploitation les plus historiquement importants. Au cours du développement des systèmes UNIX, le langage C a été créé.

Options UNIX pour des années

OS UNIX
OS UNIX (parfois Utilisation d'une réduction * NIX) - Un système formé sous l'influence d'UNIX.

Le mot Unix est utilisé comme signe de conformité et en tant que marque.

Le consortium du groupe Open a une marque "Unix", mais est la plus célèbre comme autorité de certification pour la marque UNIX. Récemment, le groupe Open a une lumière disparaissant dans le cadre de la publication de la spécification de spécifications UNIX unique, qui doit satisfaire au système d'exploitation d'être fier d'être appelée UNIX.

Vous pouvez regarder l'arbre généalogique des systèmes d'exploitation de type UNIX.

Linux
Linux - Le nom commun des systèmes d'exploitation Unix aides, conçus dans le projet GNU (projet sur le développement du SPO). Linux fonctionne sur une énorme multitude d'architectures de processeur, allant de l'armement d'armement Intel X86.

Les distributions les plus célèbres et les plus distribuées sont Arch Linux, Centos, Debian. Il existe également de nombreuses distributions russes "nationales" - Alt Linux, Asplinux et autres.

Il y a beaucoup de différends de nommage GNU / Linux.
Supporters "Open Source" Utilisez le terme "Linux" et les supporters du "logiciel libre" - "gnu / linux". Je préfère la première option. Parfois, pour la commodité de visualiser le terme GNU / Linux, "GNU + Linux", "GNU-Linux", "GNU Linux" écrit.

Contrairement aux systèmes commerciaux (MS Windows, Mac OS X) Linux n'a aucun centre de développement géographique et une certaine organisation qui aurait possédé le système. Le système et les programmes pour cela sont le résultat du travail d'énormes communautés, des milliers de projets. Rejoignez le projet ou créez votre propre tout le monde!

Production
Ainsi, nous avons eu une chaîne: UNIX -\u003e OS UNIX-SHIT -\u003e Linux.

Résumé, je peux dire que les différences entre Linux et UNIX sont évidentes. Unix est un concept beaucoup plus large, fondé sur la construction et la certification de tous les systèmes de type UNIX, et Linux est un cas particulier de UNIX.

Tags: Unix, Linux, Nix, Linux, Unix

Cet article n'est pas sujet à des commentaires, car son auteur n'est pas encore

L'histoire de Unix® commence en 1969. La plupart des systèmes UNIX modernes sont des versions commerciales de distributions de source UNIX. Solaris de Sun, HP-UX Hewlett-Packard, Aix® d'IBM, sont les meilleurs représentants d'UNIX, qui ont en outre leurs propres éléments et leurs propres solutions fondamentales. Par exemple, Sun Solaris est unix, mais, en outre, il contient de nombreux outils et extensions conçus spécifiquement sur la base de postes de travail et de serveurs de production de Sun.

Linux® a été conçu pour tenter de créer une alternative gratuite aux environnements UNIX commerciaux. Son histoire commence en 1991 ou même en 1983, lorsque le projet GNU a été créé, dont l'objectif initial était de fournir une alternative UNIX gratuite. Linux travaille sur un nombre beaucoup plus important de plates-formes, telles que Intel® / AMD X86. La plupart des OS Unix sont capables de travailler uniquement sur une plate-forme.

Linux et UNIX ont des racines historiques communes, mais il existe également de graves différences. De nombreux outils, utilitaires et applications gratuites standard pour Linux ont été conçus à l'origine comme une alternative gratuite aux programmes UNIX. Linux fournit souvent une prise en charge des ensembles d'options et d'applications, empruntant les fonctionnalités les mieux ou les plus populaires d'UNIX.

Administrateur ou développeur qui est utilisé pour travailler avec Linux, UNIX SYSTEM peut ne pas sembler très pratique pour une utilisation. D'autre part, la base du système d'exploitation de type UNIX (outils, système de fichiersLes interfaces API) sont suffisamment normalisées. Cependant, certains détails des systèmes peuvent avoir des différences significatives. En outre, ces différences seront prises en compte dans l'article.

Différences techniques

Les développeurs de distribution commerciale Unix comptent sur un cercle client et une plate-forme de serveur spécifique pour son système d'exploitation. Ils présentent bien quel soutien et optimisation dont les applications doivent être mises en œuvre. Les fabricants UNIX font tout ce qui est possible pour assurer une compatibilité entre différentes versions. En outre, ils ont publié les normes de leur système d'exploitation.

Le développement de GNU / Linux, d'autre part, ne se concentre pas sur des plates-formes spécifiques et du cercle des clients et des développeurs GNU / Linux ont une expérience et des vues différentes. La communauté Linux n'existe pas d'un outil standard strict ou d'un ensemble multimédia. Pour résoudre ce problème, le projet Linux Standards Base (LSB) a été lancé, mais ce n'était pas aussi productif que je le souhaiterais.

Cette normalisation insuffisante conduit à des incohérences significatives à l'intérieur de Linux. Pour certains développeurs, la possibilité d'utiliser les meilleures réalisations d'autres systèmes d'exploitation est un avantage, mais il n'est pas toujours pratique de copier les éléments Unix Linux, par exemple lorsque les noms de périphérique à l'intérieur de Linux peuvent être prélevés à partir d'AIX, tandis que les outils Pour travailler avec le système de fichiers sont orientés vers HP-UX. Ce type d'incompatibilité est également trouvé entre différentes distributions Linux. Par exemple, Gentoo et RedHat met en œuvre diverses méthodes de mise à jour.

À titre de comparaison, chaque nouvelle version du système UNIX sort avec une description bien documentée des nouvelles fonctionnalités et des modifications UNIX. Les commandes, les outils et autres éléments changent rarement, et souvent les mêmes arguments de ligne de commande pour les applications restent inchangées dans les versions de cette logiciel. Lorsque des changements importants se produisent dans ces éléments, les fournisseurs de système Unix commercial fournissent souvent une coquille nécessaire pour assurer la compatibilité avec les versions précoces de cet outil.

Cette compatibilité signifie que les utilitaires et les applications peuvent être utilisés sur de nouvelles versions de systèmes d'exploitation sans vérifier et modifier leur code source. Par conséquent, la transition vers une nouvelle version d'UNIX, dans laquelle il n'y a généralement aucune différence fondamentale de l'ancienne version, des utilisateurs ou des administrateurs ne sont associés à des efforts beaucoup moins que la transition d'une distribution Linux à une autre.

Architecture matérielle

La plupart des versions commerciales d'UNIX sont créées pour un ou petit nombre d'architectures matérielles. HP-UX ne fonctionne que sur PA-RISC et Itanium, Solaris Platformes - sur SPARC et X86, et AIX est destiné uniquement aux processeurs d'alimentation.

Grâce à ces restrictions, les fabricants UNIX peuvent modifier relativement librement leur code pour ces architectures et utiliser tout avantage de leur architecture. Parce qu'ils connaissent les appareils soutenus par eux, leurs conducteurs fonctionnent mieux, et ils n'ont pas besoin de prendre en compte les limitations du BIOS caractéristique des PC.

Linux, d'autre part, a toujours été développé pour assurer une compatibilité maximale. Linux est disponible sur différentes architectures et le nombre d'appareils d'E / S et d'autres périphériques, qui peuvent être utilisés à partir de ce système d'exploitation, est presque illimité. Les développeurs ne peuvent pas savoir quel équipement spécifique sera installé sur l'ordinateur et ne peut souvent pas fournir son utilisation efficace. Un exemple est de gérer la mémoire sur Linux. Auparavant, Linux a utilisé un modèle de mémoire de segment, conçu à l'origine pour X86. Il est maintenant adapté pour utiliser la mémoire de la page, mais enregistre toujours certaines exigences en matière de mémoire segmentée, ce qui provoque des problèmes si l'architecture ne prend pas en charge la mémoire segmentée. Ce n'est pas un problème pour les fabricants UNIX. Ils savent exactement comment leur UNIX fonctionnera sur quel équipement.

Cœur

Le noyau est le cœur du système d'exploitation. Le code source du noyau des distributions commerciales Unix est la propriété de leurs développeurs et ne s'applique pas au-delà de la société. Situation entièrement opposée avec Linux. Les procédures de compilation et de correction des cœurs et des pilotes sont très différentes. Pour les systèmes d'exploitation Linux et autres open source, le correctif peut être libéré sous forme de code source et l'utilisateur final peut définir, vérifier et même la modifier. Ces correctifs ne sont généralement testés pas aussi soigneusement que des correctifs des fournisseurs du système d'exploitation commercial UNIX. Depuis pas liste complète Applications et environnements devant être discutés pour fonctionner correctement sur Linux, les développeurs Linux dépendent des utilisateurs finaux et d'autres développeurs qui capturent des erreurs.

Les fournisseurs de distributions UNIX commerciales libèrent des noyaux uniquement sous la forme de code exécutable. Certaines sorties sont monolithiques, tandis que d'autres vous permettent de ne mettre à jour que n'importe quel module de base spécifique. Mais dans tous les cas, cette version est fournie uniquement sous forme de code exécutable. Si vous avez besoin d'une mise à jour, l'administrateur doit attendre que le fabricant libère le correctif dans le code binaire, mais il peut consister que le fabricant effectuera une vérification approfondie de son correctif pour la compatibilité en arrière.

Toutes les versions commerciales d'UNIX dans une certaine mesure ont évolué vers le noyau modulaire. Les conducteurs et les fonctionnalités d'OS individuels sont disponibles en tant que composants individuels et peuvent être chargés ou déchargés du noyau. Mais l'architecture de Linux modulaire ouverte est beaucoup plus flexible. Cependant, la flexibilité et l'adaptabilité de Linux signifie un changement constant. Le code source Linux change constamment et, par le caprice du développeur, API peut changer. Lorsque le module ou le pilote est écrit pour la version commerciale de Unix, il fonctionnera beaucoup plus longtemps que le même pilote de Linux.

Support système de fichiers

L'une des raisons pour lesquelles Linux est devenu un système d'exploitation assez puissant, sa grande compatibilité avec d'autres systèmes d'exploitation. L'une des caractéristiques les plus évidentes est une abondance de systèmes de fichiers disponibles. La plupart des versions commerciales UNIX prennent en charge deux ou trois types de systèmes de fichiers. Linux soutient cependant la plupart des systèmes de fichiers modernes. Indique que les systèmes de fichiers sont pris en charge par UNIX. L'un de ces systèmes de fichiers peut être monté sur Linux, bien que tous ces systèmes ne conservent pas de données de lecture et d'écriture complètes.

Tableau 1. Systèmes de fichiers standard pour UNIX

La plupart des versions commerciales UNIX prennent en charge les systèmes de fichiers de journalisation. Par exemple, HP-UX sous forme de fichier de fichiers standard utilise HFS, mais il prend également en charge le système de fichiers journalisé VXFS. Solaris prend en charge les UFS et les ZFS. Un système de fichiers de journalisation est un élément important de tout environnement de serveur pour l'entreprise. Sous Linux, la prise en charge de la journalisation des systèmes de fichiers a été mise en œuvre tardive, mais il existe maintenant plusieurs options - des clones de systèmes de fichiers commerciaux (XFS, JFS) à des systèmes de fichiers spécifiques spécifiques à Linux (EXT3, REISERF).

Les autres fonctionnalités des systèmes de fichiers incluent la prise en charge des quotas, la liste de contrôle d'accès au fichier, la copie miroir, les instantanés système et les tailles. Dans une forme ou une autre, ils sont pris en charge par des systèmes de fichiers Linux. La plupart de ces fonctionnalités ne sont pas standard pour Linux. Certaines fonctionnalités peuvent fonctionner sur le même système de fichiers, tandis que d'autres nécessiteront un autre système de fichiers. Certaines de ces caractéristiques ne sont tout simplement pas disponibles sur certains systèmes de fichiers Linux, tandis que d'autres nécessitent un paramètre d'outil supplémentaire, par exemple, une version spécifique de la version LVM ou du tableau de disque (emballage RAID de logiciel). Historiquement, il a tellement de choses que dans les interfaces logicielles Linux et les outils standard sont obtenus avec difficulté, de nombreux systèmes de fichiers implémentent ces caractéristiques différent.

Étant donné que les systèmes Unix commerciaux prennent en charge un nombre limité de systèmes de fichiers, leurs outils et méthodes de travail avec eux sont plus standardisés. Par exemple, comme dans IRIX, un seul système de fichiers principaux a été pris en charge, il n'y avait qu'un moyen de définir les listes de contrôle d'accès. Il est beaucoup plus pratique pour l'utilisateur final et pour un soutien supplémentaire de ce système d'exploitation.

Applications d'accessibilité

La plupart des applications de base sont les mêmes sur UNIX et Linux. Par exemple, les commandes CP, LS, VI et CC sont disponibles sur UNIX et Linux et sont très similaires, sinon totalement identiques. Les versions Linux de ces outils sont basées sur les versions GNU de ces outils, tandis que les versions de ces outils pour UNIX sont basées sur des outils UNIX traditionnels. Ces outils pour UNIX ont une longue histoire et ont rarement changé.

Mais cela ne signifie pas que les versions commerciales d'UNIX ne peuvent pas être utilisées avec des outils GNU. En fait, de nombreux fabricants de OS Unix commercial comprennent dans leurs distributions beaucoup d'outils GNU ou leur offrent une addition gratuite. Les outils GNU ne sont pas que des outils standard. Certains de ces utilitaires gratuits Ne pas avoir des analogues commerciaux (EMACS ou PERL). La plupart des fabricants prédisent ces programmes et ils sont automatiquement installés avec le système ou sont disponibles en tant que composant supplémentaire.

Les applications open source gratuites sont presque toujours intégrées à toutes les distributions Linux. Il existe une grande quantité de logiciels libres disponibles pour Linux et nombre de ces applications ont été portées aux versions commerciales d'UNIX.

Application de code source commerciale et / ou fermée (CAO, programmes financiers, éditeur graphique) peut ne pas avoir d'analogues pour Linux. Bien que certains fabricants produisent les versions de leurs applications pour Linux, la plupart des fabricants ne sont pas pressés de le faire, tandis que la popularité des utilisateurs Linux n'augmente pas.

D'autre part, les versions commerciales d'UNIX ont historiquement le soutien d'un grand nombre d'applications de niveau d'entreprise, telles que Oracle ou SAP. Linux perd considérablement en raison de la difficulté de la certification des grandes applications, tandis que les versions commerciales d'UNIX ne changent pas beaucoup de la libération à la libération. Linux peut changer beaucoup non seulement avec chaque nouvelle distribution, mais parfois dans l'intervalle entre les versions de la même distribution. Par conséquent, le fabricant de logiciels est très difficile à comprendre quel type d'environnement sera utilisé leur application.

L'administration du système

Bien que certaines distributions Linux soient fournies avec un ensemble standard d'outils permettant de gérer un système, tel que SUSE 'S YAST, n'existe pas en commun pour les outils d'outils d'outils standard Linux. Les fichiers texte et les outils de ligne de commande sont disponibles, mais parfois leur utilisation peut-elle Soyez peu pratique. Chaque version commerciale Unix a sa propre interface de gestion système. Avec cette interface, vous pouvez contrôler les éléments du système et les modifier. Vous trouverez ci-dessous un exemple de gestionnaire d'administration système pour HP-UX.

Ce SAM contient les modules suivants:

  • Utilisateurs ou groupes qui doivent être gérés.
  • Les paramètres du noyau qui peuvent être changés.
  • Configuration du réseau.
  • Fixer et initialiser les disques.
  • Configuration du serveur X.

La qualité de ces utilitaires de paquet est géniale et ces utilitaires de paquet interagissent bien avec des fichiers texte. L'analogue de cet outil pour Linux n'existe pas. Même Yast In Suse n'a pas la même fonctionnalité.

Un autre aspect de Unix et Linux, qui semble changer presque avec chaque version du système d'exploitation - l'emplacement des scénarios d'initialisation du système. Heureusement, / sbin / init et / etc / inittab sont des annuaires standard. Mais les scénarios de lancement du système sont dans différents répertoires. Affiche des endroits où les scénarios d'initialisation du système sont stockés pour diverses distributions UNIX et Linux.

Tableau 2. Emplacement des scénarios d'initialisation du système pour différentes versions d'UNIX
HP-UX./ssbin/init.d.
AIX./etc/rc.d/init.d.
IRIX./etc/init.d.
Solaris./etc/init.d.
Chapeau rouge./etc/rc.d/init.d.
SUSE./etc/rc.d/init.d.
Debian./etc/init.d.
Slackware./etc/rc.d.

En raison du grand nombre de distributions Linux et de presque un nombre infini d'applications disponibles (en tenant compte du fait que les versions de cette application sont également nombreuses) pour ce système d'exploitation, la gestion des programmes sur Linux devient un défi. Le choix de l'outil correct dépend de la distribution que vous travaillez. Ensuite, les inconvénients résultent du fait que certaines distributions utilisent le format de fichier REDHAT Package Manager (RPM), tandis que leurs programmes sont incompatibles. Une telle séparation entraîne l'apparition d'un grand nombre d'options pour travailler avec des packages, et il n'est pas toujours clair que le système est utilisé dans un environnement spécifique.

D'autre part, les distributions commerciales Unix contiennent des gestionnaires de paquets standard. Même s'il existe différentes versions d'applications et de formats spécifiques pour diverses versions de Unix, l'environnement de gestion des applications est inchangé. Par exemple, Solaris utilise les mêmes outils de gestion des packages d'applications depuis sa création. Et le plus probablement, les moyens d'identifier, d'ajouter ou de supprimer des packages logiciels à Solaris seront tous inchangés.

Les fabricants de distributions commerciales Unix fournissent également du matériel pour travailler sur lequel leur système d'exploitation est destiné, afin de pouvoir mettre en œuvre des nouveaux périphériques dans leur système d'exploitation, ce qui est beaucoup plus difficile à faire pour Linux. Par exemple, dans versions récentes Linux a tenté de mettre en œuvre le soutien des composants avec la possibilité de «remplacement chaud» (avec un succès varié). Les versions commerciales d'UNIX ont une telle possibilité pendant de nombreuses années. De plus, dans les versions commerciales d'UNIX, c'est mieux que sous Linux, la surveillance du matériel est mise en œuvre. Les fabricants peuvent écrire des conducteurs et les mettre en œuvre dans leur système d'exploitation, qui surveillera l'état du système, par exemple, le nombre d'erreurs de mémoire ECC, des paramètres d'alimentation ou de tout autre composant matériel. La prise en charge de ce type pour Linux n'est attendue que dans l'avenir lointain.

Le matériel pour les systèmes commerciaux Unix propose également des options de démarrage plus avancées. Avant de charger le système d'exploitation, il existe de nombreuses possibilités de personnaliser son téléchargement, de vérifier la "santé" du système ou de configurer les paramètres matériels. Le BIOS de l'ordinateur personnel standard PC a une partie inférieure, si du tout a ces options.

Support

L'une des différences les plus significatives entre Linux et UNIX est en valeur. Les systèmes commerciaux Unix ont installé un prix élevé sur leur Unix, bien qu'il ne puisse être utilisé que avec leurs plates-formes matérielles. Distributions Linux, d'autre part, sont relativement peu coûteuses, sinon libres du tout.

Lors de l'achat d'une version commerciale de Unix, les fabricants fournissent généralement soutien technique. Les plus utilisateurs de Linux Prise en charge larmée du fabricant du système d'exploitation. Ils ne peuvent obtenir que le soutien avec e-mailDes forums et de divers utilisateurs de Linux. Cependant, ces groupes sont conçus non seulement pour les utilisateurs de Linux. De nombreux administrateurs des systèmes d'exploitation commerciale de la famille UNIX participent à ces groupes de soutien ouverts afin de pouvoir fournir une assistance et, si nécessaire, l'utiliser. Beaucoup de gens trouvent de tels groupes d'assistance mutuelle encore plus utiles que le système de soutien offert par le fabricant du système d'exploitation.

Conclusion

Les fondements fondamentaux d'UNIX et de Linux sont très similaires. Utilisateur ou administrateur du système La transition de Linux sur UNIX ajoutera des inconvénients au travail, mais en général, la transition sera indolore. Même si les systèmes de fichiers et le noyau vont différer en eux et pour leur développement, cela prendra du temps, les outils et les API restent inchangés. Fondamentalement, ces différences ne sont pas plus que des différences entre les versions principales de UNIX. Toutes les branches Unix et Linux se développent progressivement et diffèrent légèrement des autres, mais en raison de la maturité des concepts de Unix, les bases du système d'exploitation ne changeront pas beaucoup.

Ministère de l'éducation et de la science du russe

Fédération

Agence fédérale de l'éducation

Établissement d'enseignement de l'État

Éducation professionnelle supérieure

Taganrog State Radio Engineering University

Discipline "Informatique"

"Système d'exploitation UNIX"

Effectué: Orda-Zhigulin D.V., GR. E-25

Vishnevetsky v.yu.

Taganrog 2006.


introduction

Qu'est-ce que Unix 3

Où obtenir gratuitement Unix 7

Partie principale. (Description Unix)

1. Concepts de base UNIX 8

2. Système de fichiers 9

2.1 Types de fichiers 9

3. Interprète de commandement 11

4. Son de Unix 12

4.1 Organisation générale du NUCLEUS OS traditionnel UNIX 13

4.2 Fonctions de base de base 14

4.3 Principes d'interaction avec le noyau 15

4.4 Principes de traitement 17

5. Contrôle d'entrée / sortie 18

5. 1 Principes de mise en mémoire tampon du système d'E / S 19

5. Appels système pour entrer / sortie 21

6. Interfaces et points d'entrée du pilote 23

6. 1 blocs de blocs 23

6. 2 Pilotes symboliques 24

6. 3 Pilotes de streaming 25

7. Commandes et utilitaires 25

7. 1 Organisation de commandement à UNIX 26

7. 2 Organisation de redirection et de convoyeur d'E / S 26

7. 3 commandes intégrées, bibliothèques et personnalisées 26

7. 4 Programmation de commandement 27

8. Outils d'interface graphique utilisateur 27

8.1 Identificateurs utilisateur et groupe d'utilisateurs 30

8.2 Protection du fichier 32

8.3 OS Perspective, Soutenir le mercredi OS UNIX 33

Conclusion

Les principales différences d'UNIX d'un autre système d'exploitation 36

UNIX 37 Applications


introduction

Qu'est-ce que UNIX

Terme Unix et non équivalent totalement à celui-ci Unix est utilisé dans différentes valeurs. Commençons par la seconde des termes aussi simples. En bref, UNIX (sous cette forme) est une marque déposée, appartenait à l'origine à AT & T Corporation, qui a changé de nombreux propriétaires pour sa longue vie et est maintenant la propriété d'une organisation appelée groupe ouvert. Le droit d'utiliser le nom UNIX est obtenu par une sorte de "vérification des eaux usées" - passe des tests de conformité avec certaines spécifications de système d'exploitation (standard UNIX unique - que dans ce cas peut être traduit comme la seule norme sur UNIX). Cette procédure n'est pas seulement compliquée, mais aussi ne plus, ce n'était donc plus que quelques opérations de l'enfance maintenant, et ils sont tous propriétaires, c'est-à-dire qu'ils appartiennent à certaines sociétés.

Parmi les sociétés, qui ont pris le droit à UNIX, les développeurs / testeurs et le sang (plus précisément, les propriétaires de dollar) peuvent être appelés ce qui suit:

Soleil avec ses Sunos (mieux connu dans le monde sous le nom Solaris);

IBM développé par le système AIX;

Hewlett-Packard - le propriétaire du système HP-UX;

IRIX - Opérations SGI.

De plus, le nom de Unix s'applique aux systèmes:

True64 Unix, développé par DEC, dont la liquidation est passée à Compaq, et maintenant, avec ce dernier, qui est devenue la propriété du même Hewlett-Packard;

Unixware - Propriété SCO (Produit Fusion des entreprises Caldera et Santa Cruz).

Être propriétaire, tous ces systèmes sont vendus pour de l'argent considérable (encore une échelle américaine). Cependant, ce n'est pas le principal obstacle à la diffusion de la Loi Unix. Pour une caractéristique commune, c'est une liaison à certaines plates-formes matérielles: AIX fonctionne sur des serveurs et des postes de travail IBM avec des processeurs d'alimentation, HP-UX - sur les propres machines HP-PA (précision Architecture), IRIX - Dans les stations graphiques de SGI portant des processeurs MIPS, True64 Unix - est conçue pour les processeurs alpha (malheureusement, dans la Bose a déjà été bien). Seul unicheware est axé sur le PC "Démocratique" et Solaris existe Dans les options pour deux architectures - propres, SPARC et tout le même PC. Cependant, cependant, n'a pas grandement contribué à leur prévalence - en raison du soutien relativement faible pour la nouvelle périphérie PC.

Ainsi, UNIX est un concept principalement juridique. Mais pour le terme Unix, l'interprétation technologique a été enracinée. Ainsi, à l'usage de l'industrie informatique, ils appellent toute la famille de systèmes d'exploitation ou de la "société" principale "AT & T, ou les fonctions de reproduction" avec feuille", y compris le système d'exploitation libre, tel que Linux, FreeBSD et d'autres BSD, aucune inspection du respect de la norme UNIX unique n'a jamais été soumise. Et donc ils sont souvent appelés UNIX-liked.

Le terme "Systèmes compatibles POSIX", qui combine la famille OS, correspondant à l'ensemble des normes, est également répandu. Les normes POSIX elles-mêmes (interface système d'exploitation portable basée sur UNIX) ont été élaborées sur la base de la pratique adoptée dans les systèmes UNIX. Par conséquent, ces derniers sont tous par définition de la compatibilité de POSIX. Toutefois, ce n'est pas tout à fait synonymes: la plaignante des normes POSIX, le SNIX associé à UNIX ne revendique que indirectement (QNX, syllabe) ou sans lien (jusqu'à Windows NT / 2000 / XP).

Pour clarifier la question des relations UNIX, UNIX et POSIX, vous devrez aller au fond de l'histoire. En fait, l'histoire de cette question est discutée en détail dans le chapitre correspondant du livre "GRATUIT UNIX: Linux, FreeBSD et d'autres" (dans un proche avenir, il va à la maison d'édition BHV-PETERSBURG) et dans des articles sur l'histoire de Systèmes Linux et BSD.

Le système d'exploitation UNIX (plus précisément, sa première option) a été développé par des employés de Bell Labs (AT & T Divisions) en 1969-1971. Les premiers auteurs - Ken Thompson et Dennis Richie, l'ont fait exclusivement à leurs propres fins, en particulier pour s'amuser d'avoir un jeu préféré Startravel. Et pour un certain nombre de raisons juridiques, la société elle-même ne pouvait pas l'utiliser comme produit commercial. Cependant, l'application pratique d'UNIX a été trouvée assez rapidement. Premièrement, il a été utilisé dans Bell Labs pour préparer toutes sortes de documents techniques (y compris brevets). Et deuxièmement, le système de communication UUCP était basé sur UNIX (UNIX à UNIX Copy Programm - Copie de Unix in Unix).

Une autre portée de l'application Unix dans les années 70 - au début des années 80 du siècle dernier était complètement inhabituelle. À savoir, dans les textes source, il s'est répandu parmi les institutions scientifiques menant des travaux dans le domaine de l'informatique. Le but d'une telle distribution (ce n'était pas tout à fait libre dans la compréhension actuelle, mais elle s'est avérée très libérale) étaient: l'éducation et la recherche dans le domaine susmentionné.

Le système BSD Unix créé à l'Université de Berkeley, en Californie, a reçu la plus grande renommée. Lequel, qui libérant progressivement du code propriétaire de la Pristine Unix, à la fin, après les péripeties dramatiques (en détail décrit ici), a donné lieu à des systèmes de BSD gratuits modernes - FreeBSD, NetBSD et d'autres personnes.

L'un des résultats les plus importants des travaux des hackers universitaires était (1983) Introduction dans le support Unix pour le protocole TCP / IP, basé sur le réseau Arpanet (et qui est devenu la base des fondements de l'Internet moderne). Il est devenu un calme à la domination Unix dans tous les domaines associés au réseau mondial. Et il s'est avéré être la prochaine application pratique de cette famille d'opérations - au moment où l'UNIX unifié n'a plus eu à parler. Parce qu'elle a été dit plus tôt, les deux de ses branches étaient alléguées - ce qui se passait de l'UNIX vierge (au fil du temps, elle a reçu le nom du système V) et le système d'origine de Berklian. D'autre part, le système V était basé sur la diversité exclusive Unix "OV, qui, en fait, avait un droit légal de réclamer ce nom.

La dernière circonstance est la ramification du système d'exploitation unique en plusieurs lignes, perdant progressivement la compatibilité, - en contradiction avec l'une des pierres angulaires de l'idéologie UNIX: la tolérance du système entre différentes plates-formesEt ses applications proviennent d'un système UNIX à un autre. Ce qui a provoqué les activités de divers types d'organisations de normalisation, qui se sont terminées à la fin, créant un ensemble de normes de POSIX, qui ont déjà été indiquées.

Il s'agissait des normes de POSIX que Linus Torvalds s'appuie sur "à partir de zéro" (c'est-à-dire sans utiliser le code précédemment existant) son système d'exploitation - Linux. Et cela, qui maîtrisait rapidement et avec succès les applications traditionnelles des systèmes UNIX (développement logiciel, communication, Internet), ouverte dans le temps pour eux et les nouvelles plateformes générales sur mesure de bureau. Comme prévu sa popularité dans la popularité de la popularité supérieure à tous les autres systèmes UNIX, ensemble, à la fois exclusifs et libres.

Ensuite, nous parlerons de travailler dans des systèmes UNIX dans le même grand sens de ce mot, sans prendre en compte toutes sortes de marques de commerce et d'autres problèmes juridiques. Bien que les principaux exemples relatifs aux techniques de travail soient extraits du domaine de leurs implémentations libres - Linux, dans une moindre mesure FreeBSD, et même moins - à partir d'autres systèmes BSD.

Où obtenir un Unix gratuit?

Base FreeBSD - www.freebsd.org;

Vous pouvez contacter sur www.sco.com


Partie principale. (Description Unix)

1. Concepts de base UNIX

Unix est basé sur deux concepts de base: "processus" et "fichier". Les processus sont le côté dynamique du système, ce sont des subventifs; Et les fichiers sont statiques, ce sont des objets de processus. Presque l'ensemble de l'interface de l'interaction des processus avec le noyau et les uns avec les autres ressemble à des fichiers d'enregistrement / de lecture. Bien qu'il soit nécessaire d'ajouter des choses telles que des signaux, une mémoire partagée et des sémaphores.

Les processus peuvent être très classiquement divisés en deux types - tâches et démons. La tâche est un processus qui effectue son travail, essayant de la finir rapidement et de la fin. Le démon attend les événements qu'il doit traiter, traite les événements survenus et attend à nouveau; Il est rempli de règle par ordre d'un autre processus, le plus souvent, l'utilisateur le tue, en donnant à l'équipe "kill_number_process". En ce sens, il s'avère que le traitement de la tâche interactive de la saisie de l'utilisateur est plutôt similaire au démon que la tâche.

2. Système de fichiers

Dans l'ancien Unix "ah, 14 lettres ont été attribuées au nom, dans la nouvelle restriction ont été supprimées. Dans le répertoire, en plus du nom de fichier, il s'agit de son identifiant d'inode - un entier qui définit le numéro de bloc dans lequel le fichier Les attributs sont enregistrés. Parmi eux: numéro d'utilisateur - hôte de fichiers; groupes de nombres; nombre de références au fichier (cm. Concessionnaire) Dates et heure de création, dernière modification et dernier accès des fichiers; Attributs d'accès. Les attributs d'accès contiennent un type de fichier ( Voir le concessionnaire), attributs pour la modification des droits au démarrage (voir) et les droits l'accédez au propriétaire, à un journal journal et à une autre lecture, écriture et exécution. Le droit d'effacer le fichier est déterminé par le droit d'enregistrer dans le répertoire sus-joint. .

Chaque fichier (mais pas le répertoire) peut être connu sous plusieurs noms, mais nécessairement sur la même section. Toutes les références au fichier sont égales; Le fichier est effacé lorsque le dernier lien vers le fichier est supprimé. Si le fichier est ouvert (pour la lecture et / ou l'enregistrement), le nombre de références à celui-ci augmente un autre; Tant de programmes qui ouvrent un fichier temporaire le suppriment immédiatement de sorte que lorsqu'un système d'exploitation ferme les fichiers ouverts au processus, ce fichier temporaire a été supprimé par le système d'exploitation.

Il y en a un de plus fonctionnalité intéressante Système de fichiers: Si, après avoir créé un fichier, l'entrée ne figurait pas dans une rangée, mais avec de grands intervalles, alors pour ces intervalles, l'espace disque n'est pas attribué. Ainsi, le volume total des fichiers de la section peut être supérieur au volume de la partition et lorsque le fichier est supprimé, moins d'espace est libéré que sa taille.

2.1 Types de fichiers

Les fichiers sont les types suivants:

fichier d'accès direct régulier;

annuaire (fichier contenant d'autres noms de fichiers et identificateurs);

lien symbolique (chaîne avec un autre nom de fichier);

dispositif de blocage (disque ou ruban magnétique);

dispositif série (bornes, ports série et parallèle; disques et bandes magnétiques ont également une interface de périphérique série)

canal de course.

Les fichiers spéciaux conçus pour fonctionner avec des périphériques sont généralement concentrés dans le répertoire "/ dev". Voici certains d'entre eux (dans la nomination FreeBSD):

tTY * - terminaux, y compris: TTYV - Console virtuelle;

tTYD - terminal de dialogue (port habituellement en série);

cUAA - ligne de référence

tTYP - pseudo-terminal de réseau;

tTY - Terminal avec lequel la tâche est associée;

wD * - disques durs et leurs sous-sections, y compris: Disque dur WD;

wDS - la partition de ce disque (ci-après dénommée "SLICE");

wDS - partition de partition;

fD - FLOPPY;

rWD *, RFD * - la même chose que WD * et FD *, mais avec un accès cohérent;

Parfois, il est nécessaire que le programme exécutant par l'utilisateur n'ait pas le droit de gérer son utilisateur et d'autres. Dans ce cas, l'attribut de remplacement est défini sur les droits de l'utilisateur - l'hôte du programme. (À titre d'exemple, je donnerai un programme qui lit le fichier avec des questions et des réponses et sur la base de tests de lecture qui a lancé ce programme étudiant. Le programme doit avoir le droit de lire le fichier avec les réponses et l'étudiant l'exécute N'est-ce pas.) Donc, par exemple, le programme PASSWD fonctionne, avec l'assistance de quel utilisateur peut changer son mot de passe. L'utilisateur peut exécuter le programme PASSWD, il peut apporter des modifications dans la base de données système - et l'utilisateur ne peut pas.

Contrairement à DOS, dans lequel le nom complet du fichier ressemble à "disque: PAVIMIA" et le RISC-OS, dans lequel il ressemble à "-File_system-disk: $. Chemin." (Qu'est-ce qui explique en général ses avantages), Unix utilise une notation transparente sous la forme "/ chemin / nom". La racine est comptée de la section à partir duquel le noyau UNIX a été chargé. Si vous devez utiliser une autre section (et sur la section de démarrage, seuls le plus nécessaire pour le téléchargement est généralement situé), la sélection de la sélection `Mount / Dev / File_ est utilisée. Dans le même temps, les fichiers et les sous-répertoires précédemment situés dans ce répertoire deviennent inaccessibles jusqu'à ce que la partition soit démontée (naturellement, toutes les personnes normales sont utilisées pour monter des répertoires vides). Le montage et la démontage ont le droit seulement un superviseur.

Lors du démarrage, chaque processus peut calculer que trois fichiers sont déjà ouverts pour cela, ce qui est connu pour l'entrée standard STDIN pour un descripteur 0; Sortie standard STDOUT sur un descripteur 1; et Sortie STORL Sortie STERDR sur le descripteur 2. Lors de votre inscription dans le système, lorsque l'utilisateur entre dans le nom et le mot de passe, et que Shell commence, les trois sont dirigés vers / dev / tty; Plus tard, tout d'entre eux peut être redirigé vers n'importe quel fichier.

3. Interprète de commandement

À UNIX, il existe presque toujours deux interprètes de commandement - SH (Shell) et CSH (CSH (Shell CSH). Outre eux, il y a Bash (Bourne), Ksh (Korn) et d'autres. Sans entrer dans les détails, je donnerai des principes généraux:

Toutes les commandes, à l'exception de la modification du répertoire actuel, de définir des variables d'environnement (environnement) et des opérateurs programmation structurelle - Programmes externes. Ces programmes sont généralement situés dans les annuaires / bin et / usr / bin. Programmes d'administration système - Répertoire dans / SBIN et / USR / SBIN.

La commande consiste en le nom du programme démarré et des arguments. Les arguments sont séparés du nom de l'équipe et les uns des autres avec un blanc et des tabulations. Certains mélangeurs spéciaux sont interprétés par la coquille "Ohm. Les spécialistesMols sont" "`! $ ^ *? | &; (Quoi d'autre?).

Dans une ligne de commande d'une commande, vous pouvez donner plusieurs commandes. Les commandes peuvent être divisées; (Exécution de la commande séquentielle) et (exécution simultanée asynchrone des commandes), | (Exécution synchrone, la sortie STDDOUT standard de la première commande sera classée pour une entrée STDIN standard).

De plus, vous pouvez prendre une entrée standard dans le fichier, allumer le fichier comme l'un des arguments (le fichier sera réinitialisé) ou "\u003e\u003e fichier" (l'enregistrement sera effectué à la fin du fichier).

Si vous devez obtenir des informations sur n'importe quelle commande, laissez la commande «man_name». Il sera émis par le biais du programme "plus" à l'écran - voir comment il est géré sur votre UNIX "de l'homme plus".

4. Core OS Unix

Comme dans tout autre système d'exploitation multijoueur, la protection des utilisateurs de l'utilisateur et la protection des données système à partir de tout utilisateur non privilégié, il existe un noyau protégé dans UNIX, qui gère les ressources informatiques et fournit aux utilisateurs un ensemble de services de base.

La commodité et l'efficacité des options modernes pour UNIX ne signifie pas que l'ensemble du système, y compris le noyau, est conçu et structuré de la meilleure façon possible. Unix OS s'est développé au fil des ans (il s'agit du premier système d'exploitation de l'histoire, qui continue de gagner de la popularité de manière aussi mature - plus de 25 ans). Naturellement, les capacités du système ont augmenté et, comme souvent dans des systèmes importants, des améliorations de haute qualité dans les structures UNIX OS n'ont pas dormi pour la croissance de ses capacités.

En conséquence, le noyau de la plupart des options commerciales modernes pour UNIX n'est pas un monolithe de grande taille très structuré. Pour cette raison, la programmation au noyau UNIX OS continue d'être de l'art (à moins que la technologie d'échappement et compréhensible pour développer des conducteurs de périphériques externes). Cette technologie insuffisante de l'organisation du noyau OS UNIX ne satisfait pas beaucoup. D'où le désir de reproduire pleinement l'environnement UNIX OS avec une organisation système entièrement différente.

En raison de la plus grande prévalence, le noyau UNIX System V est souvent discuté (il peut être considéré comme traditionnel).

4.1 Organisation générale du Core OS traditionnel UNIX

L'une des principales réalisations du système d'exploitation UNIX est que le système a une caractéristique de la haute mobilité. La signification de cette qualité est que l'ensemble du système d'exploitation, y compris son noyau, est relativement simplement transféré sur diverses plates-formes matérielles. Toutes les parties du système, sans compter le noyau, sont complètement indépendantes de la machine. Ces composants sont soigneusement écrits dans le langage C et pour leur transfert à nouvelle plate-forme (Au moins dans les ordinateurs de classe 32 bits), ne recompilez que les textes source des codes de l'ordinateur cible est requis.

Bien entendu, les plus grands problèmes sont associés à un noyau de système, qui cache complètement les spécificités de l'ordinateur utilisé, mais elle dépend elle-même de cette spécificité. À la suite de la séparation réfléchie des composants indépendants de la machine et de la machine du noyau (apparemment, du point de vue des développeurs de systèmes d'exploitation, cela consiste en une réalisation la plus élevée des développeurs du système nucléaire traditionnel UNIX) a réussi à Assurez-vous que la partie principale du noyau ne dépend pas des caractéristiques architecturales de la plate-forme cible, elle est entièrement écrite dans la langue SI et pour le transfert à une nouvelle plate-forme n'a besoin que de recompiler.

Cependant, une partie relativement petite du noyau dépend de la machine et écrite sur un mélange de la chaîne de l'assembleur SI et du processeur cible. Lorsque vous transférez le système sur une nouvelle plate-forme, la réécriture de cette partie du noyau est requise à l'aide de la langue d'assembleur et en tenant compte des caractéristiques spécifiques de l'équipement cible. Les parties dépendantes de la machine du noyau sont bien isolées de la partie principale indépendante de la machine, et avec une bonne compréhension de l'objectif de chaque composant dépendant de la machine, la réécriture de la partie dépendante de la machine est principalement une tâche technique (bien qu'elle soit nécessaire qualifications de programmation).

La partie à charge de la machine du noyau Traditionnel Unix OS comprend les composants suivants:

promotion et initialisation du système à un niveau bas (jusqu'à présent dépend des caractéristiques de l'équipement);

traitement primaire des interruptions internes et externes;

gestion de la mémoire (dans la pièce qui concerne les caractéristiques de la prise en charge du matériel pour la mémoire virtuelle);

allumez le contexte des processus entre les modes de l'utilisateur et du noyau;

caractéristiques connexes de la plate-forme cible de la partie des pilotes de périphérique.

4.2 Fonctions de base de base

Les principales fonctions du noyau UNIX OS sont prises comme suit:

(a) L'initialisation du système est la fonction de début et de promotion. Le noyau du système fournit l'outil de promotion (bootstrap), qui fournit au noyau complet de charger l'ordinateur et de démarrer le noyau.

(b) Gestion de processus et de threads - La fonction de création, l'achèvement et le suivi des processus et des threads existants ("processus" effectués sur la mémoire virtuelle générale). Depuis que UNIX est un système d'exploitation à la multiropession, le noyau assure la séparation entre processus en cours d'exécution Temps de processeur (ou processeurs dans les systèmes multiprocesseurs) et autres ressources informatiques pour créer une sensation externe que les processus sont réellement effectués dans le parallèle.

(c) La gestion de la mémoire est une fonction d'affichage de la mémoire virtuelle presque illimitée des processus dans la mémoire physique de l'ordinateur, qui a des dimensions limitées. Le composant correspondant du noyau fournit une utilisation partagée des mêmes zones de RAM avec plusieurs processus à l'aide de la mémoire externe.

(d) Gestion des fichiers - une fonction qui implémente l'abstraction du système de fichiers est la hiérarchie des répertoires et des fichiers. Les systèmes de fichiers UNIX prennent en charge plusieurs types de fichiers. Certains fichiers peuvent contenir des données au format ASCII, d'autres correspondent aux périphériques externes. Le système de fichiers stocke des fichiers d'objet Fichiers exécutés, etc. Les fichiers sont généralement stockés sur des dispositifs de mémoire externes; L'accès à eux est fourni par les moyens du noyau. Dans le monde de Unix, il existe plusieurs types d'organisation de systèmes de fichiers. Les options modernes pour UNIX prennent en charge simultanément la plupart des systèmes de fichiers.

e) Outils de communication - Une fonction qui fournit un échange de données entre les processus exécutés à l'intérieur d'un seul ordinateur (communications inter-processus) entre les processus exécutés dans différents nœuds du réseau de données local ou global, ainsi qu'entre les processus et les conducteurs de appareils.

(f) L'interface de programmation est une fonction qui donne accès aux capacités du noyau par les processus utilisateur en fonction du mécanisme des appels système, conçus comme une bibliothèque de fonctions.

4.3 Principes d'interaction avec le noyau

Un certain mécanisme est pris en charge dans tout système d'exploitation permettant aux programmes utilisateur de demander les services du noyau du système d'exploitation. Dans les systèmes d'exploitation de la plus célèbre machine de calcul soviétique BESM-6, les moyens de communication appropriés avec le noyau ont été appelés extraits, dans des systèmes d'exploitation IBM, ils s'appelaient des macros systémiques, etc. À UNIX, ces fonds sont appelés défis du système.

Le nom ne change pas le sens que les "commandes spéciales" du processeur sont utilisées pour faire appel aux fonctions du noyau OS, lors de l'exécution d'un type particulier d'interruption interne du processeur, ce qui le traduit en mode noyau (dans la plupart des systèmes d'exploitation moderne , ce type d'interruption est appelé piège-piège). Lors du traitement de telles interruptions (déchiffrement), le noyau du système d'exploitation reconnaît que, en fait, l'interruption est une demande au noyau de la part du programme d'utilisateurs d'effectuer certaines actions, sélectionne les paramètres de traitement et les traite, après quoi elle effectue le "retour de l'interruption », renouvelant l'exécution normale du programme utilisateur.

Il est clair que les mécanismes spécifiques d'excitation des interruptions internes sur l'initiative du programme utilisateur diffèrent dans différentes architectures matérielles. Étant donné que UNIX s'efforce de fournir un environnement dans lequel des programmes personnalisés pourraient être complètement mobiles, un niveau supplémentaire qui masque les caractéristiques d'un mécanisme particulier pour des interruptions internes passionnantes. Ce mécanisme est assuré par la bibliothèque dite d'appel système.

Pour l'utilisateur, la bibliothèque d'appel système est une bibliothèque conventionnelle à l'avance. fonctions réalisées Systèmes Systèmes de programmation SI. Lors de la programmation de la langue SI, l'utilisation de toute fonction de la bibliothèque d'appels système n'est pas différente de l'utilisation de toute fonction propre ou de bibliothèque SI. Cependant, à l'intérieur de toute fonction d'une bibliothèque d'appels de système spécifique contient du code généralement spécifique à cette plate-forme matérielle.

4.4 Principes de traitement des interruptions

Bien entendu, le système d'exploitation utilisé dans les systèmes d'exploitation, le mécanisme de traitement des interruptions internes et externes dépend principalement de la prise en charge matérielle du traitement des interruptions, par une plate-forme matérielle spécifique. Heureusement, à ce jour (et depuis assez longtemps), les principaux fabricants d'ordinateurs de facto sont accordés à un accord sur les mécanismes d'interruption de base.

Si ce n'est pas très précisément et plus précisément, l'essence du mécanisme adoptée pour aujourd'hui est que chaque interruption possible du processeur (interruption interne ou externe) correspond à une certaine adresse fixe de la RAM physique. Au moment où le processeur est autorisé à interrompre en raison de l'existence d'une application d'interruption interne ou externe, il existe une transmission matérielle de contrôle à la cellule de la RAM physique avec l'adresse correspondante - généralement l'adresse de cette cellule est appelée " Vecteur d'interruption "(En règle générale, les applications d'interruption interne, t .. Les applications provenant directement du processeur sont immédiatement satisfaites).

Les travaux du système d'exploitation doivent être placés dans les tarifs appropriés du code du logiciel RAM offrant un traitement initial de l'interruption et de l'initiation de la transformation complète.

Fondamentalement, UNIX OS adhère à une approche générale. Dans le vecteur d'interruption correspondant à l'interruption externe, c'est-à-dire L'interruption d'un périphérique externe contient des commandes qui définissent le niveau du processeur (niveau d'exécution détermine quel processeur d'interruption externe doit réagir immédiatement) et effectuer la transition vers le programme complet de traitement d'interruption dans le pilote de périphérique correspondant. Pour une interruption interne (par exemple, interrompt à l'initiative du programme utilisateur en l'absence d'une page nécessaire de la mémoire virtuelle dans la mémoire principale, lorsqu'une situation exceptionnelle se produit dans le programme utilisateur, etc.) ou interrompt de la minuterie dans le Vecteur d'interruption, il contient une transition vers le système approprié du noyau UNIX OS.

5. Gestion des entrées / sorties

Traditionnellement, le système d'exploitation UNIX a souligné trois types d'organisation d'E / S et, en conséquence, trois types de conducteurs. Bloquer l'entrée / la sortie est principalement conçue pour fonctionner avec des répertoires et des fichiers système de fichiers ordinaires ayant une structure de bloc au niveau de base. Au niveau de l'utilisateur, il est maintenant possible de travailler avec des fichiers, les affichant directement dans les segments de la mémoire virtuelle. Cette fonctionnalité est considérée comme l'entrée / sortie du bloc supérieur. Au niveau inférieur, le bloc d'entrée / sortie de bloc est maintenu par des pilotes de blocs. Bloquer l'entrée / la sortie, de plus, soutenue par la mémoire tampon du système.

L'entrée / sortie du personnage est destinée aux échanges directs (sans tampon) entre l'espace d'adresses de l'utilisateur et le périphérique correspondant. Common pour tous les pilotes de support de noyau symbolique consiste à assurer des fonctions de transfert de données entre l'utilisateur et les espaces d'adversaire nucléaire.

Enfin, l'entrée / sortie en streaming est similaire à l'entrée / sortie de caractères, mais en raison de la disponibilité de la possibilité d'inclusion dans le flux de modules d'usinage intermédiaires a une plus grande flexibilité.

5. 1 Principes de tamponnage système I / O

La manière traditionnelle de réduire les coûts généraux lors de l'exécution des échanges avec des dispositifs de mémoire externes comportant une structure de blocs est une tampon d'entrée / sortie de bloc. Cela signifie que toute unité du dispositif de mémoire externe est lue principalement dans un tampon de la zone de mémoire principale, appelée système UNIX, et déjà à partir de là, complètement ou partiellement (en fonction du type d'échange) est copié dans l'espace utilisateur approprié.

Les principes de l'organisation du mécanisme tampon traditionnel sont, d'une part, le fait qu'une copie du contenu du bloc est détenue dans la mémoire tampon du système jusqu'à ce qu'il soit nécessaire de le remplacer en raison du manque de tampons (une variation de l'algorithme LRU est utilisée. organiser une politique de substitution. Deuxièmement, lors de l'enregistrement de tout bloc de mémoire externe, seule une mise à jour (ou la formation et le remplissage) du tampon de cache est réellement effectuée. L'échange réel avec le dispositif est effectué soit lorsque vous appuyez sur la mémoire tampon en raison de la substitution de son contenu, soit lors de l'exécution d'un appel de système de synchronisation spécial (ou de FSYNC), supporté spécifiquement pour une poussée violente dans la mémoire externe des tampons de cache mises à jour.

Ce schéma tampon traditionnel inclus dans une contradiction avec des versions modernes d'outils de gestion de la mémoire virtuelle Unix et, en particulier avec le mécanisme d'affichage dans les segments de mémoire virtuelle. Par conséquent, un nouveau système de mise en mémoire tampon est apparu dans System c version 4, tout en parallèle avec l'ancien schéma.

L'essence du nouveau schéma est qu'au niveau du noyau, le mécanisme d'affichage dans les segments de mémoire virtuelle est effectivement joué. Premièrement, nous rappelons que le noyau UNIX fonctionne vraiment dans sa propre mémoire virtuelle. Cette mémoire a un plus complexe, mais fondamentalement la même structure que la mémoire virtuelle de l'utilisateur. En d'autres termes, la mémoire virtuelle du noyau est une page de segment et avec la mémoire virtuelle des processus utilisateur est prise en charge par le sous-système global de la gestion de la mémoire virtuelle. D'après cela, il suit, deuxièmement, que presque toutes les fonctions fournies par le noyau pour les utilisateurs peuvent être fournies avec une composante de noyau pour d'autres composants. En particulier, cela s'applique également aux possibilités d'affichage des fichiers à des segments de mémoire virtuelle.

Le nouveau programme tampon dans le système nucléaire de Unix est principalement basé sur le fait que pour l'organisation de la tampon, vous ne pouvez faire presque rien de spécial. Lorsque l'un des processus utilisateurs ouvre le fichier qui ne s'ouvre pas avant cette heure, le noyau forme un nouveau segment et connecte le fichier à ce segment. Après cela (indépendamment de la question de savoir si le processus utilisateur fonctionne avec le fichier dans le mode traditionnel à l'aide d'appels de système de lecture et d'écriture ou connectez le fichier au segment de votre mémoire virtuelle) au niveau du noyau, le travail sera effectué avec le nucléaire. segment auquel le fichier est connecté au noyau de niveau. L'idée principale de la nouvelle approche est que l'écart est éliminé entre la gestion de la mémoire virtuelle et la tampon à l'échelle du système (il aurait été fait il y a longtemps, car il était évident que la mémoire tamponnage principale du système d'exploitation devrait produire un composant de gestion de la mémoire virtuelle).

Pourquoi ne peut pas être abandonné de l'ancien mécanisme tampon? La chose est que le nouveau schéma suppose la présence d'une adressage continue à l'intérieur de l'objet de mémoire externe (il doit y avoir un isomorphisme entre les objets affichés et affichés). Toutefois, lors de l'organisation des systèmes de fichiers UNIX, il est assez difficile de distribuer la mémoire externe, qui est particulièrement liée aux nœuds I. Par conséquent, certains des blocs de mémoire externes doivent être considérés comme isolés, et il s'avère plus rentable pour utiliser l'ancien schéma tampon (bien que possible, dans les versions UNIX de demain et pourra passer complètement à un nouveau système unifié) .

5. 2 Appels système pour entrer / sortir

Pour l'accès (c.-à-d. Pour obtenir la mise en œuvre ultérieure des opérations d'E / S) au fichier de n'importe quel type (y compris des fichiers spéciaux), le processus utilisateur doit effectuer une connexion pré-connexion au fichier à l'aide de l'un des appels système ouverts, créez, Dup ou du tuyau.

Force d'appel système ouverte (pathname, mode) Suivant:

la consistance des paramètres d'entrée est analysée (principalement relative aux indicateurs de mode d'accès au fichier);

il existe un espace pour le descripteur de fichier dans la zone du système du processus (U-Région);

dans la région à l'échelle du système, il existe un espace existant pour placer le descripteur système du fichier (structures de fichiers);

une recherche dans l'archive du système de fichiers d'un objet avec le nom "chemin nom" et est formé ou détecté par le descripteur du fichier de niveau du système de fichiers (VNODE dans les termes du système UNIX V 4);

vnode est configuré avec un fichier de fichier formé précédemment.

Ouvrir et créer des appels système (presque) sont équivalents fonctionnellement. Tout fichier existant peut être ouvert à l'aide de l'appel de Système Cree et tout nouveau fichier peut être créé à l'aide de l'appel du système ouvert. Cependant, il est important de souligner que dans le cas de son utilisation naturelle (pour créer un fichier), cet appel système crée un nouvel élément du répertoire correspondant (en fonction de la valeur de chemin nom spécifié), et crée également et initialement initiale un nouveau i -nœud.

Enfin, l'appel du système DUP (copie-copie) conduit à la formation d'un nouveau descripteur de fichier ouvert. Cet appel système spécifique Unix est uniquement aux fins des réductions d'E / S). Son exécution est qu'un nouveau descripteur de fichier ouvert contenant un descripteur de fichier nouvellement formé (entier), mais faisant référence à la structure existante à l'échelle du système du fichier et contenant les mêmes signes et indicateurs correspondant au même fichier d'échantillon ouvert.

Les autres défis importants du système sont en lecture et en écriture des appels système. L'appel du système de lecture est effectué comme suit:

dans une table de fichiers à l'échelle du système, il existe un descripteur du fichier spécifié et est déterminé si l'appel de ce processus est légalement. ce fichier en mode spécifié;

sur certains (courts), le blocage de synchronisation sur le Vnode de ce fichier est défini (le contenu du descripteur ne doit pas changer dans les moments critiques de l'opération de lecture);

la lecture réelle est effectuée à l'aide d'un ancien ou d'un nouveau mécanisme tampon, après quoi les données sont copiées pour devenir disponibles dans l'espace d'adresses utilisateur.

L'opération d'enregistrement est effectuée de la même manière, mais change le contenu du tampon de la piscine tampon.

L'appel du système proche entraîne le fait que le pilote échoue au processus utilisateur correspondant et (dans le cas de la dernière fois la fermeture de la fermeture) définit le "pilote du système est libre".

Enfin, pour des fichiers spéciaux est pris en charge par un autre appel système «spécial», IOCTL. Il s'agit du seul défi système fourni pour des fichiers spéciaux et n'est pas fourni pour les autres variétés de fichiers. En fait, l'appel du système IOCTL vous permet d'étendre au hasard l'interface de tout pilote. Les paramètres IOCTL incluent un code de fonctionnement et un pointeur vers une zone de mémoire de processus utilisateur. L'ensemble de l'interprétation du code de fonctionnement et des paramètres spécifiques correspondants sont effectués par le conducteur.

Naturellement, car les pilotes sont principalement destinés à gérer des périphériques externes, le code du programme du conducteur doit contenir des moyens appropriés pour le traitement des interruptions de l'appareil. Appeler un programme de traitement individuel d'interruption dans le conducteur provient du noyau du système d'exploitation. De même, l'entrée "Timeout" peut être annoncée dans le pilote, à laquelle le noyau est dessiné lorsque le pilote temporel ordonné (tel contrôle temporaire est nécessaire lors du contrôle des appareils non trop intelligents).

Le diagramme global de l'organisation du conducteur est illustré à la figure 3.5. Comme ce dessin montre, du point de vue des interfaces et des commandes à l'échelle du système, il existe deux types de pilotes - symboliques et blocs. Du point de vue de l'organisation interne, un autre type de pilotes sont alloués - des pilotes en streaming (flux). Cependant, par son interface externe, les pilotes de flux ne diffèrent pas de symboliques.

6. Interfaces et points d'entrée du conducteur

6. 1 blocs de blocs

Les pilotes de blocs sont destinés à maintenir des périphériques externes avec une structure de bloc (disques magnétiques, bandes, etc.) et diffèrent des autres par le fait qu'ils sont développés et exécutés à l'aide de la mémoire tampon du système. En d'autres termes, de tels conducteurs fonctionnent toujours à travers une piscine tampon système. Comme on peut le voir sur la figure 3.5, tout appel à un pilote de bloc pour la lecture ou l'écriture passe toujours à travers le pré-traitement, qui tente de trouver une copie. le bloc souhaité dans la piscine tampon.

Dans le cas où une copie du bloc requise n'est pas dans le pool tampon ou si, pour une raison quelconque, vous devez remplacer le contenu de certains tampons mis à jour, le noyau UNIX OS fait référence à la procédure de stratégie du pilote de bloc correspondant. La stratégie fournit une interface standard entre le noyau et le conducteur. À l'aide de sous-programmes de bibliothèque pour la rédaction de pilotes, la procédure de stratégie peut organiser des files d'attente d'échange avec un dispositif, par exemple, afin d'optimiser le mouvement des têtes magnétiques sur le disque. Tous les échanges effectués par un lecteur de bloc sont effectués avec une mémoire tampon. Le recensement des informations requises à la mémoire du processus utilisateur concerné est effectuée par les programmes de noyau, les gestionnaires de la gestion des tampons

6. 2 Pilotes symboliques

Les pilotes symboliques sont principalement conçus pour maintenir des périphériques, les échanges avec lesquels sont effectués ou des lignes de caractères alternatifs. Un exemple typique d'un périphérique de caractères est une simple imprimante qui prend un caractère pour un échange.

Les pilotes symboliques n'utilisent pas la mémoire tampon du système. Ils copient directement des données de la mémoire du processus utilisateur lorsque vous effectuez des opérations d'enregistrement ou dans la mémoire du processus utilisateur lors de la lecture des opérations de lecture à l'aide de votre propre tampon.

Il convient de noter qu'il est possible de fournir une interface de caractères pour un dispositif de blocage. Dans ce cas, le pilote de bloc utilise les fonctionnalités supplémentaires de la procédure de stratégie qui vous permet d'échanger sans l'utilisation de la mémoire tampon du système. Pour un pilote avec des blocs et des interfaces symboliques, deux fichiers spéciaux, bloc et symbole sont démarrés dans le système de fichiers. Chaque circulation, le pilote reçoit des informations sur le mode utilisé.

6. 3 pilotes en streaming

L'objectif principal du mécanisme d'écoulement (flux) est d'augmenter le niveau de modularité et de flexibilité des pilotes avec une logique interne complexe (la plupart de tout cela fait référence aux pilotes mettant en œuvre des protocoles réseau développés). Les spécificités de ces pilotes sont que la majeure partie du code du programme ne dépend pas des caractéristiques du périphérique matériel. De plus, il est souvent avantageux de combiner différemment des parties du code de programme.

Tout cela a conduit à l'apparition de l'architecture en streaming des pilotes, qui sont un modules de traitement de convoyeur bidirectionnel. Au début du convoyeur (plus proche du processus utilisateur), il y a un en-tête du flux auquel l'utilisation de l'initiative de l'utilisateur est appliquée d'abord. À la fin du convoyeur (plus près du périphérique), il y a un pilote de périphérique régulier. Dans l'intervalle, un nombre arbitraire de modules de traitement peut être localisé, chacun d'entre eux étant émis conformément à l'interface de diffusion obligatoire.

7. Équipes et utilitaires

Avec des travaux interactifs dans l'environnement OS UNIX, utilisez diverses utilitaires ou des commandes de langage de shell externe. Beaucoup de ces utilitaires ne sont pas des programmes moins complexes que l'interprète de commandement lui-même (et à la hausse, l'interpréteur de commande shell lui-même est l'un des utilitaires pouvant être appelés à partir de la ligne de commande).

7. 1 Organisation de commandement à UNIX

Pour créer une nouvelle équipe, il vous suffit de suivre les règles de programmation dans la langue SI. Chaque programme SI correctement décoré commence son exécution à partir de la fonction principale. Cette fonctionnalité "semi-système" comporte une interface standard qui constitue la base de l'organisation de commandes pouvant être appelées dans l'environnement Shell. Les commandes externes sont effectuées par l'interpréteur de coque à l'aide du fork d'appel du système de fourche et de l'une des options EXED. Les paramètres d'appel système EXED comprend un ensemble de chaînes de texte. Cet ensemble de chaînes de texte est transmis à l'entrée de la fonction principale du programme démarré.

Plus précisément, la principale caractéristique reçoit deux paramètres - Argc (nombre de chaînes de texte transmises) et argv (pointeur au tableau des pointeurs sur chaînes de texte). Le programme applicable à son utilisation en tant que commande shell doit avoir une interface externe définie avec précision (les paramètres sont généralement entrés à partir du terminal) et doivent contrôler et démonter correctement les paramètres d'entrée.

De plus, pour correspondre au style de coquille, un tel programme ne doit pas remplacer les fichiers correspondant à entrée standard, sortie standard et sortie d'erreur standard. Ensuite, la commande peut normalement rediriger l'entrée / la sortie, et elle peut être incluse dans les convoyeurs.

7. 2 Organisation de la redirection et du convoyeur d'E / S

Comme on peut le voir de la dernière phrase du point précédent, veiller à ce que les possibilités de redirection d'E / S et d'organisation du convoyeur, lors de la programmation des commandes ne nécessitent rien de spécial. Il suffit simplement de ne pas toucher les trois descripteurs de fichiers initiaux et de fonctionner correctement avec ces fichiers, à savoir, pour afficher le fichier avec le descripteur STDOUT, entrez les données du fichier STDIN et affichez des messages d'erreur dans le fichier STDERROR.

7. 3 commandes intégrées, bibliothèques et personnalisées

Les commandes intégrées font partie du code de programme d'interpréteur de commande. Ils sont exécutés comme des sous-programmes de l'interprète et ils ne peuvent pas être remplacés ni redéfinis. La syntaxe et la sémantique des commandes intégrées sont définies dans la langue de commande appropriée.

Les commandes de bibliothèque constituent une partie du logiciel système. Il s'agit d'un ensemble de programmes exécutés (utilitaires) fournis avec le système d'exploitation. La plupart de ces programmes (tels que VI, EMACS, GREP, Rechercher, faire, etc.) sont extrêmement utiles dans la pratique, mais leur considération est en dehors de ce cours (sur les éditeurs de VI et EMACS et l'utilitaire d'intégrité effectuent des fichiers logiciels. Livres épais).

La commande utilisateur est un programme exécuté, organisé conformément aux exigences énoncées de cette manière, tout utilisateur UNIX OS peut nuire au répertoire des commandes externes de sa langue de commande (par exemple, vous pouvez écrire votre propre interpréteur de commande).

7. 4 Programmation de la langue de commande

L'une des langues shell mentionnées en principe peut être utilisée comme langage de programmation. Parmi les utilisateurs Unix, il y a beaucoup de gens qui écrivent sur des programmes assez sérieux. Pour la programmation, il est préférable d'utiliser des langages de programmation (SI, C ++, Pascal, etc.), et non les langues de commande.


8. Interface graphique multimédia

Bien que de nombreux programmeurs professionnels travaillant dans UNIX OS, préfèrent aujourd'hui utiliser une interaction de lignes traditionnelle avec le système, des terminaux graphiques de couleur relativement peu coûteux généralisés avec une qualité de haute résolution ont conduit au fait que dans toutes les versions modernes d'UNIX, les interfaces utilisateur graphique avec le système sont pris en charge. et les utilisateurs sont fournis aux outils de développement interfaces graphiques Avec leurs programmes développés. Du point de vue de l'utilisateur final, les outils d'interface graphique sont supportés dans différentes versions de Unix OS et dans d'autres systèmes (par exemple, MS Windows ou Windows NT), à peu près la même chose dans leur style.

Premièrement, dans tous les cas, le mode de fonctionnement multicolore avec l'écran du terminal est pris en charge. À tout moment, l'utilisateur peut former une nouvelle fenêtre et l'associer avec le programme souhaité qui fonctionne avec cette fenêtre sous forme de terminal séparé. Les fenêtres peuvent être déplacées, modifier leur taille, fermer temporairement, etc.

Deuxièmement, dans toutes les variétés modernes de l'interface graphique, la commande de la souris est prise en charge. Dans le cas d'UNIX, il s'avère souvent que le clavier habituel du terminal utilise uniquement lors de la mise sous tension de l'interface de ligne traditionnelle (bien que dans la plupart des cas, au moins une de la fenêtre du terminal fonctionne l'un des interprètes de la famille Shell).

Troisièmement, une telle propagation du style de travail «souris» est possible grâce à l'utilisation de supports d'interface basés sur des icônes (icônes) et des menus. Dans la plupart des cas, un programme exécuté dans certaines fenêtres offre à l'utilisateur de sélectionner n'importe quelle fonction qui l'exécutait soit par mappage dans l'ensemble des images symboliques des fonctions possibles (icônes) ou en fournissant un menu multi-niveaux. Dans tous les cas, pour une nouvelle sélection, il s'avère contrôler suffisamment le curseur de la fenêtre correspondante à l'aide de la souris.

Enfin, les interfaces graphiques modernes ont une "amitié par rapport à l'utilisateur", offrant la possibilité d'obtenir immédiatement une pointe interactive pour toute occasion. (Il serait probablement plus correct de dire qu'un bon style de programmation utilisant des interfaces graphiques est un style dans lequel de tels conseils sont réellement fournis.)

Après avoir transféré toutes ces propriétés communes des outils d'interface graphique modernes, une question naturelle peut se produire: s'il existe de tels uniformes dans le domaine des interfaces graphiques qu'il peut être particulièrement indiqué sur les interfaces graphiques dans l'environnement UNIX? La réponse est assez simple. Oui, l'utilisateur final réellement dans tout système d'aujourd'hui traité sur le même ensemble de capacités d'interface, mais dans différents systèmes, ces capacités sont obtenues de différentes manières. Comme d'habitude, l'avantage d'UNIX OS est la présence de technologies standardisées vous permettant de créer des applications mobiles avec des interfaces graphiques.

8. Principes de protection

Étant donné que l'OS UNIX puisque son origine a été conçu comme un système d'exploitation multijoueur, le problème de l'autorisation de l'accès à divers utilisateurs à déposer des fichiers système était toujours pertinent. Sous l'autorisation d'accès, c'est les actions du système qui permettent ou n'autorisent pas l'accès à ce fichier à ce fichier en fonction des droits de l'accès des utilisateurs et des restrictions d'accès installées pour le fichier. Le schéma d'autorisation d'accès utilisé dans UNIX est si simple et pratique et tout à fait si puissant qui est devenu la norme réelle des systèmes d'exploitation modernes (ne revendiquant pas les systèmes avec une protection multi-niveaux).

8.1 Identificateurs utilisateur et groupe d'utilisateurs

Avec chaque processus exécutable, l'UNIX est associée à l'ID utilisateur réel, à l'ID utilisateur actuel et à l'ID utilisateur enregistré (ID utilisateur enregistré) associé au système d'exploitation UNIX (ID utilisateur effectif). Tous ces identificateurs sont installés à l'aide de l'appel Système SETUID, qui peut être effectué uniquement dans le mode SuperUserer. De même, chaque processus est associé à trois identifiants de groupe utilisateur - ID de groupe réel, ID de groupe efficace et identifiant de groupe enregistré. Ces identificateurs sont définis par l'appel du système privilégié SETGID.

Lorsque l'utilisateur se connecte dans la connexion système vérifie que l'utilisateur est enregistré dans le système et sait mot de passe droit (S'il est installé), forme un nouveau processus et lance la coquille requise pour cet utilisateur. Mais avant cela, la connexion définit les identifiants utilisateur et de groupe pour le processus nouvellement créé à l'aide des informations stockées dans des fichiers / etc / passwd et / etc / groupe. Une fois le processus d'identificateurs utilisateur et de groupe sont associés au processus, les restrictions commencent à agir pour accéder aux fichiers. Le processus peut accéder au fichier ou l'exécuter (si le fichier contient le programme exécutif) uniquement si le fichier de restriction d'accès est autorisé à le faire. Les identifiants associés au processus sont transmis aux processus créés par eux, qui diffusent les mêmes limitations. Toutefois, dans certains cas, le processus peut modifier ses droits à l'aide d'appels système SETUID et SETGID, et parfois, le système peut modifier automatiquement l'accès du processus.

Considérez, par exemple, la situation suivante. Le fichier / etc / passwd est interdit par l'entrée, à l'exception du superutilisateur (superutilisateur peut écrire dans n'importe quel fichier). Ce fichier, entre autres choses, contient des mots de passe utilisateur et chaque utilisateur est autorisé à modifier leur mot de passe. Il existe un programme spécial / bin / passwd, changeant des mots de passe. Cependant, l'utilisateur ne peut pas le faire même avec ce programme, car l'entrée de fichier / etc / passwd est interdite. Dans le système UNIX, ce problème est autorisé comme suit. Lorsque le fichier est exécuté, il peut être indiqué que lorsqu'il est démarré, l'ID utilisateur et / ou le groupe doivent être installés. Si l'utilisateur demande l'exécution d'un tel programme (à l'aide de l'appel du système Exec), l'identifiant de l'utilisateur est défini sur le processus approprié correspondant à l'identifiant du propriétaire du fichier exécutable et / ou de l'identifiant du groupe de ce propriétaire. . En particulier, lorsque le programme / bin / passwd démarre, le processus recevra un identifiant superutilisateur et le programme sera en mesure d'enregistrer dans le fichier / etc / passwd.

Et pour l'ID utilisateur et pour l'identifiant du groupe, l'ID réel est un véritable identifiant, et l'ID de fonctionnement est l'identifiant de l'exécution en cours. Si l'ID utilisateur actuel correspond au superutilisateur, cet identifiant et l'identifiant du groupe peuvent être réinitialisés à n'importe quelle valeur des appels de système SETUID et SETGID. Si l'ID utilisateur actuel est différent de l'identifiant de la racine, les appels système SETUID et SETGID ID Current conduit à un véritable identifiant de remplacement (utilisateur ou groupe, respectivement).

8.2 Protection du fichier

Comme être accepté dans le système d'exploitation multijoueur, UNIX prend en charge un mécanisme uniforme permettant de contrôler l'accès aux fichiers et aux annuaires du système de fichiers. Tout processus peut accéder à un fichier dans lequel et uniquement si les droits d'accès décrits dans le fichier correspondent aux capacités de ce processus.

La protection des fichiers d'un accès non autorisé à UNIX OS est basée sur trois faits. Premièrement, avec n'importe quel processus qui crée un fichier (ou un répertoire) est associé à un identifiant d'utilisateur unique (identificateur d'utilisateur UID), lequel à l'avenir peut être interprété comme identifiant du propriétaire du fichier nouvellement créé. Deuxièmement, chaque processus essayant d'obtenir un accès au fichier, une paire d'identificateurs est associée - l'ID utilisateur actuel et ses identificateurs de groupe. Troisièmement, chaque fichier correspond définitivement à son descripteur-i-noeud.

Tout i-noeud utilisé dans le système de fichiers définit toujours un seul et un seul fichier. Le nœud I contient beaucoup d'informations diverses (la plupart d'entre elles sont disponibles pour les utilisateurs via STATST Stat et FSTAT), et parmi ces informations, ce qui permet au système de fichiers d'évaluer l'enregistrement de ce processus à ce fichier à ce fichier. dans le mode souhaité.

Les principes généraux de la protection sont les mêmes pour tous options existantes Système: i-noeud Informations Inclut le propriétaire actuel de l'UID et GID du fichier (immédiatement après la création d'ID de fichier de son identificateur de propriétaire actuel, le processus de création actuelle correspondant, mais le système appelle CHEWN CHGRP et peut être modifié à l'avenir). De plus, le nœud I du fichier stocke l'échelle dans laquelle il est à noter que l'utilisateur peut faire avec le fichier - son propriétaire, que peut faire avec les utilisateurs entrant dans le même groupe d'utilisateurs que le propriétaire et que peut faire avec les autres utilisateurs de fichiers. De petits détails de la mise en œuvre dans différentes versions du système diffèrent.

8.3 OS Perspective Soutenir unix mercredi unix

Le microicier est la partie de tige minimale du système d'exploitation, qui sert de base d'extensions modulaires et portables. Apparemment, la plupart des systèmes d'exploitation de nouvelle génération auront des micronières. Cependant, il existe de nombreuses opinions différentes sur la manière d'organiser les services du système d'exploitation par rapport au microneur: comment concevoir des pilotes de périphérique pour obtenir la plus grande efficacité, mais enregistrer les fonctions des pilotes de manière indépendante que possible de l'équipement. Devrait effectuer des opérations qui ne sont pas liées au noyau dans l'espace du noyau ou dans l'espace utilisateur; Est-il intéressant de garder les programmes disponibles sous-systèmes (par exemple, UNIX) ou il est préférable de tout jeter et de commencer à partir de zéro.

Dans une large utilisation d'un microker, la société a introduit ensuite, dans le système d'exploitation dont a été utilisé Microicer Mach. Un petit noyau privilégié de ce système d'exploitation autour duquel les sous-systèmes effectués en mode utilisateur étaient situés, il fallait théoriquement de garantir la flexibilité et la modularité sans précédent du système. Mais dans la pratique, cet avantage était quelque peu altéré par la présence d'un serveur monolithique qui implémente le système d'exploitation UNIX BSD 4.3, qui a ensuite été choisi comme coquille Mach Microkernel. Cependant, la dépendance sur Mach a permis d'inclure dans le système de communication et un certain nombre de fonctions de service axées sur des objets, sur la base desquelles il a été possible de créer une interface d'utilisateur finale élégante avec des outils graphiques pour la configuration réseau, Administration du système et développement de logiciels.

Le prochain système d'exploitation de microher était Microsoft Windows NT, dans lequel avantage clé L'utilisation du microkernel devait devenir non seulement une modularité, mais également la tolérabilité. (Notez qu'il n'existe pas d'opinion unanime sur la question de savoir si le système d'exploitation NT Microkernel OS) a été construit de manière à ce qu'il puisse être utilisé dans des systèmes simples et multi-processeurs basés sur des processeurs Intel, des MIPS et Alpha (et ceux qui viennent après eux). Depuis dans NT, des programmes écrites pour DOS, Windows, OS / 2 et systèmes compatibles avec normes de POSIX, Microsoft a utilisé l'approche micronehique inhérente à la modularité pour créer une structure NT commune qui ne répète aucun des systèmes d'exploitation existants. Chaque système d'exploitation est émulé sous forme de module ou de sous-système séparé.

Plus tard, les architectures micronécléiques des systèmes d'exploitation ont été annoncées par des sociétés Novell / USL, Logiciel ouvert. Fondation (OSF), IBM, Apple et autres. L'un des principaux concurrents du NT dans le domaine de la micronucléaire est Mach 3.0, un système créé à l'Université de Carnegie Melon, que IBM et OSF ont pris à une espèce commerciale. (La société suivante comme base de NextStep utilise toujours Mach 2.5, mais examine également de près le Mach 3.0.) Un autre concurrent est le chorus de microkernel 3.0 des systèmes de chorus, USL sélectionné comme base de nouvelles implémentations d'UNIX. Certains microkernel seront utilisés à Sun Springs, un successeur orienté objet du Solaris OS (à moins que le soleil apporte du travail sur Springs à la fin). La tendance à la transition de systèmes monolithiques aux systèmes de microrétrie est évidente (ce processus n'est pas simple: IBM a pris un pas en arrière et a refusé d'aller à la technologie Micronucleus). À propos, ce n'est pas la nouvelle pour les systèmes logiciels QNX et les sociétés Unisys, qui ont déjà produit des systèmes d'exploitation de microéritaires qui ont réussi depuis plusieurs années. QNX OS est en demande sur le marché du marché en temps réel et l'UNISYS CTO est populaire dans le domaine bancaire. Dans les deux systèmes, la modularité inhérente à Micronucleus OS a été utilisée avec succès.


Conclusion

Les principales différences d'UNIX d'un autre système d'exploitation

Unix est constitué d'un noyau avec des conducteurs inclus dans celui-ci et des utilitaires (externe au programme principal). Si vous souhaitez modifier la configuration (ajoutez un périphérique, modifiez le port ou l'interruption), le noyau est reconstruit (surexpline) des objets d'objets ou (par exemple, dans FreeBSD) à partir de la source. Ce n'est pas entièrement vrai. Certains paramètres remédier à l'incendie sans reconstruire. Il existe également des modules de noyau chargables.

Contrairement à UNIX, "Windows (s'il n'est pas spécifié, ce qui signifie 3.11, 95 et NT) et OS / 2 lors du chargement effectivement attaché les pilotes. En même temps, les compacts du noyau assemblé et la réutilisation du code total est une commande de magnitude inférieure à UNIX. De plus, avec la configuration de noyau UNIX, le système de noyau UNIX est configuré sans altération (il sera nécessaire de modifier uniquement la partie de démarrage du BIOS) peut être enregistrée dans la ROM et exécuter _ne_obo_ dans la RAM . La compacité de code est particulièrement importante, car le noyau et les conducteurs ne quittent jamais la mémoire opérationnelle physique, ne se buvez pas sur le disque.

UNIX est le système d'exploitation le plus multi-plateformes. WindowsNt essaie de l'imiter, mais jusqu'à présent, il est mauvais - après l'échec de MIPS et Power-PC, W "NT ne resta que sur deux plates-formes - les traditionnels I * 86 et Dec alpha. La portabilité des programmes d'une version de UNIX est limitée. Programme nécessitant non écrit, ne tenant pas compte des différences dans les implémentations UNIX, rendant les hypothèses déraisonnables de la "variable entière devrait occuper quatre octets" peut nécessiter une modification grave. Mais il s'agit toujours de nombreuses ordonnances plus faciles que, Par exemple, Perrrest avec OS / 2 sur NT.

Portée d'UNIX

Unix est utilisé à la fois comme serveur et poste de travail. MSNT, Novell NetWare, IBM OS / 2 Warp Connect, Dec VMS et les systèmes d'exploitation centrale concurrencent-le dans la nomination des serveurs. Chaque système a sa propre portée dans laquelle il vaut mieux que d'autres.

WindowsNT - pour les administrateurs qui préfèrent une interface pratique pour dépenser économiquement des ressources et des performances élevées.

NetWare - Pour les réseaux dans lesquels le service de fichiers et d'imprimantes hautes performances est nécessaire et que les autres services ne sont pas si importants. L'inconvénient principal - sur le serveur NetWare Il est difficile d'exécuter des applications.

OS / 2 est bon où vous avez besoin d'un serveur d'applications "facile". Les ressources nécessitent moins que NT, dans la gestion de flexibilité (bien que dans le contexte, cela puisse et plus difficile), et le multitâche est très bon. L'autorisation et la délimitation des droits d'accès ne sont pas implémentées au niveau du système d'exploitation, ce qui est plus que de payer au niveau des applications d'application. (Cependant, souvent le système d'exploitation restant fait de même). De nombreuses stations Fidonet et BBS sont effectuées sur la base OS / 2.

VMS est un puissant, pas inférieur à UNIX "AM (et à de nombreux égards et supérieurs et supérieur IT) Server, mais uniquement pour les plates-formes VAX et Alpha Dec.

Mainframe - pour maintenir un très grand nombre d'utilisateurs (environ plusieurs milliers). Mais le travail de ces utilisateurs est généralement organisé en interaction client-serveur, mais sous la forme de terminal hôte. Le terminal de cette paire n'est plutôt pas un client, mais le serveur (World of Internet, N3 pour la 1996e année). Les avantages des ordinateurs centraux doivent être attribués à la sécurité et à la résistance supérieures aux défaillances et au prix correspondant à ces qualités.

Unix est bon pour un administrateur qualifié (ou qui veut être tel), car Nécessite la connaissance des principes d'exploitation des processus qui se produisent. La séparation de la mémoire multitâche et de la mémoire rigide garantit une fiabilité élevée du système, bien que NetWare soit inférieure dans les performances et les services imprimés de fichiers UNIX.

Une flexibilité insuffisante de fournir les droits d'accès utilisateur aux fichiers par rapport à WindowsNT rend difficile l'organisation de _a_eurovna_filene_system_ data_nign Data (plus précisément des fichiers), qui à mon avis sont compensés par la simplicité de la mise en œuvre, et donc des exigences plus petites pour l'équipement. Toutefois, des applications telles que le serveur SQL résolvent le problème de l'accès au groupe à ces forces, de sorte que la capacité UNIX d'interdire l'accès à _fyle_ à un utilisateur spécifique à mon avis est clairement excessif.

Presque tous les protocoles sur lesquels Internet sont basés sur UNIX, en particulier la pile de protocoles TCP / IP à l'Université de Berkeley.

Sécurité Unix avec une administration appropriée (et quand n'est-ce pas le cas?) Ni pas inférieur à Novell ni WindowsNt.

Une propriété importante d'UNIX, qui les apporte aux ordinateurs centraux, est sa multi-terminalité, de nombreux utilisateurs peuvent exécuter simultanément des programmes sur une machine UNIX. Si vous n'avez pas besoin d'utiliser des graphiques, vous pouvez faire des terminaux de texte bon marché (spécialisés ou sur la base de PC bon marché) connecté le long des lignes lentes. Seuls VMS en concurrence avec elle. Les bornes graphiques X peuvent être utilisées lorsque les processus fonctionnant sur différentes machines sont présents sur un écran.

Dans la nomination des postes de travail avec UNIX Compete MS Windows *, IBM OS / 2, Macintosh et Acorn Risc-OS.

Windows - pour ceux qui apprécient la compatibilité plus d'efficacité; Pour ceux qui sont prêts à acheter un grand nombre de mémoire, espace disque et megahertz; Pour ceux qui aiment non liés à l'essence, cliquez sur la souris sur les boutons de la fenêtre. True, tôt ou tard, il devra également étudier les principes du système et des protocoles, mais il sera alors trop tard - le choix est fait. Un avantage important de Windows doit également être reconnu comme la possibilité de voler un groupe de logiciels.

OS / 2 - Pour les amants OS / 2. :-) Bien que certaines informations OS / 2, interagissent mieux avec les réseaux centraux et IBM.

Macintosh - Pour les œuvres graphiques, de publication et de musicalité, ainsi que pour ceux qui aiment l'interface claire, belle et ne veulent pas (ne peuvent pas) comprendre les détails du fonctionnement du système.

RISC-OS, cousu dans la ROM, permet de ne pas perdre de temps sur l'installation du système d'exploitation et de la restaurer après des échecs. De plus, presque tous les programmes consacrés à des ressources très économiquement sur le plan économique, grâce auxquels ils n'ont pas besoin d'huer et de travailler très rapidement.

Unix exploite à la fois sur PC et dans des postes de travail puissants avec des processeurs RISC, de puissants systèmes de CAO et de l'information géographiques puissants sont rédigés sous UNIX. Avec son évolutivité de UNIX due à sa multiplateforme, un ordre de grandeur dépasse tout autre système d'exploitation, selon certains auteurs.


Bibliographie

1. Tutoriel Kuznetsova S.D. "Système d'exploitation UNIX" 2003;

2. Polyakov A.D. "Unix 5ème édition sur X86 ou n'oublie pas l'histoire";

3. Karpov D.YU. "UNIX" 2005;

4. Fedorchuk A.V. "Compétence de travail UNIX", 2006

5. Matériaux du site http://www.citforum.ru/operating_systems/1-16;

Ministère de l'éducation et de la science de l'Agence fédérale de la Fédération de Russie pour l'éducation Institution éducative de l'enseignement supérieur Taganrog State University Discipline

Si vous avez récemment commencé à apprendre Linux et à maîtriser cet immense univers, alors probablement souvent rencontré le terme Unix. Cela semble très similaire à Linux, mais que signifie-t-il? Probablement, vous vous demandez ce que l'UNIX diffère de Linux. La réponse à cette question dépend de ce que vous comprenez sous ces mots. Après tout, chacun d'entre eux peut être interprété de différentes manières. Dans cet article, nous examinerons l'historique simplifié de Linux et UNIX pour vous aider à comprendre ce que c'est et comment ils sont connectés les uns avec les autres. Comme toujours, vous pouvez poser des questions ou ajouter informations Complémentaires dans les commentaires.

L'UNIX a commencé son histoire à la fin des années 1960 et au début des années 1970 dans les laboratoires informatiques AT & T Bell Labs aux États-Unis. En collaboration avec le laboratoire Bell Laboratoire de recherche General Electric, a commencé à développer un nouveau système d'exploitation. Certains chercheurs étaient mécontents du développement de ce système d'exploitation. Ils se sont éloignés du travail sur le projet principal et ont commencé à développer leur propre système d'exploitation. En 1970, ce système s'appelait Unix et deux ans plus tard, elle a été complètement réécrite dans le langage de programmation SI.

Cela a permis de distribuer et de passer unix à différents appareils et plates-formes informatiques.

Depuis que UNIX a continué à développer, AT & T a commencé à vendre des licences pour l'utiliser dans des universités, ainsi que à des fins commerciales. Cela signifiait que tout le monde ne pouvait pas, comme maintenant, pour changer et distribuer le code système d'exploitation ONIX. Bientôt, de nombreuses éditions et options pour le système d'exploitation UNIX, conçues pour résoudre diverses tâches, ont commencé à apparaître. Les plus célèbres d'entre eux étaient BSD.

Linux est similaire à UNIX sur la fonctionnalité et les capacités, mais pas une base de code. Ce système d'exploitation a été collecté à partir de deux projets. Le premier est le projet GNU développé par Richard Podlotman en 1983, le deuxième noyau Linux écrit par Linus Torvalds en 1991.

L'objectif du projet GNU était de créer un système similaire à UNIX, mais indépendant de celui-ci. En d'autres termes, un système d'exploitation qui ne contient pas de code UNIX, qui pourrait librement se propager et modifier sans restrictions en tant que logiciel libre. Étant donné que le noyau Linux gratuit ne pouvait pas fonctionner en soi, le projet GNU était unis avec le noyau Linux et le système d'exploitation Linux est né.

Linux a été construit sous l'influence du système Minix, un bascendant Unix, mais tout le code a été écrit à partir de zéro. Contrairement à UNIX, qui a été utilisé sur les serveurs et les grands ordinateurs centraux de différentes entreprises, Linux a été conçu pour être utilisé sur un ordinateur à domicile avec un matériel plus simple.

À ce jour, Linux fonctionne sur un grand nombre de plates-formes, supérieure à tout autre système d'exploitation, serveurs, systèmes embarqués, micro-ordinateurs, modems et même téléphones mobiles. Maintenant, la différence Linux et UNIX seront maintenant considérées plus en détail.

Qu'est-ce que UNIX

Le terme UNIX peut concerner de tels concepts:

  • Le système d'exploitation original développé dans AT & T Bell Labs, sur la base desquels un autre système d'exploitation se développe.
  • Marque de commerce écrit lettres majuscules. Unix appartient au groupe Open, qui a mis au point un ensemble de normes pour les systèmes d'exploitation - Spécification unique Unix. Seuls les systèmes qui répondent aux normes peuvent être appelés légalement unix. La certification n'est pas gratuite et oblige les développeurs à payer pour l'utilisation de cette marque.
  • Tous les systèmes d'exploitation sont enregistrés avec le nom UNIX. Parce qu'ils sont conformes aux normes susmentionnées. Cet AIX, A / UX, HP-UX, Inspur K-UX, Reliant Unix, Solaris, IRIX, TRU64, UNIXWORS, Z / OS et OS X - Oui, même ceux qui fonctionnent sur des ordinateurs Apple.

Qu'est-ce que Linux

Le terme Linux ne s'applique qu'au noyau. Le système d'exploitation ne sera pas entièrement sans environnement et applications de bureau. Étant donné que la plupart des applications ont été développées et sont maintenant en cours de développement dans le cadre du projet GNU, le nom complet du système d'exploitation est GNU / Linux.

Maintenant, de nombreuses personnes utilisent le terme Linux pour noter tout en fonction du noyau Linux, des distributions. Sur le ce moment La version la plus récente du noyau Linux est de 4,4, version 4.5 est au stade de développement. Changer la numérotation des versions des noyaux de 3.x à 4.x a eu lieu il n'y a pas si longtemps.

Linux est un système d'exploitation unix unix qui se comporte comme UNIX, mais ne contient pas son code. Unix Simple OS est souvent appelé ONU * X, * NIX et * N? X, voire des unixoïdes. Linux n'a pas de certification UNIX, et le GNU est déchiffré comme GNU PAS UNIX, donc à cet égard Mac OS X est plus unix que Linux. Mais néanmoins, le noyau Linux et le système d'exploitation GNU Linux sont très similaires à Unix sur la fonctionnalité, la plupart des principes de la philosophie UNIX sont mis en œuvre. Ce code lisible, stockage de la configuration du système dans des fichiers texte distincts, ainsi que d'utiliser des petits outils de ligne de commande, Graphic Shell et Gestionnaire de session.

Il est important de noter que tous les systèmes UNIX de ces systèmes n'ont pas reçu la certification UNIX. Dans un contexte spécifique, tous les systèmes d'exploitation basés sur UNIX ou sur ses idées sont appelés. Unix commeIndépendamment de ce qu'ils ont un certificat UNIX ou non. De plus, ils peuvent être commerciaux et gratuits.

J'espère que maintenant il est devenu plus clair ce que l'UNIX diffère de Linux. Mais allons encore plus loin et résumons.

Principales différences

  • Linux est un système d'exploitation open source et l'UNIX d'origine n'est pas non plus, à l'exception de certains de ses dérivés.
  • Linux est un clone de l'UNIX d'origine, mais il ne contient pas son code.
  • La principale différence entre UNIX de Linux, que Linux n'est que le noyau, tandis qu'unix est un système d'exploitation à part entière.
  • Linux a été conçu pour des ordinateurs personnels. Un Unix est principalement orienté sur de grandes stations de travail et de serveurs.
  • Aujourd'hui, Linux prend en charge plus de plates-formes que UNIX.
  • Linux prend en charge plus de types de systèmes de fichiers que UNIX.

Comme vous pouvez le constater, la confusion se pose généralement en raison du fait que Linux vs Unix peut signifier des choses complètement différentes. Quelle que soit l'importance à l'esprit, le fait reste le fait - Unix était le premier et Linux est apparu plus tard. Linux est né du désir de liberté de logiciels et de mobilité, inspiré par l'approche UNIX. Nous pouvons dire en toute sécurité que nous sommes tous endettés avant le mouvement du logiciel libre, car le monde serait bien pire sans elle.

Unix a une histoire longue et intéressante. Ayant commencé comme un projet frivole et presque «jouet» de jeunes chercheurs, UNIX est devenu une industrie de plusieurs millions de dollars, y compris dans ses orbites, des universités, des sociétés multinationales, des gouvernements et des organisations internationales de normalisation.

Unix est originaire d'At & T Bell Labs Labs il y a plus de 20 ans. À cette époque, Bell Labs était engagé dans le développement d'une multicoscane multijoueur (service multiplexé et service informatique), ainsi que le MIT et le général Electric, mais ce système a échoué, en partie à des fins trop ambitieuses qui ne répondaient pas au niveau des ordinateurs de Cette fois, et en partie et en raison du fait qu'il a été conçu dans PL / 1, et le compilateur PL / 1 a été retardé et fonctionnait généralement bien après son apparence tardif. Par conséquent, Bell Labs a généralement refusé de participer au projet multicomanie, qui a donné la possibilité à l'un de ses chercheurs, Kenu Thompson, de travailler dans la direction de l'amélioration de l'environnement d'exploitation Bell Labs. Thompson, ainsi qu'un employé de Bell Labs Denis Ritchie et d'autres ont développé un nouveau système de fichiers, de nombreuses fonctionnalités ont amené leur origine de multiples. Pour vérifier le nouveau système de fichiers, Thompson a écrit le cœur du système d'exploitation et des programmes pour l'ordinateur GE-645, qui a fonctionné sous la commande du système de multiropogramme du système de séparation temporelle Gecos. Ken Thompson leur a été écrit au moment du travail sur le jeu multicomanie "Voyage spatial" - "Voyage spatial". Il l'a lancé sur l'ordinateur GE-645, mais elle a travaillé dessus non très bien en raison de la faible efficacité de la séparation temporelle. De plus, le temps moteur GE-645 était trop cher. En conséquence, Thompson et Ritchi ont décidé de déplacer la partie dans le coin de la machine PDP-7 de Dec, qui comporte 4096 mots de 18 bits, teletype et un bon affichage graphique. Mais PDP-7 avait un logiciel sans importance et, en terminant le transfert du jeu, Thompson a décidé de mettre en œuvre le système de fichiers sur le PDP 7, sur lequel il a travaillé sur GE-645. À partir de ce travail, la première version Unix est née, bien qu'elle n'a pas eu de nom à ce moment-là. Mais il a déjà inclus un système de fichiers caractéristique d'UNIX, basé sur des descripteurs d'index d'index, présentait un sous-système de processus et de mémoire et a permis à deux utilisateurs de travailler dans le mode de séparation de temps. Le système a été écrit en assembleur. Nom unix (services d'information et informatique uniplex) a été donné à son autre employé de Bell Labs, Brian Kernigan, qui a appelé à l'origine son Unics, soulignant sa différence de multijoueurs multiples. Bientôt unics a commencé à appeler UNIX.

Les premiers utilisateurs d'UNIX "A sont devenus des employés du département Bell Labs Brevets, qui ont constaté un environnement pratique pour créer des textes.

Une influence importante sur le destin de Unix était le recensement de sa langue de haut niveau avec Denis Ritchie spécialement développée à ces fins. Cela s'est produit en 1973, UNIX a déjà numéroté par cette époque de 25 installations et le Bell Labs a créé un groupe de soutien UNIX spécial.

Unix a été répandu depuis 1974, après avoir décrit ce système, Thompson et Ritchie dans le magazine CaCM Computer. Unix s'est répandu dans des universités, car il leur a été fourni gratuitement avec les codes d'origine sur la grande distribution de compilateurs C efficaces fabriqués Unix unique pour cette période du système d'exploitation en raison de la possibilité de transférer divers ordinateurs. Les universités ont apporté une contribution significative à l'amélioration de UNIX et à sa vulgarisation ultérieure. Une autre étape vers l'obtention de la reconnaissance UNIX en tant qu'environnement standardisé était le développement de la bibliothèque STDIO E / S. Grâce à l'utilisation de cette bibliothèque pour le compilateur C, le programme UNIX est devenu facilement toléré.

Figure. 5.1. Développement des Nations Unies Unix

La large distribution d'UNIX a généré le problème de l'incompatibilité de ses nombreuses versions. De toute évidence, l'utilisateur est très désagréable que le colis, acheté pour une version de Unix, refuse de travailler sur une autre version de UNIX. On a périodiquement fait et tente de normaliser UNIX, mais ils ont toujours eu un succès limité. Le processus de rapprochement de différentes versions d'UNIX et de leur divergence est cyclique. Devant le visage d'une nouvelle menace de tout autre système d'exploitation, divers fabricants de versions UNIX rassemblent leurs produits, mais une lutte concurrentielle les oblige à rendre des améliorations et versions originales divergent à nouveau. Dans ce processus, il existe un côté positif - l'émergence de nouvelles idées et de nouveaux fonds améliorant à la fois UNIX et de nombreux autres systèmes d'exploitation qui ont pris beaucoup d'existence utile au cours de ses longues années.

La figure 5.1 montre une image simplifiée du développement UNIX, qui prend en compte la continuité de différentes versions et l'impact sur celui-ci des normes prises. Deux lignes très incompatibles de versions UNIX ont été obtenues la plus grande répartition: AT & T - Unix System V et la ligne University Berkeley-BSD. De nombreuses entreprises basées sur ces versions ont développé et soutiennent leurs versions d'UNIX: Sunos et Solaris par Sun Microsystems, Ux Hewlett-Packard, Xenix Company Microsoft, Société AIX de IBM, Unixware Société Novell (vente maintenant Company SCO), et cette liste est. toujours longtemps continuer.

De telles normes telles que les entreprises SVID AT & T, POSIX, créées sous les auspices de l'IEEE et XPG4 X / Open XPG4 ont eu le plus grand impact sur l'unification des versions UNIX. Ces normes formulent des exigences relatives à l'interface entre les applications et le système d'exploitation, qui permet aux applications de travailler avec succès dans diverses versions de UNIX.

Quelle que soit la version, les fonctionnalités UNIX sont communes:

  • mode multijoueur avec la protection des données contre l'accès non autorisé,
  • mise en œuvre du traitement de multiprogramme dans le mode de séparation de temps basé sur l'utilisation d'algorithmes pour déplacer le multitâche multitâche (multitâche préventive),
  • utilisation de mécanismes de mémoire virtuelle et de swap pour améliorer les niveaux de multiprogrammation
  • unification des opérations d'E / S basées sur une utilisation étendue du concept "fichier"
  • système de fichiers hiérarchique formant une arborescence unique du répertoire quel que soit le nombre de périphériques physiques utilisés pour placer des fichiers,
  • la portabilité du système en écrivant sa partie principale en C,
  • une variété d'interactions des processus, y compris via le réseau,
  • mise en cache de disque pour réduire l'accès moyen aux fichiers.

Unix System c version 4 est une version commerciale inachevée du système d'exploitation, car Dans ses codes, aucun utilité système n'est requis pour le fonctionnement réussi du système d'exploitation, tel que l'utilitaire d'administration ou le gestionnaire d'interface graphique. La version SVR4 est plutôt la mise en œuvre standard du code central qui a permis les solutions les plus populaires et les plus efficaces de différentes versions du noyau UNIX, telles que le système de fichiers virtuel VFS affiché dans des fichiers mémoire, etc. Le code SVR4 (partiellement modifié) constitue la base de nombreuses versions commerciales modernes d'UNIX, telles que HP-UX, Solaris, Aix, etc.

Avez-vous aimé l'article? Partager avec des amis: