Anda di halaman 1dari 17

Definisi Kernel

Kernel adalah sebuah program yang merupakan pusat dari sebuah komputer inti sistem operasi. Ini memiliki kontrol penuh atas segala sesuatu yang terjadi dalam sistem. Kernel dapat dibandingkan dengan shell (seperti bash, csh atau ksh in Unixseperti sistem operasi), yang merupakan bagian terluar dari sistem operasi dan program yang berinteraksi dengan user perintah. Kernel itu sendiri tidak berinteraksi secara langsung dengan pengguna, melainkan berinteraksi dengan shell dan program lain serta perangkat dengan hardware di sistem, termasuk prosesor (juga disebut central processing unit atau CPU), memori dan disk drive. Kernel adalah bagian pertama dari sistem operasi untuk me-load ke memori pada saat boot (yaitu, sistem startup), dan tetap di sana selama seluruh durasi sesi komputer karena layanan yang diperlukan secara terus-menerus. Dengan demikian, penting untuk terlebih dahulu sekecil mungkin namun tetap memberikan semua layanan-layanan penting yang dibutuhkan oleh bagian lain dari sistem operasi dan oleh berbagai program aplikasi. Karena sifat kritis, kode kernel biasanya dimuat ke memori kawasan lindung, yang mencegah dari yang diganti oleh yang lain, lebih sering digunakan bagian-bagian dari sistem operasi atau program aplikasi. Kernel melakukan tugasnya, seperti melaksanakan proses dan penanganan interrupt, dalam ruang kernel, sedangkan semua pengguna tidak normal, seperti menulis teks dalam editor teks atau menjalankan program dalam GUI (antarmuka pengguna grafis), dilakukan dalam ruang pengguna . Pemisahan ini dilakukan untuk mencegah data pengguna dan kernel data dari campur dengan satu sama lain dan dengan demikian mengurangi performa atau menyebabkan sistem menjadi tidak stabil (dan mungkin menabrak). Ketika komputer crash, itu sebenarnya berarti kernel telah jatuh. Jika hanya satu program yang telah jatuh, tetapi sisa sistem tetap beroperasi, maka kernel sendiri tidak jatuh. Sebuah tabrakan adalah situasi di mana sebuah program, baik pengguna aplikasi atau bagian dari sistem operasi, berhenti melaksanakan fungsi yang diharapkan (s) dan merespons ke bagian lain dari sistem. Program mungkin akan muncul kepada pengguna untuk membeku. Jika program seperti kritis pengoperasian kernel, seluruh komputer dapat kios atau mematikan. Kernel menyediakan layanan dasar untuk semua bagian lain dari sistem operasi, biasanya termasuk manajemen memori, manajemen proses, manajemen file dan I / O (input / output) manajemen (yaitu, mengakses perangkat perifer). Layanan ini diminta oleh bagian lain dari sistem operasi atau program aplikasi melalui serangkaian program

tertentu antarmuka sistem disebut sebagai panggilan. Proses manajemen, mungkin aspek yang paling jelas dari kernel kepada pengguna, adalah bagian dari kernel yang memastikan bahwa setiap proses mendapatkan giliran untuk berjalan di prosesor dan bahwa proses individu tidak mengganggu satu sama lain dengan menulis ke daerah mereka memori. Sebuah proses, juga disebut sebagai tugas, dapat didefinisikan sebagai pelaksana (yaitu, berjalan) contoh dari sebuah program. Isi kernel bervariasi sesuai dengan sistem operasi, tetapi mereka biasanya meliputi (1) scheduler, yang menentukan bagaimana berbagai proses berbagi waktu proses kernel (termasuk dalam urutan), (2) seorang supervisor, yang memberikan penggunaan dari komputer untuk setiap proses ketika dijadwalkan, (3) pengendali interupsi, yang menangani semua permintaan dari berbagai perangkat keras (seperti disk drive dan keyboard) yang bersaing untuk layanan kernel dan (4) manajer memori, yang mengalokasikan ruang alamat sistem (yaitu, lokasi di memori) di antara semua pengguna layanan kernel. Kernel tidak boleh bingung dengan BIOS (Basic Input / Output System). BIOS adalah suatu program mandiri yang tersimpan dalam sebuah chip pada motherboard(papan sirkuit utama dari komputer) yang digunakan selama proses boot untuk tugas-tugas seperti sebagai menginisialisasi hardware dan memuat kernel ke memori.Sedangkan BIOS selalu tetap di dalam komputer dan spesifik terhadap hardware tertentu, kernel dapat dengan mudah diganti atau ditingkatkan dengan mengubah atau meng-upgrade sistem operasi atau, dalam kasus Linux, dengan menambahkan kernel yang lebih baru atau memodifikasi kernel yang sudah ada. Kebanyakan kernel telah dikembangkan untuk sistem operasi tertentu, dan biasanya hanya ada satu versi yang tersedia untuk setiap sistem operasi. Sebagai contoh, Microsoft Windows 2000 kernel adalah satu-satunya kernel untuk Microsoft Windows 2000 dan Microsoft Windows 98 adalah satu-satunya kernel kernel untuk Microsoft Windows 98. Linux jauh lebih fleksibel dalam bahwa ada banyak versi dari kernel Linux, dan masing-masing dapat dimodifikasi dalam banyak cara oleh pengguna informasi. Beberapa kernel telah dirancang dengan tujuan untuk menjadi cocok untuk digunakan dengan sistem operasi apapun. Yang paling terkenal di antaranya adalah kernel Mach, yang dikembangkan di Carnegie-Mellon University dan digunakan dalam Macintosh OS X sistem operasi. Hal ini tidak diperlukan untuk sebuah komputer untuk memiliki sebuah kernel agar hal itu untuk digunakan, alasannya karena bahwa hal itu tidak perlu untuk itu untuk memiliki sistem operasi. Itu, adalah mungkin untuk memuat dan menjalankan program secara langsung pada mesin logam telanjang (yaitu, komputer tanpa sistem operasi diinstal), meskipun hal ini biasanya tidak terlalu praktis.

