Retour page d'accueil
 
Réponse à Daniel Martin, par F.Gélenne

Etude "Linux en entreprise" - Version 2

Ce texte étudie l'éventuelle préconisation de Linux en entreprise. Les comparaisons avec NT et Solaris n'ont pour but que de situer Linux: l'étude n'a pour objet ni NT ni Solaris (qui a été choisi comme exemple de UNIX).
On va voir plus bas que l'argumentation porte sur "une utilisation de Linux en entreprise pour faire de l'informatique de gestion lourde"; c'est beaucoup plus restrictif.
Si vous abordez ce texte après avoir lu un de mes articles dans la presse, sachez que c'est ce document qui représente la version la plus à jour de mes réflexions: mon opinion peut évoluer après examen de faits nouveaux ou discussion avec d'autres informaticiens, ce qui est normal.

Objectifs de ce texte

Résumé pour les managers

Voici les conclusions du texte qui suit:
Il n'y a pas un, mais plusieurs Linux. Tous ces Linux partagent un même noyau, mais diffèrent par de nombreux autres logiciels qui complètent chaque distribution et sont parfois incompatibles entre eux. Il n'y a donc pas plus de Linux standard que de UNIX standard.
C'est globalement faux: un exécutable HP-UX ne marchera pas sous Digital-Unix. En revanche, un exécutable développé avec la distribution Debian de Linux fonctionnera parfaitement avec la distribution RedHat. On peut comparer les différences liées aux distributions Linux avec les différences entre lesAIX, distribué tantôt par IBM tantôt par Bull.
Une partie des aptitudes et fonctionnalités impressionnantes de Linux annoncées ça et là résultent de développements "maison"; elles ne sont pas reproductibles partout comme celles d'un produit standard. Elles ne dureront que tant que leur auteur s'en occupera ou qu'un autre acceptera de se plonger dans les sources.

 
Il faudrait préciser cette assertion à l'aide d'exemple précis. Il me semble que l'on parle ici des extensions "temps-réel" de Linux ou autre fonctionnalité très spécifique (moins d'un utilisateur sur mille à vue de nez). Pour l'essentiel d'une distribution (noyau Unix + quelques centaines d'applications), les fonctionnalités sont reproductibles partout, et ce sur une période de 10 ou 15 ans pour les produits GNU/FSF (Microsoft peut en dire autant?). Cette affirmation est manifestement trop synthétique: on ne peut pas dire si c'est vrai ou faux, on se sait pas de quoi on parle.
Le noyau de Linux et certains autres logiciels gratuits (Apache, etc.) sont robustes, plus robustes que NT. Pour un petit serveur, Linux est tellement plus simple à apprendre et à exploiter que NT qu'on doit le préférer à NT dans certains cas cités dans cette étude.

 
Là par contre, c'est clair, précis, et complètement faux: NT est plus simple à manipuler par un informaticien non expert. Par contre Linux, comme tous les Unix, est beaucoup plus riche, donc difficile à apprendre, mais beaucoup plus flexible (rien que les commandes mount et ln manquent cruellement sous WIndows). Si on conçoit un jour un serveur web pour 50 utilisateurs et que l'on se retrouve peu de temps après avec 5000 utilisateurs, on s'entirera beaucoup mieux avec n'importe quel Unix (et en particulier Linux) qu'avec Windows. D'ailleurs Windows est beaucoup moins utilisé que Linux (ou même BSD) pour les serveurs web.
Par rapport à Solaris, Linux est plus simple à personnaliser par suppression de modules inutiles et adaptation de certains autres. Par contre, je ne peux pas citer de cas, en informatique de gestion d'entreprise, où Linux serait supérieur à la version SPARC de Solaris en richesse, en performance, en disponibilité ou en support (je n'ai pas d'informations sur la performance de la version Intel de Solaris, dont je n'ai testé que la portatibilité avec la version SPARC).

 
La gestion des installations/désinstallation des applications est largement facilitée par les "gestionnaires de packages" (rpm pour RedHat), spécificité Linux. A priori, sur un même hardware Linux est généralement plus performant et d'une fiabilité équivalente à Solaris (très superieure à NT). Solaris est plus riche sur certains points, mais toutes les applications n'en ont pas forcément besoin.
Linux convient mieux que NT à certains petits serveurs. Il ne convient pas, comme Solaris, à des applications lourdes ou vitales qui exigent:
On ne peut absolument pas mélanger "haute performance" et applications vitales. Par exemple, les images de synthèse du "Titanic" nécessitaient de hautes performances et ont été calculées sous Linux. Par contre les ordinateurs des Airbus ne risquent pas d'utiliser Linux, pas plus que Solaris et encore moins NT (ou CE puisque c'est de l'embarqué!). Pour de l'informatique bancaire, où le rapport vitesse de calcul/coût a moins d'importance que la fiabilité des transactions, on peut très bien comprendre que Linux ne présente pas d'intérêt particulier.
Linux est jeune: pour beaucoup d'entreprises son adoption date de 1995 ou après; Oracle n'est disponible sous Linux que depuis fin 1998.
Linux évolue en ce moment très vite, bien plus vite que NT ou Solaris. Ses fonctionnalités s'enrichissent rapidement, et de plus en plus de fournisseurs de matériels et de logiciels offrent des produits pour ce marché. Cette vitalité augure bien de son avenir. Il faut cependant être prudent face aux affirmations des enthousiastes de Linux, qui ont systématiquement tendance à prendre les promesses du Linux de demain pour des réalités d'aujourd'hui sur lesquelles on peut compter en entreprise.

 
Tout à fait d'accord. Un exemple typique: Linux ne supporte pas encore la norme C++ de 1992, mais la plupart des Unix commerciaux ne la supportait pas non plus en 1997 (en particulier au niveau des templates). Il faut toujours vérifier en détail; c'est vrai pour tous les produits.
La gratuité de Linux est parfois fallacieuse: dans certains serveurs il coûterait bien plus en temps d'administration que des systèmes d'exploitation payants, du fait de l'absence d'agents d'administration centralisée pour des plates-formes comme HP OpenView, Tivoli ou CA-Unicenter. Dans d'autres serveurs Linux est bien la solution la plus économique.

 
Ca peut être vrai ou faux, selon les exigences de l'application. Il est juste de ne jamais oublier le coût de la maintenance qui est généralement le plus important. Mais Linux a de bons atouts sur ce point.
Linux est choisi par des passionnés de technique qui veulent se faire plaisir et se mettre en valeur en le personnalisant. C'est aussi une réaction contre les logiciels imposés par de grands éditeurs: avec Linux les utilisateurs reprennent le pouvoir. Inversement, l'adoption de Linux est souvent freinée par des politiques d'entreprise, d'éditeur ou de prestataire de services (exemple: "Ici nous n'utilions que NT").

 
Je suis assez d'accord. Pour tout ceux qui ont pris goût à la micro-informatique à travers la programmation, Linux (parce-que c'est un Unix) offre un environnement considérablement mieux pensé que Windows (saluons au passage AT&T, Ken Thompson, Dennis Ritchie, Brian Kernigan, Donald Knuth, Richard Stallman, Eric Allman...), et son coût le rend accessible au particulier (ce qui n'est pas vrai pour les autres Unix). Ca n'a rien d'étonnant puisque ce sont précisément ces passionnés qui l'ont écrit! On n'est jamais mieux servi que par soi-même!
Le texte détaille toutes ces affirmations et fournit une liste de critères de choix de système d'exploitation d'entreprise.

Les informations de ce texte résultent de tests et travaux d'analyse effectués par moi à mon initiative, sans rétribution d'aucune sorte. Cette deuxième version tient compte des remarques et contributions d'un certain nombre d'utilisateurs de Linux, parmi lesquels Julien Plissonneau Duquène et Jérôme Kalifa, que je remercie vivement.

Table des matières

Positionnement de Linux
Marché Linux: client ou serveur?
Systèmes utilisés pour cette étude

Qu'est-ce que Linux?

Critères d'appréciation d'une solution d'entreprise

Disponibilité

Niveaux de gravité d'une indisponibilité

Exigences: matérielles, logiciel et services

Définitions

Comparaison de Solaris, NT et Linux

Robustesse

Services

Conclusions sur le positionnement de Linux

L'aspect psychologique d'un choix Linux

Critères de choix d'un système d'exploitation

Support des applications vitales de l'entreprise

SGBD

Serveur Web

Serveurs d'applications

Moniteurs transactionnels

Progiciels de workflow disponibles: Lotus Domino, FlowMark, etc.

Grands progiciels: SAP, Oracle Applications, BAAN, etc.

Progiciels d'application divers

Data Warehouse

Matériels supportés par Linux

Fonctionnalités techniques du système d'exploitation

Multitâches préemptif

Multithreading

Multiprocesseurs symétriques (SMP)

Fichiers journalisés pour protéger contre les crashs et pannes de courant

64 bits (adresses, instructions, données)

Annuaire fourni avec système d'exploitation (DNS, NIS, LDAP)

Respect des standards: UNIX98, POSIX, etc.

Outils de génie logiciel

API système documentées

Compilateurs C, C++, Java avec un environnement de développement moderne

L4G et générateurs d'applications

Qualité de service

Accessibilité

Disponibilité

Intégrité des données et des transactions

Performance

Sécurité

Traçabilité

Facilité et vitesse de développement et maintenance

Indicateurs de qualité de service - contrats de service

Exploitabilité

Outils d'installation et d'administration locale

Outils d'administration centralisée CA-Unicenter, Tivoli, HP OpenView, SunNet Manager, etc.

Linux est-il économique en exploitation?

Sécurité

Certification C2, B1, etc.

Support de protocoles sécurisés: IPSEC, PPTP, etc.

Support de clés publiques / partagées, serveurs Kerberos, certificats

Disponibilité de firewalls

Intégrabilité

Mainframes

Autres systèmes UNIX

NetWare

NFS et SMB

CORBA, DCOM

Pérennité

Evolution par versions à compatibilité garantie? à quelle périodicité?

Garantie de support des périphériques nouveaux lorsqu'ils sont disponibles (drivers)

Risque de disparition de l'auteur d'un module important

Services disponibles

Services de l'éditeur du système d'exploitation

Disponibilité en France

Disponibilité 24 x 7

SSII: à compétence certifiée ou auto-certifiée?

Références installées en applications d'entreprise

Stratégie des fournisseurs

Remarques faites pendant les tests

Solaris

Linux

Prix du logiciel

Autres remarques

Positionnement de Linux

Ce chapitre passe en revue les critères de choix d'une solution informatique de gestion pour entreprise, petite ou grande. La liste de critères ci-dessous est (évidemment) indépendante du système d'exploitation. La comparaison de systèmes d'exploitation n'est faite que pour certains critères: je n'ai retenu que ceux dont j'avais besoin pour un choix éventuel de Linux. La liste complète est fournie pour servir de check-list aux architectes de solutions responsables d'un choix.
Ici Daniel Martin précise bien qu'il s'agit d'informatique de gestion, le résumé l'oublie presque complètement. Il y a des nombreux autres secteurs: calcul scientifique (maths purs, images de synthèse, simulations de phénomènes physiques...), développement logiciel (à destination d'une autre plateforme Unix), applications réseau (web, serveur de fichiers, d'imprimantes...), applications industrielles (lecture des codes postaux à la Poste américaine, gestion des stocks chez Loréal, gestion d'autobus en Italie...), formation... Enfin, en gestion, Iveco-Australie utilise des clients Linux pour SAP (Windows ne permettait pas d'ouvrir suffisamment de fichiers simultanément).
Le texte ci-dessous liste donc les critères de choix, en n'ajoutant d'explications que lorsqu'elles sont indispensables. La manière dont Linux, NT et Solaris répond(ent) à ces critères est examinée au fur et à mesure.

Marché Linux: client ou serveur?

En entreprise le marché des clients est détenu à environ 90% par les systèmes d'exploitation Microsoft. La place de Linux et de UNIX est donc celle de serveurs, à part quelques systèmes individuels spécialisés tels que les stations de CAO ou d'administration informatique. Et, dans le marché des serveurs, la place en entrée de gamme est souvent prise par NT et par des systèmes plus spécialisés comme NetWare.
D'accord si on interprète ce paragraphe comme ceci: il s'agit d'entreprises de gestion, et de la place actuellement occupée par Linux et non pas de la place qu'il pourrait occuper.
Aujourd'hui, nous voyons donc l'avenir de solutions UNIX plus dans les serveurs d'applications et de SGBD haut de gamme que dans les serveurs d'entrée de gamme. Dans les petits serveurs, Linux est en concurrence directe avec NT ou NetWare plus qu'avec UNIX. Dans les serveurs de grande puissance et/ou de haute disponibilité Linux serait en concurrence avec UNIX seul, NT n'ayant pas encore vraiment percé dans ce marché.

Les grandes entreprises ne sont qu'une partie du marché des serveurs de gestion, qui se vendent aussi dans des PME. Il y a donc là aussi un marché pour Linux, UNIX et NT.
 
 

La position de NetWare est particulière. Ce système d'exploitation est, depuis toujours, un excellent serveur de fichiers et de d'impressions. Aujourd'hui, NetWare 5 est de plus en plus un serveur d'applications et de base de données: à part les progiciels comme GroupWise et BorderManager, le runtime Enterprise JavaBeans et le SGBD Oracle 8 incorporés le prédisposent à ce rôle, y compris dans des réseaux TCP/IP. Les avantages de NetWare par rapport à NT et UNIX sont une compatibilité avec les nombreux réseaux IPX/SPX existants et une plus grande simplicité de compréhension et d'administration. Malgré ces atouts, dans le texte qui suit, nous n'évoquerons pas NetWare, parce que ce n'est ni un système de temps partagé comme Linux, UNIX et NT Terminal Server, ni un serveur d'usage général comme eux.
 

De toute façon Linux sait parler IPX, TCP/IP, NFS, NetBios, Appletalk...
En résumé, début 1999 Linux est surtout un Système d'exploitation pour petits serveurs, en concurrence directe avec NT et NetWare.
Dans la cadre d'une utilisation en gestion, tout le monde peut être à peu près d'accord sur ce point.

Systèmes utilisés pour cette étude

Il n'a pas choisi la simplicité, un pentium II unique aurait offert les mêmes performances que l'Ultrasparc II, voire mieux.
Dans chaque système nous avons aussi testé un serveur Web: Sun WebServer sous Solaris, Internet Information Server sous NT et Apache sous Linux. Nous avons aussi installé Oracle 8 sous Linux, NT et Solaris.

Qu'est-ce que Linux?

Le mot Linux désigne en fait un ensemble de logiciels gratuits, téléchargeables sur l'Internet - exécutables et sources, ou vendus sous forme de distributions peu onéreuses (200 à 1200 FF environ) par des sociétés comme Red Hat ou Caldera.
Une distribution Linux comprend:
Et vraiment BEAUCOUP d'autres logiciels: traitement de texte professionnel Latex (comparable à FrameMaker), environnement de développement complet, manipulation d'image avec GIMP (genre Photoshop en plus riche et plus complexe)... On peut lire "Le système Linux" (= Running Linux) aux éditions O'Reilly.
Il n'y a pas de Linux "standard" car, à part le noyau, les autres logiciels (indispensables, comme c'est le cas des bibliothèques) sont souvent incompatibles entre eux d'une distribution à une autre. Cette absence de standardisation oblige les éditeurs soucieux du fonctionnement correct et portable du logiciel qu'ils vendent, comme Oracle, de fournir leurs propres bibliothèques pour compléter le noyau Linux.
Là c'est soit de la mauvaise foi, soit un manque d'expérience: dans 99% des cas on ne rencontre pas ce genre d'incompatibilité (les libc ont une compatibilité ascendante); le reste du temps c'est parce qu'un patch corrigeant un bug est nécessaire. La fréquence de cette situation sous Linux est comparable aux Unix commerciaux, et bien plus faible que sous Windows. Personnellement, j'ai toujours un 486 avec Linux 1.2.13 (installé il y a 4ans), tant que mes besoins n'évoluent pas, aucun patch n'est nécessaire. Voilà une caractéristique qui distingue radicalement Linux des OS commerciaux.

