You are on page 1of 13

Universitatea Politehnica București

Facultatea de Electronică, Telecomunicații și Tehnologia Informației

Sisteme de Operare Avansate
Sistemul de operare Mac OS X
Temă de casă

Manole Alexandru
Master IISC, An 1

...................................................... 5 3.................... 11 5.................................................................................................... 3 2.........................................Cuprins 1............... 9 4....................................... 7 4.......................................................................2 Sisteme de fișiere de rețea .........................................................1 Sisteme de fișiere locale ....................... Prezentare ...... Kernelul XNU ......................................................... 13 2 ..................................... Sistemul de fișiere ........................................... Bibliografie .................................................................... Interfața grafică cu utilizatorul (GUI) .............................. 10 4...............

Mac OS X este succesorul sistemului de operare Mac OS original sau „clasic”. apoi a urmat o versiune orientata catre desktop-uri denumita Mac OS X c10. Versiunile Mac OS X au fost denumite dupa marile feline: de exemplu Mac OS X v10. Prima versiune lansata a fost Mac OS X Server 1. incolo.0 “Cheetah” in Martie 2001.wikipedia. Editia de server. De exemplu. pentru a facilita tranziţia de la o platformă la alta.”[1] Mac OS X. preemţiunea multi-taskingului şi protecţia de memorie au imbunatatit capacitatea sistemului de a rula mai multe aplicaţii simultan. fără a le întrerupe sau fara a se corupe reciproc.d. care a fost conceput pentru a fi portabil. Mac OS X 10. Spre deosebire de predecesorii săi. când NeXT a fost achiziționat de către Apple.v. un server de nume de domeniu s.6 este cunoscuta de catre utilizatorii Apple precum “Snow Leopard” (leopardul alb). 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. Multe aspecte ale arhitecturii Mac OS X sunt derivate din Openstep. încă din 1984. fiecare versiune de Mac OS X a obtinut certificarea UNIX 03 ruland pe procesoare Intel. Aceste tool-uri include un MTA (mail transfer agent) un server Samba. construit pe tehnologiile dezvoltate la compania NeXT între 1985 și începutul anului 1996. Mac OS X este un sistem de operare pe bază de Unix. 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. De la a sasea versiune. iar OpenStep a fost portat mai târziu pe arhitectura PowerPC. Mac OS X Server este d. Apple a lansat aceasta familie software gratis si open-source sub numele de Darwin.1.5 “Leopard”. 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. [1] http://ro. Este presetat pe hardware-ul Apple Xserve dar poate fi rulat pe aproape toate configuratiile curente Apple.a.p. un serve LDAP. al carui X provine de la numarul 10 in scriere romana si reprezinta o parte importanta a identitatii brandului. Mac OS X a introdus o serie de noi capabilitati pentru a oferi o platform mai stabila şi de mai fiabila decât predecesorul său.org/wiki/Mac_OS_X 3 . De exemplu. “Începând din 2009.0 in 1999. care a fost sistemul de operare principal al companiei Apple Computers (astăzi: Apple). Mac OS 9. Nextstep a fost portat de la staţiile de lucru originale bazate pe NeXT 68K catre arhitecturi x86 sau altele înainte ca NeXT sa fie cumpărată de Apple. fiecare sistem Macintosh include preinstalată cea mai recentă versiune a acestui sistem de operare. 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. ca parte a proiectului Rhapsody. 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.