Bahkan, generasi pertama komputer digunakan logam telanjang operasi. Namun, akhirnya menyadari bahwa kenyamanan dan efisiensi dapat ditingkatkan dengan mempertahankan program utilitas kecil, seperti program loader dan debugger, dalam memori antara aplikasi. Program-program ini secara bertahap berkembang menjadi kernel sistem operasi. Istilah kernel sering digunakan dalam buku-buku dan diskusi tentang Linux, sedangkan itu digunakan lebih jarang ketika mendiskusikan beberapa sistem operasi lain, seperti Microsoft Windows sistem. Alasannya adalah bahwa kernel sangat dapat dikonfigurasi dalam kasus Linux dan pengguna didorong untuk mempelajari dan memodifikasi, dan untuk men-download dan menginstal update versi. Dengan sistem operasi Microsoft Windows, sebaliknya, relatif sedikit ada titik dalam mendiskusikan kernel karena mereka tidak dapat dimodifikasi atau diganti. Kategori kernel Kernel dapat diklasifikasikan ke dalam empat kategori luas: monolitik kernel, microkernels, hybrid kernel dan exokernels. Masing-masing memiliki pendukung dan pengkritik. Kernel monolitik, yang secara tradisional telah digunakan oleh Unix-sistem operasi mirip, berisi semua fungsi inti sistem operasi dan device driver (program kecil yang memungkinkan sistem operasi untuk berinteraksi dengan perangkat keras, seperti disk drive, video card dan printer) . Kernel monolitik modern, seperti Linux dan FreeBSD, yang keduanya jatuh ke dalam kategori operasi mirip Unix sistem, fitur kemampuan untuk memuat modul saat runtime, sehingga memungkinkan perluasan mudah kemampuan kernel sesuai kebutuhan, sambil membantu meminimalkan jumlah kode yang berjalan dalam ruang kernel. Sebuah mikrokernel biasanya hanya menyediakan layanan minimal, seperti menentukan ruang alamat memori, interprocess komunikasi (IPC) dan proses manajemen.Semua fungsi lain, seperti pengelolaan perangkat keras, yang dilaksanakan sebagai proses yang berjalan secara independen dari kernel. Contoh sistem operasi mikrokernel AIX, BeOS, Hurd, Mach, Mac OS X, MINIX dan QNX. Hybrid kernel mirip dengan microkernels, kecuali bahwa mereka termasuk kode tambahan di ruang kernel sehingga kode tersebut bisa berjalan lebih cepat daripada itu akan berada di ruang pengguna. Kernel ini merupakan kompromi yang dilaksanakan oleh beberapa pengembang sebelum itu menunjukkan bahwa microkernels murni dapat memberikan performa tinggi. Hybrid kernel tidak boleh dikacaukan dengan monolithic kernel yang dapat memuat modul setelah boot (seperti Linux).

Sebagian besar sistem operasi modern menggunakan kernel hibrida, termasuk Microsoft Windows NT, 2000 dan XP. Dragonfly BSD, garpu baru-baru ini (yaitu, varian) dari FreeBSD, adalah yang pertama berbasis non-Mach BSD sistem operasi untuk menggunakan kernel hibrida arsitektur. Masih Exokernels adalah pendekatan eksperimental desain sistem operasi. Mereka berbeda dari kernel, jenis lain dalam fungsi mereka terbatas pada perlindungan dan multiplexing mentah perangkat keras, dan mereka tidak memberikan abstraksi perangkat keras di atas aplikasi yang dapat dibangun. Pemisahan ini hardware perlindungan dari manajemen perangkat keras memungkinkan pengembang aplikasi untuk menentukan bagaimana membuat yang paling efisien penggunaan perangkat keras yang tersedia untuk setiap program khusus. Exokernels dalam diri mereka sangat kecil. Namun, mereka yang disertai dengan sistem operasi perpustakaan, yang menyediakan pengembang aplikasi dengan fungsionalitas konvensional dari sebuah sistem operasi lengkap. Keuntungan utama dari sistem berbasis exokernel adalah bahwa mereka dapat menggabungkan beberapa sistem operasi perpustakaan, masing-masing mengekspor API yang berbeda (antarmuka pemrograman aplikasi), seperti satu untuk Linux dan satu untuk Microsoft Windows, sehingga memungkinkan untuk secara bersamaan menjalankan keduanya Linux dan jendela aplikasi. The Monolithic Versus Kontroversi Mikro Pada awal 1990-an, banyak ilmuwan komputer dianggap monolitik kernel untuk menjadi usang, dan mereka meramalkan bahwa akan merevolusi microkernels desain sistem operasi. Bahkan, perkembangan Linux sebagai sebuah kernel monolitik daripada mikrokernel menyebabkan api terkenal perang (yaitu perang mulut di Internet) antara Andrew Tanenbaum, pengembang sistem operasi MINIX, dan Linus Torvalds, yang awalnya Linux dikembangkan didasarkan pada MINIX. Microkernels pendukung menunjukkan bahwa kernel monolitik memiliki kekurangan bahwa kesalahan dalam kernel dapat menyebabkan seluruh sistem crash.Namun, dengan sebuah mikrokernel, jika proses kernel crash, masih mungkin untuk mencegah kecelakaan dari sistem secara keseluruhan dengan hanya me-restart servis yang menyebabkan kesalahan. Meskipun ini terdengar masuk akal, ini dipertanyakan betapa pentingnya dalam kenyataan, karena sistem operasi dengan monolithic kernel seperti Linux telah menjadi sangat stabil dan dapat berjalan selama bertahun-tahun tanpa menabrak. Kelemahan lain dikutip untuk kernel monolitik adalah bahwa mereka tidak portabel yaitu, mereka harus ditulis ulang untuk setiap arsitektur baru (yakni, tipe prosesor) bahwa sistem operasi akan digunakan di. Namun, dalam praktiknya, hal ini tidak muncul untuk menjadi kerugian yang besar, dan tidak mencegah dari yang porting

