Sunteți pe pagina 1din 13

Universitatea Politehnica Bucureti

Facultatea de Electronic, Telecomunicaii i Tehnologia Informaiei

Sisteme de Operare Avansate


Sistemul de operare Mac OS X
Tem de cas

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

Arhitectura Mac OS X implementeaza un framework stratificat. Acesta framework


ajuta la dezvoltarea rapida de aplicatii prin punerea la dispozitie a codului pentru task-uri
uzuale. Mac OS X include tool-uri proprii de dezvoltare software, printrecare si un IDE
(Integrated Development Environment) numit Xcode. Xcode ofera interfete compilatoarelor
ce suporta cateva din limbajele de programare incluzand C, C++, C Sharp si Java. Pentru
tranzitia Apple-Intel, a fost modificat astfel incat dezvoltatorii sa poata sa construiasca
propriile aplicatii binare universale, care sa ofere compatibilitate atat cu platformele Intel cat
si cu platformele PowerPC din gama Macintosh.
Sub-sistemul Darwin din Mac OS X este responsabil cu administrarea sistemului de
fisiere, ceea ce include si layer-ul Unix responsabil cu permisiunile. In 2003 si 2005, 2 editori
din comunitatea Mac au criticat schema de permisiuni; Ted Landau a numit schema de
permisiuni prostconfigurata drept cea mai frecventa frustrare din Mac OS X, in timp ce Rob
Griffiths a sugerat faptul ca unii utilizatori vor fi nevoiti sa isi reseteze permisiunile in fiecare
zi, proces ce poate dura chiar si 15 minute. Recent, un alt editor Macworld, Dan Frakes, a
declarat ca procedura de reparare a sistemului de permisiuni este excesiv folosita. El
argumenteaza faptul ca Mac OS X, in mod normal manevreaza permisiunile fara interventia
user-ului si resetarea survine atunci cand problemele persista.

Versiune

Nume de
cod

Data
anuntata

Data de lansare

Ce mai recenta
versiune

Mac OS X
Hera
Server 1.0

March 16, 1999

1.2v3 (October 27,


2000)

Public Beta Kodiak

Sept 13, 2000

10.0

Cheetah

Mar 24, 2001

10.0.4 (June 22, 2001)

10.1

Puma

Jul 18, 2001

Sept 25, 2001

10.1.5 (June 6, 2002)

10.2

Jaguar

May 6, 2002

Aug 24, 2002

10.2.8 (October 3,
2003)

10.3

Panther

June 23, 2003 Oct 24, 2003

10.3.9 (April 15, 2005)

10.4

Tiger

May 4, 2004

Apr 29, 2005

10.4.11 (Nov 14, 2007)

10.5

Leopard

Jun 26, 2006

Oct 26, 2007

10.5.8 (Aug 5, 2009)

10.6

Snow
Leopard

Jun 9, 2008

Aug 28, 2009

10.6.4 (Jun 15, 2010)

10.7

Lion

Oct 20, 2010

Jul 20, 2011

10.7.5 Build 11G63(Oct 4,


2012)

10.8

Mountain
Lion

Feb 16, 2012

Jul 25, 2015

10.8.2 Build 12C60,


(Sept 192012)

Sursa: Wikipedia (http://en.wikipedia.org/wiki/XNU)

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".

2. Interfaa grafic cu utilizatorul (GUI)


Aqua este prima tema vizuala si prima interfata grafica cu utilizatorul - GUI (eng.
Graphical User Interface) dezvoltata de compania Apple pentru sistemul de operare Mac OS
X. Tema acesteia este se bazeaza pe apa asa cum si numele ei sugereaza, elemente insiprate
din picaturile de apa si folosirea excesiva a elementelor translucente sau cu efecte de
reflexie.
Interfata grafica si tema Aqua au fost introduce in ianuarie 2000 la expozitia si
conferinta MacWorld din SanFranciso. Lansarea comerciala a Aqua pentru prima data a avut
loc odata cu produsul iMovie 2 in iulie 2000.
Elementele de design Aqua contribuie la aspectul uniform al majoritatii aplicatiilor Mac
OS X. Scopul acestei teme este sa incorporeze, adancimea, translucenta si texturile complexe
intr-o interfata atragatoare comuna tuturor aplicatiilor Mac OS X. Desi tema generala este
apa sunt cateva elemente, inspirate din aspectul gelului, precum Dock-ul care faciliteaza
lansarea si navigarea intre aplicatii.
Interfata Aqua este succesoarea interfetei Platinum, folosita in Mac OS 8 si 9.
5

Fig. 1 Prima versiune Aqua GUI

Fig. 2 Prima versiune Aqua GUI

Fig. 3 Aqua GUI in Mac OS X Leopard (10.5)

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)

4.1 Sisteme de fiiere locale


HFS
HFS (Hierarchical File System) a fost primul format al sistemului de fisiere folosit pe
Macintosh Plus si pe modelele ulterioare, pana la Mac OS 8.1, atunci cand HFS a fost inlocuit
cu HFS Plus.
HFS+

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

Sisteme de fiiere de reea

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

Un director compatibil WebDav localizat pe un server specificat de un URL poate fi


montat ca un sistem de fisiere cu ajutorul comenzii mount_webdav. De cand contul Mac de
iDisk este valabil prin intermediul WebDAV, acesta poate fi montat in acest mod.
De remarcat este faptul ca Mac OS X are un framework bazat pe FreeBSD, la nivel de
sistem pentru notificare preliminara. Acesta permite montarea si demontarea fara efort a
volumelorde date dintr-o retea in functie de coneectivitatea la aceasta.

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

S-ar putea să vă placă și