Système Nyx. Qu'est-ce que *nix ​​et avec quoi il est mangé. Installation de packages deb sur des systèmes de type Red Hat

Cobalt 02.12.2005

Voyons enfin ce que sont les systèmes *nix, en quoi ils diffèrent de toutes nos fenêtres préférées et, plus important encore, pourquoi vous ne pourrez jamais devenir un hacker cool si vous ne maîtrisez pas un tel système.

Dans tous les livres que vous avez lus auparavant (si vous les lisez, bien sûr), un chapitre entier, sinon plus, était consacré à l'histoire de l'origine et du développement des systèmes niks. Je ne suivrai pas cette tradition, parce que... Je pense que César est un César, et si vous étudiez l'histoire, Google vous aidera =). Je vais aller directement à l'essentiel. Tout d’abord, clarifions un axiome important. Linux, Unix, FreeBSD... la liste est longue, mais je pense que vous avez déjà saisi la tendance générale. Ce sont tous des systèmes dits * nix. Ils présentent quelques différences, mais le principe est le même. Donc, quand je dis Linux, cela signifie que je parle de tous ces systèmes. Mais les articles ne porteront que sur les distributions Linux.

Vous avez probablement souvent été confronté à des débats interminables sur le thème de Linux ou de Windows sur divers forums et chats. Ces débats sont inévitables… mais totalement inutiles. Il n'y a pas de meilleur système. Il y a deux directions différentes. Il y a des problèmes qui ne peuvent pas être résolus avec les systèmes Nix, mais il y a aussi ceux pour lesquels une meilleure solution que Linux ne peut être trouvée. Par exemple : installez le serveur w2k3 sur un processeur i386, ou essayez de monter le DomainController sur une base Linux =). Ceux. comme l’a dit un jour un grand personnage : diviser pour mieux régner. Si vous maîtrisez aussi bien ces deux systèmes, il n’y aura plus d’obstacles pour vous dans le monde informatique.

Pourquoi avez-vous besoin de Linux ? Eh bien, tout d’abord : si vous voulez devenir un hacker de règles, vous devez tout savoir, n’est-ce pas ? =) Deuxièmement : la grande majorité des exploits et des programmes de piratage sont écrits pour ce système d'exploitation. Eh bien, et surtout : la plupart des serveurs Internet fonctionnent spécifiquement sous les systèmes NIX. Je ne vous ai pas encore convaincu ?! Eh bien, vous ne devriez pas lire plus loin ;).

La première question qu’une personne se pose lorsqu’elle décide d’apprendre Linux sonne toujours la même : que choisir ? Une personne se perd simplement dans une mer d'informations. Une telle variété de distributions ! RedHat, ASP, ALT, Slacware, Mandrake... la liste est TRÈS longue. Que choisir parmi toute cette variété ? Vous allez sur les forums et commencez à poser des questions telles que « Quelle distribution recommanderiez-vous à un débutant ? » Et à votre grande déception, vous écoutez un tas de remarques contradictoires, qui se transforment peu à peu en une violente dispute. Oui, oui, les disputes entre partisans de différentes distributions sont encore plus brûlantes qu'avec les utilisateurs de Windows ! L'opinion de chacun est purement subjective. Chacun choisit ce qu'il préfère et ce avec quoi il est le plus pratique de travailler. En conséquence, vous devrez essayer de nombreux systèmes différents jusqu’à ce que vous vous arrêtiez sur une chose. Je ne vous conseillerai pas d'acheter une distribution spécifique, je décrirai seulement leurs principales différences. Il existe deux types de systèmes. Sans entrer dans les détails, leur principale différence réside dans la manière dont les programmes sont installés. Il existe des distributions comme Slacware, dans lesquelles les programmes sont installés UNIQUEMENT à partir du code source. Et il existe des modèles similaires dits RadHat, ils ont la possibilité d'être installés à partir de packages RPM. C'est un peu plus pratique, même s'il devient nécessaire de rechercher les packages requis pendant longtemps et de manière fastidieuse, car les dépendances existent... Je reviendrai plus en détail sur l'installation de programmes la prochaine fois. En général, le choix vous appartient. N'oubliez pas une chose : une bonne distribution doit être composée d'au moins 3 CD !

Le terme « de type UNIX » et la marque UNIX

Depuis 2007, il y a un différend entre Wayne R. Gray et The Open Group concernant l'utilisation du mot UNIX comme marque. Selon Trademark Trial and Appeal, Board Gray et sa société exigent que The Open Group lui fournisse la documentation relative à leurs revendications de marque.

De plus, en 2007, The Open Group a insisté pour que l'Université allemande de Kassel n'utilise pas « UNIK » comme abréviation.

Catégories

Développement de systèmes de type UNIX

Les systèmes UNIX ont commencé à apparaître à la fin des années 1970 et au début des années 1980. De nombreuses versions propriétaires, telles que Idris (1978), Coherent (1983) et UniFlex (1985), visaient à répondre aux besoins des entreprises avec des fonctionnalités accessibles aux utilisateurs UNIX formés.