Linux untuk beberapa prosesor. Monolithic kernel juga tampaknya memiliki kekurangan bahwa kode sumber dapat menjadi sangat besar. Source code adalah versi perangkat lunak seperti yang awalnya ditulis (yaitu, diketik ke dalam komputer) oleh seorang manusia dalam teks biasa (misalnya, bisa dibaca manusia alpha numeric karakter) dan sebelum waktunya akan diubah oleh kompiler menjadi kode obyek bahwa sebuah prosesor komputer dapat langsung membaca dan mengeksekusi. Sebagai contoh, kode sumber untuk kernel Linux versi 2.4.0 sekitar 100MB dan mengandung hampir 3.38 juta baris, dan bahwa untuk versi 2.6.0 ini berisi 212MB dan 5.93 juta baris. Hal ini menambah kompleksitas mempertahankan kernel, dan juga membuat sulit bagi generasi baru ilmu komputer siswa untuk belajar dan memahami kernel. Namun, pendukung kernel monolitik mengklaim bahwa meskipun ukuran mereka kernel tersebut lebih mudah untuk merancang dengan benar, dan dengan demikian mereka dapat ditingkatkan lebih cepat daripada yang bisa berbasis sistem mikrokernel. Selain itu, ukuran kernel dikompilasi hanya sebagian kecil dari yang dari source code, misalnya kira-kira 1.1MB dalam kasus Linux version 2.4, salah satu jenis Red Hat Linux 9 desktop instalasi. Berkontribusi untuk ukuran kecil terkompilasi kernel Linux adalah kemampuannya untuk memuat modul secara dinamis pada saat runtime, sehingga kernel dasar hanya berisi komponen-komponen yang diperlukan untuk sistem untuk memulai itu sendiri dan untuk me-load modul. Yang monolitik kernel Linux dapat dibuat sangat kecil tidak hanya karena kemampuannya untuk memuat modul secara dinamis tetapi juga karena kemudahan kustomisasi. Bahkan, ada beberapa versi yang cukup kecil untuk cocok bersama-sama dengan sejumlah besar utilitas dan program lain pada satu floppy disk dan masih menyediakan sistem operasi yang berfungsi penuh (salah satu yang paling populer yang muLinux). Kemampuan untuk miniaturize dengan kernel juga mengakibatkan pertumbuhan yang cepat dalam penggunaan Linux pada embedded system (yaitu, sirkuit komputer dibangun menjadi produk lain). Meskipun sangat kecil microkernels oleh diri mereka sendiri, dalam kombinasi dengan semua kode tambahan yang diperlukan mereka mereka, pada kenyataannya, sering kali lebih besar dari monolitik kernel. Kernel monolitik pendukung juga menunjukkan bahwa dua struktur berjenjang sistem mikrokernel, di mana sebagian besar sistem operasi tidak berinteraksi secara langsung dengan hardware, menciptakan biaya tidaktidak penting dalam hal sistem efisiensi.

1. Kernel Linux adalah kernel yang digunakan dalam sistem operasi GNU/Linux. Kernel
ini merupakan turunan dari keluarga sistem operasi UNIX, dirilis dengan menggunakan lisensi GNU General Public License (GPL), dan dikembangkan oleh pemrogram di seluruh dunia. Linux merupakan contoh utama dari perangkat lunak bebas dan sumber terbuka.

Linux pertama kali ditulis oleh Linus Benedict Torvalds pada tahun 1991. Pada saat itu, Proyek GNU telah membuat banyak komponen yang dibutuhkan untuk membentuk sebuah sistem operasi yang bebas, tapi belum memiliki kernel yang melandasi komponen aplikasi tersebut. Sebenarnya waktu itu, sudah ada kandidat kuat sebagai fondasi sistem operasi GNU, yang dinamakan dengan Hurd, tapi pengembangannya belum selesai. Pada saat awal pengembangannya, Linux sangat sederhana. Tapi berkat dukungan semua pihak (khususnya komunitas sistem operasi Minix) yang menyumbang ide ke dalam Linux sehingga dapat berkembang.

2. Mach OS adalah sebuah sistem operasi kernel mikro yang dikembangkan di Carnegie
Mellon University untuk mendukung sistem operasi penelitian, terutama komputasi terdistribusi dan paralel. Ini adalah salah satu contoh awal dari sebuah mikrokernel, dan derivatif merupakan dasar dari kernel sistem operasi modern di Mac OS X dan GNU Hurd. Proyek di Carnegie Mellon lari 1985-1994, berakhir dengan Mach 3.0. Sejumlah upaya lainnya Mach terus penelitian, termasuk University of Utah 's Mach 4 [1]. Mach dikembangkan sebagai pengganti kernel di BSD versi UNIX, sehingga tidak ada sistem operasi baru harus dirancang di sekitarnya. Hari ini penelitian eksperimental lebih lanjut Mach tampaknya telah berakhir, meskipun Mach dan turunannya sedang digunakan dalam beberapa sistem operasi komersial, seperti NeXTSTEP dan OPENSTEP, dan terutama Mac OS X menggunakan XNUkernel sistem operasi yang memasukkan Mach sebagai komponen utama. Mach virtual memory sistem manajemen juga diadopsi oleh pengembang BSD di CSRG, dan muncul di BSD modern yang diturunkan dari sistem UNIX, seperti FreeBSD. Baik Mac OS X maupun FreeBSD mempertahankan struktur mikrokernel dirintis di Mach, walaupun Mac OS X terus menawarkan mikrokernel Antar-Proses Komunikasi dan kontrol primitif untuk digunakan langsung oleh aplikasi. Mach merupakan pengganti logis Carnegie Mellon's Accent kernel. Memimpin pengembang di proyek Mach, Richard Rashid, telah bekerja di Microsoft sejak tahun 1991 di berbagai tingkat atas posisi bergulir di seluruh Microsoft Research divisi. Lain Mach asli pengembang, Avie Tevanian, adalah mantan kepala perangkat lunak di NeXT, lalu Chief Software Technology Officer di Apple Computer sampai Maret 2006.

