1. John Siracusa
    1. Mountain Lion
      1. Introduction
      2. Achat et installation
      3. Changements d'interface (1)
      4. Changements d'interface (2)
      5. Changements d'interface (3)
      6. Applications (1)
      7. Applications (2)
      8. Applications (3)
      9. Applications (4)
      10. Applications (5)
      11. iCloud(1)
      12. iCloud(2)
      13. iCloud(3)
      14. Gatekeeper(1)
      15. Gatekeeper(2)
      16. Retina et HiDPI
      17. Fourre-tout (1)
      18. Fourre-tout (2)
      19. Fourre-tout (3)
      20. Fourre-tout (4)
      21. Fourre-tout (5)
      22. Fourre-tout (6)
      23. Recommandations
      24. Deux pères, un fils
    2. Lion
      1. Introduction
      2. Installation
      3. Revoir les fondamentaux
      4. Redimensionnement des fenêtres
      5. Et voici pour les cinglés
      6. La gestion des fenêtres
      7. Le modèle de document
      8. le modèle des processus
      9. Les éléments internes (1)
      10. Les éléments internes (2)
      11. ARC
      12. Le système de fichiers
      13. Ses modifications dans Lion
      14. Documents, résolution
      15. Le Finder
      16. Mail, Safari
      17. Fourre tout (1)
      18. Fourre tout (2)
      19. Recommendations
    3. Snow Leopard
      1. Introduction
      2. Le ticket d'entrée
      3. L'installation
      4. Nouvel aspect
      5. Détails internes
      6. Quick Time X
      7. Système de fichiers
      8. Faire plus avec plus
      9. LLVM et Clang
      10. Les blocs
      11. Concurrence
      12. Grand Central Dispatch
      13. Asynchronicité
      14. Open CL
      15. La différence...
      16. Quick Time Player
      17. Le Dock
      18. Le Finder
      19. Exchange
      20. Performances
      21. Fourre tout (1)
      22. Fourre tout (2)
      23. Le futur
    4. Leopard
      1. Introduction
      2. L'héritage
      3. Nouvel aspect 1
      4. Nouvel aspect 2
      5. Le noyau
      6. 64 bits
      7. FS Events
      8. Core animation
      9. Quartz GL
      10. Core UI
      11. Détails internes
      12. Le Finder
      13. Le Dock
      14. Time Machine
      15. Performances
      16. Pot pourri
      17. Demain
    5. Tiger
      1. Introduction
      2. Retour sur le passé
      3. Nouvel aspect de Tiger
      4. Mises à jour du noyau
      5. Le lancement
      6. Les méta-données
      7. Attributs étendus
      8. Listes de contrôle d'accès
      9. Spotlight 1
      10. Spotlight 2 : analyse et potentiel
      11. Types de fichiers
      12. Méta-données : la fin
      13. Quartz
      14. Quartz 2D Extreme
      15. Core Image
      16. La vidéo sous Tiger
      17. Dashboard
      18. Le Finder
      19. Les performances
      20. Pot pourri
      21. Conclusion
    6. Panther
      1. Introduction
      2. Les précédents
      3. L'installation
      4. Nouvel aspect
      5. Performances
      6. Changement rapide d'utilisateur
      7. Gestion des fenêtres
      8. Exposé
      9. Le Finder
      10. Performance du Finder
      11. Toujours le même
      12. Safari
      13. XCode
      14. Conclusion
    7. Jaguar
      1. Introduction
      2. Le nom
      3. L'installation
      4. Modifications d'Unix
      5. Dévelopeurs...
      6. Quoi de neuf
      7. Rendezvous
      8. Quartz Extrême
      9. Performance
      10. Compositions
      11. Le Finder
      12. Applications
      13. Sherlock
      14. Le portrait
    8. Puma
      1. Prelude
      2. Introduction
      3. Installation
      4. Réglages système
      5. Performance
      6. Redimensionnement des fenêtres
      7. Utilisation de la mémoire
      8. Diagnostics de mémoire
      9. L'environnement Classique
      10. L'interface Utilisateur
      11. Le Finder
      12. Extensions de fichiers
      13. Divers, conclusion
    9. Cheeta (Mac OS X 10.0)
      1. Qu'est ce que Mac OS X
      2. Installation
      3. Le démarrage
      4. Utilisation de la RAM
      5. Performance
      6. Performance des applications
      7. Stabilité
      8. L'interface utilisateur
      9. Le Finder
      10. Le navigateur du Finder
      11. Le Finder (divers)
      12. L'interface utilisateur
      13. Os X Classique
      14. Système de fichiers
      15. Unix
      16. Applications
      17. Conclusion
    10. Les débuts de MacOsX
      1. 1999 : OSX DP2
      2. 2000 : Quartz et Aqua/a>
      3. Fin de la lune de miel
      4. la première bêta publique
      5. 2001 : Mac OS X 10.0
      6. Un investissement
    11. Finder Spatial
      1. Introduction
      2. Interfaces spatiales
      3. Le Finder spatial
      4. Le concierge
      5. Un nouveau Finder
      6. Le browser
      7. Le browser spatial
      8. Finder et méta-données
      9. Les modèles
      10. Pensées finales

