mengenal arsitektur linux tgs 1a

Upload: lidya

Post on 10-Jan-2016

9 views

Category:

Documents


0 download

DESCRIPTION

so, sumber: wikipedia dll

TRANSCRIPT

A. Traditional Unix System

Pada tahun 1969 Ken Thompson dan Dennis Ritchie melanjutkan proyek MULTICS (Multiplexed Information and Computing Service) yang diberhentikan karena melampaui batas waktu yang telah ditentukan. Proyek yang dilanjutkan ini ialah menyusun system operasi yang modular dengan menggunakan processor berkecepatan tinggi, memori, dan perlengkapan komunikasi. System operasi ini dirancang untuk dapat bekerja terus menerus tampa henti untuk keperluan militer.

Ken Thompson yang berusaha merealisasikan ide MULTICS ini kemudian menamai proyeknya dengan UNIX sesuai dengan saran yang diberikan oleh Peter Neuman. System operasi ini kemudian ditulis ulang selama 1 tahun untuk computer PDP-11.

Ilmuwan AT&T banyak menambahkan tool-tool kecil untuk UNIX pada tahun 1970-an, masing-masing tool digunakan untuk mengerjakan satu fungsi. Tahun 1973, UNIX ditulis ulang oleh Ken Thompson menggunakan bahasa pemrograman baru yang diciptakan oleh Dennis Ritchie, Bahasa C (pada awalnya UNIX ditulis dengan menggunakan bahasa B). Bahasa C di rancang agar mudah untuk di pindahkan (portable) dari satu komputer ke komputer lain.

UNIX menyebar cepat pada tahun 1977 sedikitnya 500 lokasi telah menjalankan system operasi ini. 125 diantaranya adalah universitas dan lebih dari 10 negara asing. Pada tahun yang sama juga keluar UNIX 6 yang memiliki dukungan komersial.

Universitas California di Berkeley membayar $400 untuk mendapatkan tape system operasi UNIX dan source code dari UNIxPada tahun 1978 Bill Joy mengeluarkan salinan koleksi program dan modifikasi UNIX. Selama 6 tahun kemudian barkeley mendapat dukungan dana dari APRA untuk mengembangkan UNIX yang kemudian disebut dengan BSD UNIX.

Pada pengembangan ini munculah program multitasking, penamaan file dengan jumlah karakter sampai dengan 255 karakter. Pada masa yang sama AT&T (American Telephone & Telegraph) pengelola proyek MULTICS juga mengembangkan UNIX. Dan menghasilkan UNIX System V dan merupakan standar UNIX. Dengan lisensi antara Barkeley dan AT&T maka pengambangan UNIX dapat dilakukan dengan bebas dengan persyaratan tidak ada penambahan nomor versi, sehingga BSD UNIX hanya sampai versi 4.2, yang diyakini sebagai basis pengembangan versi unix yang lainnya. di sisi lain pada masa yang sama AT&T (American Telephone & Telegraph) pelaksana proyek MULTICS juga mengembangkan UNIX versi system V yang diklaim sebagai standar UNIX. Data General, IBM, Hewlwtt Packard, dan Silicon Graphic mengembangkan Unix sendiri dengan menggunakan System V sebagai standar. Versi Unix terpecah 2, tetapi ternyata ada versi ke-3, yakni XENIX, yang dikembangkan oleh Microsoft pada awal tahun 1980-an dan dilisensikan kepada Santa Cruz Operation (SCO). XENIX menggunakan standar sistem operasi dari AT&T versi yang lebih tua yaitu System III.

Karena kebutuhan standar sistem operasi, maka pada akhir tahun 1980-an, XENIX dan AT&T System V bergabung menjadi System V/386 yang menggabungkan seluruh fungsi tradisional System V dan XENIX, dirilis pada tahun 1988 untuk komputer berbasis 80386.