Mac OS X menggunakan kekuatan kedua kernel Kernel MacOS disebut dengan singkatan XNU (X is Not Unix). Hal ini dapat dipahami, karena Apple mengombinasikan dua sumber untuk kernel sistem operasinya dan hanya sebagian yang berasal dari dunia Unix. Bagian lainnya berasal dari proyek Mach, contoh klasik untuk sebuah micro kernel. Apple menggunakan Mach hanya untuk Message Passing, komunikasi efisien setiap bagian kernel. Selain itu XNU berisi code dari proyek FreeBSD berbasis Unix. Bagian ini mengurus pengelolaan pengguna, pemrosesan sinyal, dan kompatibilitas POSIX. Melalui yang terakhir dijamin, kebanyakan program dari dunia Unix juga berfungsi di bawah Mac OS X. Sebuah komponen penting Mach adalah I/O-Kit untuk pemrosesan input/output. Di sini, ada perbedaan besar dengan Windows dan Linux. Sebab I/O-Kit bekerja sebagai lapisan abstraksi tambahan antara hardware dan sistem selebihnya. Di dalamnya, terdapat modelmodel driver standar sehingga menjamin stabilitas lebih besar dan performa yang lebih baik. Selain layanan kernel, Mac OS X juga menawarkan untuk menggunakan ekstensi kernel. Ini baru di-load sistem ketika diperlukan. Sistem itu sering disebut hybrid-kernel, tetapi para pakar mengklasifikasikan kernel Mac OS X berdasarkan konstruksinya, yaitu monolitik.

3. Windows 98 Kernel menyediakan fungsi sistem operasi dasar, termasuk file I / O layanan, manajemen memori virtual, dan tugas penjadwalan. Ketika seorang pengguna ingin menjalankan aplikasi, Kernel load EXE dan DLL file untuk aplikasi. Memory Pager Windows 98, seperti Windows NT, menggunakan permintaan-paged sistem memori virtual. Sistem ini didasarkan pada datar, ruang alamat linier, diakses menggunakan alamat 32-bit. Setiap proses adalah unik mengalokasikan ruang alamat virtual dari 2 gigabyte (GB). Atas 2 GB digunakan bersama-sama, sedangkan yang lebih rendah 2 GB adalah swasta ke aplikasi. Ruang alamat virtual ini dibagi menjadi blok yang sama, atau halaman. Demand paging adalah metode kode dan data yang dipindahkan di halaman dari memori fisik untuk sementara paging file di disk. Seperti informasi yang dibutuhkan oleh proses, adalah paged kembali ke memori fisik sesuai permintaan. Pager Memori virtual peta alamat dari ruang alamat proses halaman fisik di dalam memori komputer. Dalam melakukannya, Pager Memori menyembunyikan organisasi fisik memori dari proses benang. Hal ini memastikan bahwa benang dapat mengakses memori dari proses yang diperlukan, tetapi bukan memori proses-proses lain. Oleh karena itu, seperti yang ditunjukkan pada Gambar 28,7, memori virtual sebuah proses benang jauh lebih sederhana daripada susunan nyata halaman dalam memori fisik.

Gambar Memori Memori pemetaan dengan Pager Untuk mendukung operasi 16-bit lingkungan termasuk Windows 3.1 dan MS-DOS, arsitektur prosesor Intel menggunakan mekanisme yang disebut segmen. Segmen referensi memori dengan menggunakan segmen 16-bit alamat, dan 16-bit alamat offset dalam segmen. Sebuah segmen dalam ukuran 64 KB, dan kinerja dari kedua aplikasi dan sistem operasi menderita untuk mengakses informasi melintasi batas-batas segmen. Windows 98 mendukung model memori untuk kompatibilitas untuk aplikasi berbasis Win16 yang ditulis untuk itu dengan menyediakan emulasi oleh subsistem Win16. Untuk mendukung aplikasi berbasis Win32 dan fitur, Windows 98 menggunakan 32-bit kemampuan dari 80386 (dan kemudian) untuk mendukung arsitektur prosesor yang datar, linear model memori 32-bit untuk sistem operasi fungsi dan aplikasi berbasis Win32. Sebuah model pengalamatan linier menyederhanakan proses pengembangan aplikasi vendor dan menghapus hukuman kinerja yang dipaksakan oleh tersegmentasi arsitektur memori. Dengan model pengalamatan ini, Windows 98 memungkinkan penggunaan penuh dari 4 GB ruang memori diakses untuk semua 32-bit komponen sistem operasi dan aplikasi. Setiap aplikasi 32-bit bisa akses sampai 2 GB ruang memori diakses, cukup untuk mendukung aplikasi desktop terbesar.

Proses Penjadwalan dan Multitasking Penjadwal Proses adalah komponen sistem yang bertanggung jawab untuk menyediakan sumber daya untuk aplikasi dan proses lainnya yang dijalankan, dan untuk penjadwalan proses untuk mengijinkan beberapa aplikasi berjalan secara bersamaan. Penjadwal Proses juga jadwal proses dalam cara yang memungkinkan beberapa aplikasi dan proses lain untuk menjalankan secara bersamaan. Windows 98 menggunakan dua metode untuk penjadwalan proses konkuren - koperasi multitasking dan pencegahan multitasking.