Critères d'appréciation d'une solution d'entreprise

Pour convenir à des applications vitales, une solution d'entreprise doit être disponible, performante et apte à garantir un haut niveau de qualité de service. Toute fonctionnalité offerte par cette solution, doit, pour que son existence soit crédible, être réelle et prouvée par un nombre suffisant de sites qui l'exploitent sans problème. Cette exigence est destinée à protéger les utilisateurs contre les promesses fallacieuses ("le vaporware"). Ainsi, par exemple, si je dis "Linux supporte le clustering" (mot défini plus bas) je dois pouvoir le prouver en désignant des sites en exploitation effective, depuis un temps assez long et avec une qualité de fonctionnement suffisante pour que cette exploitation soit jugée stable.
En outre, pour que son existence soit crédible, une fonctionnalité doit pouvoir être obtenue avec un produit standard, sans que l'on soit obligé de développer du code "maison" ou de faire de gros efforts d'intégration: un simple paramétrage pendant ou après l'installation doit suffire.

 
D'accord avec ces 2 paragraphes.
Enfin, pour qu'un utilisateur puisse la mettre en oeuvre sans risque, il faut que le niveau de compétence requis pour l'installer, l'intégrer à l'existant et l'exploiter soit à sa portée, sans exiger la disponibilité d'un gourou. Il faut également que les outils d'exploitation (exemples: agents d'administration à distance et agents de sauvegarde en réseau) soient disponibles. Il faut, enfin, que les services extérieurs nécessaires soient disponibles.

 
Là ça commence à être flou et douteux: les 3 derniers paragraphes évoquent quelque chose comme OS 390 ou AS 400; à la limite un Unix commercial, mais en aucun cas Windows. Y a-t-il des déploiements sur ces machines qui soient faits par des non-experts ? L'installation de Solaris à elle seule (enfin avec sa ribambelle de patch) n'est pas une partie de plaisir, et encore moins destinée à un utlisateur lambda. On a au minimum affaire à quelqu'un qui connait le C, sh et la configuration d'un réseau.
A ce propos je me suis aperçu, dans de nombreux messages reçus de partisans de Linux, qu'ils attribuent à ce système d'exploitation des fonctionnalités qui ne répondent pas à ces critères. Par exemple, il leur suffit, pour dire "Linux sait faire cela" ou "Linux supporte cela", que:
C'est une critique justifiée. Mais Linux n'est pas le seul OS à souffrir de ce genre d'approximation. Aucun représentant IBM ne disait en 1997 que leur compilateur C++ avait des habitudes complètement exotiques! Même topo avec HP-UX. Quant à Windows, on a plus vite fait le tour de ce qui est exempt de reproches que du reste!
Mes exigences sont beaucoup plus élevées car, en tant que consultant, je ne peux recommander à un client grand compte une solution qui présente des risques. Mes clients ne se comportent pas comme les universitaires du projet de calcul massivement parallèle sous Linux appelé BEOWULF, qui appliquent à des projets à l'état de l'art la maxime suivante: "Pourquoi acheter une solution qu'on devrait pouvoir développer nous-mêmes?". Mes clients ont des budgets précis et des délais stricts à respecter pour rendre disponible une nouvelle application, et ne peuvent de ce fait prendre des risques avec des solutions non éprouvées. Même si on leur fournit une solution nouvelle, ils veulent être sûrs, avant de compter dessus en l'exploitant dans une application vitale pour l'entreprise, qu'ils disposeront de la compétence, du support et de garanties de pérennité, et sans faire exploser leurs budgets ou compromettre la disponibilité pour les utilisateurs.

