Mac OS X z pohledu uživatele Linuxu Klokan Petr Přidal klokan@seznam.cz
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 Využívá bitmapových ikon velikosti až 128px Po vzoru Mac OS: TIP: Google:gDesklets, SuperKaramba Dock a jiné transparentní desklety pro KDE či GNOME plochu Aplikace mají společné menu www.kdelook.org Program se standardně neukončuje art.gnome.org zavřením okna témata a ikony
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: Přenosná media se zobrazují na ploše (automounter) a odpojují Google: se vhozením +flurry do koše. xscreensaver-gl: flurry +screensaver +windows 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
/ Network bin dev etc Applications Library System Users Volumes sbin tmp usr var
/ Network bin dev etc Applications Library System Users Volumes sbin tmp usr Library var Audio Documentation Fonts Frameworks Keyboard Layouts StartupItems
/ Network bin dev etc Applications Library System Users Volumes sbin tmp usr klokan var Desktop Documents Library Movies Music Pictures Public Sites
/ Network bin dev etc Applications Library System Users Volumes sbin tmp usr Network var Applications Library Servers Users
/ Network bin etc Applications Library System Users Volumes GNUstep: sbin dev TIP: root v tmp /usr/lib/gnustep Network resp. ~/GNUstep var 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 graphics 3D graphics Media Application Source buffers Composite buffer Display OpenGL akcelerace pro Quartz Compositor X11 server je v Mac OS X integrován...
Quartz Extreme TIP: 2D graphics Google: transluxent 3D graphics OpenGL akcelerované root window v XFree86 Media www.xsvg.org vektorová knihovna Application Source buffers Composite buffer Display OpenGL Cairo akcelerace pro Quartz Compositor www.fresco.org Nový Window Server X11 pro UNIX 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é pro MS Windows: Vzájemně propojené nástroje pro 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 Application Services Java (JDK) QuickTime BSD 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 Application Services Java (JDK) QuickTime BSD 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 Application Services Java (JDK) QuickTime BSD 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 Application Services Java (JDK) QuickTime BSD Core Services Kernel environment Classic Prostředí pro běh Mac OS 9 aplikací.
Vrstevný model systému Classic Carbon Cocoa Application Services Java (JDK) QuickTime BSD 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/
TIP: X Jádro Darwin MACH 3.0 BSD networking, VFS, devices, Distribuce určená process i386 i PPC management, access policies + většina POSIX API www.gnu-darwin.org 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