Pada musim panas 1988, AT&T dan Sun Microsystem menandatangani perjanjian kerjasama pengembangan yang kemudian menghasilkan System V Release 4 (SVR4), yang memiliki kemampuan terbaik dari System V dan Berkeley Unix, dan membuat semua program yang ditulis untuk kedua system tersebut menjadi kompatibel dalam satu sistem. Pada saat ini SunOS digantikan oleh sistem operasi Unix baru dengan nama Solaris.

Merasa terancam oleh AT&T dan Sun karena bukan merupakan bagian dari usaha pengembangan SVR4, Appolo Computer, Digital Equipment Computer (DEC), Hewlett Packard, IBM, dan sebagian pabrik di Eropa membentuk Open Software Foundation (OSF). Pembentukan ini sebagai usaha untuk melepaskan diri dari pengendalian AT&T, dengan atas nama koalisi industri not-for-profit, dan menggunakan ilsensi yang seragam. OSF dikembangkan dengan menggunakan standar AIX, dan kemudian diport ke dalam kernel MACH dari universitas Carnegie Mellon, dengan menggabungkan librari dan utility dari HP, IBM, dan DEC. Akan tetapi, hasil pengembangan OSF, OSF/1 tidak banyak digunakan hingga pada akhirnya koalisi tersebut mengembangkan sendiri-sendiri sistem mereka, misalnya IBM dengan AIX nya, dan sebagian lainnya mengadopsi SVR4 yang sudah direlease terlebih dahulu.

Tahun 1993, AT&T menjual Unix System Laboratory (USL) kepada Novell setelah berhasil menjadikan SVR4 sebagai standar industri. Akan tetapi keberhasilan standar Unix ini tidak dapat mengalahkan MS Windows yang dikembangkan sebagai sistem operasi untuk komputer desktop. Novel kemudian mentransfer merek dagang Unix kepada X/Open Consortium. Tahun 1995, Novell menjual kepemilikan source code Unix kepada SCO, dan dengan demikian menghentikan USL. Pada awal 1990-an, BSD 4.4 dikomersialkan dengan nama BSD/OS oleh BSD Inc., yang memiliki kemampuan sistem firewall jaringan, sistem VAR, dan lab. riset akademik.

Sementara itu sistem operasi seperti Unix (clone) yang cuma-cuma (free), Linux, diciptakan oleh Linus Torvald, mahasiswa ilmu komputer universitas Helsinki Finlandia, dikembangkan oleh para hobbyist, dan menguasai pasar bisnis kelas kecil (small-business). Beberapa implementasi sistem Unix dan seperti Unix (Unix-like) untuk PC dikembangkan berdasarkan kepada BSD 4.3 dan 4.4, dan sistem MACH yang dikembangkan oleh Carnegie yang menjadi fondasi dasar MacOS. Walaupun pada akhirnya sistem Unix yang ada saat ini belum bersatu dalam pengembangan, pada pertengahan tahun 1990-an diperkirakan sudah ada jutaan komputer dengan sistem operasi Unix diseluruh dunia. Sistem operasi Unix merupakan pilihan bagi banyak mikroprosesor, karena kemudahannya untuk diadopsi. Saat ini telah ada kumpulan standar untuk sistem operasi seperti Unix, termasuk di dalamnya antar muka (interface), librari, dan karakteristik kelakuan (behavioral characteristic). Kumpulan standar ini seperti POSIX, yang awalnya dikembangkan oleh IEEE, yang juga diadopsi sebagai ISO/IEC 9945. Dengan adanya penstandaran seperti antar muka, librari, dan kelakuan ini kita dapat menggunakan atau mengadakan mesin dengan Unix dari manapun.

Cara Kerja Penjadwalan Process pada UNIX Tradisional