Lorsqu'AT&T a autorisé l'octroi de licences commerciales pour UNIX dans les années 1980, de nombreux systèmes propriétaires ont été développés sur cette base, notamment AIX, HP-UX, IRIX, Solaris, Tru64, Ultrix et Xenix. Cela a largement remplacé les clones propriétaires. L'incompatibilité croissante entre les systèmes a conduit à la création de normes d'interopérabilité, notamment POSIX et la spécification Common UNIX.

Entre-temps, en 1983, le projet GNU a été lancé, grâce auquel il a été possible de créer un système d'exploitation que tous les utilisateurs d'ordinateurs pouvaient librement utiliser, étudier, réparer et reconstruire. Les différentes versions d'UNIX ont été développées de la même manière que GNU, souvent avec les mêmes composants de base. Ils servaient principalement de remplacements à faible coût pour UNIX et incluaient 4.4BSD, Linux et Minix. Certains d'entre eux ont servi de base aux systèmes UNIX commerciaux tels que BSD/OS et Mac OS X. Notamment, Mac OS X 10.5 (Leopard) est certifié par la spécification Uniform UNIX.

Exemples

La plupart des fournisseurs de systèmes UNIX ouverts ne recherchent pas la certification UNIX pour leur produit, même à titre de compromis : le coût de la certification est considéré comme inacceptable. Pour de tels systèmes, le terme est généralement utilisé Freenix. Les exemples sont GNU, Linux, Minix, OpenSolaris, Plan 9 et BSD avec leurs descendants tels que FreeBSD, NetBSD et OpenBSD.

Il existe de nombreuses similitudes UNIX propriétaires, telles que AIX, HP-UX, IRIX, Mac OS X, LynxOS, QNX, SCO OpenServer, Solaris, Tru64 UNIX (basé sur OSF/1), UnixWare, Xenix et VxWorks.

voir également

Remarques

Liens

  • Définition de type UNIX par The Linux Information Project
  • histoire d'UNIX
  • Projet d'historique de propriété UNIX de Grokline

Fondation Wikimédia. 2010.

Découvrez ce qu'est un « système d'exploitation de type Unix » dans d'autres dictionnaires :

    Arbre généalogique des systèmes d'exploitation de type UNIX Système d'exploitation de type UNIX (parfois abrégé en * nix) un système d'exploitation qui a été formé sous l'influence de ... Wikipedia

    Arbre généalogique des systèmes UNIX Famille UNIX (lire UNIX) de systèmes portables, multitâches et multi-utilisateurs ... Wikipédia

    Arbre généalogique des systèmes UNIX UNIX (lire Unix) est un groupe de systèmes d'exploitation portables, multitâches et multi-utilisateurs. Le premier système UNIX a été développé en 1969 par la division Bell Labs d'AT T. Depuis, il a été créé... Wikipédia

    Arbre généalogique des systèmes d'exploitation de type Unix Un système d'exploitation de type Unix (parfois abrégé en *nix) est un système qui a été formé sous l'influence d'Unix. Le terme inclut les systèmes d'exploitation libres/ouverts dérivés d'Unix de Bell... ... Wikipedia

    Arbre généalogique des systèmes d'exploitation de type Unix Un système d'exploitation de type Unix (parfois abrégé en *nix) est un système qui a été formé sous l'influence d'Unix. Le terme inclut les systèmes d'exploitation libres/ouverts dérivés d'Unix de Bell... ... Wikipedia

    Arbre généalogique des systèmes d'exploitation de type Unix Un système d'exploitation de type Unix (parfois abrégé en *nix) est un système qui a été formé sous l'influence d'Unix. Le terme inclut les systèmes d'exploitation libres/ouverts dérivés d'Unix de Bell... ... Wikipedia

    Arbre généalogique des systèmes d'exploitation de type Unix Un système d'exploitation de type Unix (parfois abrégé en *nix) est un système qui a été formé sous l'influence d'Unix. Le terme inclut les systèmes d'exploitation libres/ouverts dérivés d'Unix de Bell... ... Wikipedia

    Arbre généalogique des systèmes d'exploitation de type Unix Un système d'exploitation de type Unix (parfois abrégé en *nix) est un système qui a été formé sous l'influence d'Unix. Le terme inclut les systèmes d'exploitation libres/ouverts dérivés d'Unix de Bell... ... Wikipedia

    Arbre généalogique des systèmes d'exploitation de type Unix Un système d'exploitation de type Unix (parfois abrégé en *nix) est un système qui a été formé sous l'influence d'Unix. Le terme inclut les systèmes d'exploitation libres/ouverts dérivés d'Unix de Bell... ... Wikipedia