On comprendra donc pourquoi je suis prudent avant de croire que "Linux peut le faire".

C'est tout à fait juste. Mais une circonspection aussi grande est nécessaire à l'égard des produits commerciaux: le marketing fumeux (ou vaporware) est au moins équivalent à l'engouement passionné.

Disponibilité

En entreprise, le critère de disponibilité est extrêmement important dès qu'on parle d'une application vitale ("mission critical").
Niveaux de gravité d'une indisponibilité
Le tableau ci-dessous décrit les conséquences éventuelles de l'indisponibilité d'une application en fonction de son niveau, classé de 0 à 5.


 
Niveau
Exemples d'applications et conséquences si indisponibles
0
Economiseurs d'écran, jeux, etc.: une panne est sans conséquence
1
Productivité personnelle: traitement de textes, tableur, etc. Une panne impacte une personne mais ne gêne pas beaucoup l'entreprise
2
Applications horizontales: comptabilité, paie, services de fichier et d'impression, etc. Une panne impacte un petit groupe mais ne gêne l'entreprise que si elle dure plusieurs jours
3
Productivité de groupe (email, workflow) et applications verticales: gestion de production, logistique, etc. Une panne empêche le fonctionnement d'une partie importante de l'entreprise au bout de quelques heures; si elle se prolonge elle met en péril sa rentabilité voire sa survie
4
Conduite de processus industriel, saisie de commandes par téléphone, etc. Une panne bloque immédiatement un travail qui est la raison d'être de l'entreprise ou du département.
5
Informatique embarquée de sécurité, comme les commandes électriques de vol d'un avion moderne: une panne met en péril la vie humaine

