Mac OS X
z pohledu uživatele Linuxu Klokan Petr Přidal
[email protected]
Cíle přednášky • Ukázat zajímavé technologie a standardy
používané v Mac OS X a jejich alternativy v GNU/Linux
• Přiblížit základní vlastnosti grafického prostředí firmy Apple
• Nastínit strukturu nabízených
systémových knihoven a techniky vývoje aplikací
• Uvést reference na volně dostupné programy příbuzné Macům
1
Původ Mac OS X
2
Uživatelské prostředí
3
Struktura systému
4
Vývojové nástroje
5
Linux na PPC + Závěr
Co je Mac OS X ?
• Operační systém typu UNIX • Primárně vyvíjen firmou Apple • Spojuje NEXTStep a starší Mac OS • Mikrojádro MACH 3.0 • Využívá FreeBSD a nejrůznější open-source nástroje
• Běží na PowerPC počítačích s Altivec
Z historie...
• 1977 Apple II • 1981 IBM PC • 1981 Xerox Star (Xerox PARC 79 Alto) • 1983 Apple Lisa • 1984 Apple Macintosh • 1984–87 X11 (MIT project Athena) • 1985 NeXT, 1988
Z historie...
• 1977 Apple II • 1981 IBM PC • 1981 Xerox Star (Xerox PARC 79 Alto) • 1983 Apple Lisa • 1984 Apple Macintosh • 1984–87 X11 (MIT project Athena) • 1985 NeXT, 1988
Z historie...
• 1977 Apple II • 1981 IBM PC • 1981 Xerox Star (Xerox PARC 79 Alto) • 1983 Apple Lisa • 1984 Apple Macintosh • 1984–87 X11 (MIT project Athena) • 1985 NeXT, 1988
... po současnost
• 1990 OO visuální programování • 1990 WWW browser (CERN) • 1994 OpenStep API • 1996 Apple kupuje NeXT • 2000 Mac OS X • 2003 Mac OS X 10.3 (Panther) Fireware (IEEE1394), Rendezvous (IETF)
... po současnost
• 1990 OO visuální programování • 1990 WWW browser (CERN) • 1994 OpenStep API • 1996 Apple kupuje NeXT • 2000 Mac OS X • 2003 Mac OS X 10.3 (Panther) Fireware (IEEE1394), Rendezvous (IETF)
... po současnost
• 1990 OO visuální programování • 1990 WWW browser (CERN) • 1994 OpenStep API • 1996 Apple kupuje NeXT • 2000 Mac OS X • 2003 Mac OS X 10.3 (Panther) Fireware (IEEE1394), Rendezvous (IETF)
Dědictví předchůdců
• NeXTSTEP:
• UNIXový základ • Objective-C, MVC (Smalltalk), vývojové prostředí, OO visuální návrh aplikací
• MacOS:
• Finder, QuickTime, styl ovládání
1
Původ Mac OS X
2
Uživatelské prostředí
3
Struktura systému
4
Vývojové nástroje
5
Linux na PPC + Závěr
Aqua + Dock
• Jednotné elegantní prostředí plně využívající průhlednosti
• Využívá bitmapových ikon velikosti až 128px
• Po vzoru Mac OS:
• Aplikace mají společné menu • Program se standardně neukončuje zavřením okna
Aqua + Dock
• Jednotné elegantní prostředí plně využívající průhlednosti
TIP:
velikosti Google:gDesklets, • Využívá bitmapových ikon SuperKaramba až 128px
• Po vzoru Mac OS:
Dock a jiné transparentní desklety pro KDE či GNOME plochu
zavřením okna
témata a ikony
• Aplikace mají společné menu www.kdelook.org art.gnome.org • Program se standardně neukončuje
Finder
• Základní rozhraní pro práci se soubory • Různé pohledy (i sloupcový), cache • Přenosná media se zobrazují na ploše (automounter) a odpojují se vhozením do koše.
• Mac OS X nativně využívá souborových systémů HFS+ či UFS
• Podporuje ISO9660, FAT, EXT2, NFS, SMBFS, WEBDAVFS
Finder
• Základní rozhraní pro práci se soubory • Různé pohledy (i sloupcový), cache TIP: xscreensaver-gl: flurry na ploše • Přenosná media se zobrazují Google: +flurry
(automounter) a odpojují se vhozením +screensaver +windows do koše. Standardní šetřič Mac OS X
• Mac OS X nativně využívá souborových
systémů HFS+ či UFS Google: kslidesavergl
• Podporuje ISO9660, FAT, EXT2, NFS, SMBFS, WEBDAVFS
prolínání fotek pomocí OpenGL
Boundles
• Spustitelná aplikace je umístěna
společně se svými zdroji (ikony, lokalizace, nápověda, ...) v adresáři, který se chová jako soubor
• Obdobně frameworks, a další • Lokalizace názvů • Instalace Drag&Drop z image disku .dmg • Instalace pomocí balíčků .pkg, fink .deb
Struktura disku
• BSD UNIX adresáře • Domény: • uživatelská (User) • lokální (Local) • síťová (Network) • systémová (System)
• Pomocné adresáře a balíky
/ bin
Network dev
etc Applications
Library
System
Users
Volumes
sbin tmp usr var
/ bin
Network dev
etc Applications
Library
System
Users
Volumes
sbin tmp usr var
Library
Audio
Documentation
Fonts
Frameworks
Keyboard Layouts
StartupItems
/ bin
Network dev
etc Applications
Library
System
Users
Volumes
sbin tmp usr var
klokan
Desktop
Documents
Library
Movies
Music
Pictures
Public
Sites
/ bin
Network dev
etc Applications
Library
System
Users
Volumes
sbin tmp usr var
Network
Applications
Library
Servers
Users
/ bin
Network dev
TIP: Applications
Library
System
Users
etc
sbin GNUstep:
Volumes
root v tmp /usr/lib/GNUstep usr resp. var ~/GNUstep
Network
Applications
Library
Servers
Users
Quartz
• Window Server + Quartz 2D • Základní zobrazovací jazyk je PDF
1.3 s extenzemi z verze 1.4 (transparentnost, zabezpečení, ...)
• Model nezávislý na zařízení i
rozlišení, kvalitní podpora fontů, anti-aliasing, opravdový WYSIWYG
• ColorSync color management (ICC)
Quartz Extreme 2D graphic s
3D graphic s
Media
Application
Source buffers
Composite buffer
Display
• OpenGL akcelerace pro Quartz Compositor X11 server je v Mac OS X integrován...
Quartz Extreme 2D graphic s
TIP:
Google: transluxent 3D graphic s
OpenGL akcelerované Media root window v XFree86
www.xsvg.org Application
Source buffers
Composite buffer
Display
vektorová knihovna Cairo
OpenGL akcelerace pro Quartz Compositor • www.fresco.org Nový Window Server pro UNIX
X11 server je v Mac OS X integrován...
iLife
iTunes
iPhoto
iMovie
iDVD
• Vzájemně propojené nástroje pro
plnohodnotnou práci s multimedii s jednoduchou obsluhou
iLife
iTunes
iPhoto
iMovie
iDVD
TIP:
•
iTunes jsou portované Vzájemně propojené nástroje pro pro MS Windows:
plnohodnotnou práci s multimedii s jednoduchou obsluhou www.apple.com/itunes/
.mac
• WebDAV prostor na serverech firmy
Apple, podpůrné aplikace, integrace se systémem, bohužel proprietární
1
Původ Mac OS X
2
Uživatelské prostředí
3
Struktura systému
4
Vývojové nástroje
5
Přizpůsobení Macu, Linux na PPC
Vrstevný model systému Classic
Carbon
Cocoa
Java (JDK)
Application Services
BSD QuickTime
Core Services Kernel environment
Cocoa Vyspělé objektově orientované API pro vývoj aplikací v Objective-C a Javě. Rozšiřuje možnosti API NeXTSTEPu. Základem je FoundationKit a AppKit.
Vrstevný model systému Classic
Carbon
Cocoa
Java (JDK)
Application Services
BSD QuickTime
Core Services Kernel environment
Java Vývoj přenositelných aplikací a appletů Java i s pomocí mixed-API.
Vrstevný model systému Classic
Carbon
Cocoa
Java (JDK)
Application Services
BSD QuickTime
Core Services Kernel environment
Carbon Adaptace Mac OS 9 API a knihoven pro Mac OS X. Umožňuje překlad starších aplikací s minimálními změnami.
Vrstevný model systému Classic
Carbon
Cocoa
Java (JDK)
Application Services
BSD QuickTime
Core Services Kernel environment
Classic Prostředí pro běh Mac OS 9 aplikací.
Vrstevný model systému Classic
Carbon
Cocoa
Java (JDK)
Application Services
BSD QuickTime
Core Services Kernel environment
BSD Prostředí známé z UNIXů, POSIX API, příkazová řádka a známé nástroje.
Jádro Darwin
• MACH 3.0 • BSD networking, VFS, devices, process management, access policies + většina POSIX API
• OpenSource APSL 2.0 (OSI approved) • http://developer.apple.com/darwin/
Jádro Darwin X
• www.gnu-darwin.org • BSD networking, VFS, devices, TIP: MACH 3.0
Distribuce určená pro i386 i PPC
process management, access policies + většina POSIX API
• OpenSource APSL 2.0 (OSI approved) • http://developer.apple.com/darwin/
FINK.sf.net
• Distribuce binárních i zdrojových
balíčků Open Source software pro Darwin a Mac OS X.
• Využívá formátu .deb známého z
Debian GNU/Linux a nástrojů jako dpkg, apt-get
• Přes 2500 balíčků včetně KDE a GNOME, TeXu, a dalších...
Defaults & Services
• Defaults:
• Hierarchická databáze pro uchování
předvoleb a nastavení aplikací v systému
• Podobné Gnome GConf
• Services:
• Registrované služby aplikací nad označeným textem
Open Directory 2
• Adresářové a autentizační služby v Mac OS X
• Využívá OpenLDAP a Kerberos • Spolupracuje i s MS Active Directory a s Novell eDirectory.
• Netinfo: Obdoba NIS původně s NeXTSTEPu
1
Původ Mac OS X
2
Uživatelské prostředí
3
Struktura systému
4
Vývojové nástroje
5
Linux na PPC + Závěr
Tradiční UNIX nástroje
• Tradiční UNIX nástroje
• make, gcc, autoconf, automake + cokoliv dostupného v rámci fink
• tvorba i X11 aplikací či wxWindows, QT
• Apple Developer Tools • Zdarma včetně dokumentace, GCC • Produkty třetích stran
Developer Tools
• Project Builder (či Xcode)
• Základní prostředí pro vývoj: editor, compiler, debuger (gcc, gdb)
• Interface Builder
• Visuální návrh GUI a objektových vazeb
• GNUstep: ProjectCenter + Gorm
1
Původ Mac OS X
2
Uživatelské prostředí
3
Struktura systému
4
Vývojové nástroje
5
Linux na PPC + Závěr
PowerPC Linux
• Distribuce:
• Debian, Gentoo, Mandrake, SuSE, Yellow Dog a další
• Debianem druhá nejpodporovanější platforma (po IA32)
• big-endian, OpenFirmware, yaboot, partition table
• www.penguinppc.org
Zajímavý software
• MacOnLinux
• Virtual Machine, takřka nativní rychlost • www.maconlinux.net
• QEmu
• Umožňuje spouštět linuxové aplikace na jiném CPU (architektuře), než byly kompilované
• Překlad linuxových systémových volání a endianity na nativní volání
Základní odkazy: www.apple.com developer.apple.com www.versiontracker.com www.mujmac.cz, www.ocs.cz www.gnustep.org wiki.gnustep.org, Gorm gnu-darwin.sf.net www.penguinppc.org Google: transluxent, flurry, superkaramba, gdesklets www.xsvg.org, www.fresco.org www.kdelook.org, art.gnome.org