La stabilité

Mac OS X est la version la plus stable de Mac Os qui ait jamais été proposée. Vous ai-je étonné ? C'est peu vraisemblable, compte tenu de l'inclinaison pour la technique du lecteur moyen de Ars Technica. Eh oui, Mac OS X est un système d'exploitatoin moderne, avec du multitâches préemptif et (enfin) une protection de mémoire. Les seules choses qui peuvent mettre à bas un Mac sont :
• des bogues dans le code du noyau (y compris les pilotes de périphériques)
• une insuffisance de ressources, et des attaques en déni de service
• l'inaptitude de l'interface utilisateur.

Les crash du noyau (kernel panics)

Les crash (ou paniques) du noyau sont le gros problème. Si vous tombez sur un de ces désagréments, votre seul recours est de redémarrer (ou de déboguer immédiatement le crash). C'est l'équivalent des boites de dialogue avec la bombe bien connue de Mac OS classique, mais beaucoup, beaucoup plus vilain.

figure

Fig. 1 : Très vilain, la panique du noyau de Mac OS X.

J'ai utilisé beaucoup de versions de Mac OS X à partir de la DP2 en 1999, et j'ai seulement été capable de créer un seul crash de noyau (pour les curieux, dans la construction 4K70 ; voyez plus loin sur les numéros de construction). Je ne doute pas que OS X 10.0 a des bogues de noyau ou de pilotes qui attendent juste d'être découvertes, mais la situation est meilleure de plusieurs ordres de grandeur que pour le monde de Mac OS Classique, où n'importe quel processus, n'importe où, peut bloquer votre machine.

Manque de ressources

La cause classique d'un crash par manque de ressources est la bombe "fork" du nom de l'appel système Unix qui enclenche un nouveau processus. Une bombe fork est un processus qui se répète de lui même lors d'une tentative pour consommer des ressources sytème. Une variante courante consiste à rajouter de l'allocation de mémoire avant chaque fork (). Le résultat est un processus qui se multiplie, et engloutit de la mémoire et des ressources du noyau jusqu'à ce que le système ne réponde plus, et puisse être considéré comme mort.

La défense normale contre de telles attaques est une limitation des ressources imposée aux utilisateurs. Les limites en ressources de BSD empêchent les bombes fork simples de faire de gros dégâts. Au cours de mes essais, les bombes fork ont fonctionné jusqu'à la limite de 100 par utilisateur, après quoi aucun nouveau processus n'a pu être lancé. Des bombes fork combinées avec une allocation massive de mémoire ont aussi rencontré des limites de ressources pour finalement crier grâce avec des messages "error : can't allocate region". Dans ces deux circonstances, l'OS est resté suffisamment réactif pour que je sois capable de tuer les processus en cause, et de ramener le système à la normale.

Le super-utilisateur peut bien sûr annuler ou modifier ces limites. Je n'ai pas testé si le super-utilisateur peut ou non bloquer le système en lui coupant ses ressources, parce ce que celui-ci peut tout simplement effacer récursivement le volume de démarrage s'il veut causer des problèmes. Je soupçonne aussi que des attaques efficaces dévoreuses de ressources sont possibles de la part d'utilisateurs normaux, mais je n'ai pas été capable de créer de dommages réels au cours de ce test trop bref.

La conclusion, c'est que Mac OS X se comporte assez bien quand il est soumis à des attaques basiques de privation de ressources. Et cela semble encore mieux quand on le compare à Mac OS classique, où une attaque effective en privation de ressource consiste tout simplement à maintenir appuyé le bouton de la souris.

