• [^] # Stack IP

    Posté par . En réponse à la dépêche Pourquoi unix est meilleur que Windows. Évalué à 2.

    Une stack IP est une infrastructure. Un utilisateur final (non-geek) ne va pas aller sucer directement la sortie standard de sa pile. La pile IP n'est pas utilisable en elle-même. Elle est faite pour être exploitée par des applications. La pile IP ne sert pas non plus qu'à se connecter à Internet.

    Un navigateur Web, lui, peut-être considéré comme un terminal. C'est une application qui forme le dernier maillon d'une grande chaîne. Il n'est même pas obligatoire qu'il se trouve sur la même machine. Tu peux très bien le délocaliser au bout d'un long fil, comme pour un Minitel. C'est d'ailleurs vers ce genre de formule que l'on va.

    Donc typiquement, une pile IP va faire partie des infrastructures et intégrer l'OS, et le navigateur Web, lui, sera forcément une application. Imagine un peu que IE soit initialisé AVANT les pilotes de ta carte graphique ! Il suffirait de çà pour que Windows implose avant même d'avoir fini de démarrer.

    Maintenant, je te rejoins sur le fait qu'une pile IP, toute notion d'"utilité publique" mise à part, pourrait être une application, dans le sens où son activité est purement logicielle et n'est pas un "driver". L'exemple inverse existe aussi: Le noyau Linux contient un accélérateur HTTP (sur lequel les avis sont très partagés en ce qui concerne son droit de cité dans le noyau).


    Ces choses-là sont vraies en elles-mêmes mais comparer IE à une pile IP et dire que cela suit le même chemin est une hérésie. Un Navigateur Web est comme on l'a dit le dernier maillon d'une chaîne et n'est donc exploité par rien d'autre que l'utilisateur, sauf cas artificiels, et le système d'aide en ligne est un faux exemple car il s'agit bien de lancer le navigateur avec le nom de la page à afficher en argument. Affirmer alors que IE est un composant fondamental de Windows, c'est se ficher du monde. C'est peut-être maintenant un composant incontournable de l'interface graphique. Mais là, on entre dans un autre débat, celui-ci:

    ben perso je serais d'accord car ca serait ideal d'avoir un OS completement modulaire

    Il me semble que l'on y est parfaitement arrivé sous Linux, non ? Toutes les fonctions du noyau sont optionnelles, jusqu'à la dernière. Ca fonctionnait déjà depuis les premières versions, et à cette époque on pensait à peine à W3.1. Quant à l'interface graphique, X est devenu un standard Unix universel, et XFree86 en particulier n'est pas propre à Linux. Pourtant il est unanimement distribué et préconfiguré. Ensuite, où est le bureau virtuel sous Windows (hors drivers spécifiques de certaines cartes) ? Ou sont les bureaux "multiples" ? Comment change-t-on de Window Manager ?

    mais dans le cas d'IE, si tu l'enleves completement, t'as plus d'aide en ligne par exemple, est-ce que c'est acceptable ? comment regler ce probleme ?

    Les man-pages que tu décries ailleurs ont été conçues pour cela. Elles sont écrites dans un format conçu pour être traitées par un préprocesseur. A partir de là, tu peux virtuellement gérer tous les formats d'affichages et te plier à toutes les contraintes. On avait déjà reglé le problème il y a 30 ans.


    De toutes façon, cela reste une hypocrisie. Si la pile IP fait partie intégrante d'Unix, c'est parce que son concept a été développé sous Unix, à la même époque, et principalement par les mêmes personnes, tout comme le langage C. CP/M est officiellement une inspiration de ce fonctionnement, PC/DOS, QDOS, et donc MS/DOS aussi. Même si très longtemps, ces derniers ne connaissaient même pas la notion de réseau (ce qui a permis à Novell de connaître ses heures de gloire). Windows n'a donc JAMAIS été conçu pour le net ("Pourquoi investir dans un créneau qui ne nous rapportera pas un centime de bénéfice ?" déclairait Bill Gates, avant 1995).

    Mêmes les sockets, un concept aussi fondamental, est une invention de BSD. Autant utiliser l'original !

    Maintenant:

    - Comment ouvre-t-on plusieurs sessions utilisateurs simultanément sur un poste NT ? C'est très pénible, car pour faire des installations de logiciels sur le poste d'un user, le technicien est obligé de fermer les applications de l'utilisateur pour pouvoir installer un composant.

    - Ou sont les outils de développement ? Ou est le compilateur C en standard dans la norme Unix ?

    - Ou est l'équivalent de SysRq ?

    - Comment fais-tu facilement du bonding, du load balacing, du filtrage de paquets le package NT fraichement sorti de sa boite ?

    - Ou sont les équivalents de /dev/cpu/microcode, de /dev/nvram, ou /dev/cpuid ?

    - Ou est l'équivalent de /proc ?

    - Comment lis-tu les disquettes Mac, ou Amiga ?

    - Comment gères-tu les modules du noyau ?

    - Comment fais-tu pour avoir une RTC qui stocke l'horloge en GMT sous Windows ?

    - Comment gères-tu les flux des applications Windows ? Rares sont celles qui utilisent la console.

    - Comment fais-tu pour changer une adresse IP sur une carte réseau sans rebooter (et stopper le serveur Web qui tourne derrière) ?

    - Quid de l'IA64 ?

    Malgré cela, il y a encore des gens qui disent que Linux a beaucoup de chemin à parcourir pour égaler Windows NT ("Linux Myths"). Il y a aussi certaines huiles chez Microsoft, qui recommandent aux admins de relancer leur serveur Web une fois par semaine, pour l'hygiène. Il y en a même qui affirment que c'est le travail de l'admin d'adapter le réseau au produit Windows NT, et pas à Microsoft de corriger ses bugs ni de modifier son produit.

    Je suis désolé, Windows est un système bureautique, point. Pour le reste ce n'est pas un OS sérieux.