Le niveau 5 ne concerne aucun Unix, commercial ou non, et encore moins Windows. Il y a plusieurs utilisations satisfaisantes de Linux au niveau 4, voir http://www.linuxbusiness.com/fr/case.html
Conséquences de l'indisponibilité d'une application selon son type
 
Exigences: matérielles, logiciel et services
Pour les applications de niveaux 0 à 2 tous les systèmes d'exploitation conviennent. A partir du niveau 3, la disponibilité demande, selon les besoins, tout ou partie des fonctionnalités suivantes:
Définitions
En informatique de gestion, on appelle "cluster" un système comprenant plusieurs "noeuds". Chaque noeud est, en général, un système multiprocesseurs. Tous les noeuds accèdent à un même sous-système de disques, dont le contrôleur doit avoir au moins autant d'accès qu'il y a de noeuds. Le sous-système peut comprendre plusieurs cartes RAID, chacune gérant une grappe de disques avec une redondance qui rend invisible une panne d'un seul disque. Le sous-système supporte souvent son propre dispositif de sauvegarde. Les divers noeuds sont interconnectés entre eux pour s'entendre sur les accès aux disques communs pour éviter les conflits d'accès. Les noeuds sont accessibles en réseau pour les clients, en général par l'intermédiaire de cartes réseau redondantes. En cas de panne d'un noeud, le traitement peut se poursuivre sur un autre. Le cluster est une solution de disponibilité bien plus qu'une solution d'accroissement de la puissance.
En général, lorsqu'un noeud tombe en panne, l'application est déconnectée et doit se reconnecter à un noeud encore opérationnel. Lorsque cette reconnexion est automatique et transparente pour le programmeur, on obtient une disponibilité plus simple à gérer et un temps d'indisponibilité plus court. Les logiciels de clustering les plus évolués offrent ce basculement transparent.

 
 

Le clustering à image système unique permet à un cluster à 2, 3... N noeuds de se comporter comme un seul système multiprocesseurs pour les applications qu'il supporte, comme pour ceux qui l'administrent. Exemples: IBM Parallel Sysplex et Solaris 8 (en 2000). A part une très haute disponibilité, on obtient une excellente répartition dynamique des charges. On peut ainsi gérer des charges de travail hétérogènes et lourdes tout en garantissant les temps de réponse (parce qu'on réserve à chaque application une fraction minimum des ressources globales).

La répartition dynamique des charges permet de répartir des demandes de traitement entre divers serveurs. Cette répartition équilibre en permanence les charges pour optimiser le débit global ou garantir certains temps de réponse. En cas de panne d'un noeud, les demandes sont réparties entre les autres noeuds. La répartition dynamique utilise des logiciels agents dans chacun des noeuds et un dialogue entre ces agents et le système répartiteur, qui doit être de type haute disponibilité ou tolérance de pannes.

Ces solutions ne concernent au maximum qu'une entreprise sur 100 ou 1000. Or le titre de l'article est "Linux en Entreprise".  Peut-être qu'il aurait fallu écrire "Linux comme mainframe dans le secteur bancaire"?!!!

Comparaison de Solaris, NT et Linux

Voici ce qu'on trouve sur le CD Red Hat 5.2 au sujet des disques RAID gérés par Linux dans le répertoire /doc/HOWTO/Root-RAID-HOWTO:
"1.2. Bugs
As of this writing, the problem of stopping a root mounted RAID device has not yet been solved in a satisfactory way. A work-around proposed by Ed Welbon and implemented by Bohumil Chalupa is incorporated into this document which eliminates the need for a long ckraid at each boot for raid1 and raid5 devices. Without the workaround, it is necessary to ckraid the md device each time the system is re-booted. On a large array this can cause a severe availability performance degradation."

"As of this writing (June 1998), the administration of RAID under Linux is far from trivial, and is best attempted by experienced system administrators. The theory of operation is complex. The system tools require modification to startup scripts. And recovery from disk failure is non-trivial, and prone to human error. RAID is not for the novice, and any benefits it may bring to reliability and performance can be easily outweighed by the extra complexity. Indeed, modern disk drives are incredibly reliable and modern CPU's and controllers are quite powerful. You might more easily obtain the desired reliability and performance levels by purchasing higher- quality and/or faster hardware."

Le texte ci-dessus est intéressant: dans le monde Linux on utilise la solution gratuite de M. X ou de M. Y, mais en vérifiant que cela convient, en le maintenant soi-même au niveau du code source du système ou des drivers et en prenant ses responsabilités.

Il existe des contrôleurs RAID pour Linux (matériel et drivers) produits par des petites sociétés. Des contacts avec des utilisateurs de RAID sous Linux ont permis de confirmer que cette technologie est disponible, matériel et logiciel, mais que son administration est délicate. Je n'ai pas encore trouvé, sous Linux, de sous-système RAID à connexions de noeud multiples, convenant aux clusters. On peut conclure que pour le moment la technologie RAID est bien moins répandue sous Linux que sous Solaris ou sous NT, systèmes où je les utilise dans mon laboratoire de façon parfaitement banale et transparente.

Robustesse
Services
Il n'existe pas de processus de certification de compétence dans le monde Linux. On peut seulement affirmer que des efforts en ce sens sont en cours. Du reste, il est difficile de certifier la compétence pour un logiciel dont la spécification (le périmètre), les versions et les distributions évoluent rapidement. Il faut savoir que Red Hat, par exemple, va changer pour la troisième fois en 4 ans de logiciel d'interface utilisateur, en adoptant GNOME. Chaque adoption d'une interface utilisateur avait ses raisons, mais le fait est là: pas de stabilité, et ce dans un domaine techniquement très complexe. A ce point de vue, signalons que Microsoft est tout aussi instable: en 15 ans, il est passé de DOS à OS/2, puis Windows 16 bits, Windows 32 bits, Windows 95 et aujourd'hui Active Desktop (basé sur HTML) dans Windows 98. Cela fait une durée de vie moyenne de 2 ans et demi par interface utilisateur, et un effort de mise à jour de compétence considérable.
Là on dit vraiment n'importe quoi. Celui qui trouvait jolie son interface graphique MWM ou TWM d'il y a dix ans peut toujours l'avoir. Ca n'a rien à voir avec le système d'exploitation: on peut changer d'interface graphique (le window-manager), les programmes continueront à fonctionner.On peut aussi travailler en mode texte et profiter des dernières carctéristiques du noyau, des libraries... C'est d'ailleurs un point fort: en fonction de la puissance de calcul dont on dispose (en particulier au niveau de la carte graphique) on choisit une interface adaptée aux performances de la machine. Cette confusion est très étonnante pour quelqu'un qui prétend connaître Unix. Il sera sûrement plus délicat d'avoir sous Windows NT la même interface graphique que sous Windows 3.1!

Solaris 2.6 est livré avec CDE comme interface graphique; or CDE est très lourd. Sur une machine un peu ancienne (2 ans ou plus), on aura intérêt à utiliser un window-manager du domaine publique comme fvwm, fvwm95 (qui a la même esthétique que Windows 95) ou encore AfterStep. Ca n'a pratiquement pas d'incidence sur le fonctionnement des applications, si ce n'est un gain de vitesse substentiel. On voit ici l'un des points forts d'Unix: sa modularité.

De ce fait, la compétence des prestataires de services Linux est, pour l'essentiel, auto-proclamée. A leurs clients d'y croire, et de vérifier au besoin.

 
C'est vrai. Est-ce réellement différent avec les autres plateformes ?
Il n'y a pas de support officiel de Linux, comme on en trouve (examens de certification à l'appui) pour Solaris et NT. En général, lorsqu'on a un problème, on pose une question dans un forum de discussion Internet et il se trouve une dizaine de personnes pour vous répondre, en général en moins de 24 h. Sur ces réponses, dont la valeur est à vérifier au cas par cas puisque personne n'est responsable et ne doit rien à personne, combien seront bonnes? Combien vous feront perdre votre temps? Le délai de 24 h vous convient-il? Red Hat vend un support 24 x 7 aux USA et cherche à l'installer en France; mais il ne supportera pas les logiciels tiers.

 
Qui est satisfait par le support Microsoft dans le cadre d'une utilisation réellement professionnelle? IBM, Dell, Compaq... et Sun on annoncé leur désir de supporter Linux. Rien ne remplace l'expérience pour évaluer la valeur d'un support; on est loin d'avoir un support idéal d'un côté et déplorable de l'autre. Il n'y a qu'à lire les messages de mise en garde dans les documents Microsoft: on ne peut le tenir responsable d'aucun disfonctionnement.
Il faut comprendre que les lois du marché font qu'il y a deux niveaux de support commercial: celui (pas cher, mais de très bas niveau) qui est destiné à des milliers ou des millions d'utilisateurs, et celui (bien plus cher) destiné à des entreprises. Dans ce domaine, une entreprise de support doit donner une bonne qualité et un bon prix, si elle veut prospérer ou simplement survivre. Un certain nombre de SSII se sont lancées dans le support Linux, certification ou pas. L'avenir montrera si la concurrence suffit pour garantir une bonne prestation aux utilisateurs.

 
Tout à fait d'accord. Les gens d'Alcove  ou d'Atrid  sont d'anciens spécialistes d'UNIX commerciaux, tout à fait sérieux. En revanche le support Microsoft est à ranger dans le "très bas niveau" comparé à Solaris.
Oracle est disponible sous quatre Linux, dont Red Hat et Caldera. Mais il ne supporte que ses logiciels: si vous installez un logiciel tiers, si vous modifiez le noyau, ils dégageront leur responsabilité plus que si vous exploitez une version standard de Solaris ou NT.
C'est clair que Linux n'est pas une plateforme de choix pour Oracle. Mais si on peut s'offrir Oracle, on ne va pas chercher à économiser et prendre Linux. Oracle a surtout cherché à se faire de la publicité à bon prix avec leur portage Linux. Vont-ils l'abandonner aussi vite que leur projet de Network Computer? Ils sont les plus grands spécialistes du VaporWare! On dit que Larry Ellison n'est qu'une potiche qu'Oracle conserve à cause du bruit qu'il fait!
Dans sa concurrence avec NT, Linux l'emportera donc de plus en plus, au fur et à mesure que le marché s'apercevra qu'il est bien plus simple à comprendre, donc à exploiter.
Encore une fois: la prise en main d'Unix (tant Solaris que Linux, AIX, HP-UX, Digital-Unix..) est plus rude que celle de Windows; ne serait-ce que parce-que tout le monde connait déjà Windows (avec tous ces jeux, pardon, tous ces outils multimédias). Le point de vue de Daniel Martin me semble tout à fait unique! Par contre, une fois maîtrisé, Unix est beaucoup plus productif car les tâches répétitives peuvent toujours être automatisées; c'est bien l'intérêt des ordinateurs.

