Mac OS X


1. SEJARAH

Mac OS, yang berarti Macintosh Operating System, atau Sistem Pengoperasi Macintosh, adalah sistem pengoperasi komputer Apple untuk komputer Apple Macintosh. Mac OS merupakan sistem pengoperasian pertama yang menggunakan antarmuka pengguna grafik (Graphical User Interface — GUI). Pasukan Macintosh termasuk Bill Atkinson, Jef Raskin dan Andy Hertzfeld.
Terdapat berbagai pandangan bagaimana Macintosh dibangunkan dan di mana ide asal bermula. Walaupun kaitan antara Macintosh dan projek Alto di Xerox PARC telah luas diperkatakan dalam rekod sejarah, sumbangan awal Sketchpad oleh Ivan Sutherland dan Sistem di Talian (On-Line System) oleh Doug Engelbart tidak kurang pentingnya. Lihat Sejarah GUI, dan Apple v. Microsoft.

Apple sengaja merendahkan kewujudan sistem pengoperasi pada tahun awal kemunculan Macintosh untuk menjadikan Macintosh kelihatan lebih ramah pengguna dan membezakannya daripada sistem lain seperti MS-DOS, yang digambarkan sebagai ajaib (arcane) dan mencabar secara teknikal. Apple mahu Macintosh digambarkan sebagai sistem yang “terus berfungsi” apabila anda menghidupkannya.

Versi
Sistem Operasi Macintosh pada awalnya dikenali sebagai Sistem, seperti “Sistem 6.0.7″ atau “Sistem 7“. Pada awalnya juga dikenali sebagai Kotak Perkakasan “Toolbox”; yang mengandungi himpunan rutin piawaian yang boleh digunakan bagi menggantikan pautan kepada perkakasan komputer itu sendiri.
Pengabstrakan ini yang membenarkan applikasi Mac ditulis untuk satu generasi sistem digunakan pada generasi berikutnya, sebagai contoh: dari Mac Plus kepada Mac II, kepada PowerBook, kepada Power Macintosh. Pada awalnya Apple sengaja mengaburkan kewujudan sistem operasi ini bagi membezakan Mac daripada sistem lain seperti MS-DOS, yang digambarkan sebagai lebih sukar digunakan berbanding Mac. Istilah seperti “sistem” dan “kotak perkakasan (the toolbox)” merupakan cara mudah untuk merujuk kepada perkhidmatan sistem operasi dan Macintosh API seterusnya mengelakkan penggunaan istilah teknikal (technical jargon). Sehingga kemunculan era sistem G3 (yang dikenali sebagai mesin “dunia baru”), sebahagian besar sistem disimpan dalam ROM fizikal pada papan induk, dan juga komponen sistem pada cakera yang menambah, mengesampingkan (override)atau memperbaiki rutin ROM. Tujuannya ialah untuk mengelakkan penggunaan terlalu banyak ruang simpanan dalam cakera liut yang terhad untuk sistem sokongan, kerana komputer Mac yang terawal tidak mempunyai cakera keras. Sebenarnya cuma satu model Mac yang boleh dijalankan (bootable) menggunakan ROM sahaja, iaitu model Mac Klasik 1991.
Sistem 7.5.1 merupakan sistem pertama yang memasukkan logo Mac OS (muka tersenyum (smiley face) biru). Mac OS 7.6 (yang dikeluarkan pada 1996) merupakan sistem pertama yang dinamakan Mac OS kerana wujudnya “klon-klon” Mac, sistem yang hampir serupa daripada syarikat-syarikat lain seperti Power Computing dan Motorola, dan Apple hendak memberitahu dengan jelas bahawa sistem operasiannya merupakan hak milik intelektualnya sendiri.

2. Manajemen Memory

