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.
sumber : http://revoltgapit.blogspot.com