Aujourd'hui, les utilisateurs d'ordinateurs personnels disposent d'un large choix de systèmes d'exploitation. Les systèmes d'exploitation de la famille Windows et, dans une moindre mesure, Linux sont de loin les plus courants. Que choisir ? Dans la plupart des cas, les ordinateurs portables sont déjà équipés d'un système d'exploitation sous licence préinstallé. Pour faciliter la sélection, les systèmes d'exploitation Windows portent des noms correspondant à leur domaine d'utilisation. Par exemple:

  • Windows 7 Starter – Système d'exploitation pour netbooks. Il se distingue par sa conception exclusivement 32 bits, les fonctionnalités limitées de l'interface Windows Aero, l'absence de fonction permettant de basculer rapidement entre les utilisateurs, l'impossibilité de modifier l'arrière-plan du bureau et ne prend pas en charge les processeurs 64 bits. Ce système d'exploitation est vendu uniquement sous forme d'OS préinstallé ; il n'est pas possible de l'acheter en version boîte.
  • Windows 7 Home Basic est un système d'exploitation peu coûteux pour un usage domestique. Il lui manque toujours Windows Media Center Edition (MCE), la prise en charge de Windows Aero et la prise en charge Multi-Touch. Mais il existe une interface Windows standard et une commutation rapide entre les utilisateurs. Ce système d'exploitation peut être acheté dans une version boîte.
  • Windows 7 Home Premium est un système avancé pour un usage domestique doté de fonctionnalités avancées. Il intègre Windows MCE, prend en charge jusqu'à 4 tuners TV, une interface Windows Aero complète, est compatible avec Dolby Digital et prend en charge le multi-touch. La version boîte contient 2 disques DVD - avec les versions 32 et 64 bits de la distribution. Cet OS peut être installé sur des postes de travail à 2 processeurs.
  • Windows 7 Professionnel est un système d'exploitation permettant de travailler avec des fonctionnalités avancées. Un système encore plus fiable (grâce à certaines fonctions) pour les utilisateurs professionnels. Possède des capacités réseau avancées. Il dispose également d'une licence pour le mode XP et de la possibilité de rechercher l'imprimante préférée pour les réseaux sélectionnés. Un ordinateur portable doté d'un tel système d'exploitation est souvent livré avec une distribution Windows XP.
  • Windows 7 Ultimate - le nom parle de lui-même - un système universel pour effectuer n'importe quelle tâche. Idéal pour les entreprises. Si vous le souhaitez, vous pouvez toujours acheter et installer vous-même le système d'exploitation requis (à l'exception de Windows Starter) sur votre ordinateur portable. Si vous possédez déjà une version « Box » du système d'exploitation achetée précédemment, il est alors logique d'acheter un ordinateur portable sans système d'exploitation afin de ne pas payer trop cher pour un système d'exploitation préinstallé.

Il existe un grand nombre de systèmes *nix et de distributions Linux/BSD différents. Il arrive que l'une ou l'autre fonction ou programme auquel vous êtes habitué dans votre système préféré ne soit soudainement pas disponible dans un autre pour une raison quelconque. Existe-t-il des analogues ou un moyen de le faire fonctionner ?

Exécuter Skype sur FreeBSD

On sait que la version de Skype à partir des ports est, pour le moins, obsolète - par exemple, il n'est pas possible de passer des appels vidéo. Utiliser la version Windows via Wine n'est pas une option - elle ne fonctionnera pas sous Wine. Mais il existe un moyen de s'en sortir : installez une couche de compatibilité avec Linux, puis, après avoir appliqué un correctif au noyau puis l'avoir recompilé, installez Skype. Nous décrirons exactement comment procéder.

La première étape consiste à construire le port emulators/linux-base-c6 - dans ce cas, si un plugin Flash est nécessaire, vous devez effectuer certaines actions, à savoir commenter la ligne suivante dans le makefile de ce port :

CONFLICTES=linux_base-gentoo* linux_base-f* linux-glib2-*

Tapez ensuite les commandes :

# sysctl compat.linux.osrelease=2.6.18 # créer un patch

Le premier définira la version du noyau sur 2.6.18 (vous devrez ensuite définir cette variable dans /boot/loader.conf pour qu'elle ne se réinitialise pas après un redémarrage), et le second appliquera le correctif que nous venons de créer. Après cela, copiez les bibliothèques suivantes du répertoire de travail vers /compat/linux/ :

Lib/ld-2.12.so lib/ld-linux.so.2 lib/libc-2.12.so lib/libc.so.6 lib/libdl-2.12.so lib/libdl.so.2 lib/libgcc_s-4.4. 6-20110824.so.1 lib/libgcc_s.so.1 lib/libglib-2.0.so.0 lib/libglib-2.0.so.0.2200.5 lib/libpthread-2.12.so lib/libpthread.so.0 usr/ lib/libstdc++.so.6 usr/lib/libstdc++.so.6.0.13

Créons un lien symbolique de usr/lib/libtiff.so.3 vers libtiff.so.4 :

# ln -s libtiff.so.3 libtiff.so.4

Toutes ces étapes ne sont nécessaires que si vous avez besoin du port www/linux-f10-flashplugin.

L'étape suivante consiste à remplacer le fichier d'en-tête pour prendre en charge les appels vidéo (nécessaire si la version de FreeBSD est inférieure à neuf) :

# cd /usr/ports/multimedia/linux_v4l2wrapper-kmod # make patch # mv -i /sys/compat/linux/linux_videodev2.h(,.bak) # cp -i work/linux_v4l2/linux_videodev2.h /sys/compat/ Linux

et reconstruisez le noyau. Ceci est nécessaire pour que les appels ioctl Linux se traduisent normalement en appels FreeBSD.

Vous devrez également installer le port multimédia/webcamd :

# cd /usr/ports/multimedia/webcamd # rend l'installation propre

Et maintenant, vous pouvez enfin installer Skype - mais pas n'importe quelle version, mais une version spécifique. Prenez-le à partir d'ici, décompressez-le dans votre répertoire personnel et, si tout est correctement configuré, profitez-en.

Exécuter des applications OS X sous Linux

Il existe de nombreuses applications intéressantes sous OS X. Cependant, le format de fichier exécutable Mach-O utilisé dans le système d'exploitation d'Apple diffère de celui d'ELF et l'API, bien que compatible POSIX, est toujours incompatible avec Linux. Fin 2012, le projet Darling a été présenté, qui se positionne par les développeurs comme un moyen de lancer des outils de développement. Pour le moment, très peu d'applications sont prises en charge (principalement celles sur console), mais nous espérons que leur nombre augmentera régulièrement. Le projet, en particulier, utilise GNUStep, une implémentation gratuite de l'API Cocoa utilisée sous OS X.

Construire Darling nécessitera l'installation de nombreux packages, y compris le compilateur clang :

$ sudo apt-get install git cmake clang nasm g++ checkinstall libxml2-dev libgnutls-dev libicu-dev libcairo-dev libjpeg-dev libpng-dev libtiff-dev libbsd-dev libudev-dev liblcms-dev libkqueue-dev libssl-dev libbz2- dev uuid-dev libncurses-dev libxrandr-dev

Nous récupérons l'utilitaire GNUStep Make du référentiel Git, compilons et installons :

$ git clone https://github.com/gnustep/gnustep-make.git $ cd gnustep-make $ CC=clang CXX=clang++ ./configure $ sudo make install

Nous assemblons la bibliothèque de support Objective-C - GNUstep Libobjc2 :

$ git clone https://github.com/gnustep/gnustep-libobjc2.git $ cd gnustep-libobjc2 $ OBJCFLAGS=-fblocks CC=clang CXX=clang++ cmake . $ rm GNUmakefile $ make $ sudo make install

Puis la partie de base de GNUStep :

$ git clone https://github.com/gnustep/gnustep-base.git $ cd gnustep-base $ OBJCFLAGS=-fblocks CC=clang CXX=clang++ ./configure $ make $ sudo make install

$ git clone https://github.com/gnustep/gnustep-gui.git $ cd gnustep-gui $ OBJCFLAGS=-fblocks CC=clang CXX=clang++ ./configure $ export LD_LIBRARY_PATH=/usr/local/lib $ echo export LD_LIBRARY_PATH=/usr/local/lib >> ~/.bashrc $ make $ sudo make install

GNUStep CoreBase, qui est un analogue de CoreFoundation, est également nécessaire :

$ git clone https://github.com/gnustep/gnustep-corebase.git $ cd gnustep-corebase $ OBJCFLAGS=-fblocks CC=clang CXX=clang++ ./configure $ make $ sudo make install

L'analogue de Quartz 2D - Opal, responsable du rendu, doit également être assemblé :

$ git clone https://github.com/gnustep/gnustep-opal.git $ cd gnustep-opal $ OBJCFLAGS=-fblocks CC=clang CXX=clang++ make $ sudo make install

Enfin, vous devez compiler Darling lui-même :

$ git clone https://github.com/LubosD/darling.git $ cd chéri $ CC=clang CXX=clang++ cmake . $ faire

Ça y est, vous pouvez lancer des applications OS X en entrant la commande :

./dyld <аргументы>

Installation de packages deb sur des systèmes de type Red Hat

Les formats de packages RPM et deb sont incompatibles entre eux - et ces deux gestionnaires de packages ne s'entendent pas sur le même système. En règle générale, la nécessité d'installer des packages sur un système non natif est rare. Mais si cela se produit, vous pouvez utiliser l'outil de conversion de packages extraterrestres. Bien sûr, ce n'est pas une panacée - tous les packages ne peuvent pas être convertis avec son aide et il doit être utilisé avec prudence. Téléchargeons ses sources, décompressons et installons :

# wget http://ftp.de.debian.org/debian/pool/main/a/alien/alien_8.88.tar.gz # tar xzvf alien_8.88.tar.gz && cd alien # make && make install

Je vais décrire quelques options de ligne de commande liées à la conversion en RPM.

  • -r - conversion réelle en RPM ;
  • -i - installe le package résultant de la conversion et supprime le fichier du package du système ;
  • -g - crée le répertoire requis avec les fichiers, mais ne crée pas le package lui-même ;
  • -c - convertit les scripts. Cette option doit être utilisée avec prudence, car les scripts Ubuntu ne fonctionneront pas avec RHEL.

À titre d'exemple, convertissons le package zsh et installons-le :

# wget http://goo.gl/Fykuzu # alien -r ./zsh_4.3.17-1_i386.deb # rpm -ivh --nodeps ./zsh-4.3.17-2.i386.rpm

Nous installons ce package de force - alien dans ce cas a converti les dépendances de manière plutôt étrange. Pour être plus précis, pour une raison quelconque, le fichier /bin/zsh était nécessaire pour installer le package, pendant que nous l'installons. Il convient également de noter que les noms des fichiers du package sont également convertis et que le dernier chiffre de la version convertie du package est incrémenté de un.

Dans mon cas, le package s'est bien installé et zsh a démarré sans problème. Mais il convient de rappeler une fois de plus que cette méthode doit être utilisée avec prudence.



Mettre à jour le noyau sans redémarrer

Sous Linux, il existe deux solutions pour minimiser le nombre de redémarrages matériels : kexec et ksplice. L'appel système kexec est apparu dans la version principale du noyau en juin 2005. Il est destiné à charger un nouveau noyau directement à partir d'un noyau existant. Cette technologie fonctionne de cette façon :

  • Tout d’abord, l’image du noyau est copiée en mémoire ;
  • cette image est ensuite déplacée vers le tas du noyau actuel ;
  • enfin, l'image est copiée sur les pages souhaitées et le contrôle y est transféré.

Les avantages de cette méthode par rapport à un redémarrage régulier sont évidents : le redémarrage est plus rapide, dans le cas des contrôleurs SCSI il n'y a pas besoin d'attendre que les périphériques soient détectés, une relative indépendance vis-à-vis des chargeurs de démarrage et la possibilité de passer rapidement à une autre distribution installée. Cependant, il existe également des inconvénients. Tout d'abord, avant de charger le noyau, il est recommandé d'arrêter correctement tous les processus et de synchroniser les systèmes de fichiers, car tous les sous-systèmes du noyau sont à nouveau initialisés. Deuxièmement, tous les appareils seront dans un état inconnu et si le pilote est écrit de manière incorrecte, cela ne fonctionnera pas.

Pour une utilisation pratique de kexec, vous avez besoin d'un noyau avec l'option activée (CONFIG_KEXEC=Y) et du package kexec-tools. Le chargement manuel du noyau (dans le cas d'Ubuntu) s'effectue avec les deux commandes suivantes :

# kexec -l /vmlinuz --initrd=/initrd.img --reuse-cmdline # kexec -e

La première commande charge le noyau en mémoire et la seconde lui transfère le contrôle. Ceci utilise la ligne de paramètres actuelle du noyau. Pour utiliser vos propres paramètres, définissez-les dans l'option --cmdline="".

Dans Ubuntu, vous pouvez également utiliser kexec pour un redémarrage rapide - pour ce faire, définissez le paramètre LOAD_KEXEC dans le fichier /etc/default/kexec sur true, et après cela, toutes les procédures de redémarrage standard seront effectuées via celui-ci.

Ksplice, selon ses développeurs, permet d'appliquer des correctifs de sécurité au noyau à la volée. Dans le même temps, toutes les applications en cours d'exécution continuent de fonctionner sans qu'il soit nécessaire de les redémarrer. Le projet a été acheté par Oracle, et pour RHEL, en raison de la concurrence entre les entreprises, les correctifs sont payants. Cela ne nous empêche cependant pas de distribuer des correctifs pour Ubuntu. Téléchargez et installez le package (pour la version 12.04) :

$ wget http://goo.gl/MHAZ6c $ sudo dpkg -i ./ksplice-uptrack.deb $ sudo apt-get -f install

L'application de tous les correctifs disponibles se fait avec une simple commande :

$ sudo uptrack-upgrade -y

Pour supprimer tous les correctifs, utilisez la commande

$ sudo uptrack-remove --all -y

En général, cette technologie fonctionne de manière assez stable - le fait qu'Oracle l'ait achetée parle de lui-même. Cependant, seuls les correctifs qui n'apportent pas de modifications significatives à la structure du noyau peuvent être installés de cette manière.

Modules du noyau NetBSD sous Linux

Il y a quelques mois, l'équipe NetBSD a réussi à faire fonctionner les modules du noyau NetBSD sous Linux. Cela peut être utilisé, par exemple, pour monter des partitions FFS2, ainsi que pour ajouter d'autres fonctionnalités spécifiques à NetBSD non prises en charge sous Linux.

Les développeurs ont pu charger des modules compilés pour le noyau NetBSD en utilisant des noyaux dits RUMP (Runnable Userspace Meta Programs). Le noyau RUMP est un noyau ultra-léger qui s'exécute en mode utilisateur. Il existe trois implémentations pour exécuter de tels noyaux :

  • implémentation en tant que processus POSIX. C'est le principal et vous permet d'exécuter des noyaux RUMP en tant que processus utilisateur sur des systèmes compatibles POSIX ;
  • implémentation pour Xen, qui vous permet de lancer le noyau RUMP directement dans DomU, sans avoir besoin d'installer un système d'exploitation à part entière et de l'exécuter dedans ;
  • implémentation dans le noyau Linux pour exécuter les noyaux RUMP directement dans l'espace du noyau.

Notez que les noyaux RUMP ne sont pas une virtualisation - ils sont conçus pour exécuter exclusivement des modules du noyau et les processus du système hôte peuvent les utiliser. À la suite de telles décisions architecturales, le noyau RUMP s'est avéré vraiment léger - il occupe environ 100 Ko de mémoire. Les avantages, selon les développeurs, sont :

  • beaucoup de choses, comme la pile TCP/IP, peuvent utiliser les noyaux RUMP sans nécessiter un système d'exploitation complet ;
  • la possibilité de lancer plusieurs noyaux RUMP avec des fonctionnalités différentes - par exemple, la même pile TCP/IP peut être lancée à des fins différentes et, par conséquent, sera optimisée différemment ;
  • sécurité - chaque noyau RUMP s'exécute dans son propre espace d'adressage, et le risque de piratage (dans le cas de NetBSD n'est pas très important en raison de sa faible prévalence), par exemple via des pilotes FS vulnérables, devient encore plus improbable ;
  • la possibilité de développer et de tester le code du noyau en mode utilisateur, ce qui est bien plus pratique que d'utiliser des machines virtuelles.

Cependant, tout cela n’est que théorie et il est temps de passer à la pratique. Pour compiler le noyau RUMP, vous devez vous procurer l'outil buildrump.sh, pour lequel nous utilisons Git :

$ git clone https://github.com/anttikantee/buildrump.sh.git $ cd buildrump.sh $ ./buildrump.sh

Ensuite, vous devez obtenir une archive avec les modules du noyau. Comme il s'agit d'un instantané et que sa date change constamment, je ne peux pas donner l'adresse exacte, mais dans mon cas, la commande pour l'obtenir était la suivante :

$ wget http://goo.gl/gNCALo

Extrayez le module dont vous avez besoin dans votre répertoire de travail. Ensuite, vous devrez probablement compiler les utilitaires à utiliser avec le noyau RUMP, en spécifiant les chemins d'accès aux fichiers d'en-tête et de bibliothèque.


Utilisation des pilotes réseau Windows avec NDISWrapper

Linux moderne peut fonctionner avec un grand nombre d'équipements réseau. Cependant, certains périphériques réseau (tels que les adaptateurs sans fil) sous Linux ne fonctionnent pas correctement ou disposent même d'un pilote uniquement pour Windows. Mais il existe un moyen d'exécuter les versions Windows de certains pilotes réseau sous Linux. Pour ce faire, vous devez utiliser NDISWrapper.

Comme son nom l'indique, il s'agit d'un outil wrapper pour les pilotes compatibles NDIS. Il leur fournit l’ensemble minimum requis de fonctions ntoskrnl et hal. Et ce qui est le plus étonnant, c'est que tout fonctionne.

Pour l'utiliser, installez le package approprié :

$ sudo apt-get install ndiswrapper-common ndiswrapper-dkms cabextract

Ensuite, nous ajoutons le pilote Linux natif (l'un des chipsets Broadcom sera utilisé comme exemple ci-dessous) à la liste noire afin qu'il n'y ait pas de conflit :

/etc/modprobe.d/blacklist.conf #<...>liste noire bcm43xx

Si le pilote se trouve dans une archive exe ou cab, vous aurez peut-être besoin de cabextract.

$ cabextract setup.exe

Prenez les fichiers du pilote et installez-le à l'aide de ndiswrapper :

$ sudo ndiswrapper -i bcnwl5.inf

Nous enregistrons le module noyau au démarrage en ajoutant la ligne ndiswrapper au fichier /etc/modules et le chargeons :

$ sudo modprobe ndiswrapper

Si tout est configuré normalement, le réseau fonctionnera.


Commutation à chaud des cartes vidéo

Les adaptateurs vidéo modernes prennent en charge le branchement à chaud - bien sûr, à condition que vous disposiez d'un deuxième adaptateur. Linux (ou plus précisément X.Org) a récemment également pris en charge cette technologie. Cela ne nécessitera aucun mouvement particulier de la part de l'utilisateur : il lui suffira simplement de connecter l'appareil. Dans ce cas, bien entendu, la dernière version de X.Org avec le pilote xf86-video-modesetting doit être installée. Cependant, cela vaut la peine de décrire un peu plus en détail comment cela fonctionne exactement.

Au démarrage du serveur X, ce pilote est chargé via udev. Dans ce cas, au lieu d'afficher réellement l'écran, le serveur X crée une abstraction appelée Screen et y projette DrvScreen, qui est précisément un périphérique physique. Lorsque vous connectez une deuxième carte vidéo, une autre instance de DrvScreeen est créée et toutes les activités sur Screen sont dupliquées sur les deux appareils.

Contrairement à la technologie similaire Xinerama, cette technologie ne fonctionne pas au niveau du protocole X11, mais au niveau de l'interaction avec l'équipement. Dans ce cas, vous n'avez pas à vous soucier de l'adaptateur à partir duquel la sortie est générée - vous pouvez effectuer toutes les actions gourmandes en ressources sur une carte vidéo plus puissante, puis transférer l'image sur une carte à faible consommation.

La technologie est assez nouvelle, n’a pas fait ses preuves, mais elle est prometteuse. Si vous possédez deux cartes vidéo, vous pouvez l'essayer dès maintenant.

Portage de logiciel via Docker

Il existe de nombreuses façons de créer et d’exécuter des applications de manière isolée sous Linux. Certains d'entre eux sont complexes, d'autres plus simples, mais beaucoup nécessitent le déploiement d'un système de fichiers, ce qui peut prendre beaucoup de temps. Relativement récemment, la société d'hébergement cloud DotCloud a ouvert le projet Docker. Il est écrit en Go et est conçu pour gérer les conteneurs LXC, en étendant et en complétant leurs capacités de base. Il vous permet d'isoler non pas l'ensemble du système, mais uniquement des processus individuels et de les cloner/transférer vers d'autres ordinateurs (bien sûr, avec la même architecture matérielle). Le projet est destiné au transfert de projets, à toutes sortes de déploiements et d'automatisation de systèmes distribués. Ses principales caractéristiques :

  • la possibilité de placer diverses charges dans un conteneur - scripts, binaires, bibliothèques, fichiers Jar...
  • portabilité - il fonctionne sur n'importe quel processeur x64 moderne avec de nouveaux noyaux Linux (un noyau d'au moins 3,8 avec prise en charge AUFS est recommandé) ;
  • isolement des processus du système principal et des autres processus isolés ;
  • puisque chaque conteneur utilise son propre système de fichiers, peu importe dans quel environnement il est lancé ;
  • du fait de cet isolement d'entités de niveau suffisamment élevé, le temps machine n'est pas perdu lors de la virtualisation.

L'installation sur Ubuntu 12.04 nécessitera la mise à jour du noyau vers la version 3.8, qui, heureusement, est rétroportée à partir de la 13.04 :

# apt-get install linux-image-generic-lts-raring linux-headers-generic-lts-raring # redémarrage

Après le redémarrage, ajoutez un PPA avec Docker et installez-le :

# apt-get install python-software-properties && add-apt-repository ppa:dotcloud/lxc-docker # apt-get update # apt-get install lxc-docker

Docker est installé.

Voici les commandes les plus couramment utilisées :

  • docker pull - récupère une image du référentiel ;
  • docker run - exécutez une application dans un conteneur ;
  • docker ps - afficher les conteneurs exécutables ;
  • docker diff - afficher les modifications dans le système de fichiers du conteneur ;
  • docker commit - enregistre les modifications apportées à l'image.

À titre d'exemple, installons le démon Redis. Tout d'abord, exécutons Docker en mode démon et obtenons une image de base.

$ sudo docker -d & $ sudo docker pull ubuntu

L'exécution via sudo est nécessaire ici car le démon est lancé en tant que root et utilise un socket UNIX, qui appartient également à root. Si vous créez un groupe Docker et que vous vous y incluez, cela ne sera pas nécessaire. Dans ce qui suit, nous supposons que c’est exactement ce qui a été fait.

Lancez le shell et installez Redis :

$ docker run -i -t ubuntu /bin/bash # apt-get update # apt-get install redis-server # exit

Prenons un instantané du serveur installé. Pour ce faire, vous devez d'abord connaître l'identifiant du conteneur :

$ docker ps-a

L'ID résultant doit être utilisé dans la commande suivante :

$ docker commit 691b3214f7de rom/redis

Enfin, nous démarrons Redis en arrière-plan, en transférant le port 6379 vers le conteneur :

$ docker run -d -p 6379 rom/redis /usr/bin/redis-server

Redis est prêt à être utilisé.

INFO

Les packages Docker compilés ne sont disponibles que pour la plate-forme x64 ; ils ne sont pas disponibles pour x86.

Conclusion

L’article décrivait plusieurs façons de réaliser ce qui semblait impossible. Cependant, il est assez difficile d'envisager tous les scénarios, d'autant plus que les systèmes *nix sont flexibles : ils ont toujours plusieurs façons de faire quelque chose.

Si vous avez récemment commencé à apprendre Linux et à vous familiariser avec ce vaste univers, vous avez probablement souvent rencontré le terme Unix. Cela ressemble beaucoup à Linux, mais qu'est-ce que cela signifie ? Vous vous demandez probablement en quoi Unix diffère de Linux. La réponse à cette question dépend de ce que vous comprenez par ces mots. Après tout, chacun d’eux peut être interprété différemment. Dans cet article, nous examinerons un historique simplifié de Linux et Unix pour vous aider à comprendre ce qu'ils sont et comment ils sont liés. Comme toujours, n'hésitez pas à poser des questions ou à ajouter des informations supplémentaires dans les commentaires.

Unix a commencé son histoire à la fin des années 1960 et au début des années 1970 dans les laboratoires informatiques de recherche AT&T Bell Labs aux États-Unis. En collaboration avec le MIT et General Electric, le laboratoire de recherche des Bell Labs a commencé à développer un nouveau système d'exploitation. Certains chercheurs n'étaient pas satisfaits des progrès du développement de ce système d'exploitation. Ils ont abandonné le 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, il était entièrement réécrit en langage de programmation C.

Cela a permis à Unix d'être distribué et porté sur divers appareils et plates-formes informatiques.

Alors qu'Unix continuait d'évoluer, AT&T a commencé à vendre des licences pour l'utiliser dans les universités ainsi qu'à des fins commerciales. Cela signifiait que tout le monde ne pouvait pas, comme aujourd'hui, modifier et distribuer librement le code du système d'exploitation Unix. Bientôt, de nombreuses éditions et variantes du système d'exploitation Unix ont commencé à apparaître, conçues pour résoudre divers problèmes. Le plus célèbre d’entre eux était BSD.

Linux est similaire à Unix en termes de fonctionnalités et de fonctionnalités, mais pas en termes de base de code. Ce système d'exploitation a été assemblé à partir de deux projets. Le premier est le projet GNU, développé par Richard Stallman en 1983, le second est le noyau Linux, écrit par Linus Torvalds en 1991.

L'objectif du projet GNU était de créer un système similaire mais indépendant d'Unix. En d’autres termes, un système d’exploitation qui ne contenait pas de code Unix et pouvait être librement distribué et modifié sans restrictions, comme le logiciel libre. Comme le noyau Linux libre ne pouvait pas fonctionner seul, le projet GNU a fusionné avec le noyau Linux et le système d'exploitation Linux est né.

Linux a été conçu sous l'influence du système Minix, un descendant d'Unix, mais tout le code a été écrit à partir de zéro. Contrairement à Unix, qui était utilisé sur les serveurs et les grands ordinateurs centraux de diverses entreprises, Linux a été conçu pour être utilisé sur un ordinateur personnel doté d'un matériel plus simple.

Aujourd'hui, Linux fonctionne sur un très grand nombre de plates-formes, plus que tout autre système d'exploitation, notamment des serveurs, des systèmes embarqués, des micro-ordinateurs, des modems et même des téléphones mobiles. Nous allons maintenant discuter plus en détail de la différence entre Linux et Unix.

Qu'est-ce qu'Unix

Le terme Unix peut faire référence aux concepts suivants :

  • Le système d'exploitation original développé par AT&T Bell Labs, sur la base duquel d'autres systèmes d'exploitation sont développés.
  • Marque déposée, écrite en majuscules. UNIX appartient à The Open Group, qui a développé un ensemble de normes pour les systèmes d'exploitation - la spécification UNIX unique. Seuls les systèmes conformes aux normes peuvent légitimement être appelés UNIX. La certification n'est pas gratuite et oblige les développeurs à payer pour utiliser la marque.
  • Tous les systèmes d'exploitation sont enregistrés sous le nom Unix. Parce qu'ils répondent aux normes mentionnées ci-dessus. Il s'agit d'AIX, A/UX, HP-UX, Inspur K-UX, Reliant UNIX, Solaris, IRIX, Tru64, UnixWare, z/OS et OS X - oui, même ceux qui fonctionnent sur les ordinateurs Apple.

Qu'est-ce que Linux

Le terme Linux fait uniquement référence au noyau. Un système d'exploitation n'est pas complet sans un environnement de bureau et des applications. Étant donné que la plupart des applications ont été développées et sont actuellement en cours de développement dans le cadre du projet GNU, le nom complet du système d'exploitation est GNU/Linux.

De nos jours, de nombreuses personnes utilisent le terme Linux pour désigner toutes les distributions basées sur le noyau Linux. Actuellement, la dernière version du noyau Linux est la 4.4, la version 4.5 est en cours de développement. La numérotation des versions du noyau a été modifiée de 3.x à 4.x il n'y a pas si longtemps.

Linux est un système d'exploitation de type Unix qui se comporte comme Unix mais ne contient pas son code. Les systèmes d'exploitation de type Unix sont souvent appelés Un*x, *NIX et *N?X, ou même Unixoids. Linux n'a pas de certification Unix, et GNU signifie GNU et non Unix, donc à cet égard, Mac OS X est plus Unix que Linux. Néanmoins, le noyau Linux et le système d'exploitation GNU Linux sont très similaires à Unix en termes de fonctionnalités et implémentent la plupart des principes de la philosophie Unix. Cela inclut un code lisible par l'homme, le stockage de la configuration du système dans des fichiers texte séparés et l'utilisation de petits outils de ligne de commande, d'un shell graphique et d'un gestionnaire de session.

Il est important de noter que tous les systèmes de type Unix n'ont pas reçu la certification UNIX. Dans certains contextes, tous les systèmes d'exploitation basés sur UNIX ou ses idées sont appelés UNIX-like, qu'ils disposent ou non d'un certificat UNIX. De plus, ils peuvent être commerciaux et gratuits.

J'espère que la différence entre Unix et Linux est désormais plus claire. Mais allons encore plus loin et résumons.

Principales différences

  • Linux est un système d'exploitation gratuit et open source, alors que l'Unix d'origine ne l'est pas, à l'exception de certains de ses dérivés.
  • Linux est un clone d'Unix d'origine, mais il ne contient pas son code.
  • La principale différence entre Unix et Linux est que Linux n'est qu'un noyau, alors qu'Unix était et est toujours un système d'exploitation à part entière.
  • Linux a été développé pour les ordinateurs personnels. Et Unix s'adresse principalement aux grands postes de travail et serveurs.
  • Aujourd'hui, Linux prend en charge plus de plates-formes qu'Unix.
  • Linux prend en charge plus de types de systèmes de fichiers qu'Unix.

Comme vous pouvez le constater, la confusion survient généralement car Linux et Unix peuvent signifier des choses complètement différentes. Quelle que soit la signification voulue, il n’en demeure pas moins qu’Unix est venu en premier et Linux est venu plus tard. Linux est né d'un désir de liberté et de portabilité logicielle, inspiré par l'approche Unix. On peut affirmer sans se tromper que nous avons tous une dette envers le mouvement du logiciel libre, car le monde serait bien pire sans lui.