2010 Jul 20. 2001) 10. 2 editori din comunitatea Mac au criticat schema de permisiuni. 2015 10.5. 2007 10.org/wiki/XNU) Cu exceptia versiunii Mac OS X Server 1.2. a declarat ca procedura de reparare a sistemului de permisiuni este excesiv folosita.8 (Aug 5. Xcode ofera interfete compilatoarelor ce suporta cateva din limbajele de programare incluzand C. in timp ce Rob Griffiths a sugerat faptul ca unii utilizatori vor fi nevoiti sa isi reseteze permisiunile in fiecare zi.1. 2001 Sept 25.6 Snow Leopard Jun 9. in mod normal manevreaza permisiunile fara interventia user-ului si resetarea survine atunci cand problemele persista. 2001 10. 2003) 10. 2002 Aug 24.5 Leopard Jun 26. Sub-sistemul Darwin din Mac OS X este responsabil cu administrarea sistemului de fisiere. Versiune Nume de cod Data anuntata Data de lansare Ce mai recenta versiune Mac OS X Hera Server 1. Mac OS X include tool-uri proprii de dezvoltare software.2 Build 12C60.1 Puma Jul 18. 2004 Apr 29. 2001 10.Arhitectura Mac OS X implementeaza un framework stratificat. 2000) Public Beta Kodiak Sept 13.6. a fost modificat astfel incat dezvoltatorii sa poata sa construiasca propriile aplicatii binare universale. 2012 Jul 25. care sa ofere compatibilitate atat cu platformele Intel cat si cu platformele PowerPC din gama Macintosh. proces ce poate dura chiar si 15 minute.8 (October 3.0 March 16. Pentru tranzitia Apple-Intel. 1999 1. 2005) 10.5 (June 6. printrecare si un IDE (Integrated Development Environment) numit Xcode. 2009 10. 2010) 10.3 Panther June 23. C Sharp si Java.4.7.4 Tiger May 4. 2003 Oct 24.2 Jaguar May 6. 2011 10. 2002) 10.9 (April 15. 2000 10. 2007) 10.0. 4 . 2005 10. 2006 Oct 26. C++.0 Cheetah Mar 24.11 (Nov 14.7 Lion Oct 20.4 (Jun 15. In 2003 si 2005. 2012) 10.8 Mountain Lion Feb 16.2v3 (October 27. Dan Frakes. Ted Landau a numit schema de permisiuni prostconfigurata drept „cea mai frecventa frustrare” din Mac OS X.8.wikipedia. 2003 10. restul versiunilor Mac OS X au fost denumite dupa marile feline.4 (June 22.3. 2009) 10. El argumenteaza faptul ca Mac OS X. Recent.0 si cea originala public beta. Acesta framework ajuta la dezvoltarea rapida de aplicatii prin punerea la dispozitie a codului pentru task-uri uzuale. un alt editor Macworld. (Sept 192012) Sursa: Wikipedia (http://en.5 Build 11G63(Oct 4. 2002 10. 2008 Aug 28. ceea ce include si layer-ul Unix responsabil cu permisiunile.

de redarea în afara ecranului. redare ușoră 2D de ieșire indiferent de afișare sau a dispozitivului de imprimare. folosita in Mac OS 8 si 9. X11 window server. Graphical User Interface) dezvoltata de compania Apple pentru sistemul de operare Mac OS X. Core Fundatia implementeaza un model de obiect limitat în C. sistemul de operare utilizat pe dispozitivele Multi-Touch. Quartz 2D API este parte a cadrului Core Graphics.Medii de Programare Quartz 2D este un motor grafic bidimensional disponibil pentru dezvoltarea aplicațiilor iOS și Mac OS X pentru toate mediile de aplicații din afara nucleului. Quartz poate fi menționat ca Core Graphics sau CG. Scopul acestei teme este sa incorporeze. biblioteci și utilități de bază ca xterm. 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. Quartz 2D API este ușor de utilizat și oferă acces la caracteristici puternice cum ar fi straturile de transparență bazate pe cale de desen. Fundația Core este o bibliotecă cu un set de interfețe de programare conceptual derivate din cadrul Objective-C pe bază de Fundația dar puse în aplicare în limbajul C. Cocoa este un mediu de aplicații atât pentru sistemul de operare OS X și iOS. Acesta include tehnologiile complete X11 R6. precum Dock-ul care faciliteaza lansarea si navigarea intre aplicatii. adancimea. gestionarea avansată a culorilor. elemente insiprate din picaturile de apa si folosirea excesiva a elementelor translucente sau cu efecte de reflexie. iPad și iPod touch.6. un sistem de rulare și un mediu de dezvoltare integrat. Interfața grafică cu utilizatorul (GUI) Aqua este prima tema vizuala si prima interfata grafica cu utilizatorul . Quartz window manager. 2. Quartz 2D are rezoluția independentă de dispozitiv. Desi tema generala este apa sunt cateva elemente. Quartz 2D asigură nivel scăzut. Pe baza proiectului open-source XFree86 . inspirate din aspectul gelului.punerea în aplicare cele mai comune de X11 este compatibil cu Mac OS X și complet integrată cu Mac OS X. Acesta constă într-o suită de biblioteci software orientate pe obiect. 5 .GUI (eng. denumit în continuare "obiecte". X Window System face posibilă rularea de aplicații bazate pe X11 în Mac OS X. Core Fundația definește tipuri opace care încapsulează date și funcții. randare anti-alias și crearea de documente PDF. cum ar fi iPhone. Pentru a face acest lucru. translucenta si texturile complexe intr-o interfata atragatoare comuna tuturor aplicatiilor Mac OS X. Interfata grafica si tema Aqua au fost introduce in ianuarie 2000 la expozitia si conferinta MacWorld din SanFranciso. Interfata Aqua este succesoarea interfetei Platinum. Tema acesteia este se bazeaza pe apa asa cum si numele ei sugereaza.

Fig. 2 – Prima versiune Aqua GUI 6 . 1 – Prima versiune Aqua GUI Fig.

XNU reprezinta acronimul cuvintelor „X is Not Unix” (X nu e Unix). In prezent.0. Kernelul XNU XNU este un kernel achizitionat si dezvoltat de compania Apple. componenta Mach a fost upgradata la versiunea 3. incercand sa realizeze o buna utilizare a ambelor tehnologii. x86-64 si pe procesoare bazate pe PowerPC. utilizat de sistemul de operare Mac OS X si lansat precum un software open-source ca parte din sistemul de operare Darwin. care permite modularitate mai mare si portiuni mai mari de OS pentru a beneficia de memoria protejata. 3 – Aqua GUI in Mac OS X Leopard (10. Dupa ce Apple a achizitionat NeXT.3BSD si un API orientat catre obiecte utilizat la scrierea driverelor. care permite o flexibilitate mai mare(se pot rula mai multe 7 . MACH Baza kernelului XNU este un microkernel simplu Mach. 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. Initial dezvoltat de NeXT pentru sistemul de operare NeXTSTEP. acesta este capabil de a rula XNU ca procese separate. IA-32. 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. numit Driver Kit. cum ar fi capacitatea de trecere a mesajelor micro-kernelurilor. Ca si alte kernel-uri moderne. care contine caracteristici monolitice si micro-kerneluri.5) 3. XNU ruleaza pe ARM. si deasemenea pastrarea vitezei kernelurilor monolitice de la anumite sarcini critice.Fig. Ca atare. XNU este un hibrid.

sarcini multiple pre-emptive. permisiuni. BSD Portiunea de Distributie Software Berkeley(BSD) a kernelului asigura POSIX API(sistem de apeluri BSD). Codul BSD present in XNU vine de la kernelul FreeBSD. suport de depanare a kernelului. 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 spaţiile de adresa microkernel şi cea a serviciilor de tip daemon. management de memorii virtuale. K64 are mai multe avantaje fata de K32:  Poate gestiona mai mult de 32GB RAM. inca apare partajarea codului intre Apple si proiectul FreeBSD. codul fisierului virtual de sistem (ce include nivelul de jurnalizare independenta a fisierelor de sistem). K32 poate rula aplicatii de 64biti in spatiul utilizator. Bootarea in timp ce se apasa 6 si 4 va forta masina sa booteze K64 pe masinile ce suporta kernel pe 64 biti. Network File System (NFS). mesaje in trecere (utilizate in comunicatii intre procese). memorii protejate. designerii au incercat sa inteleaga anumite sarcini si astfel functionalitatile BSD au fost introduce in nucleu cu Mach. cu exceptia modelelor noi Mac Pro si Xserve si poate rula aplicatii de 64 biti. procese. modelul de proces Unix peste sarcinile Mach. si consola I/O. Rezultatul este dat de o combinatie intre Mach si kernelul clasic BSD. se stie ca harta de memorie ar consuma o arie mare disproportionata a spatiului kernel pe 32 de biti. stiva de retea. versiunea 10). id-uri de grup si de utilizator. Cu toate ca o mare parte a fost modificata semnificativ. suport soft in timp real. Ce apare nou in Mac OS X 10. cadre criptografice. client si server. si niste primitive de blocare.sisteme de operare in paralel peste nucleul Mach). K32/K64 XNU in Mac OS X 10.  Dimensiunea bufferului cache poate fi mai mare decat ceea ce permite spatiul kernel pe 32 biti. politici de securitate de baza. 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. cum kernel poate marca toate dispozitivele din spatiul de 64 biti cu toate ca au buffere DMA foarte mari.6 cand este folosit pe toate masinile.  Performanta este crescuta cand se folosesc dispozitive de retea cu performante mari sau GPU multiple. este in 2 versiuni: o versiune pe 32 biti numita K32 si o versiune pe 64 de biti numita K64. mai multe sisteme de fisiere cum ar fi HFS/HSF+. crescand performantele I/O. control de acces obligatoriu.6 Snow Leopard (Darwin. subsistemul Audit. Sistemul Unix V cu comunicatii intre procese (IPC). K32 este kernelul implicit pentru serverul 10.6 este abilitatea de a rula XNU in spatiul kernel de 64 de biti. pentru ambele existand avantaje si dezavantaje. Cu Mac OS X. 8 . Mach asigura thread-uri.

Varianta a sistemului de fisiere BSD FFS (Fast File System). Folosit pentru sharingul de fisiere in servele de fisiere Microsoft Windows SMB. Mac OS X foloseste un layer vnode orientat pe obiecte. Sistemul de fișiere La fel ca majoritatea implementarilor sistemelor de operare modern. desi sunt numeroasa diferente minore (spre exemplu in timp ce FreeBSD foloseste mutex-urile. sistem de fisiere standard Macintosh pentru vechile versiuni de Mac. Mac OS X suporta NFSv2 si NFSv3 peste TCP si UDP. XNU foloseste mecanismul usual al blocarilor. Mac OS X poate boot-a si de pe un disc formatat cu Sistemul de fisiere UFS (Unix File System).d. Folosit pentru accesarea directa a fisierele pe web.wikipedia. Desi primul format de volum este HFS Plus (Hierarchical File System). De exemplu. serviciul iDisk foloseste WebDav pentru accesarea fisierelor cu ajutorul terminalelor mobile. AppleTalk Filing Protocol. Sistemul de fisiere Unix (Unix File System). Versiunile viitoare ale Mac OS X vor putea sa booteze si pe alte formate de volum.a. Sistem de fisiere Mac OS Extins.m. Sursa: Wikipedia (http://en. Sistemul de fisiere standard Macintosh pentru Mac OS X. Sistemul de fisiere MS-DOS cu variantele de 16 si 32 de biti. 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 pentru toate formele de DVD media (video.4.org/wiki/XNU) 9 . Sistem de fisiere de retea primar folosit de toate veriunile Mac OS. RAM and RW) si o parte din formatele de CD reinscriptibil. Sistem de fisiere folosit peste standardul de internet FTP (File Transfer Protocol). incluzandu-le pe cele listate in tabelul de mai jos. Standard comun folosit de standardul de sharing de fisiere BSD. Layer-ul VFS (Virtual File System) al kernelului XNU se bazeaza pe cel al FreeBSD-ului. cache-ul de tip buffer al XNU-ului este integrat in layer-ul memoriei virtual a Mac-ului s. ROM. ) Mac OS X suporta o varietate de sisteme de fisiere si formate de volum. Universal Disk Format. Network File System.

hard and symbolic links. linkul simbolic devine nefunctional in timp ce alias-ul nu. Nume de fisiere mai lungi pana la 255 de caractere. etc. atunci cand tinta unui link este mutata (nu si inlocuita insa). aliases. atunci cand HFS a fost inlocuit cu HFS Plus. support for hiding file extensions on a per-file basis. Alias-urile Alias-urile sunt similare linkurilor simbolice in sensul ca permit existent mai multor referinte catre un fisier sau un director. 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.4. 10 . Deoarece 16 biti sunt folositi pentru a referi un bloc. HFS+ uses B-Trees heavily for many of its internals. Pentru a se putea bucura de avantajele aliasurilor.1. byterange locking. atunci pot fi maxim 216 blocuri alocate intr-un sistem de fisiere HFS. Finder information in metadata. deoarece acest feature nu este disponibil prin API-ul POSIX. Daca unul din cele doua (calea sau id-ul) este gresit. Astfel folosind 32 de biti pentru indentificarea blocurilor rezulta mult mai putin spatiu irosit deci mai multe fisiere. HFS+        HFS+ is the preferred filesystem on Mac OS X. Acest lucru este posibil datorita faptului ca sub HFS+.1 Sisteme de fișiere locale HFS HFS (Hierarchical File System) a fost primul format al sistemului de fisiere folosit pe Macintosh Plus si pe modelele ulterioare. similar cu HFS cu cateva importante imbunatatiri precum: Se folosesc blocuri de 32 de biti pentru alocarea memoriei in loc de 16 biti. Atributele Fisierelor/Directoarelor pot fi extinse pe viitor (in opozitie cu ideea de a avea marime fixa). Nume de fisiere bazate pe codarea Unicode. arhitectural. Cel mai mare fisier poate avea marimea 263 bytes. 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. quotas. multiple encodings. In plus. HFS+ este. HFS divide spatiul pe disc dintr-o partitie in blocuri alocate de marime egala. It supports journaling. o aplicatie trebuie sa se foloseasca fie de API-ul Carbon fie de Cocoa. pana la Mac OS 8. atunci aliasul il updateaza pe cel gresit cu cel “corect” (folosindu-se de cel disponibil). Acesta face ca sisteme non-Apple sa boot-eze cu usurinta pe un sistem de fisiere HFS+. fiecare fisier/director are un identificator unic si persistent stocat in sistem alaturi de calea sa.

NTFS Mac OS X oferta suport de tip read-only pentru sistemele de fisiere NTFS. exista posibilitatea intalnirii unor sisteme nesuportate inca. 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.2 Sisteme de fișiere de rețea AFP Apple Filing Protocol (AFP) este un protocol proprietar Appler folosit pentru sharing-ul in retea. FAT12 si FAT32). Ext2. Aceasta functionalitate este doar una de tip citire (read-only) si este compatibila cu browser-ele web.Optimizări      HFS+ are de asemnea o serie de optimizari specifice. „intelege” sistemul de fisiere ext2 indeajuns incat sa poate incarca un kernel din acesta. Interesant este faptul ca. desi pot fi gasite implementari ext2 open-source pentru Mac OS X. SMB/CIFS Mac OS X “Panther” include Samba3. BootX. 4. bootloaderul Mac OS X. atunci fisierul este relocate si fragmentat concomitent. WebDAV 11 . MSDOS Mac OS X include suport pentru sistemele de fisiere MSDOS (FAT12. (to lease = a inchiria. ext3 ale Linuxului sau sistemul Reiser spre exemplu nu sunt suportate. Cand un fisier este deschis pe un volum de date HFS+. a arenda). NFS Mac OS X include un client NFS si suport pentru server (versiunea 3) BSD. FTP Comanda mount_ftp monteaza un director local pe un server de FTP. inclusiv extensia NQ prin care un fisier poate fi “imprumutat”. Astfel fisierele share-uit cu AFP pot “arata” intr-o retea precum in NFS si vice-versa. Exista aplicatii software ce ofera posibilitatea ca AFP-ul sa co-existe cu NFS-ul.0 ce suporta SMB/CIFS. In timp ce Mac OS X suporta multe sisteme de fisiere.

12 .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 permite montarea si demontarea fara efort a volumelorde date dintr-o retea in functie de coneectivitatea la aceasta. De remarcat este faptul ca Mac OS X are un framework bazat pe FreeBSD. acesta poate fi montat in acest mod. la nivel de sistem pentru notificare preliminara.

html http://en.org/wiki/Mac_OS_X 13 .com/mac-os-x-leopard-beyond-themanual.com http://www.ebook-x.5.wikipedia.wikipedia.org/wiki/XNU http://en.apple. Bibliografie     http//:developer.