Dengan Windows 3.1, aplikasi berlari bersamaan melalui metode yang dikenal sebagai koperasi multitasking. Dengan menggunakan metode ini, sistem operasi diperlukan sebuah aplikasi untuk memeriksa pesan antrian secara berkala dan melepaskan kontrol dari sistem untuk menjalankan aplikasi lain. Aplikasi yang tidak memeriksa pesan antrian akan efektif "babi" waktu CPU dan mencegah pengguna dari beralih ke aplikasi lain. Untuk alasan kompatibilitas, Windows 98 kooperatif multitasks aplikasi berbasis Win16. Windows 98 menggunakan preventif multitasking untuk aplikasi berbasis Win32. Ini berarti bahwa sistem operasi mengambil kendali menjauh dari atau memberikan kontrol untuk menjalankan tugas yang lain, tergantung pada kebutuhan sistem. Tidak seperti aplikasi berbasis Win16, Win32 aplikasi berbasis tidak perlu menyerah pada tugas-tugas lain untuk multitask berjalan dengan benar. Aplikasi berbasis Win32 dapat memanfaatkan multithreading, sebuah mekanisme yang Windows 98 menyediakan untuk memfasilitasi kemampuan untuk menjalankan aplikasi secara bersamaan. Sebuah aplikasi berbasis Win32 berjalan dalam sistem ini disebut proses dalam hal sistem operasi. Setiap proses terdiri dari setidaknya satu benang eksekusi kode yang mengidentifikasi jalur aliran seperti yang dijalankan oleh sistem operasi. Sebuah thread adalah unit kode yang dapat mendapatkan waktu slice dari sistem operasi untuk menjalankan secara bersamaan dengan unit lain kode, dan harus terkait dengan suatu proses. Namun, sebuah aplikasi berbasis Win32 dapat memulai beberapa benang untuk suatu proses untuk meningkatkan aplikasi untuk pengguna dengan meningkatkan throughput, meningkatkan respon, dan membantu proses latar belakang. Karena sifat multitasking antisipasi Windows 98, benang memungkinkan eksekusi kode untuk menjadi lancar diproses di latar belakang. Sebuah ilustrasi yang baik ini adalah Windows 98 shell itu sendiri. Meskipun shell adalah suatu proses berbasis Win32, setiap folder window yang terbuka adalah benang terpisah eksekusi. Akibatnya, ketika Anda melakukan operasi copy antara dua, jendela folder shell, operasi dilakukan pada benang jendela target. Anda masih dapat menggunakan jendela-jendela lain di shell tanpa gangguan, atau Anda dapat memulai salinan yang berbeda dalam jendela lain. Dalam contoh lain, aplikasi pengolah kata (sebuah proses) dapat melaksanakan beberapa benang untuk meningkatkan operasi dan menyederhanakan interaksi dengan pengguna. Aplikasi dapat memiliki thread yang terpisah menanggapi tombol pada keyboard diketik oleh pengguna untuk menempatkan karakter dalam dokumen, sementara thread yang lain melakukan operasi latar belakang, seperti memeriksa ejaan atau paginating, dan yang ketiga kelos benang dokumen ke printer dalam latar belakang.

Blok I / O Subsystem Gambar 28,9 menunjukkan blok I / O subsistem dalam Windows 98. Ini meningkatkan pada 32-bit akses disk "FastDisk" arsitektur perangkat digunakan dalam Windows 3.1 untuk meningkatkan kinerja untuk seluruh sistem file, dan menyediakan berbagai perangkat yang lebih luas dukungan.

Gambar Blok I / O subsistem Blok I / O subsistem meliputi komponen-komponen berikut. Input / Output Supervisor (IOS). Komponen ini menyediakan layanan bagi sistem file dan driver. IOS bertanggung jawab atas antrian permintaan layanan file dan untuk routing permintaan untuk sistem file yang sesuai driver. IOS asynchronous juga menyediakan sistem berkas pemberitahuan dari peristiwa untuk driver.Komponen ini dijelaskan lebih lanjut dalam "Input / Output Supervisor dan Driver Loading" kemudian dalam bab ini. Port sopir. Ini adalah monolitik, 32-bit, mode dilindungi driver yang berkomunikasi dengan perangkat disk tertentu, seperti harddisk controller. Driver ini adalah Windows 98 - spesifik dan mirip dengan 32-bit akses disk driver yang digunakan di Windows 3.1 (misalnya, untuk WDCTRL Western Digital - kompatibel hard disk controller). Pada Windows 98, pengemudi yang berkomunikasi dengan IDE atau ESI controller harddisk dan floppy disk controller diimplementasikan sebagai sopir pelabuhan. Sebuah port pengemudi menyediakan fungsi yang sama dengan kombinasi SCSI miniport manajer dan sopir. lapisan SCSI. Komponen ini berlaku 32-bit, dilindungi-mode, model arsitektur driver universal untuk berkomunikasi dengan perangkat SCSI. SCSI layer menyediakan semua fungsionalitas tingkat tinggi umum untuk perangkat SCSI dan yang serupa, dan kemudian menggunakan driver untuk menangani miniport khusus perangkat I / O panggilan. SCSI Manager, yang juga merupakan bagian dari sistem ini, memberikan dukungan kompatibilitas untuk menggunakan Windows NT miniport driver. Miniport. Miniport Windows 98 driver model memudahkan perangkat disk hardware vendor untuk menulis device driver. Karena SCSI tulisan rintisan menyediakan fungsionalitas tingkat tinggi untuk berkomunikasi dengan perangkat SCSI, hardware vendor perangkat disk hanya perlu membuat sopir miniport disesuaikan dengan vendor perangkat disk sendiri. Windows 98 miniport driver adalah 32-bit, mode yang dilindungi kode dan biner-kompatibel dengan Windows NT miniport driver. Namun, lebih tua ditulis miniport driver untuk Windows NT tidak termasuk Plug and Play informasi. Oleh karena itu, mereka tidak akan bekerja dengan baik pada Windows 98. Selain itu lapisan lain, blok I / O subsistem menyediakan modus real-lapisan pemetaan. Lapisan ini memberikan kompatibilitas dengan real-mode, MS-DOS berbasis perangkat yang driver-mode yang dilindungi rekan tidak ada. Lapisan ini memungkinkan dilindungi-modus sistem file untuk berkomunikasi dengan real-mode driver seakan-mode yang dilindungi komponen.

