+ All Categories
Home > Documents > Sistemul de operare Mac OS X - ERASMUS Pulsestst.elia.pub.ro/news/SOA/Teme_SOA_12_13... · din...

Sistemul de operare Mac OS X - ERASMUS Pulsestst.elia.pub.ro/news/SOA/Teme_SOA_12_13... · din...

Date post: 09-Jan-2020
Category:
Upload: others
View: 9 times
Download: 0 times
Share this document with a friend
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
Transcript

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

2

Cuprins

1. Prezentare ................................................................................................................ 3

2. Interfața grafică cu utilizatorul (GUI) ....................................................................... 5

3. Kernelul XNU ............................................................................................................ 7

4. Sistemul de fișiere .................................................................................................... 9

4.1 Sisteme de fișiere locale ...................................................................................... 10

4.2 Sisteme de fișiere de rețea .................................................................................. 11

5. Bibliografie ............................................................................................................. 13

3

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. “Începând 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 (astăzi:

Apple), încă din 1984. Spre deosebire de predecesorii săi, 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, când NeXT a fost achiziționat de către 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 decât predecesorul său, Mac OS 9. De exemplu, 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. Multe aspecte ale arhitecturii Mac

OS X sunt derivate din Openstep, care a fost conceput pentru a fi portabil, pentru a facilita

tranziţia de la o platformă la alta. De exemplu, 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, iar OpenStep a fost portat mai târziu pe arhitectura PowerPC, ca parte

a proiectului Rhapsody.

[1] http://ro.wikipedia.org/wiki/Mac_OS_X

4

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 Server 1.0

Hera

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.

5

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 2D asigură nivel

scăzut, redare ușoră 2D de ieșire indiferent de afișare sau a dispozitivului de imprimare.

Quartz 2D are rezoluția independentă de dispozitiv. 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, 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 menționat ca Core Graphics sau CG. Cocoa este un mediu de aplicații atât 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 aplicații 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 utilități de bază ca xterm. 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. Pentru a face acest lucru, Core

Fundatia implementeaza un model de obiect limitat în C. Core Fundația definește tipuri

opace care încapsulează date și funcții, denumit în continuare "obiecte".

2. Interfața 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.

6

Fig. 1 – Prima versiune Aqua GUI

Fig. 2 – Prima versiune Aqua GUI

7

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

8

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 spaţiile 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.

9

4. Sistemul de fișiere

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 Descriere

HFS Sistemul de fisiere standard Mac OS, sistem de fisiere standard Macintosh pentru vechile versiuni de Mac.

HFS Plus Sistem de fisiere Mac OS Extins. Sistemul de fisiere standard Macintosh pentru Mac OS X.

UFS Sistemul de fisiere Unix (Unix File System). Varianta a sistemului de fisiere BSD FFS (Fast File System).

WebDAV Folosit pentru accesarea directa a fisierele pe web. De exemplu, serviciul iDisk foloseste WebDav pentru accesarea fisierelor cu ajutorul terminalelor mobile.

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

FAT Sistemul de fisiere MS-DOS cu variantele de 16 si 32 de biti.

SMB/CIFS Folosit pentru sharingul de fisiere in servele de fisiere Microsoft Windows SMB.

AFP AppleTalk Filing Protocol. Sistem de fisiere de retea primar folosit de toate veriunile Mac OS.

NFS Network File System. Standard comun folosit de standardul de sharing de fisiere BSD. Mac OS X suporta NFSv2 si NFSv3 peste TCP si UDP.

FTP Sistem de fisiere folosit peste standardul de internet FTP (File Transfer Protocol).

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

10

4.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, 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, byte-

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

11

Optimizări

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 fișiere de rețea 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

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

13

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


Recommended