Pour résumer, en termes de prise en main (cout fixe) puis exploitation (cout variable), Windows a un coût fixe moyen et un coût variable moyen; Unix, et Linux en particulier, ont un coût fixe élevé et un coût variable faible. Pour une utilisation intensive et si les besoins s'y prêtent (les outils sont-ils disponibles?) Unix sera donc préférable.

Conclusions sur le positionnement de Linux

Remarque: pour adopter Linux il faut posséder au départ une culture UNIX + GNU + Emacs ou vi.
Encore une fois: il ne faut pas sous-estimer cette formation.
Pour les petits serveurs, Linux convient:
Une première question, pour les cas ci-dessus, est de savoir si Linux convient mieux qu'un UNIX comme Solaris, capable de faire au moins aussi bien que Linux dans tous les domaines sauf ceux où la personnalisation exige le code source. On les départagera en considérant les autres critères cités plus bas dans cette étude.
Une deuxième question, pour les mêmes cas, est de savoir si Linux convient mieux que NT. Il faut voir, ici, que la version multiposte de NT (Windows NT Terminal Server) est marginale, peu utilisée, donc d'avenir incertain. Elle est, en plus, d'une gourmandise de ressources matérielles incroyable. Donc, en matière de système multiposte, Linux fera toujours mieux que NT, sauf lorsqu'on exige que le serveur multiposte supporte les applications conçues pour Windows. En dehors du multiposte, Linux pourra être préféré à NT chaque fois que sa stabilité, sa simplicité et son économie de matériel clairement supérieures auront plus d'importance que les qualités prouvées de NT en matière de montée en charge (tests officiels TPC), de support des disques RAID et des clusters. C'est ainsi, par exemple, qu'on installera avec profit Linux sur des serveurs anciens (486, par exemple) dont la configuration est devenue trop modeste pour NT, tels que des serveurs d'impression, de messagerie ou de pages Web.

Linux ne convient pas, au moins en ce début de 1999:

En dehors des problèmes de disponibilité et de performance, Linux n'a pas aujourd'hui les outils d'administration permettant de garantir la qualité de service en exploitation lourde (voir plus bas).

L'aspect psychologique d'un choix Linux

