Rabu, 02 Maret 2011

Proses Booting Linux dan Windows

LINUX
Sebagai pengguna linux, mungkin sebagian besar dari kita tidak perduli dengan apa yang terjadi ketika booting linux berlangsung. Padahal, di dalam booting kita bisa melihat tentang sistem linux yang kita gunakan, bisa mengubah password, backup dan restore database, dan sebagainya. Maka dari itu tutorial ini mencoba menjelaskan apa yang terjadi di dalam linux ketika peristiwa booting itu berlangsung.
II.Urutan Booting
Secara ringkas, urutan booting pada linux bisa dilihat pada gambar di bawah ini:

1. BIOS: Basic Input/Output System merupakan interface level paling bawah yang menghubungkan antara komputer dan periperalnya. BIOS melakukan pengecekan integritas memori dan mencari instruksi pada? Master Boot Record (MBR) yang terdapat pada floppy drive atau harddisk.


2. MBR menjalankan boot loader. Di linux, boot loader yang sering dipakai adalah LILO (Linux Loader) dan GRUB (GRand Unified Boot loader). Pada Red Hat dan Turunannya menggunakan GRUB sebagai boot loader.

3. LILO/GRUB akan membaca label sistem operasi yang kernelnya akan dijalankan. Pada boot loader inilah sistem operasi mulai dipanggil. Untuk mengkonfigurasi file grub, buka filenya di /boot/grub/grub.conf

4. Setelah itu, tanggung jawab untuk booting diserahkan ke kernel. Setelah itu, kernel akan menampilkan versi dari kernel yang dipergunakan, mengecek status SELinux, menegecek paritisi swap, mengecek memory, dan sebagainya.

5. Kernel yang dipanggil oleh bootloader kemudian menjalankan program init, yaitu proses yang menjadi dasar dari proses-proses yang lain. Ini dikenal dengan nama The First Process. Proses ini mengacu pada script yang ada di file /etc/rc.d/rc.sysinit.

6. Program init kemudian menentukan jenis runlevel yang terletak pada file /etc/inittab. Berdasarkan pada run-level, script kemudian menjalankan berbagai proses lain yang dibutuhkan oleh sistem sehingga sistem dapat berfungsi dan digunakan. Runlevel adalah suatu parameter yang mengatur servis yang akan dijalankan misalnya single user, reboot, shutdown, dan sebagainya. Program yang mengatur runlevel ini adalah init yang terletak pada direktori /etc/inittab. Ini adalah file di /etc/inittab:

Di file tersebut, dapat dilihat jenis-jenis runlevel. Ada 7 jenis runlevel yang bisa digunakan untuk berbagai macam keperluan yang selengkapnya dapat dilihat sebagai berikut:
0: sistem halt
1: Modus single user, untuk maintenance (backup/restore) dan perbaikan
2: Multi user tanpa dukungan jaringan
3: Multiuser dengan dukungan jaringan baerbasis console (text)
4: Tidak digunakan
5: Multiuser dengan dukungan jaringan berbasis grafis
6: reboot

Selanjutnya ada system initialization. Skrip ini berhubungan dengan setiap runlevel. Sebagai contoh, runlevel yang kita gunakan adalah runlevel 3, maka skrip yang digunakan untuk menjalankan runlevel ini ada di directory /etc/rc.d/rc3.d.

Selanjutnya di dalam file tersebut ada skrip seperti berikut:
id:3:initdefault:
pernyataan di atas menunjukkan bahwa ketika system booting, maka sistem akan menggunakan runlevel 3 yaitu system akan menggunakan konsol teks.

Selanjutnya ada skrip yang seperti dibawah ini:
# Trap CTRL-ALT-DELETE
ca::ctrlaltdel:/sbin/shutdown -t3 -r now
Ini menjelaskan bahwa setelah penekanan tpombol CTRL-ALT-DELETE, sistem akan tereboot setelah 3 detik.

Skrip selanjutnya berhubungan dengan penggunaan UPS (Uninterruptible Power Supply). Jika kita mempunyai UPS? yang terhubungkan dengan system kita dan listrik mati, maka UPS mengambil alih system kelistrikan system computer. Tetapi UPS hanya bisa menjalankan computer dalam batas waktu tertentu dan proses shutdown akan dimulai selama 2 menit dan memberitahukan pengguna sebagai berikut:
pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure; System Shutting Down"
perintah ini tidak menjalankan fsck ketika reboot dan ketika mematikan system.
Jika listrik kembali menyala sebelum shutdown dieksekusi, maka perintah berikutnya untuk membatalkan shutdown:
pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled"

Skrip selanjutnya menjelaskan tentang virtual consoles. Virtual consoles adalah baris perintah dimana kita bisa masuk ke system linux. Untuk membuat virtual console yang baru cukup tekan ALT+F2 sampai ALT+F6. Untuk mengkonfigurasi virtual console, maka kita cukup membuka file ini dan secara asal, di file ini hanya tersedia 6 virtual consoles. Kita bisa menambahkan sampai 12 virtual console di dalam system kita.

Skrip terakhir menunjukkan jika kita ingin merubah dari command teks ke GUI. Hal ini bisa dilakukan dengan cara menekan CTRL+ALT+x, dimana x mewakili salah satu dari virtual consoles.

WINDOWS
DOS-based Windows

* Windows 1.x/2.x

Pada Windows 1.01 hingga Windows/386