Lapisan di atas blok I / O dan modus real-mapper dilindungi kode mode, dan modus real-mapper menerjemahkan file I / O permintaan dari protected mode ke real mode, sehingga MS-DOS berbasis device driver dapat melakukan operasi yang tepat untuk menulis atau membaca informasi ke atau dari perangkat disk. Sebagai contoh, modus real-mapper digunakan saat modus real software kompresi disk berjalan dan yang dilindungi-modus kompresi disk driver tidak tersedia. Input / Output Supervisor dan Driver Loading I / O Supervisor adalah sebuah sistem yang diperlukan VxD yang melakukan kontrol dan manajemen tugas untuk dilindungi-modus sistem file dan block device driver pada Windows 98. I / O Supervisor beban dan dilindungi-mode menginisialisasi device driver dan menyediakan layanan yang diperlukan untuk I / O operasi. I / O Supervisor menerima permintaan dari CDFS VFAT dan file sistem dan load driver untuk mengakses perangkat disk lokal dan drive, termasuk SCSI dan IDE.WD1003 mendukung driver yang kompatibel, mengambil kendali real-mode driver, dan menyediakan mapper untuk real-mode driver. Modus real-mapper di I / O Supervisor menyediakan kompatibilitas dengan real-mode MS-DOS device driver yang dilindungi-modus rekan-rekan tidak ada. Sebagai contoh, modus real-mapper pergi bekerja ketika real-modus perangkat lunak kompresi disk berjalan dan yang dilindungi-modus kompresi disk driver tidak tersedia.Komponen ini memastikan kompatibilitas dengan binari MS-DOS yang ada berbasis device driver disk pada Windows 98. I / O Supervisor pertama kali dilaksanakan di Windows 3. X sebagai BLOCKDEV, dan di Windows 98 itu juga menyediakan jasa untuk BLOCKDEV lebih tua 32-bit akses disk driver. Tanggung jawab baru untuk I / O Supervisor meliputi:
Mendaftar driver. Routing

dan antrian I / O permintaan, dan mengirim pemberitahuan asynchronous untuk driver yang diperlukan.
Menyediakan driver layanan yang dapat digunakan untuk mengalokasikan

memori dan lengkap I / O permintaan.

Windows 98 load dan menginisialisasi I / O Supervisor seperti dirinci dalam sebuah perangkat = entri dalam System.ini. I / O Supervisor adalah diinisialisasi sebelum klien dan virtualisasi driver, seperti Apix dan INT 13, sehingga klien dan driver virtualisasi dapat layanan panggilan pada I / O Supervisor untuk mendaftar dan melaksanakan tugas-tugas. Untuk memuat dan pelabuhan menginisialisasi driver, miniport driver, dan nilai-tambah driver, I / O Supervisor membutuhkan file untuk driver ini untuk disimpan dalam \ System \ IOSubsys direktori dengan nama file ekstensi yang ditunjukkan pada Tabel 28,3.

The \ System \ IO Subsys direktori dicadangkan untuk driver perangkat yang khusus dirancang untuk digunakan dengan I / O Supervisor. Klien lain atau virtualisasi driver harus disimpan dalam direktori lain dan secara eksplisit dimuat menggunakan perangkat = isian di System.ini.

I / O device driver menginisialisasi Supervisor (seperti yang dijelaskan pada bagian berikutnya) dari lapisan bawah ke atas, jadi driver port diinisialisasi sebelum driver yang disediakan vendor, vendor-driver yang disertakan sebelum tipe driver yang spesifik, dan seterusnya. Nilai tambah driver diinisialisasi dalam kelompok, lapisan-by-layer, dengan semua driver dalam satu lapisan diinisialisasi sebelum driver dalam lapisan berikutnya. Perintah inisialisasi dalam lapisan tidak didefinisikan, sehingga Anda tidak dapat bergantung pada pembalap dalam kelompok yang diinisialisasi dalam urutan tertentu, atau bahkan di urutan yang sama antara operasi startup. Untuk Plug and Play deteksi, I / O Supervisor beban port tertentu atau pengemudi miniport hanya jika permintaan itu Manajer Konfigurasi driver dimuat setelah deteksi hardware menempatkan adaptor.

4. Windows XP Windows XP mengunakan kernel windows 2000 yang telah dimodifikasi dengan penambahan peripheral-peripheral yang sangat banyak serta meningkatkan kemampuan untuk mengenali hardware-hardware baru yang terdapat dalam suatu komputer yang dikenal dengan istilah plug and play sebagai dasar dari system operasinya.Microsoft juga memperbaiki beberapa kode perintah pada kernel untuk menigkatkan proses booting, manajemen memori dan yang terpenting adalah proses pengaturan registry. 1. Dynamic Library Link (DLL) Microsoft Windows XP telah mengubah sistem kerja dari DLL yang dimiliki oleh sistemnya. Pada generasi sebelumnya, Windows hanya bisa menggunakan DLL tunggal pada sistem operasinya yang dapat mengakibatkan terjadinya crash pada program-program lama yang menggunakan suatu DLL tertentu. Hanya ini terjadinya karena adanya penghapusan DLL lama jika DLL dengan versi yang lebih baru dimasukkan ke dalam sistem. Semuanya itu karena pada pengaturan kernel, Windows hanya dapat menggunakan sebuah duplikasi terhadap suatu DLL.

Lain halnya dengan pengaturan kernel XP. Pada sistem operasi ini DLL yang lama tidak akan dihilangkan dari sistem jika terdapat DLL baru yang masuk ke sistem. Oleh karena itu pada sistem Windows XP, program-program lama yang menggunakan suatu DLL tidak akan terganggu kinerjanya karena adanya program-program baru yang menggunakan DLL yang baru.

Dalam sistem Windows XP ini DLL untuk masing-masing program dapat bekerja secara simultan dengan menggunakan ruang memori yang berbeda di dalam menjalankan program aplikasi masing-masing. 2. Memori Pada windows XP, pengunaan virtual memori telah dikurangi dengan mengoptimalkan pengaturan manajemen memori pool. Selain itu jumlah alamat memori dalam system