Pada bagian ini kita akan memeriksa penjadwalan UNIX tradisional, yag mana digunakan baik dalam SVR3 dan 4.3 BSD UNIX. sistem ini sasaran utamanya pada pembagian lingkungan interaktif untuk time-sharing. Algoritma penjadwalan dirancang untuk menyediakan response time yang baikuntuk pengguna interaktif dengan menjamin bahwa tugas di background dengan prioritas rendah tidak terabaikan. Walaupun algoritma ini telah diganti di sistem UNIX modern, sangat berharga untuk memeriksa pendekatan ini karena algoritma ini mewakili algoritma penjadwalan time-sharing yang praktis. Skema penjadwalan untuk SVR4 memasukkan sebuah akomodasi untuk persyaratan real-time, sehingga pembahasan lebih lanjut tidak pada bagian ini. Pengatur jadwal pada UNIX tradisional menggunakan umpan balik banyak level yang menggunakan round robin dalam tiap prioritas antrian. Sistem menggunakan pendahuluan 1 detik(1-second preemption). Yaitu, jika sebuah process yang berjalan tidak memblok atau menyelesaikan dalam 1 detik, maka process tersebut disela. Prioritas berdasarkan pada jenis proses dan histori eksekusi. Formula berikut berlaku:

dimanaCPUj(i) = ukuran utilisasi prosesor oleh process j melalui interval iPj(i) = prioritas dari process j pada awal dari interval i; lebih rendah dari nilai sama dengan prioritas yang lebih tinggiBasej = prioritas dasar dari process jnicej = faktor penyesuaian yang bisa dikendalikan oleh pengguna prioritas dari tiap process dihitung ulang sekali tiap detik, pada waktu mana sebuah keputusan penjadwalan baru dibuat. Tujuan dari prioritas dasar adalah untuk membagi semua process menjadi daerah(band) yang tetap dari tingkat prioritas. Komponen CPU dan nice dibatasi untuk mencegah sebuah process dari berpindah keluar dari band yang diberikan (diberikan oleh tingkat prioritas dasar). Band-band ini digunakan untuk mengoptimalkan akses pada device blok(contoh disk) dan memungkinkan siste operasi untuk merespon secara cepat pada system call. Dalam urutan ke bawah dari prioritas, band tersebut antara lain : Swapper Kendali Device I/O Blok Manipulasi File Kendali device I/O karakter Process-process dari penggunaHirarki ini seharusnya menyediakan penggunaan I/O device paling efektif. Di dalam band process pengguna, penggunaan histori eksekusi cenderung untuk membatasi process yang terikat pada processor pada pengeluaran process yang terikat I/O. sekali lagi, hal ini seharusnya meningkatkan efisiensi. Berpasangan dengan skema preemption round-robin, strategi penjadwalan dipasangi dengan baik untuk memenuhi kebutuhan untuk pembagian waktu untuk tujuan umum.

ARSITEKTUR

Memberikan gambaran secara umum mengenai classic UNIX architecture. Mendasari hardware dikelilingi oleh OS software. OS sering disebut dengan system kernel, atau hanya kernel, untuk menekankan isolasi dari pengguna dan aplikasi. Ini adalah kernel UNIX bahwa kita akan peduli dengan dalam penggunaan UNIX. UNIX juga dilengkapi dengan sejumlah pengguna jasa dan antarmuka yang dianggap sebagai bagian dari sistem. Ini bisa dikelompokkan ke dalam shell, perangkat lunak antarmuka lain, dan komponen dari compiler bahasa C (compiler, assembler, loader). Lapisan luar ini terdiri dari aplikasi pengguna dan antarmuka pengguna untuk compiler bahasa C. Program program dapat memanggil layanan OS baik secara langsung atau melalui sistem antarmuka panggilan perpustakaan programs. Itu adalah batas dengan pengguna dan memungkinkan tingkat yang lebih tinggi bagi perangkat lunak untuk mendapatkan akses ke fungsi kernel tertentu. Di sisi lain, OS mengandung rutinitas primitif yang berinteraksi langsung dengan hardware. Antara kedua interface, sistem ini dibagi menjadi dua bagian utama, pertama berkaitan dengan pengendalian proses dan lainnya yang bersangkutan dengan manajemen file dan I / O.The subsistem proses kontrol bertanggung jawab.