Pada umumnya mikrokernel mendukung proses dan menajemen memori yang minimal, sebagai tambahan untuk fasilitas komunikasi. Bagian ini menjelaskan bagaimana linux menangani memori dalam sistem. Memori managemen merupakan salah satu bagian terpenting dalam sistem operasi. Karena adanya keterbatasan memori, diperlukan suatu strategi dalam menangani masalah ini. Jalan keluarnya adalah dengan menggunakan memori virtual. Dengan memori virtual, memori tampak lebih besar daripada ukuran yang sebenarnya. Dengan memori virtual kita dapat:
1. Ruang alamat yang besar
Sistem operasi membuat memori terlihat lebih besar daripada ukuran memori sebenarnya. Memori virtual bisa beberapa kali lebih besar daripada memori fisiknya.
2. Pembagian memori fisik yang adil
Managemen memori membuat pembagian yang adil dalam pengalokasian memori antara proses-proses.
3.Perlindungan
Memori managemen menjamin setiap proses dalam sistem terlindung dari proses-proses lainnya. Dengan demikian, program yang crash tidak akan mempengaruhi proses lain dalam sistem tersebut.
4. Penggunaan memori virtual bersama
Memori virtual mengizinkan dua buah proses berbagi memori diantara keduanya, contohnya dalam shared library. Kode library dapat berada di satu tempat, dan tidak dikopi pada dua program yang berbeda.
Memori Virtual
Memori fisik dan memori virtual dibagi menjadi bagian-bagian yang disebut page. Page ini memiliki ukuran yang sama besar. Tiap page ini punya nomor yang unik, yaitu Page Frame Number (PFN). Untuk setiap instruksi dalam program, CPU melakukan mapping dari alamat virtual ke memori fisik yang sebenarnya.
Penerjemahan alamat di antara virtual dan memori fisik dilakukan oleh CPU menggunakan tabel page untuk proses x dan proses y. Ini menunjukkan virtial PFN 0 dari proses x dimap ke memori fisik PFN 1. Setiap anggota tabel page mengandung informasi berikut ini:
1. Virtual PFN
2. PFN fisik
3. informasi akses page dari page tersebut
Untuk menerjemahkan alamat virtual ke alamat fisik, pertama-tama CPU harus menangani alamat virtual PFN dan offsetnya di virtual page. CPU mencari tabel page proses dan mancari anggota yang sesuai degan virtual PFN. Ini memberikan PFN fisik yang dicari. CPU kemudian mengambil PFN fisik dan mengalikannya dengan besar page untuk mendapat alamat basis page tersebut di dalam memori fisik. Terakhir, CPU menambahkan offset ke instruksi atau data yang dibutuhkan. Dengan cara ini, memori virtual dapat dimap ke page fisik dengan urutan yang teracak.
Demand Paging.
Cara untuk menghemat memori fisik adalah dengan hanya meload page virtual yang sedang digunakan oleh program yang sedang dieksekusi. Tehnik dimana hanya meload page virtual ke memori hanya ketika program dijalankan disebut demand paging.
Ketika proses mencoba mengakses alamat virtual yang tidak ada di dalam memori, CPU tidak dapat menemukan anggota tabel page. Contohnya, dalam gambar, tidak ada anggota tabel page untuk proses x untuk virtual PFN 2 dan jika proses x ingin membaca alamat dari virtual PFN 2, CPU tidak dapat menterjemahkan alamat ke alamat fisik. Saat ini CPU bergantung pada sistem operasi untuk menangani masalah ini. CPU menginformasikan kepada sistem operasi bahwa page fault telah terjadi, dan sistem operasi membuat proses menunggu selama sistem operasi menagani masalah ini.
CPU harus membawa page yang benar ke memori dari image di disk. Akses disk membutuhkan waktu yang sangat lama dan proses harus menunggu sampai page selesai diambil. Jika ada proses lain yang dapat dijalankan, maka sistem operai akan memilihnya untuk kemudian dijalankan. Page yang diambil kemudian dituliskan di dalam page fisik yang masih kosong dan anggota dari virtual PFN ditambahkan dalam tabel page proses. Proses kemudian dimulai lagi pada tempat dimana page fault terjadi. Saat ini terjadi pengaksesan memori virtual, CPU membuat penerjemahan dan kemudian proses dijalankan kembali.
Demand paging terjadi saat sistem sedang sibuk atau saat image pertama kali diload ke memori. Mekanisme ini berarti sebuah proses dapat mengeksekusi image dimana hanya sebagian dari image tersebut terdapat dalam memori fisik.
Swaping
Jika memori fisik tiba-tiba habis dan proses ingin memindahkan sebuah page ke memori, sistem operasi harus memutuskan apa yang harus dilakukan. Sistem operasi harus adil dalam mambagi page fisik dalam sistem diantara proses yang ada, bisa juga sistem operasi menghapus satu atau lebih page dari memori untuk membuat ruang untuk page baru yang dibawa ke memori. Cara page virtual dipilih dari memori fisik berpengaruh pada efisiensi sistem.
Linux menggunakan tehnik page aging agar adil dalam memilih page yang akan dihapus dari sistem. Ini berarti setiap page memiliki usia sesuai dengan berapa sering page itu diakses. Semakin sering sebuah page diakses, semakin muda page tersebut. Page yang tua adalah kandidat untuk diswap.
Pengaksesan Memori Virtual Bersama
Memori virtual mempermudah proses untuk berbagi memori saat semua akses ke memori menggunakan tabel page. Proses yang akan berbagi memori virtual yang sama, page fisik yang sama direference oleh banyak proses. Tabel page untuk setiap proses mengandung anggota page table yang mempunyai PFN fisik yang sama.
Efisiensi
Desainer dari CPU dan sistem operasi berusaha meningkatkan kinerja dari sistem. Disamping membuat prosesor, memori semakin cepat, jalan terbaik adalah manggunakan cache. Berikut ini adalah beberapa cache dalam managemen memori di linux:
1.Page Cache
Digunakan untuk meningkatkan akses ke image dan data dalam disk. Saat dibaca dari disk, page dicache di page cache. Jika page ini tidak dibutuhkan lagi pada suatu saat, tetapi dibutuhkan lagi pada saat yang lain, page ini dapat segera diambil dari page cache.
2. Buffer Cache
Page mungkin mengandung buffer data yang sedang digunakan oleh kernel, device driver dan lain-lain. Buffer cache tampak seperti daftar buffer. Contohnya, device driver membutuhkan buffer 256 bytes, adalah lebih cepat untuk mengambil buffer dari buffer cache daripada mengalokasikan page fisik lalu kemudian memecahnya menjadi 256 bytes buffer-buffer.
3. Swap Cache
Hanya page yang telah ditulis ditempatkan dalam swap file. Selama page ini tidak mengalami perubahan setelah ditulis ke dalam swap file, maka saat berikutnya page di swap out tidak perlu menuliskan kembali jika page telah ada di swap file. Di sistem yang sering mengalami swap, ini dapat menghemat akses disk yang tidak perlu.
Salah satu implementasi yang umum dari hardware cache adalah di CPU, cache dari anggota tabel page. Dalam hal ini, CPU tidak secara langsung membaca tabel page, tetap mencache terjemahan page yang dibutuhkan.
Load dan Eksekusi Program
1. Penempatan program dalam memori
Linux membuat tabel-tabel fungsi untuk loading program, memberikan kesempatan kepada setiap fungsi untuk meload file yang diberikan saat sistem call exec dijalankan. Pertama-tama file binari dari page ditempatkan pada memori virtual. Hanya pada saat program mencoba mengakses page yang telah diberikan terjadi page fault, maka page akan diload ke memori fisik.
2. Linking statis dan linking dinamis
a. Linking statis:
librari-librari yang digunakan oleh program ditaruh secara langsung dalam file binari yang dapat dieksekusi. Kerugian dari linking statis adalah setiap program harus mengandung kopi library sistem yang umum.
b. Linking dinamis:
hanya sekali meload librari sistem menuju memori. Linking dinamis lebih efisien dalam hal memori fisik dan ruang disk.

