Mac OS X
z pohledu uživatele Linuxu Klokan Petr Přidal
[email protected]
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
1
Původ Mac OS X
2
Uživatelské prostředí
1
Původ Mac OS X
2
Uživatelské prostředí
3
Struktura systému
1
Původ Mac OS X
2
Uživatelské prostředí
3
Struktura systému
4
Vývojové nástroje
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
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
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)
... 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
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
/ 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
/ 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
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 Core Services Kernel environment
BSD QuickTime
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 Core Services Kernel environment
BSD QuickTime
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 Core Services Kernel environment
BSD QuickTime
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 Core Services Kernel environment
BSD QuickTime
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 Core Services Kernel environment
BSD QuickTime
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.
Vrstevný model systému Classic
Carbon
Cocoa
Java (JDK)
Application Services Core Services Kernel environment
BSD QuickTime
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 MACH 3.0 • www.gnu-darwin.org • BSD networking, VFS, devices, TIP:
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
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
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
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