La section précédente sur le positionnement a mis en évidence une caractéristique essentielle de Linux au point de vue des hommes qui choisissent ce système d'exploitation, l'installent, en modifient ou en complètent le code source et l'administrent: la psychologie. Je vais traiter ce point tout de suite, pour ne pas avoir à y revenir.
Alors qu'un choix de système d'exploitation UNIX ou NT n'a pas de dimension psychologique, le choix de Linux en a une dont voici les caractéristiques.
Une conséquence de cet altruisme est l'honnêteté à l'égard des autres hommes qui ont choisi Linux: en cas de danger, l'éthique Linux veut qu'on avertisse le collègue.
Je parie donc que ce texte me fera beaucoup d'ennemis parmi eux, bien que je partage avec eux le même idéal altruiste: l'écris mes articles (170 à ce jour) gratis, et je publie mes études, celle-ci et les autres, gratis sur mon site Web, même lorsqu'elles m'ont coûté des semaines de travail.
La première version de ce texte, plus dure vis-à-vis de Linux parce qu'elle ne considérait que les besoins de serveurs haut de gamme, m'a valu une centaine de messages. Plus de la moitié ne contenaient que de la haine et des insultes, montrant par là que leurs auteurs étaient d'un niveau trop bas pour avoir d'autres arguments: sitôt arrivés ils sont partis à la poubelle. A part une demi-douzaine qui m'approuvaient, tous les autres argumentaient contre mon texte. Il est intéressant de noter qu'aucun de ces interlocuteurs n'a abordé le thème de la disponibilité (à l'évidence hors de leurs préoccupations) et aucun n'a contesté la supériorité tous azimuts de Solaris sur Linux.
Si: dans les universités il y a des spécialistes qui se débrouillent généralement sans le support Sun. Pour eux, et pour une puissance de calcul donnée: 1PC/Linux = 10kf, 1StationSolaris = 60kF. Tout ça pour utiliser un compilateur fortran pour faire du calcul numérique. Il y a d'autres situations similaires. J'aime bien le "niveau trop bas"!
Si je suis contre Linux pour des applications de niveaux 3 et au dessus, tout en admirant les linuxiens, c'est à cause de mon rôle de consultant: je considère comme erronée une adoption de Linux pour une telle application, au moins parce qu'il y a un meilleur choix: UNIX.
Je crois plutot qu'il y a beaucoup de situations de niveau 4 où Linux conviendrait bien mieux que Windows. La fin de la phrase est amusante: on dirait qu'il a d'un coté UNIX, qui serait Solaris, AIX... et de l'autre Linux. En fait, Linux, BSD, Solaris, AIX... sont des Unix. Linux appartient à la famille des logiciels libres, la carctéristique de ceux-ci est d'etre livrés avec leurs sources. Il y a meme des esprits polémiques (sans aucun rapport avec Linux) qui prétendent que AIX signifie "AIn't uniX" (c'est pas unix) à cause des nombreuses particularités de l'OS d'IBM. Linux est beaucoup plus respectueux des normes POSIX, et des conventions UNIX en général.
Je conseille donc aux managers à qui un informaticien recommande d'adopter Linux de tenir compte de ce désir de bricoler. Si ils acceptent, ils risquent de voir les responsables de systèmes Linux perdre du temps à résoudre des problèmes pour le plaisir, et à discuter avec d'autres linuxiens par l'Internet, au téléphone et dans des réunions. Ils risquent de leur voir adopter des solutions parce que celles-ci leur permettent de se réaliser, pas parce qu'elles sont optimales pour l'entreprise. Ils risquent de voir ces enthousiastes prendre des risques avec l'aptitude de leur système à monter en charge et sa disponibilité. Et ils risquent de se retrouver, au départ du gourou Linux maison, avec des systèmes si profondément personnalisés (sans documentation) qu'ils sont impossibles à maintenir et à exploiter par quelqu'un d'autre. Si ils refusent le choix Linux ils vont créer pas mal de frustration. Manager c'est choisir, n'est-ce pas?
Là on touche à un problème très vaste et fondamental: bien sûr on est là pour travailler quand on est au bureau! Mais si pour un décideur, le critère de productivité est le nombre de coups fils non-professionnels, c'est qu'on a probablement affaire à quelqu'un qui n'a aucune notion de qualité logicielle au niveau des méthodes de travail, de la conception détaillée, de la conception système, du choix des outils, de la communication interne... Bref aucune compétence pour travailler dans le secteur de l'informatique. Ca n'empêche pas de réussir et de gagner beaucoup d'argent, mais dans ce cas les discussions techniques n'ont pas grande utilité. Dans le magazine "Transfert" on voit comment travaillent plusieurs entreprises à succès dans la Silicon Valley, Excite en particulier. Il y a de quoi etre surpris! Un bon manager ne devrait pas confondre le vernis des apparences et la qualité intrinsèque du travail. Mais c'est un autre débat.

Critères de choix d'un système d'exploitation

Ce chapitre liste les critères de choix principaux à prendre en compte lorsqu'on choisit un système d'exploitation pour un serveur, en informatique de gestion. Je ne reviendrai pas sur la disponibilité, traitée précédemment.

Support des applications vitales de l'entreprise

SGBD
Un système d'exploitation serveur qui ne supporte pas le(s) SGBD de l'entreprise doit être proscrit, car un changement de SGBD coûterait bien plus cher que l'adoption d'un autre système d'exploitation. Dans un serveur de base de données, du reste, le SGBD masque le système d'exploitation sous-jacent; cette affirmation est si vraie que Oracle commence à commercialiser une solution où le SGBD est livré avec son système d'exploitation (un Solaris réduit), tout installé et intégré, et celui-ci est quasi-invisible.
A part Oracle, qui supporte 4 Linux différents, des portages ont été réalisés pour Informix, Sybase et DB2. Pour un utilisateur éventuel, il reste à vérifier, pour chaque portage, que les bibliothèques ainsi que les outils d'administration et d'interopérabilité avec les clients sont disponibles. Des indisponibilités sont certaines, vu l'absence d'intérêt manifestée par les grandes plates-formes d'administration comme Tivoli, HP OpenView et CA-Unicenter, absentes du marché Linux (recherche faite sur leurs sites Web le 14/1/99).
Tout cela est juste.
Serveur Web
Si le système d'exploitation devra supporter un serveur Web, voici quelques particularités de celui-ci:
Une page active est aussi utilisable dans le client, avec ses scripts et ses composants ActiveX. Dans ce cas, le HTML généré par l'exécution des scripts et composants est affiché directement.
Une alternative aux pages ASP de Microsoft est la solution Servlet de Java, où le serveur Web peut renvoyer des pages générées dynamiquement par une application en réponse à la demande d'un client. Cette solution est moins souple dans la mesure où il est plus facile de faire évoluer du script que du code Java, et dans la mesure où (chez Microsoft) les scripts JavaScript ou VBScript, peuvent accéder à n'importe quel objet COM pour en personnaliser le comportement; ils peuvent aussi modifier dynamiquement, dans le poste client, le contenu et l'affichage d'une page HTML. Voir à ce propos mon texte: http://worldserver2.oleane.com/dmartin/XML_F.htm.

Voici la situation système d'exploitation par système d'exploitation:

Sun offre aussi un serveur Web entièrement écrit en Java, Java WebServer. Ce serveur est facile à porter dans tout système d'exploitation qui possède une machine virtuelle Java compatible. Il existe déjà sous Solaris et NT et sera sans doute porté sous Linux.
A priori Apache muni de scripts en Perl, s'appuyant éventuellement une base de donnée livrée avec Linux permet de couvrir la plupart des besoins (à moins de vouloir absolument faire une usine à gaz). De très nombreux fournisseurs d'accès internet ont fait ce choix. Linux et BSD sont plus utilisés que Windows dans ce domaine.
 