Tradisional Unix KernelUntuk manajemen memori, penjadwalan dan pengiriman proses, dan sinkronisasi dan interprocess komunikasi proses. Sistem file menukar data antara memori dan perangkat eksternal baik sebagai aliran karakter atau dalam blocks. Untuk mencapai hal ini, banyak driver perangkat yang digunakan. Untuk blok-berorientasi transfer, pendekatan disk cache yang digunakan adalah sela sela sistem buffer dalam memori utama antara ruang pengguna alamat dan perangkat eksternal. Deskripsi ini telah berhubungan dengan apa yang mungkin disebut tradisional UNIX. System [VAHA96] menggunakan istilah ini untuk merujuk ke System V Release 3 (SVR3), 4.3BSD, dan versi sebelumnya. Menyusul kepernyataan umum dapat dibuat tentang system tradisional UNIX. Hal ini dirancang untuk berjalan pada prosesor tunggal dan tidak memiliki kemampuan untuk melindungi struktur data dari akses bersamaan oleh beberapa prosesor. Kernel yang sangat tidak fleksibel, mendukung satu jenis sistem file, penjadwalan proses kebijakan, dan file eksekusi format. System tradisional UNIX kernel tidak dirancang untuk diperluas dan memiliki beberapa fasilitas untuk penggunaan kembali kode. Hasilnya adalah bahwa, sebagai fitur baru ditambahkan ke versi UNIX berbagai kode baru banyak yang harus ditambahkan, menghasilkan kernel kembung dan unmodular.

B. LINUX

Linux pada awalnya dibuat oleh seorang mahasiswa Finlandia yang bernama Linus Torvalds. Dulunya Linux merupakan proyek hobi yang diinspirasikan dari Minix, yaitu sistem UNIX kecil yang dikembangkan oleh Andrew Tanenbaum.

Linux versi 0.01 dikerjakan sekitar bulan Agustus 1991. Kemudian pada tanggal 5 Oktober 1991, Linus mengumumkan versi resmi Linux, yaitu versi 0.02 yang hanya dapat menjalankan shell bash (GNU Bourne Again Shell) dan gcc (GNU C Compiler).Saat ini Linux adalah sistem UNIX yang sangat lengkap, bisa digunakan untuk jaringan, pengembangan software dan bahkan untuk pekerjaan sehari-hari. Linux sekarang merupakan alternatif sistem operasi yang jauh lebih murah jika dibandingkan dengan sistem operasi komersial (misalnya Windows 9.x/NT/2000/ME).

Linux mempunyai perkembangan yang sangat cepat. Hal ini dapat dimungkinkan karena Linux dikembangkan oleh beragam kelompok orang. Keragaman ini termasuk tingkat pengetahuan, pengalaman serta geografis. Agar kelompok ini dapat berkomunikasi dengan cepat dan efisien, internet menjadi pilihan yang sangat tepat.

Mengenal Arsitektur Linux

Linux adalah sistem operasi open source. Kalimat tadi sudah sering kita dengar dan sering kita baca, namun apa artinya kalo hanya sebuah kalimat tanpa di ketahui makna dan manfaatnya? dalam artikel ini, saya akan menjelaskan tentang Arsitektur Linux sebagai sedikit pencerahan tentang bagaimana Linux dirancang dan berkembang sampai saat ini.

Linux dan sistem operasi lain adalah kepanjangan tangan dari mesin, maka OS sering juga disebut Extended Machine. Struktur OS linux bisa dilihat seperti gambar diatas, Linux terdiri dari Kernel, library, CLI/Shell XWindows System, Windows Manager dan Desktop, baru diatas deskop bertengger aplikasi seperti Open office, Firefox dan kawan kawannya(*).

Kernel