3. Managemen Proses

Di dalam sistem operasi, proses merupakan program yang dieksekusi dengan system resource yang terkait, yang mungkin juga fisik (seperti siklus prosessor dan memori) atau abstak (seperti proses membuka file atau nomor). Kernel menyediakan sebuah ilusi dari ekseskusi bersamaan dari resource schedule antara proses ready ke proses run. Pada system multiprosesor atau multicore, lebih dari satu proses dapat dijalankan secara bersamaan.

a. Proses: dari awal Unix sampai Mac OS X

Proses abstraksi telah lama digunakan untuk menggambarkan berbagai aktifitas dalam suatu sistem computer. Pada awal Unix, program user dapat menjalankan sebuah proses atau bisa mewakili satu atau lebih arus kontrol dalam kernel misalnya, proses 0 menuju sched (),proses scheduler. Satu-satunya cara untuk membuat proses baru pada UNIX tradisional adalah melalui fork () system call , dan satu-satunya cara untuk menjalankan sebuah program baru dalam sebuah proses melalui exec () system call.

b. Mac OS X Execution

Kode dapat dijalankan dibeberapa lingkungan Mac OS. Dimana pada setiap lingkungan dibedakan berdasarkan pada salah satu atau lebih hal berikut : arsitektur mesin, format eksekusi, system mode (user atau kernel), beberapa aturan dan sebagainya. Masing masing lingkungan (environment) memiliki eksekusi yang berbeda. Berikut ini beberapa ruang lingkupnya :