Serveurs d'applications
Un serveur d'applications constitue le niveau 2 d'une architecture client-serveur à 3 niveaux. Il supporte la logique de traitement applicatif, les clients se contentant d'une interface utilisateur la plus légère possible. Il sous-traite la gestion des données persistantes au serveur de SGBD, au niveau 3.
Aujourd'hui, les applications supportées par un serveur d'applications sont orientées-objets. Elles constituent donc un ensemble d'objets qui tournent en utilisant les services d'un runtime. Ce dernier leur apporte toutes sortes de services décrits dans le schéma de "l'architecture AAA" ci-dessous. Dans ce schéma, le client est dans la couche supérieure (avec 2 architectures possibles) et le serveur de 3ème niveau est dans la case de droite de la couche Services. Le serveur d'applications peut donc supporter tous les services de la couche "middleware" et ceux que l'on appelle "Services communs".

Architecture applicative proposée par Daniel Martin

Dans la pratique, on commence à trouver des serveurs d'applications tout faits, accompagnés des outils de développement indispensables pour créer rapidement des applications qui utilisent leurs services (des serveurs sans outils, comme BEA M3, imposent des délais et difficultés de développement plus importants). Aujourd'hui, les serveurs d'applications les plus prometteurs sont basés sur la spécification Enterprise JavaBeans.

Donc, si le système d'exploitation retenu doit supporter des applications au sens "serveur d'applications" il doit supporter une des solutions du marché, de préférence avec machine virtuelle Java, runtime Enterprise JavaBeans, intégration au serveur Web et outils de développement adaptés. La situation est la suivante aujourd'hui:

Moniteurs transactionnels
Un moniteur transactionnel a deux fonctions essentielles:
Ces fonctions existent que les applications soient traditionnelles (exemples de moniteurs: CICS et TUXEDO) ou orientées-objets (Microsoft MTS). Les moniteurs transactionnels convergent tout doucement avec les serveurs d'applications: ce sera sans doute fait dans 2 - 3 ans.

La situation est la suivante:

L'absence de moniteur transactionnel sous Linux renforce la conclusion qui se dessine depuis le paragraphe sur la disponibilité: Linux n'est pas destiné aux grandes applications transactionnelles, au moins pour le moment.
Effectivement, la gestion, les bases de données ne sont pas l'objectif principal des développeurs Linux.
Progiciels de workflow disponibles: Lotus Domino, FlowMark, etc.
Grands progiciels: SAP, Oracle Applications, BAAN, etc.
Progiciels d'application divers
Data Warehouse

Matériels supportés par Linux

Red Hat supporte Intel (486, Pentium, etc.), Digital Alpha et SPARC.
Le critère "matériel" est moins important que le logiciel, vu le nombre croissant de solutions logicielles portables. L'UNIX testé, Solaris 7, est portable sur Intel et SPARC. Selon le fournisseur de Linux (Red Hat, Caldera, etc.) ou selon le code que l'on télécharge sur l'Internet, Linux existe sur d'autres processeurs.
Est-ce que Solaris fonctionne bien sur Intel? Il n'y a sûrement pas 10 millions d'utilisateurs de cette configuration.

Fonctionnalités techniques du système d'exploitation

Multitâches préemptif
Linux, UNIX et NT offrent tous ce type de fonctionnement.
C'est un peu rapide: le multi-tâche est beaucoup mieux géré sous Linux que sous Windows; sans parler du champion du domaine: BeOS, encore un peu neuf par contre.
Multithreading
Le mécanisme système de multithreading est important surtout pour la montée en charge, où il permet:
Dans le multithreading décrit ci-dessus, le système d'exploitation doit multiplexer (c'est à dire allouer automatiquement ou sous contrôle de l'application) N threads de l'application sur P processus légers qui utilisent Q processeurs. L'optimisation de ce multiplexage est extrêmement difficile. Elle est pourtant d'une extrême importance, car elle conditionne la possibilité d'exploiter de nombreux processeurs en parallèle avec un bon rendement, sans temps d'attente. C'est l'état de l'art en matière de montée en charge, et même de grands constructeurs ont du mal à effectuer cette optimisation. C'est cette difficulté qui explique les années de retard de constructeurs comme IBM ou Hewlett-Packard sur Sun dans la livraison de machines SMP avec beaucoup de processeurs: inutile d'accumuler les processeurs si leur rendement sera misérable.

Une application peut gérer son propre multithreading coopératif, par exemple pour en disposer sur plusieurs systèmes d'exploitation qui, eux, n'en ont pas. C'est le cas de Oracle, par exemple, qui utilise son propre multithreading lorsque le système d'exploitation sous-jacent n'en a pas qui convienne.

Les conséquences de la jeunesse des threads de Linux sont considérables: Linux n'a aucune chance de supporter une montée en charge importante où il y a des milliers d'utilisateurs actifs simultanés.
Et bien si, ça marche. Le multi-tâche de Linux est assez robuste pour cela comme l'a montré Louis Léon, chercheur auprès du CNRS et de l'ENSTA: il a fait des tests en charge sur des machines mono ou multi-processeurs, en comparant Linux aux Unix commerciaux, avec l'aide de spécialistes travaillant pour les industriels fournissant ces machines Unix. Là encore, il faut relativiser un peu, s'il faut redémarrer NT tous les 3 jours quand on utilise Word 8, que va-t-il se passer avec des milliers d'utilisateurs simultanés? C'est vrai que les threads ne sont pas encore bien supportés par Linux; la libc n'est pas réentrante, ce qui est très genant. Par contre, on peut avoir un grand nombre de processus en cours d'exécution sans que le multi-tache n'avoue de grandes faiblesses. C'est beaucoup moins vrai avec Windows.

Voici ce que des tests de threads (menés par Stéphane Pion) sous Solaris, HP-UX et AIX ont révélé:
Les threads solaris n'ont jamais été coopératifs (2.5 et 2.6) Sun a donc été disqualifié d'office. En fait SCHED_FIFO était présent mais déclarait un scheduling UNIX classique! Quant à la coopération sur les 2 autres systemes, elle a montré des trous de fonctionnement. Ces problèmes ne se produisent qu'extrèmement rarement, mais quand on demande de la coopération et qu'un thread est déclanché à la place d'un autre, ça s'arrete vite! Les mêmes problèmes existent peut-être sur linux, mais là, l'accès aux sources permet de mieux savoir ce que l'on fait.
Les threads les plus performants et aboutis sont à priori ceux de DEC (non testé ici mais très bonne réputation, et documentation excellente) Les threads BULL sont en retard (ancienne norme). Solaris fait une salade entre les thread solaris et les pthreads. Mais ils présentent une libc fortement réentrante. Le FIFO HP n'est pas satisfaisant (comme AIX à priori).
J'ai pu remarquer que les problèmes apparaissaient suite à l'utilisation simultanée de plusieurs processeurs (sur HP K260 PA8000 x 2)

