Documente Academic
Documente Profesional
Documente Cultură
Manole Alexandru
Master IISC, An 1
Cuprins
1. Prezentare ................................................................................................................ 3
2. Interfaa grafic cu utilizatorul (GUI) ....................................................................... 5
3. Kernelul XNU ............................................................................................................ 7
4. Sistemul de fiiere .................................................................................................... 9
4.1 Sisteme de fiiere locale ...................................................................................... 10
4.2 Sisteme de fiiere de reea .................................................................................. 11
5. Bibliografie ............................................................................................................. 13
1. Prezentare
Mac OS X reprezinta o serie de sisteme de operare si interfete grafice bazate pe
sistemul UNIX dezvoltate, promovate si comercializate de compania Apple Inc. ncepnd din
2009, fiecare sistem Macintosh include preinstalat cea mai recent versiune a acestui
sistem de operare. Mac OS X este succesorul sistemului de operare Mac OS original sau
clasic, care a fost sistemul de operare principal al companiei Apple Computers (astzi:
Apple), nc din 1984. Spre deosebire de predecesorii si, Mac OS X este un sistem de
operare pe baz de Unix, construit pe tehnologiile dezvoltate la compania NeXT ntre 1985 i
nceputul anului 1996, cnd NeXT a fost achiziionat de ctre Apple.[1]
Mac OS X, al carui X provine de la numarul 10 in scriere romana si reprezinta o parte
importanta a identitatii brandului, este un sistem de operare cu interfata grafica bazat pe
sistemul UNIX construit pe tehnologiile dezvoltate de compania NeXT intre mijlocul anilor
80 si momentul in care compania a fost achizitionata de Apple in 1996. De la a sasea
versiune, Mac OS X 10.5 Leopard, incolo, fiecare versiune de Mac OS X a obtinut
certificarea UNIX 03 ruland pe procesoare Intel.
Prima versiune lansata a fost Mac OS X Server 1.0 in 1999, apoi a urmat o versiune
orientata catre desktop-uri denumita Mac OS X c10.0 Cheetah in Martie 2001. Versiunile
Mac OS X au fost denumite dupa marile feline: de exemplu Mac OS X v10.6 este cunoscuta
de catre utilizatorii Apple precum Snow Leopard (leopardul alb). Editia de server, Mac OS X
Server este d.p.d.v. arhitectural identic cu echivalentul pentru desktop si include tool-uri
care sa faciliteze managementul unui grup de masini ce utilizeaza Mac OS X si sa ofere acces
la serviciile de retea. Aceste tool-uri include un MTA (mail transfer agent) un server Samba,
un serve LDAP, un server de nume de domeniu s.a. Este presetat pe hardware-ul Apple
Xserve dar poate fi rulat pe aproape toate configuratiile curente Apple.
Core-ul Mac OS X este un sistem de operare compatibil POSIX bazat pe kernel-ul XNU
cu facilitatile standard Unix disponibile din linia de comanda. Apple a lansat aceasta familie
software gratis si open-source sub numele de Darwin. Peste Darwin Apple a aplicat o serie
de componente printre care interfata Aqua si utilitarul Finder pentru a completa sistemul de
operare Mac OS X.
Mac OS X a introdus o serie de noi capabilitati pentru a oferi o platform mai stabila i
de mai fiabila dect predecesorul su, Mac OS 9. De exemplu, preemiunea multi-taskingului
i protecia de memorie au imbunatatit capacitatea sistemului de a rula mai multe aplicaii
simultan, fr a le ntrerupe sau fara a se corupe reciproc. Multe aspecte ale arhitecturii Mac
OS X sunt derivate din Openstep, care a fost conceput pentru a fi portabil, pentru a facilita
tranziia de la o platform la alta. De exemplu, Nextstep a fost portat de la staiile de lucru
originale bazate pe NeXT 68K catre arhitecturi x86 sau altele nainte ca NeXT sa fie
cumprat de Apple, iar OpenStep a fost portat mai trziu pe arhitectura PowerPC, ca parte
a proiectului Rhapsody.
[1] http://ro.wikipedia.org/wiki/Mac_OS_X
Versiune
Nume de
cod
Data
anuntata
Data de lansare
Ce mai recenta
versiune
Mac OS X
Hera
Server 1.0
10.0
Cheetah
10.1
Puma
10.2
Jaguar
May 6, 2002
10.2.8 (October 3,
2003)
10.3
Panther
10.4
Tiger
May 4, 2004
10.5
Leopard
10.6
Snow
Leopard
Jun 9, 2008
10.7
Lion
10.8
Mountain
Lion
Cu exceptia versiunii Mac OS X Server 1.0 si cea originala public beta, restul
versiunilor Mac OS X au fost denumite dupa marile feline.
Medii de Programare
Quartz 2D este un motor grafic bidimensional disponibil pentru dezvoltarea aplicaiilor
iOS i Mac OS X pentru toate mediile de aplicaii din afara nucleului. Quartz 2D asigur nivel
sczut, redare uor 2D de ieire indiferent de afiare sau a dispozitivului de imprimare.
Quartz 2D are rezoluia independent de dispozitiv. Quartz 2D API este uor de utilizat i
ofer acces la caracteristici puternice cum ar fi straturile de transparen bazate pe cale de
desen, de redarea n afara ecranului, gestionarea avansat a culorilor, randare anti-alias i
crearea de documente PDF. Quartz 2D API este parte a cadrului Core Graphics, Quartz poate
fi menionat ca Core Graphics sau CG. Cocoa este un mediu de aplicaii att pentru sistemul
de operare OS X i iOS, sistemul de operare utilizat pe dispozitivele Multi-Touch, cum ar fi
iPhone, iPad i iPod touch. Acesta const ntr-o suit de biblioteci software orientate pe
obiect, un sistem de rulare i un mediu de dezvoltare integrat. X Window System face
posibil rularea de aplicaii bazate pe X11 n Mac OS X. Pe baza proiectului open-source
XFree86 - punerea n aplicare cele mai comune de X11 este compatibil cu Mac OS X i
complet integrat cu Mac OS X. Acesta include tehnologiile complete X11 R6.6, X11 window
server, Quartz window manager, biblioteci i utiliti de baz ca xterm. Fundaia Core este o
bibliotec cu un set de interfee de programare conceptual derivate din cadrul Objective-C
pe baz de Fundaia dar puse n aplicare n limbajul C. Pentru a face acest lucru, Core
Fundatia implementeaza un model de obiect limitat n C. Core Fundaia definete tipuri
opace care ncapsuleaz date i funcii, denumit n continuare "obiecte".
3. Kernelul XNU
XNU este un kernel achizitionat si dezvoltat de compania Apple, utilizat de sistemul de
operare Mac OS X si lansat precum un software open-source ca parte din sistemul de
operare Darwin. XNU reprezinta acronimul cuvintelor X is Not Unix (X nu e Unix).
Initial dezvoltat de NeXT pentru sistemul de operare NeXTSTEP, XNU a fost un kernel
hibrid ce combina versiunea 2.5 a kernelului Mach dezvoltat de Carnegie Mellon University
cu comeponente preluate de la 4.3BSD si un API orientat catre obiecte utilizat la scrierea
driverelor, numit Driver Kit.
Dupa ce Apple a achizitionat NeXT, componenta Mach a fost upgradata la versiunea
3.0, componentele BSD au fost upgradate cu ajutorul codului din proiectul FreeBSD iar Driver
Kit-ul a fost inlocuit cu un API C++ pentru scrierea driverelor numit I/O Kit.
Ca si alte kernel-uri moderne, XNU este un hibrid, care contine caracteristici monolitice
si micro-kerneluri, incercand sa realizeze o buna utilizare a ambelor tehnologii, cum ar fi
capacitatea de trecere a mesajelor micro-kernelurilor, care permite modularitate mai mare
si portiuni mai mari de OS pentru a beneficia de memoria protejata, si deasemenea
pastrarea vitezei kernelurilor monolitice de la anumite sarcini critice.
In prezent, XNU ruleaza pe ARM, IA-32, x86-64 si pe procesoare bazate pe PowerPC.
MACH
Baza kernelului XNU este un microkernel simplu Mach. Ca atare, acesta este capabil de
a rula XNU ca procese separate, care permite o flexibilitate mai mare(se pot rula mai multe
7
sisteme de operare in paralel peste nucleul Mach), dar aceasta deseori reduce performanta
din cauza consumarii timpului de kernel/cauzat de switch-ul de useri la nivel de kernel si de
copierea mesajelor ntre spaiile de adresa microkernel i cea a serviciilor de tip daemon. Cu
Mac OS X, designerii au incercat sa inteleaga anumite sarcini si astfel functionalitatile BSD au
fost introduce in nucleu cu Mach. Rezultatul este dat de o combinatie intre Mach si kernelul
clasic BSD, pentru ambele existand avantaje si dezavantaje.
Mach asigura thread-uri, procese, sarcini multiple pre-emptive, mesaje in trecere
(utilizate in comunicatii intre procese), memorii protejate, management de memorii virtuale,
suport soft in timp real, suport de depanare a kernelului, si consola I/O.
BSD
Portiunea de Distributie Software Berkeley(BSD) a kernelului asigura POSIX API(sistem
de apeluri BSD), modelul de proces Unix peste sarcinile Mach, politici de securitate de baza,
id-uri de grup si de utilizator, permisiuni, stiva de retea, codul fisierului virtual de sistem (ce
include nivelul de jurnalizare independenta a fisierelor de sistem), mai multe sisteme de
fisiere cum ar fi HFS/HSF+, Network File System (NFS), client si server, cadre criptografice,
Sistemul Unix V cu comunicatii intre procese (IPC), subsistemul Audit, control de acces
obligatoriu, si niste primitive de blocare. Codul BSD present in XNU vine de la kernelul
FreeBSD. Cu toate ca o mare parte a fost modificata semnificativ, inca apare partajarea
codului intre Apple si proiectul FreeBSD.
K32/K64
XNU in Mac OS X 10.6 Snow Leopard (Darwin, versiunea 10), este in 2 versiuni: o
versiune pe 32 biti numita K32 si o versiune pe 64 de biti numita K64. K32 poate rula aplicatii
de 64biti in spatiul utilizator. Ce apare nou in Mac OS X 10.6 este abilitatea de a rula XNU in
spatiul kernel de 64 de biti. K32 este kernelul implicit pentru serverul 10.6 cand este folosit
pe toate masinile, cu exceptia modelelor noi Mac Pro si Xserve si poate rula aplicatii de 64
biti. K64 are mai multe avantaje fata de K32:
Poate gestiona mai mult de 32GB RAM; se stie ca harta de memorie ar consuma o arie mare
disproportionata a spatiului kernel pe 32 de biti;
Dimensiunea bufferului cache poate fi mai mare decat ceea ce permite spatiul kernel pe 32
biti, crescand performantele I/O;
Performanta este crescuta cand se folosesc dispozitive de retea cu performante mari sau
GPU multiple, cum kernel poate marca toate dispozitivele din spatiul de 64 biti cu toate ca
au buffere DMA foarte mari.
Bootarea in timp ce se apasa 6 si 4 va forta masina sa booteze K64 pe masinile ce
suporta kernel pe 64 biti. K64 va rula aplicatii pe 32 de biti dar nu va rula extensii de kernel
pe 32 biti (KEXT) astfel incat acestea trebuie mutate pe K64 pentru a putea fi incarcate.
4. Sistemul de fiiere
La fel ca majoritatea implementarilor sistemelor de operare modern, Mac OS X
foloseste un layer vnode orientat pe obiecte. Layer-ul VFS (Virtual File System) al kernelului
XNU se bazeaza pe cel al FreeBSD-ului, desi sunt numeroasa diferente minore (spre exemplu
in timp ce FreeBSD foloseste mutex-urile, XNU foloseste mecanismul usual al blocarilor,
cache-ul de tip buffer al XNU-ului este integrat in layer-ul memoriei virtual a Mac-ului
s.a.m.d. )
Mac OS X suporta o varietate de sisteme de fisiere si formate de volum, incluzandu-le
pe cele listate in tabelul de mai jos. Desi primul format de volum este HFS Plus (Hierarchical
File System), Mac OS X poate boot-a si de pe un disc formatat cu Sistemul de fisiere UFS
(Unix File System). Versiunile viitoare ale Mac OS X vor putea sa booteze si pe alte formate
de volum.
File System
HFS
HFS Plus
UFS
WebDAV
UDF
FAT
SMB/CIFS
AFP
NFS
FTP
Descriere
Sistemul de fisiere standard Mac OS, sistem de fisiere standard
Macintosh pentru vechile versiuni de Mac.
Sistem de fisiere Mac OS Extins. Sistemul de fisiere standard
Macintosh pentru Mac OS X.
Sistemul de fisiere Unix (Unix File System). Varianta a sistemului de
fisiere BSD FFS (Fast File System).
Folosit pentru accesarea directa a fisierele pe web. De exemplu,
serviciul iDisk foloseste WebDav pentru accesarea fisierelor cu
ajutorul terminalelor mobile.
Universal Disk Format. Sistem de fisiere standard pentru toate
formele de DVD media (video, ROM, RAM and RW) si o parte din
formatele de CD reinscriptibil.
Sistemul de fisiere MS-DOS cu variantele de 16 si 32 de biti.
Folosit pentru sharingul de fisiere in servele de fisiere Microsoft
Windows SMB.
AppleTalk Filing Protocol. Sistem de fisiere de retea primar folosit de
toate veriunile Mac OS.
Network File System. Standard comun folosit de standardul de
sharing de fisiere BSD. Mac OS X suporta NFSv2 si NFSv3 peste TCP si
UDP.
Sistem de fisiere folosit peste standardul de internet FTP (File
Transfer Protocol).
Sursa: Wikipedia (http://en.wikipedia.org/wiki/XNU)
HFS+ is the preferred filesystem on Mac OS X. It supports journaling, quotas, byterange locking, Finder information in metadata, multiple encodings, hard and symbolic links,
aliases, support for hiding file extensions on a per-file basis, etc. HFS+ uses B-Trees heavily
for many of its internals.
HFS+ este, arhitectural, similar cu HFS cu cateva importante imbunatatiri precum:
Se folosesc blocuri de 32 de biti pentru alocarea memoriei in loc de 16 biti. HFS divide spatiul
pe disc dintr-o partitie in blocuri alocate de marime egala. Deoarece 16 biti sunt folositi
pentru a referi un bloc, atunci pot fi maxim 216 blocuri alocate intr-un sistem de fisiere HFS.
Astfel folosind 32 de biti pentru indentificarea blocurilor rezulta mult mai putin spatiu irosit
deci mai multe fisiere.
Nume de fisiere mai lungi pana la 255 de caractere.
Nume de fisiere bazate pe codarea Unicode.
Atributele Fisierelor/Directoarelor pot fi extinse pe viitor (in opozitie cu ideea de a avea
marime fixa).
Un fisier dedicat de start-up poate fi gasit usor (locatia si marimea sunt memorate in
header-ul volumului de date intr-o locatie fixata) in momentul boot-arii. Acesta face ca
sisteme non-Apple sa boot-eze cu usurinta pe un sistem de fisiere HFS+.
Cel mai mare fisier poate avea marimea 263 bytes.
Alias-urile
Alias-urile sunt similare linkurilor simbolice in sensul ca permit existent mai multor
referinte catre un fisier sau un director. In plus, atunci cand tinta unui link este mutata (nu si
inlocuita insa), linkul simbolic devine nefunctional in timp ce alias-ul nu. Acest lucru este
posibil datorita faptului ca sub HFS+, fiecare fisier/director are un identificator unic si
persistent stocat in sistem alaturi de calea sa. Daca unul din cele doua (calea sau id-ul) este
gresit, atunci aliasul il updateaza pe cel gresit cu cel corect (folosindu-se de cel disponibil).
Aceasta proprietate este motivul pentru care este posibila mutarea aplicatiilor in diferite
locuri pe disc fara a ne ingrijora de ruperea legaturilor/scurtaturilor create in directoarele de
install.
Pentru a se putea bucura de avantajele aliasurilor, o aplicatie trebuie sa se foloseasca
fie de API-ul Carbon fie de Cocoa, deoarece acest feature nu este disponibil prin API-ul
POSIX.
10
Optimizri
HFS+ are de asemnea o serie de optimizari specifice. Cand un fisier este deschis pe un volum
de date HFS+, urmatoare conditii sunt testate:
Fisierul este mai mic de 20 Mb
Fisierul este deja deschis
Fisierul este de tip read-only
Fisierul este fragmentat
Sistemul a pornit de cel putin 3 minute
Daca toate aceste conditii sunt verificate, atunci fisierul este relocate si fragmentat
concomitent.
MSDOS
Mac OS X include suport pentru sistemele de fisiere MSDOS (FAT12, FAT12 si FAT32).
NTFS
Mac OS X oferta suport de tip read-only pentru sistemele de fisiere NTFS.
In timp ce Mac OS X suporta multe sisteme de fisiere, exista posibilitatea intalnirii unor
sisteme nesuportate inca. Ext2, ext3 ale Linuxului sau sistemul Reiser spre exemplu nu sunt
suportate, desi pot fi gasite implementari ext2 open-source pentru Mac OS X. Interesant este
faptul ca, BootX, bootloaderul Mac OS X, intelege sistemul de fisiere ext2 indeajuns incat
sa poate incarca un kernel din acesta.
4.2
AFP
Apple Filing Protocol (AFP) este un protocol proprietar Appler folosit pentru sharing-ul
in retea. Exista aplicatii software ce ofera posibilitatea ca AFP-ul sa co-existe cu NFS-ul. Astfel
fisierele share-uit cu AFP pot arata intr-o retea precum in NFS si vice-versa.
FTP
Comanda mount_ftp monteaza un director local pe un server de FTP. Aceasta
functionalitate este doar una de tip citire (read-only) si este compatibila cu browser-ele web.
NFS
Mac OS X include un client NFS si suport pentru server (versiunea 3) BSD, inclusiv
extensia NQ prin care un fisier poate fi imprumutat. (to lease = a inchiria, a arenda).
SMB/CIFS
Mac OS X Panther include Samba3.0 ce suporta SMB/CIFS.
WebDAV
11
12
5. Bibliografie
http//:developer.apple.com
http://www.ebook-x.com/mac-os-x-leopard-beyond-themanual.html
http://en.wikipedia.org/wiki/XNU
http://en.wikipedia.org/wiki/Mac_OS_X
13