* BSD, Mach, dan I / O Kit bagian dari kernel.
* BSD user-space environment.
* Carbon environment
* Classic environment
* Cocoa environment
* Java runtime environment
* Dashboard environment untuk menjalankan widget berbasis JavaScript
* Rosetta binary translation environment memungkinkan menjalankan executable PowerPC untuk berjalan di komputer Macintosh berbasis x86

c. Scheduling

Selain proteksi memori (tidak dimiliki pada versi sebelum mac os x), Mac OS X memberikan kelebihan dari versi sebelumnya yaitu preemptive multitasking. Kestabilan di versi OS 9 bergantung kepada kerjasama multitasking (applikasi yang bekerja sama pada time share prosessor multiplexing). Jika satu atau lebih aplikasi tidak dapat “bekerjasama”, kemungkinan semua proses menjadi tidak responsif karena tidak mendapatkan pembagian yang wajar dari prosessor. Kernel Mach pada Mac OS X mengelola preemptive multitasking,schedule proses dengan mengedepankan tugas prioritas. Hal ini memungkinkan Mac OS X memberikan dukungan yang real time untuk aplikasi yang memerlukan prilaku soft real time (kernel). Preemptive multitasking juga memungkinkan Mach untuk memastikan bahwa penggunaan prosesor yang paling effisien (teknologi).

Tugas dasar dari mach untuk Mac OS X adalah proses. Pada dasarnya task merupakan sekumpulan resource sistem dimana yang direferensikan oleh port dan dapat dipergunakan bersama dengan tugas lain melalui distribusi port yang benar. Setiap tugas berisi ruang alamat virtual yang dapat dipergunakan bersama dengan tugas-tugas yang lain melalui manajemen memori eksternal. Setiap tugas harus mengandung setidaknya satu thread. (seperti instruksi yang hanya dieksekusi oleh threads, bukan task) dan semua thread yang terdapat dalam task berbagi kesemua resource (kernel).

Karena task memiliki tanggung jawab untuk mengatur resource, sebuah thread adalah sebuah entitas yang ringan, yang mempunyai overhead yang rendah karena menangani status informasi yang minimal (terutama status register). Hal ini dapat dieksekusi bersamaan dengan thread lain (bahkan semua yang termasuk task yang sama). Dengan menggunakan teknik synkronisasi beberapa thread dapat menyelesaikan pekerjaan lebih effisient daripada satu thread. Thread Mach memanfaatkan sumber daya yang dialokasikan untuk task mereka masing masing dengan mengeksekusi instruksi trap (jebakan) yang mengakibatkan kernel mengirim sebuah pesan ke beberapa thread lain atau proses lain atau melakukan operasi atas nama thread (kernel).

Mac OS X menggunakan kedua time-sharing dan fixed priority policies untuk penjadwalan thread. Penjadwalan thread Mach menyesuaikan time-sharing prioritas thread dalam usaha untuk menjaga keseimbangan konsumsi sumber daya sistem diantara semua time-sharing thread. Thread dengan prioritas tinggi seperti real time thread biasanya diberikan prioritas tetap. Setelah mengeksekusi untuk quantum waktu yang tetap, thread ini pindah ke antrian akhir yang memiliki prioritas yang sama. Hal ini dimungkinkan untuk mengijinkan thread dengan prioritas tetap berjalan asmpai bloknya atau di preempted oleh thread yang prioritasnya lebih tinggi dengan menetapkan quantum waktu tak terhingga. Tabel dibawah ini mengilustrasikan skema prioritas thread (teknologi, kernel).

Priority Band : Characteristics
Normal : Aplikasi normal prioritas thread
System high : Thread yang memiliki prioritas yang telah ditingkatkan diatas thread normal.
priority
Kernel mode only : Thread cadangan dibuat dalam kernel yang perlu dijalankan pada prioritas yang lebih tinggi daripada thread dalam space user.

Real-time threads : Thread yang didasarkan pada prioritas mendapatkan fraksi yang jelas dari total cycles clock, terlepas dari kegiatan lain (misalnya aplikasi audio player)

4. Managemen File

Sebelum membahas apa itu permission, ada baiknya kita mengenal filesystem

yang digunakan Mac OS X. Filesystem Mac OS X adalah HFS dan HFS+

(Hierarchial File System) dimana salah satu kelebihan filesystem ini memiliki fitur

Hotfiles atau menyusun serta merapikan dirinya sendiri tanpa campur-tangan

user, atau di dunia Windows dikenal dengan nama Defragmentation yang harus

dikerjakan bahkan diawasi secara manual. Anda tak akan menemukan HFS pada

Windows, namun Anda dapat menemukan filesystem FAT32 atau yang disebut

