Mac OS X - Exposé du 04/09/2000

 

Ceci est le site web que j'ai réalisé après avoir présenté un exposé basé sur une présentation Powerpoint (MacOSX-080911.ppt)

 

MAC OS X est le futur système d'exploitation client des ordinateurs Apple Macintosh. Il sortira en janvier 20001.

Ce système n'a rien à voir avec le système actuel des Macintosh: Mac OS 9. Il est révolutionnaire ! Cet OS est le fruit de 3 an 1/2 de travail des ingénieurs d'Apple et de Next réunis depuis le rachat de cette société par Apple début 1997. Il est la fusion des systèmes Rhapsody, Mac OS X Server 1.0 et du Mac OS actuel avec des changements très importants. En 2001 (ou dès le dernier trimestre 2000), il sera livré en standard sur tous les Macintosh vendus.

 

Ce système est très modulaire. Il est en fait implémenté en différentes couches :

 

 


 

 

 

Bref aperçu de l'interface :

Cette interface est révolutionnaire... Vous êtes encouragées à aller voir les vidéos disponibles sur le site Apple.

Les principales caractéristiques d'Aqua sont les suivantes :

 


Classic

Classic est un environnement d'éxecution de Mac OS X. Il permet en fait d'éxecuter des applications de Mac OS 9 qui n'ont pas été portées. Evidemment, ce implique que toutes ces applications ne seront pas meilleures que sur un Mac OS 9. On ne bénéficiera d'aucune amélioration apportée par le noyau de Mac OS X. Les applications auront exactement le même comportement que sous Mac OS 9.

Ces applications sont basées sur les API (Application Programming Interface) de Mac OS 9 qui sont implémentées dans Mac OS X. Cependant, il est strictement impossible de compiler des applications pour Mac OS 8&9 sous Mac OS X.

 


 

Carbon

Il s'agit du deuxième environnement d'éxecution de Mac OS X. Il est dédié aux applications de Mac OS 8&9 qui sont portées sur Mac OS X (carbonisées dans le langage Apple. Ces applications sont modifiées pour utiliser les APIs de Mac OS X. Evidemment toute application carbonisée n'est plus compatible avec les autres Mac OS...

 

Les pricipaux apports de ces APIs sont :

Modification de la gestion de la mémoire virtuelle et de la gestion de la mémoire protégée. Dorénavant, toutes les applications s'éxecutent dans l'espace d'adressage réservé aux applications. Cela signifie que le système va être stabilisé : une application plantée ne plante pas toute la machine.

Les APIs de Mac OS 9 qui permettent d'accéder aux différents matériels de la machin ne sont pas portés. Tous les accès au harware sont réalisés au travers de l'I/O Kit.

 


 

Cocoa

 

Il s'agit du principal environnement d'éxecution de Mac OS X. Il est totalement basé sur les nouvelles fonctionnalités de Mac OS X.Cet environnement est directement hérité d'OpenStep.

Les APIs Cocoa profitent de toutes les innivations apportées par le noyau Darwin, que ce soit en terme de gestion de mémoire (mémoire virtuelle, mémoire allouée hors de la zone noyau...), de gestion de processus (gestion de files 'attente, de la péemption...)...

Les applications Cocoa peuvent être développés en langage objective C ou en Java 2 (100% objet).Elles sont optimisées pour Quartz, Aqua et Open GL. Cocoa hérite des API CoreService et CoreFoundation de Next et supporte les API Core Graphics pour l'affichage .

Caractéristques des applications Carbon/Cocoa :

 

Quelques applications qui devraient bénéficier de Cocoa : Maya (image de synthèse), Renderman (Moteur de rendu des studios Pixar), TextEdit, ElectricImage Universe (3D), Quake III, AppleProjectBuilder (programmation), Create (conception de sites web)...etc. On en annonce déjà plusieurs dizaines.

 


 

Quartz

 

Quartz est le moteur de gestion graphique de Mac OS X. Il est chargé de toute la gestion graphique 2D de cet OS. Il s'occupe de la gestion du fenêtrage, du rendu à l'écran, de la gestion des sorties grafiques : écran et imprimantes. Pour ce faire, il gère en natif la création de PDF (innovation de Mac OS X).

Il remplace QuickDraw qui est trop lent. Cependant il supporte tout de même les instruction QuickDraw et Display PostScript grâce à des plug-ins. Ce moteur graphqiue, développé par Apple et Pixar, est optimisé PowerPC, Velocity Engine G4 et pour les cartes ATI...

Quartz s'occupe du lissage des polices, de la gestion temps réel de l'affichage, de la transparence des menus... de toute l'interface Aqua...

 


 

 

La technologie 3D Open GL de SGI a été implémentée en standard dans MAC OS X. Cette technologie gère l'affichage de toputes les applications graphiques 3D, comme Quake 3, Lightwave ...

 


 

QuickTime

 

Bien sûr, MAC OS X supporte QuickTime. QuickTime 4 supporte de nombreux formats de sons (mp3, wav ...) et vidéos. Il s'est imposé comme leader grâce à une gestion du streaming. Il est évidemment cross-plateforme...

 

 


 

Darwin

 

Darwin est le coeur de Mac OS X. Le noyau de Mac OS est strcturé comme ceci :

 

 

Dans cette architecture, on retrouve beaucoup de choses. Apple a décidé de fzire tourner toutes les applications précitées en mode noyan (que ce soit Quartz, OpenGL, ...), et ce afin d'optimiser la vitesse des échanges entre les différents modules. C'est un choix d'implémentation qui se défend. Cependant, cela risque de rendre le système moins stable, puisque les ressources du noyau sont partagées avec ces applications...

Darwin n'est pas le gros bloc précedent, sur ce bloc, il n'est concerné que par ceci :

Darwin est en fait un système d'exploitation à part entière. Il est basé sur un noyau Mach 3.0 et BSD.

Son architecture est la suivante :

L'objectif de Mach 3.0 est de fournir l'abstartion du processeur à l'ensemble du système. Il va en fait cacher le processeur et la mémoire, ainsi que toues les opération qui leurs sont liées au système. Mach va gérer la protection de la mémoire, le scheduling du processeur, le multitâche et le mutlithread, et fournir un accès abstrait à l'environnement processeur. Mach est responsable de la gestion de la préemption.

Mach est basé sur une architecture de messages. Tout ce qui est fait par Mach repose sur des messages (IPC/RPC).

Le système BSD fournit l'accès au système de fichiers. Il permet la gestion de HFS, HFS+ (boot de Mac OS X), NFS,.... Il fournit évidemment toutes les APIs pour la gestion du FS.

Il fourni par ailleurs l'ensemble des APIs de gestion réseau, ainsi que toutes les règles de sécurité (droits, logging, identification...)

Pour ce qui est du réseau, BSD apporte le support de :

 


Documentation

 

Site Apple : PDFz about Mac OS X : http://developer.apple.com/techpubs/macosx/macosx.html

AppleInsider : http://www.appleinsider.com