Cette affirmation est confirmée par la liste des résultats de benchmarks transactionnels publiés par le Transaction Performance Council (TPC): aucun résultat de test n'a jamais été publié, ni en transactionnel (TPC-C) ni en aide à la décision avec grande base de données (TPC-D). Nous verrons un peu plus bas que, contrairement à NT et Solaris, Linux ne supporte pas les configurations multiprocesseurs de manière automatique et stable.
Multiprocesseurs symétriques (SMP)
La technologie SMP est indispensable à la montée en charge d'un système, particulièrement si c'est un serveur. Début 99, Solaris gère des systèmes SMP jusqu'à 64 processeurs et NT jusqu'à 8. Voici le texte que l'on trouve sur le site Red Hat http://www.redhat.com/support/docs/rhl/intel/rh52-hardware-intel-3.html#ss3.2 le 13/1/99, concernant la dernière version du produit, la 5.2 que j'ai testée:
"To utilize more than one processor on SMP (symmetric multi-processor) machines, you need to build a custom kernel; this is because SMP support is still of experimental quality in the Linux 2.0.xx kernel."

C'est-à-dire que Linux ne supporte les multiprocesseurs que de façon insuffisamment fiable. La jeunesse des threads dans Linux est cohérente avec celle du multitraitement: pour bien exploiter un système SMP multiutilisateurs il faut des threads.
 

C'est complètement faux. Le "you need to build" indique qu'il faut recompiler le noyau, opération toute à fait banale, ne serait-ce que pour ajouter ou enlever des "driver". Il y a maintenant des menus déroulants pour effectuer cette opération. Par ailleurs une application qui utilise plusieurs processus (un serveur web typiquement, qui "fork" à chaque nouveau client) exploitera parfaitement un système SMP. Même la commande "make" saura parallèliser une compilation. Quand à la notion d'expérimentalité, elle est relative: Microsoft serait probablement déjà très satisfait du fonctionnement actuel de Linux en SMP.
En matière de performances, les conséquences sont considérables: Linux a 5 ans de retard sur Solaris et 4 sur NT.
Vue la vitesse d'avancement de NT5 (annoncé pour début 98) , les 4 ans de retard de Linux par rapport à NT risquent fort de se transformer dans 6 mois en 2 ans d'avance!
Fichiers journalisés pour protéger contre les crashs et pannes de courant
Un système d'exploitation moderne doit protéger le mieux possible l'intégrité de son système de fichiers contre une panne de courant ou un arrêt brutal quelconque. C'est pourquoi les systèmes d'exploitation comme Solaris et NT utilisent une technique de journalisation (loging) analogue à celle d'un SGBD.
Cette protection efficace a un autre avantage: elle accélère considérablement les écritures sur les disques. Celles-ci ne se font plus immédiatement dans le fichier lui-même; elles sont gardées en mémoire cache et seront exécutées dès que possible au sens de la performance. Par contre, une image du bloc de fichier à écrire est immédiatement ajoutée au bout d'un petit fichier séquentiel, le journal, où elle sera disponible pour terminer ultérieurement la mise à jour du fichier de données si nécessaire. L'accès au fichier journal est en général plus rapide qu'un accès au fichier de données, surtout si on lui a réservé un bras de disque; et l'effet de mémoire cache ajoute à la performance.

Hélas, Linux n'utilise pas de journalisation. Un système de fichiers Linux sera donc fragile, bien plus fragile que Solaris ou NT. En outre, en cas d'incident avec un disque contenant un grand système de fichiers (des milliers de fichiers) la commande "fsck" d'analyse et rattrapage de l'erreur risque de durer une heure ou plus.

N'importe quoi! Pour qu'un fsck dure une heure il faudrait probablement coller un disque de 10Go à un 486, et encore. Heureusement puisque ce fsck est périodique (tous les N boot...) pour maintenir le disque en bon ordre. Les entrées/sorties disque sont considérablement plus rapides sous Linux que sous Windows. Dans le cas de lecture/écriture non séquentielles, Louis Léon a montré que Linux pouvait être jusqu'à 20 fois plus rapide que Windows! Quant à la fiabilté du système de gestion de fichier de Windows, elle est notoirement déplorable. Même dans l'ouvrage de vulgarisation de Roberto Di Cosmo, certains inconvénients du "FileSystem" microsoft sont expliqués.
64 bits (adresses, instructions, données)
La technologie "64 bits" a 3 dimensions:
La technologie 64 bits est intéressante sur le plan performance et sur le plan précision des calculs. Les processeurs modernes la supportent de plus en plus.
Annuaire fourni avec système d'exploitation (DNS, NIS, LDAP)
DNS est la solution traditionnelle d'annuaire WAN / Internet de TCP/IP sous UNIX. NIS est son équivalent LAN. Linux et Solaris les supportent tous deux. NT supporte DNS. La solution d'avenir est Lightweight Directory Access Protocol (LDAP) supportée par Solaris, promise dans NT 5 fin 1999 selon Microsoft, et indisponible dans Linux.
L'absence d'annuaire LDAP (sauf si on en trouve un, comme d'habitude) est lourde de conséquences pour l'administration et les applications, ainsi que pour l'intégration avec les autres systèmes d'exploitation modernes, qui des mainframes à NetWare ont tous adopté LDAP.
Respect des standards: UNIX98, POSIX, etc.

Outils de génie logiciel

API système documentées
Les trois systèmes d'exploitation ont des API documentées.
Compilateurs C, C++, Java avec un environnement de développement moderne
Les outils de développement gratuits GNU, disponibles sous Linux, sont aussi disponibles sous Solaris.
L4G et générateurs d'applications

Qualité de service

Une solution d'entreprise ne peut se contenter de fonctionnalités suffisantes. Elle se juge aussi sur son aptitude à fournir une bonne qualité de service, indispensable aux applications vitales (classes 3, 4 et 5). Cette qualité s'apprécie dans les domaines ci-dessous, dont nous donnons une définition succincte, et qui impactent les choix d'architecture.
Accessibilité
Définition: une application est accessible si on peut travailler avec à partir de l'infrastructure dont on dispose: matériel, logiciel système et accès réseau.
Exemples:
Disponibilité
Définition: une application est disponible si on peut s'en servir sans attendre chaque fois qu'on en a besoin.
En somme, c'est l'application qui doit attendre que l'homme veuille travailler, pas le contraire. La disponibilité implique:
Intégrité des données et des transactions
Définition: un ensemble de données ou d'opérations a la propriété d'intégrité lorsqu'il n'a pas subi d'altération qui supprime, ajoute, modifie ou déplace un élément.
Exemple: une transaction qui comprend plusieurs opérations a la propriété d'intégrité si toutes ses opérations se sont bien déroulées et dans le bon ordre.

Ne pas confondre intégrité et cohérence: la cohérence implique la non-contradiction des éléments qui existent, pas la présence de tous les éléments d'un ensemble.

On a l'habitude de décrire les qualités d'une transaction au moyen de quatre critères symbolisés par le sigle ACID: Atomicité, Cohérence, Isolation, Durabilité.