Kernel Sistem Operasi by phiean

VIEWS: 6,531 PAGES: 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 Unix-
seperti 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 tidak-tidak 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 model-
  model 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-core-
   localregistry-l1-1-0.dll berisi nama-nama diekspor untuk semua fungsi Registry, api-ms-win-
core-file-l1-1-0.dll berisi nama-nama diekspor untuk semua file-fungsi terkait, api-ms-win-
core-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 file-
file 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-win-
file 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-win-
core 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-ms-
win-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                       (75e514b4)]
ds:0023:75 e514b4 =(kernel32! RegDeleteValueW (758bd5af))

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

								
To top