DOS pada Mac OS X serta filesystem UNIX.

Tentu saja penggunaan filesystem DOS sangat tidak disarankan untuk digunakan

pada Mac OS X. Selain tidak memiliki space untuk menampung properti

permission (izin) & privileges (wewenang), DOS juga kurang cerdas untuk

mengelola dirinya sendiri (baca: cluster management).

Fitur lain dari HFS+ adalah Journaling. Sederhananya, Journaling adalah aktivitas

memantau susunan filesystem agar suatu saat hard-disk mengalami redundansi,

gangguan elektris, benturan, atau mengalami kerusakan pada file (corrupt) dapat

dipulihkan kembali sesuai pantauan terakhir sebelum tragedi menimpa file. Fitur ini

dapat di non-aktifkan sesuai kebutuhan Anda.

Aktivitas Hotfiles dan Journaling dilakukan pada saat awal sistem dijalankan

(booting). Maka Anda sama sekali tidak memerlukan Defragmenting, terkecuali bila

Anda masih menjalankan OS Windows melalui BootCamp.

Pun saat Anda melakukan format sebuah media CD / DVD. Anda dapat memilih

agar media tersebut dapat dibaca oleh semua OS (Hybrid, ISO / Joliet) atau

terbatas –hanya dapat dibaca oleh Mac OS X. Apple begitu menghargai arti

sebuah kompatibilitas dan kebebasan untuk memilih.

Berikut ini adalah susunan filesystem default Mac OS X yang kasat mata:

+ Volumes/Macintosh HD (root)

|—- + Applications

|—- + Library

|—- + System

|—- + Users

|—- Direktori_Home_Anda

Partisi dan Drive pada Mac OS X disebut sebagai Volumes.

Contoh: Volumes/Macintosh HD.

Volume Root adalah volume dimana Mac OS X terinstall.

Tak hanya partisi dan drive yang dianggap sebagai Volume, file berekstensi .dmg

serta .iso ketika dijalankan (mounting) akan dianggap sebagai Volume.

Apa itu .dmg?

.dmg atau Disk Image adalah sebuah file istimewa milik Mac OS X yang

mengijinkan usernya mempartisi ataupun melakukan modifikasi selayaknya

bekerja dengan hard-disk sungguhan. Kelak file .dmg ini akan sering Anda

gunakan dan saya yakin Anda akan menyukainya.

Format path pada Mac OS X adalah:

/Volumes/Nama Volume/Folder/File.ekstensi

Sedangkan pada Windows adalah:

Drive:\Folder\File.ekstensi

Catatan: Perhatikan pada perbedaan penggunaan slash backslash.

Mac OS X telah didesain untuk skala keamanan yang tinggi, maka hadirnya

permission & privileges dalam sebuah file sangat mutlak.

Kesalahan utama switcher Windows adalah memperlakukan direktori root

selayaknya partisi C:\ pada Windows. Dimana user bebas meletakkan seluruh filefilenya

pada partisi tersebut.

Secara praktis, hal itu dapat saja dilakukan dalam Mac OS X. Namun sekali lagi,

tidak disarankan karena alasan keamanan. Sebab, file, folder, ataupun aplikasi

yang berada pada root memiliki kewenangan yang lebih luas namun dengan izin

yang lebih sempit cakupannya.Lokasi yang dapat Anda perlakukan sepuasnya adalah Direktori Home Anda.

Laiknya pekarangan rumah, Anda bebas menanam apapun disana. Namun tidak

pada pekarangan tetangga atau jalan raya milik negara. Semata-mata karena

alasan yang diumpamakan berikut: Apabila seorang maling mengobrak-abrik seisi

rumah Anda, tetangga dan negara tidak dirugikan oleh kegiatan si maling, yang

dalam hal ini negara adalah sistem dan tetangga adalah user lainnya.

Dengan berpindah ke Mac OS X, Anda akan dihadapkan dengan kebiasaan akan

proteksi diri dan file Anda sendiri. Tak heran jika tingkat keamanan Mac OS X jauh

melebihi Windows; karena sistem yang handal juga melibatkan brainware dari sisi

usernya sendiri selain teknologi hardware dan software. Tentu saja dengan porsi

brainware yang seminimal mungkin (smart). Maka dari itu, tutorial fundamental

adalah tutorial yang paling tepat sebelum Anda memulai penjelajahan di dunia

Mac OS X.

About rianzii

a dreamer
This entry was posted in Informatic, Materi Kuliah and tagged , , , , , , , , , , . Bookmark the permalink.

Leave a comment