Mort de l'interface utilisateur

Le danger ultime, pour la stabilité, est la possibilité qu'un processus utilisateur faisant partie de l'IUG provoque le crash. En soi, cela n'atteint pas le système, puisque les processus au niveau de l'utilisateur ne peuvent pas crasher l'OS. Mais sans IUG, le système est comme mort pour quelqu'un qui n'a pas les compétences et les moyens de se loguer et de corriger le problème en utilisant telnet (en supposant qu'il soit validé !). La mort de l'IUG et/ou son incapacité à répondre aux actions de l'utilisateur (qui peut être en réalité un crash du noyau ou associé à un driver) est équivalent à un crash réel pour la plupart des utilisateurs. J'ai rencontré plusieurs situations semblables dans les versions pour développeurs de Mac OS X aussi bien que dans la bêta publique, et (malheureusement) la livraison 10.0 n'en est pas immunisée.

Un exemple récent et très frustrant implique l'environnement classique. J'avais laissé mon G4/450 dual en veille toute la nuit, avec toutes mes applications (natives et classic) ouvertes A mon retour le matin, classic était gelé. J'ai tapé la commande Esc-Cmd-Opt pour lancer le dialogue "Forcer à quitter", mais rien ne s'est passé. (Je me suis aperçu que forcer à quitter marche rarement quand j'en ai réellement besoin sous Mac OS X). Heureusement, j'avais plusieurs fenêtre de terminal ouvertes, et j'ai tué manuellement le processus classic. La difficulté principale est venue quand j'ai essayé de relancer classic. Il se gelait à mi-chemin, m'obligeant à le tuer manuellement. Le Finder s'était aussi gelé à ce moment, et j'ai été aussi obligé de le tuer. Finalement, les choses ont dégénéré au point où les seuls processus qui restaient étaient le terminal et le Dock. J'ai renoncé, tué le reste des processus, et je suis revenu à l'écran de login.

Mais attendez, ce n'est pas fini : quand je me suis logué à nouveau, je me suis rendu compte que classic ne s'était pas lancé correctement. Les applications se remettaient à geler, et j'ai été obligé de tuer tout, et de redémarrer. Cela même ne fut pas facile, puisque le menu Redémarrer lui-même ne fonctionnait pas. Après le redémarrage, tout redevint normal.

J'ai rencontré des situations semblables sur le G3. Pire, j'ai souvent échoué à revenir à l'écran de login, en laissant la machine échouée avec un écran blanc et aucun moyen de la ramener à la vie (par exemple, à partir d'une autre machine sous telnet). Dans une telle situation, une interruption câblée comme le alt-Fn des consoles virtuelles de Linux serait bien utile.

La morale de ces épisodes est que l'OS a la stabilité de son interface utilisateur. Pour la plupart des utilisateurs, l'interface est l'ordinateur. C'est bien de ne plus être à quelques milli-secondes d'un dialogue de bombe sous Mac OS classique, et d'un redémarrage obligatoire, mais une IU défectueuse qui réclame des minutes de diagnostic et de réparation, et finalement nécessite quand même un redémarrage, n'est pas agréable non plus.

Conclusion sur la stabilité

Mac OS X est incontestablement plus stable que Mac OS 9, mais son avantage théorique de stabilité ne se réalise pas complètement, du fait des nombreuses bogues décrites ci-dessus. Sa stabilité effective n'est qu'à la marge meilleure que celle de Mac OS 9. Avec la version 10.0, la question n'est pas de savoir si vous rencontrerez des bogues fatales, mais quand, et lesquelles. Si vous avez un matériel complexe, avec de nombreux périphériques, vous pouvez avoir un tas de "kernel panics". Si vous dépendez massivement de l'environnement classique, votre ennemi principal peut être le gel de l'interface utilisateur. Si vous avez la malchance de passer par une application mal écrite (ou déviante) qui accapare des ressources, votre Mac peut moudre jusqu'à l'arrêt dans les affres convulsives du disque.

Si vous rêvez à un fonctionnement permanent sur l'année, la version 10.0 sera décevante, à moins que vous ne soyez très discipliné dans son utilisation. Le potentiel est là, mais en réalité les bords sont encore très rugueux.