Kernel adalah jantung dari sistem operasi , jika dilihat secara fisiknya, kernel adalah file yang ada di folder /boot dengan nama vmlinuz-2.6.xx.x, file ini adalah file utama Linux, jika anda menghapus file ini, maka secara otomatis Linux tidak akan bisa di boot, didalam kernel sendiri terdapat library dan driver, namun peletakannya tidak di folder /boot, namun di /lib/. Tugas utama kernel adalah mengatur sumber daya memori dan prosesor serta mengatur Akses fisik ke hardware, misal ke printer, keyboard dan jaringan.

Library

Sebelum membahas CLI, sebenarnya diatas kernel masih ada komponen yang tidak diperlihatkan di gambar, yang disebut dengan Library,Librari adalah file atau sekumpulanfile yang didalamnya terdapat fungsi fungsi /atau kelas yang dibutuhkan oleh program aplikasi. Sebagai contoh library adalah Glibc, libcurl, libpng serta library yang lain yang fungsinya menjadi pondasi untuk program yang akan berjalan diatasnya, sebagai contoh, tanpa library getty, maka kita tidak bisa membuka shell atau CLI, tanpa libpng maka kita tidak bisa membuka gambar, tanpa libmpg maka kita tidak bisa memutar mp3. sekali lagi librari adalah pondasi untuk aplikasi atau program tertentu, terkadang libari juga salih berkaitan (depedensi) misalkan libraeri A adalah pondasi dari Librari B dan Program C butuh librari B, ini yang disebut dengan depedency di linux.

Shell

Shell adalah aplikasi yang bertugas menerima Input perintah dari user, di Windows bisa disamakan dengan Command Prompt, bedanya, Shell di Linux tidak terikat dengan GUI nya. Linux mempunyai banyak shell , diantaranya adalah csh,tcsh,sh,ash dan yang paling populer Bash. Kebanyakan server, tiga lapis ini saja sudah lebih dari cukup, tinggal ditambahkan service (apliksi yang berjalan dibelakang layar) misal webserver apache.

X Windows

X Windows adalah Library khusus untuk tampilan GUI di UNIX/Linux, tanpa adanya librari ini, maka KDE, GNome atau openoffice tidak akan bisa berjalan,

Window Manager

Window Manager adalah pengelola jendela dari aplikasi yangberjalan di GUI, apa perbedaan Window Manager dengan Desktop seperti Gnome atau KDE? Window Manager hanya bertugas menangani posisi aplikasi di Layar, Window manager tidak mempunyai fitur misal Drag and Drop atau fitur canggih lainnya. Contoh window Manager adalah iceWM dan GNUStep.

Desktoplapisan diatas windows Manager adalah Desktop, ini adalah tampilan antarmuka yang langsung berhubungan dengan user dimana user tinggal klik,drag, melakukan segala kemudahan hanya dengan mouse. Contoh desktop di Linux adalah KDE,LXDE, Gnome, XFace atau EDE.

Aplikasi

Lapisan teratas dari sistem operasi Linux adalah aplikasi, misal Gedit,Open Office dan firefox. Dengan memahami bagaimana Linux dibangun, diharapkan kita bisa lebih memahami Linux dan bisa mengatasi permasalahan yang terjadi OS tersebut, dan kedepannya kita bisa membuat Distro Linux yang sesuai dengan kebutuhan kita.

pemahaman.

C. ANDROIDARSITEKTUR ANDROID