Windows XP yang dapat dipetakan telah ditingkatkan menjadi 2(dua) kali lipat dari alamat memori yang diatur oleh kernel Windows 2000. Pada kernelnya, Windows XP menggunakan konsep Small Pool dan Large Pool dimana jika system meminta penyimpanan pada small pool maka untuk aplikasi yang membutuhkan memori yang lebih besar penyimpanannya dapat ditempatkan pada large pool. Hal ini memungkinkan large pool tidak terlalu terfragmentasi sehingga Windows dapat selalu menyediakan memori dalam ukuran besar dan cepat. Selain itu kernel XP juga menangani low-memory dengan cukup baik. Dengan menggunakan I/O throttling, ketika resourcedalam keadaan low, system operasi dapat mengurangi pemrosesan memori. Walaupun system akan melambat tetapi system tidak akan mengalai crash. 3. Registry Dalam menangani system registry, Windows XP menetapkan system algoritma baru yang dapat mengurangi fragmentasi registry. Memori registry dapat dipindahkan dalam ruang memori kernel ke address memori tertentu untuk meningkatkan kapasitas. Ketika suatu aplikasi dijalankan maka dengan sendirinya system operasi akan memanggil entry yang dibutuhkan agar dapat mengakses secara install jika membutuhkannya.

5. Windows Vista ASLR pada Windows Vista menyamarkan alamat RAM Prosesor baru memiliki lebar address-bus 64 Bit, tetapi sejak awal menggunakan beberapa Bit untuk tugas-tugas lain. Misalnya, NX-Bit untuk mencegah eksekusi data (Data Execution Prevention, DEP). Apabila code yang berada dalam sebuah bagian RAM yang ditandai sebagai tidak dapat dijalankan tetap dijalankan, akan timbul kesalahan internal. Kondisi ini memberi peluang kepada hacker untuk memicu buffer-overrun, yaitu mereka menginfeksi proses seperti Internet Explorer untuk masuk ke dalam sistem. Apabila sebuah malware menetap, ia dapat menggunakan Windows-API untuk melakukan aksinya, misalnya mengubah konfigurasi sistem. Oleh karena itu, Microsoft telah menggunakan sebuah fungsi proteksi kernel baru bernama Address Space Load Randomization (ASLR), sebagian dalam SP2 XP, sepenuhnya baru di dalam Windows Vista. Latar belakangnya, celah masuk bagi hacker di bawah Windows adalah DLL, yang dalam versi Windows terdahulu selalu diload ke tempat yang sama dalam RAM. Dengan ASLR setiap kali system-DLL dan file EXE akan di-load ke tempat yang berbeda dalam RAM, malware tidak lagi dapat mencapai system action yang bersangkutan melalui alamat standar. Untuk menyamarkan tersedia 256 alamat berbeda bagi RAM-manager pada saat start.

Apabila sebuah DLL di-load, ia memilih sebuah tempat dalam RAM secara acak. Selain itu, strategi pemindahan ASLR memiliki kelebihan, bagian alamat dapat lebih dipadatkan daripada dalam versi Windows terdahulu sehingga tersedia lebih banyak tempat kosong yang berdekatan. Integrity check: membackup code sebagai penangkal, Microsoft menggunakan Kernel Mode Code Signature (KMCS) dalam Vista, yang hanya mengijinkan driver perangkat dengan digital signature. Kebanyakan driver mendapatkan signature dari Windows Hardware Quality Lab (WHQL), tetapi pengembang dapat memberi signature sendiri code buatannya. Untuk itu dibutuhkan sebuah sertifikat yang berlaku. Author melengkapi code secara digital dengan sebuah nilai Hash (sidik jari), memberi signature dengan sebuah kunci pribadi dan menambahkan sertifikat serta Hash terenkripsi. Pada upaya load sebuah driver, Windows mendekripsi Hash yang ada dalam code dengan kunci dalam sertifikat dan memeriksa, apakah hash cocok dengan code program. Windows juga memeriksa, apakah sertifikat yang bersangkutan terkait dengan salah satu pusat sertifikasi utama yang terintegrasi dalam loader dan kernel Windows. Vista mode 32 Bit memang memeriksa driver signature, namun berbeda dengan modus 64 Bit yang mengijinkan driver tanpa signature di-load. Secara umum, modul kernel dapat diberi digital signature di bawah Linux dan MacOS X. Teori ini juga berlaku bagi driver, tetapi dalam sistem operasi tidak ada check routine untuk itu.

6. Windows Server 2008 Gambar 1 menunjukkan varian dari Windows Server 2008 kernel, di mana versi yang digunakan pada sebuah sistem tergantung pada apakah itu adalah debug (Checked) atau eceran versi sistem operasi, apakah instalasi 32-bit atau 64-bit (Itanium, intel 64, atau AMD64), dan, jika 32-bit instalasi, apakah sistem memiliki lebih dari 4GB memori fisik atau mendukung Pencegahan Eksekusi Data (DEP). Windows Server 2008 adalah juga yang terakhir sistem operasi Windows Server yang diperkirakan akan menawarkan versi 32-bit.

Gambar 1 Windows Server 2008 kernel varian

Setiap rilis Windows Server berfokus pada meningkatkan kinerja server kunci skenario seperti file melayani, jaringan I / O, dan memori manajemen.Selain itu, Windows Server