1. Sistem dimuat (loaded) ketika WIN.COM dieksekusi.
2. Kemudian WIN.COM memuat berkas win100.bin/win200.bin dan win100.ovl/win200.ovl, beserta file konfigurasi WIN.INI.
3. Modul GDI.EXE, KERNEL.EXE, USER.EXE, fonts dan driver (misal comm.drv, mouse.drv, keyboard.drv) disatukan loadingnya pada win100.bin/win200.bin dan win100.ovl/win200.ovl
4. Shell kemudian dimuat, default yang digunakan adalah MS-DOS Executive.

* Windows 3.x/9.x

Pada Windows 3.x dan Windows 95/98/ME

1. Boot loader ditangani oleh MS-DOS.
2. File Autoexec.bat dan Config.sys dieksekusi bersama file konfigurasi WIN.INI dan SYSTEM.INI.
3. Driver Virtual Device juga dimuat ketika proses startup : pemuatan (loading) berasal dari registri (pada string HKLM\System\CurrentControlSet\Services\VxD) atau dari file SYSTEM.INI
4. Kemudian modul 16-bit, krnl386.exe, gdi.exe, dan user.exe dimuat.
5. Kemudian berkas DLL 32-bit (kernel32.dll, gdi32,dll, dan user32.dll) dimuat.
6. Message server 32bit VxD (Msgsrv32) memulai program Mprexe.exe yang bertanggungjawab terhadap loading dari network logon client (misal Client for Microsoft Networks, Microsoft Family Logon atau Windows Logon).
7. Setelah user login ke dalam Windows, startup sound dimainkan, kemudian ditampilkan default shell (Explorer.exe) yang dimuat dari SYSTEM.INI, kemudian item startup dimuat.

Windows NT

Keluarga Windows NT, Windows 200, Windows XP, Windows Server 2003


Proses Booting dimulai sebagai berikut:
Untuk x86 atau x64 = partition boot sector code dieksekusi pada mode real kemudian memuat NTLDR
Untuk IA-64 = IA64ldr.efi dieksekusi

1. MBR memuat NTLDR ke dalam memori.
2. NTLDR kemudian memindahkan komputer ke flat memory model (melewati pembatasan memori 640KB yang ada pada PC), kemudian membaca file BOOT.INI dan melakukan pengecekan apakah ada OS lain.
3. Kemudian NTLDR akan membuka program lain bernama NTDETECT.COM yang melakukan pengecekan semua hardware yang ada pada komputer. Setelah selesai, NTDETECT.COM memberikan kembali informasinya ke NTLDR.
4. NTLDR kemudian akan berusaha memuat OS dengan menemukan file NTOSKRNL.EXE (atau NTKRNLPA.EXE pada komputer yang mendukung Physical Address Extension) yaitu kernel (inti) dari OS.
5. Setelah sukses, NTLDR kemudian memberikan kontrol proses kepada kernel dan kepada file HAL.DLL (untuk mengontrol Hardware Abstraction Layer).
6. NTOSKRNL kemudian menangani proses selanjutnya. Yang pertama adalah memuat "low-level system drivers", setelah itu NTOSKRNL memuat semua file yang dibutuhkan untuk membuat "core" dari OS.
7. Kemudian, Windows akan memverifikasi apakah terdapat lebih dari satu konfigurasi hardware profile pada komputer, kalau terdapat lebih dari satu hardware profile windows akan menampilkan menu pilihan, tetapi apabila hanya terdapat satu profile maka windows akan langsung memuat default profile.
8. Sesudah windows mengenali hardware profile yang digunakan, windows kemudian memuat semua device driver untuk semua hardware yang terdapat pada komputer, Pada saat ini tampilan monitor menampilkan “Welcome To Windows XP" boot screen.
9. Terakhir windows menjalankan semua service yang dijadwalkan secara otomatis. Pada saat ini tampilan monitor menampilkan “logon screen”.

Windows Vista

Keluarga Windows Vista, Windows Server 2008, Windows 7

1. MBR memuat BOOTMGR
2. BOOTMGR membaca BCD (Boot Configuration Data). BCD adalah database firmware-independent untuk konfigurasi data boot. BCD terletak di \Boot\BCD atau terletak di System Partition Extensible Firmware Interface (EFI)
3. BOOTMGR memuat Windows Boot Manager (winload.exe)
4. winload.exe memuat OS dengan menemukan file NTOSKRNL.EXE (atau NTKRNLPA.EXE pada komputer yang mendukung Physical Address Extension) yaitu kernel dari OS.
5. NTOSKRNL kemudian menangani proses selanjutnya. Yang pertama adalah memuat "low-level system drivers", setelah itu memuat semua file yang dibutuhkan untuk membuat "core" dari OS.
6. Kemudian, Windows akan memverifikasi apakah terdapat lebih dari satu konfigurasi hardware profile pada komputer, kalau terdapat lebih dari satu hardware profile windows akan menampilkan menu pilihan, tetapi apabila hanya terdapat satu profile maka windows akan langsung memuat default profile.
7. Sesudah windows mengenali hardware profile yang digunakan, windows kemudian memuat semua device driver untuk semua hardware yang terdapat pada komputer, Pada saat ini tampilan monitor menampilkan “Starting Windows" boot screen.
8. Terakhir windows menjalankan semua service yang dijadwalkan secara otomatis. Pada saat ini tampilan monitor menampilkan “logon screen"

1 komentar:


Ferdi van Oyiig !