Google sebagai pencipta Android yang kemudian diasuh oleh Open Handset Alliance mengibaratkan Android sebagai sebuah tumpukan software. Setiap lapisan dari tumpukan ini menghimpun beberapa program yang mendukung fungsi-fungsi spesifik dari sistem operasi. Tumpukan paling bawah adalah kernel. Google menggunakan kernel Linux versi 2.6 untuk membangun Android, yang mencakup memory management, security setting, power management, dan beberapa driver hardware.Bertempat di level yang sama dengan library adalah lapisan runtime yang mencakup serangkaian inti library Java. Dengannya, para programmer dapat mengembangkan aplikasi untuk Android menggunakan bahasa pemrograman Java. Lapisan selanjutnya adalah application framework, yang mencakup program untuk mengatur fungs i- fungsi dasar smartphone.Gambar 4. Arsitektur Android1. Linux KernelAndroid dibangun di atas kernel Linux 2.6. Namun secara keseluruhan android bukanlah linux, karena dalam android tidak terdapat paket standar yang dimiliki oleh linux lainnya. Linux merupakan sistem operasi terbuka yang handal dalam manajemen memori dan proses. Oleh karenanya pada android hanya terdapat beberapa servis yang diperlukan seperti keamanan, manajemen memori, manajemen proses, jaringan dan driver. Kernel linux menyediakan driver layar, kamera, keypad, WiFi, Flash Memory, audio, dan IPC (Interprocess Communication) untuk mengatur aplikasi dan lubang keamanan.2. LibrariesAndroid menggunakan beberapa paket pustaka yang terdapat pada C/C++ dengan standar Berkeley Software Distribution (BSD) hanya setengah dari yang aslinya untuk tertanam pada kernel Linux. Beberapa pustaka diantaranya: Media Library untuk memutar dan merekam berbagai macam format audio dan video. Surface Manager untuk mengatur hak akses layer dari berbagai aplikasi. Graphic Library termasuk didalamnya SGL dan OpenGL, untuk tampilan 2D dan 3D. SQLite untuk mengatur relasi database yang digunakan pada aplikasi. SSl dan WebKit untuk browser dan keamanan internet.3. Android RuntimePada android tertanam paket pustaka inti yang menyediakan sebagian besar fungsi android. Inilah yang membedakan Android dibandingkan dengan sistem operasi lain yang juga mengimplementasikan Linux. Android Runtime merupakan mesin virtual yang membuat aplikasi android menjadi lebih tangguh dengan paket pustaka yang telah ada. Dalam Android Runtime terdapat 2 bagian utama, diantaranya:4. Application FrameworkKerangka aplikasi menyediakan kelas-kelas yang dapat digunakan untuk mengembangkan aplikasi android. Selain itu, juga menyediakan abstraksi generik untuk mengakses perangkat, serta mengatur tampilan user interface dan sumber daya aplikasi. Bagian terpenting dalam kerangka aplikasi android adalah sebagai berikut [Hello Android 2nd Edition]:1.Activity Manager, berfungsi untuk mengontrol siklus hidup aplikasi dan menjaga keadaan Backstack untuk navigasi penggunaan.2.Content Providers, berfungsi untuk merangkum data yang memungkinkan digunakan oleh aplikasi lainnya, seperti daftar nama.3.Resuource Manager, untuk mengatur sumber daya yang ada dalam program. Serta menyediakan akses sumber daya diluar kode program, seperti karakter, grafik, dan file layout.4.Location Manager, berfungsi untuk memberikan informasi detail mengenai lokasi perangkat android berada.5. Notification Manager, mencakup berbagai macam peringatan seperti, pesan masuk, janji, dan lain sebagainya yang akan ditampilkan pada status bar.5. Application LayerPuncak dari diagram arsitektur android adalah lapisan aplikasi dan widget. Lapisan aplikasi merupakan lapisan yang paling tampak pada pengguna ketika menjalankan program. Pengguna hanya akan melihat program ketika digunakan tanpa mengetahui proses yang terjadi dibalik lapisan aplikasi. Lapisan ini berjalan dalam Android runtime dengan menggunakan kelas dan service yang tersedia pada framework aplikasi.Lapisan aplikasi android sangat berbeda dibandingkan dengan sistem operasi lainnya. Pada android semua aplikasi, baik aplikasi inti (native) maupun aplikasi pihak ketiga berjalan diatas lapisan aplikasi dengan menggunakan pustaka API (Application Programming Interface) yang sama.