2008 memiliki beberapa perubahan dan fitur baru yang memungkinkan Windows untuk mengambil keuntungan dari arsitektur perangkat keras baru, beradaptasi dengan jaringan latensi tinggi, dan menghapus kemacetan bahwa kinerja dibatasi dalam versi Windows Memory Management sebelumnya. Bagian ini ulasan tambahan dalam manajer memori, I / O sistem, dan pengenalan dari sebuah sistem berkas jaringan baru, SMB 2.0. Manajer memori kinerja meliputi beberapa perangkat tambahan pada Windows Server 2008. Misalnya, isu-isu yang lebih sedikit dan lebih besar disk I / O daripada yang dilakukannya pada Windows Server 2003 ketika mengambil data dari file atau melakukan paging membaca-depan I / O pada file dipetakan. File yang lebih besar I / O yang difasilitasi oleh perubahan pada I / O sistem yang menghapus 64KB I / O-batas ukuran yang telah hadir sejak rilis pertama Windows NT . Juga, penting untuk dicatat bahwa data yang dibaca untuk dibaca-depan (spekulatif dibaca) dari file dipetakan oleh Manajer Cache biasanya dua kali lebih besar pada Windows Server 2008 daripada mereka pada Windows Server 2003 dan langsung masuk ke daftar siaga (sistem kode dan data cache). Perilaku ini terjadi bukan mengharuskan Cache Manager untuk peta virtual memori dan membaca data ke dalam Sistem's working set (memori ditetapkan pada Sistem oleh manajer memori), yang mungkin menyebabkan penggunaan lain dalam kode atau data yang akan sia-sia diusir dari working set. Manajer memori yang lebih besar juga melakukan I / Os saat menulis data ke file paging. Sedangkan Windows Server 2003 sering dilakukan bahkan menulis kurang dari 64KB, pada Windows Server 2008 manajer memori 1MB menulis masalah-masalah umum. Selain meningkatkan kinerja dengan mengurangi jumlah menulis ke file paging, semakin besar juga menulis mengurangi fragmentasi dalam paging file. Hal ini pada gilirannya menyebabkan pengurangan jumlah mencari membaca dan disk yang dibutuhkan untuk membaca kembali beberapa halaman, karena mereka akan lebih sering daripada tidak juga berbatasan. Manajer memori juga berusaha untuk menulis halaman diubah lain yang dekat dengan yang ditulis di dalam proses memiliki ruang alamat, dan target area paging file di mana halaman tetangga lain sudah berada. Hal ini juga meminimalkan fragmentasi dan dapat meningkatkan kinerja karena pada akhirnya halaman yang mungkin ditulis ke file paging sudah ditulis. Selain itu, mengurangi jumlah paging membaca diperlukan untuk menarik dalam berbagai proses yang berdekatan halaman. Lihat di Kolom "Percobaan: Melihat Large Disk I / Os" untuk informasi lebih lanjut tentang penggunaan Manajer Memori besar I / Os.

7. Windows 7 Windows 7 Kernel Arsitektur Perubahan - api-ms-win-core file

Windows 7 memperkenalkan sebuah set baru dll file yang berisi fungsi-fungsi dari banyak diekspor terkenal Win32 API. Semua nama file tersebut diawali dengan 'api-ms-win-inti' prefix, diikuti oleh fungsi-fungsi nama kategori. Sebagai contoh, api-ms-win-corelocalregistry-l1-1-0.dll berisi nama-nama diekspor untuk semua fungsi Registry, api-ms-wincore-file-l1-1-0.dll berisi nama-nama diekspor untuk semua file-fungsi terkait, api-ms-wincore-localization-l1-1-0.dll berisi nama-nama diekspor untuk semua fungsi lokalisasi, dan sebagainya. Jika Anda melihat secara mendalam ke dalam file ini, Anda akan melihat bahwa semua filefile ini sangat kecil, dan fungsi di dalamnya doen't melakukan apa-apa, dan hanya mengembalikan sebuah 'TRUE' value. Hanya sebagai contoh, ini isi bahasa assembly RegDeleteValueW berfungsi dalam api-ms-win-core-localregistry-l1-1-0.dll:

084010CE 33C0 xor eax, eax 084010D0 40 inc eax 084010D1 C20800 ret 0.008

Dengan melihat pada pejalan ketergantungan utilitas, kita dapat melihat bahwa advapi32.dll, kernel32.dll, dan sistem lainnya dll files, kini statis kosong ini dikaitkan dengan api-ms-winfile inti.

Selain itu, jika kita melihat dalam bahasa assembly output dari banyak fungsi API, kita dapat melihat bahwa mereka hanya memanggil fungsi yang sesuai dalam salah satu api-ms-wincore DLL. Hanya sebagai contoh, RegDeleteValueW dalam advapi32.dll, hanya berisi melompat ke dalam RegDeleteValueW API-MS-Win-Core-LocalRegistry-L1-1-0.dll:

ADVAPI32! RegDeleteValueW: 77C6F301 8BFF mov edi, edi 77C6F303 55 push EBP 77C6F304 8BEC mov EBP, esp 77C6F306 5D pop EBP 77C6F307 EB05 jmp 77C6F30E . . . 77C6F30E FF25B414C677 jmp dword ptr [77C614B4] <- [77C614B4] Points the import entry of API-MS-Win-Core-LocalRegistry-L1-1-0.RegDeleteValueW

Jadi jika RegDeleteValueW di ADVAPI32 dan fungsi-fungsi lain hanya melompat ke fungsi kosong, bagaimana mungkin bahwa fungsi-fungsi ini masih berfungsi dengan baik?

Jawabannya cukup sederhana: Ketika Windows load file dll, semua entri impor ini api-mswin-DLL inti digantikan dengan panggilan ke salah satu fungsi nyata di Windows kernel. Jadi di sini RegDeleteValueW kita contoh lagi: ketika loading program ke WinDbg, kita dapat melihat bahwa panggilan jmp menunjuk pada kernel32! RegDeleteValueW fungsi.

Itu karena selama pemuatan advapi32.dll, Windows secara otomatis menggantikan masuknya impor, API-MS-Win-Core-LocalRegistry-L1-1-0.RegDeleteValueW ke alamat fungsi RegDeleteValueW di kernel32.

75e5f301 8bff mov edi, edi 75e5f303 55 push EBP 75e5f304 8bec mov EBP, esp 75e5f306 5d pop EBP 75e5f307 eb05 jmp ADVAPI32! RegDeleteValueW 0 xd (75e5f30e) . . . 75e5f30e ff25b414e575 jmp dword ptr [ADVAPI32 0 x14b4 ds:0023:75 e514b4 =(kernel32! RegDeleteValueW (758bd5af))

(75e514b4)]

Dll baru lain: kernelbase.dll Selain API baru-MS-Win-Core dll files, ada juga yang lain dll baru: kernelbase.dll Dalam versi Windows sebelumnya, sebagian besar fungsi kernel32 dipanggil untuk mereka sesuai fungsi dalam ntdll.dll. Pada Windows 7, sebagian besar fungsi kernel panggilan ke fungsi-fungsi terkait di kernelbase.dll, dan kernelbase dll adalah salah satu yang membuat panggilan ke ntdll.dll

Anda mungkin juga menyukai