Anda di halaman 1dari 12

Operasi pada Linux

I.

Proses pada Linux


Proses adalah program tunggal yang berjalan pada alamat virtual, berarti setiap hal yg
berjalan dibawah Linux adalah proses. Proses ini berjalan melalui perintah-perintah yang ada
dalam shell. Satu baris perintah dalam shell terkadang mampu mempengaruhi lebih dari satu
proses, khususnya jika terdapat perintah pipe. Sistem UNIX melakukan suatu fork, yaitu
melakukan beberapa urutan operasi untuk membuat suatu proses konteks dan kemudian
mengeksekusi program tersebut dalam konteks yang sudah dibuat.
Linux mengatur semua proses di dalam sistem melalui pemeriksaan dan perubahan
terhadap setiap struktur data task_struct yang dimiliki setiap proses. Sebuah daftar pointer ke
semua struktur data task_struct disimpan dalam task vector. Jumlah maksimum proses dalam
sistem dibatasi oleh ukuran dari task vector. Linux umumnya memiliki task vector dengan
ukuran 512 entries. Saat proses dibuat, task_struct baru dialokasikan dari memori sistem dan
ditambahkan ke task vector. Linux juga mendukung proses secara real time. Proses semacam
ini harus bereaksi sangat cepat terhadap event eksternal dan diperlakukan berbeda dari proses
biasa lainnya oleh penjadwal.
Linux mendukung proses, memori, sistem file, dan input / output. Gagasan ini penting
karena sistem panggilan-interface untuk sistem operasi itu sendiri-memanipulasi mereka.
Misalnya, panggilan sistem yang ada untuk membuat proses dan benang, mengalokasikan
memori, file yang terbuka, dan melakukan I / O.
1. Konsep Dasar
Entitas yang paling aktif pada linux adalah sistem dan prosesnya. Proses linux sangat
mirip dengan proses sequential klasik. Setiap proses yang berjalan pada satu program dan
mulanya hanya memiliki satu tread dari kontrol. Dalam kata lain, proses tersebut sudah
memiliki satu konter program, dimana menyimpan jejak dari instruksi berikutnya agar dapat
di eksekusi. Linux mengizinkan sebuah proses untuk membuat thread tambahan ketika proses
tersebut di eksekusi.
Linux adalah sistem multiprogramming, untuk melakukan banyak aktifitas, proses yang
mandiri mungkin akan menjalankan proses tersebut secara bersamaan. Selanjutnya, setiap
user mungkin mempunyai beberapa proses aktif dalam waktu yang bersamaan., jadi untuk
sistem yang besar, mungkin ada seratus atau bahkan ribuan proses yang sedang di jalankan.
Proses pada linux dapat berkomunikasi antar sesame dengan menggunakan form dari
pengiriman pesan. Ini sangat mungkin untuk membuat saluran antara dua proses kedalam
salah satu proses dapat menulis bagian-bagian dari byte-byte untuk dapat dibaca. Saluransaluran ini disebut dengan pipe. Sinkronisasi sangat memungkinkan karena ketika proses
mencoba untuk membaca dari pipe yang kosong, hal itu dapat terkunci sampai data tersebut
tersedia.
Setiap kali instruksi diberikan pada Linux shell, maka kernel akan menciptakan sebuah
proses-id. Proses ini disebut juga dengan terminology Unix sebagai sebuah Job. Proses Id

(PID) dimulai dari 0, yaitu proses INIT, kemudian diikuti oleh proses berikutnya (terdaftar
pada /etc/inittab).
Proses juga dapat berkomunikasi dengan cara lain: software menyela. Sebuah proses
dapat mengirim apa yang disebut sinyal ke proses lain. Proses dapat memberitahu sistem apa
yang mereka inginkan terjadi ketika sinyal tiba. Pilihannya adalah untuk mengabaikannya,
untuk menangkapnya, atau membiarkan sinyal membunuh proses (default untuk sebagian
besar sinyal). Jika sebuah proses memilih untuk menangkap sinyal yang dikirim ke sana, itu
harus menentukan prosedur penanganan sinyal. Ketika sinyal tiba, kontrol tiba-tiba akan
beralih ke pawang. Ketika handler selesai dan kembali, kontrol kembali ke tempat asalnya,
analog untuk hardware I / O interupsi. Sebuah proses hanya dapat mengirim sinyal kepada
anggota kelompok proses, yang terdiri dari induknya (dan leluhur lanjut), saudara kandung,
dan anak-anak (dan keturunan selanjutnya). Sebuah proses juga dapat mengirim sinyal ke
semua anggota kelompok proses dengan sistem panggilan tunggal.
Beberapa tipe proses :
Foreground
Proses yang diciptakan oleh pemakai langsung pada terminal (interaktif,
dialog).
Batch
Proses yang dikumpulkan dan dijalankan secara sekuensial (satu persatu). Proses
Batch tidak diasosiasikan (berinteraksi) dengan terminal. Proses yang tidak berhubungan
dengan terminal tetapi menunggu untuk dieksekusi secara sequent.
Daemon
Proses yang menunggu permintaan (request) dari proses lainnya dan menjalankan
tugas sesuai dengan permintaan tersebut. Bila tidak ada request, maka program ini akan
berada dalam kondisi idle dan tidak menggunakan waktu hitung CPU. Umumnya nama
proses daemon di UNIX berakhiran d, misalnya inetd, named, popd dll. Cara termudah
untuk mengetahui proses apa yang sedang berjalan pada sistem adalah menggunakan
perintah ps (process status). Perintah ps mempunyai beberapa option dan argumen, tersedia
untuk seluruh user dan root, walau tentu hasilnya akan berbeda tergantung login anda. Jika
anda login sebagai user biasa (bukan root), jika perintah ps ditulis akan tampak hasil seperti:
$ ps
PID TTY STAT TIME COMMAND
41 v01 S 0:00 -bash
134 v01 R 0:00 ps
Hasil dari perintah ps selalu disusun dalam bentuk kolom. Kolom pertama
berlabel PID (Process Identification Number); adalah penomoran dari Linux untuk
menandai sebuah proses, dimulai dari nol dan bertambah satu untuk tiap proses hingga
nomor tertinggi. Jika Linux mencapai nomor tertinggi, penomoran akan dimulai lagi dari
nomor terendah dengan melewati nomor yang sedang digunakan proses yang aktif.
Biasanya nomor terendah digunakan oleh proses kernel dan daemon yang dimulai saat
booting hingga Linux berjalan. Untuk memanipulasi proses kita dapat menggunakan PID.

Kolom TTY menunjukkan terminal yang digunakan saat proses dimulai. Kolom STAT
menunjukkan kondisi terkini dari proses, entri yang paling banyak terdapat S untuk
sleeping dan R untuk running. Kolom TIME menunjukkan CPU time yang digunakan
oleh proses. Kolom NAME menunjukkan nama proses yang berjalan, biasanya adalah
nama perintah yang dimasukkan. Beberapa perintah digunakan untuk memulai perintah
yang lain, proses ini dikenal dengan child process. Terdapat banyak versi perintah ps
tergantung versi Linux yang digunakan.
2. Keadaan Proses
Proses proses yang dikelola oleh sistem operasi akan melalui serangkaian
keadaan yang merupakan bagian dari aktivitasnya. Keadaan proses ini disebut sebagai
status proses yang terdiri dari:
- Status Ready yaitu status dimana proses siap dieksekusi tetapi CPU belum tersedia
karena sedang mengerjakan proses lain.
- Status Waiting yaitu status dimana proses sedang menunggu suatu kejadian tertentu.
Misalnya sedang menunggu operasi I/O selesai, menunggu signal dari proses lain,
tersedianya memori, dsb.
- Status Running yaitu status dimana proses dieksekusi. Pada status ini CPU sedang
mengeksekusi instruksi instruksi pada proses.
- Status Terminated yaitu status dimana proses diakhiri.
Kelima status proses tersebut dapat digambarkan pada diagram berikut:

Sebuah proses menjadi Waiting karena proses tersebut menunggu suatu kejadian
tertentu seperti selesainya operasi I/O, misalnya perekaman data ke disk karena pada
saat perekaman dilakukan proses sedang tidak menggunakan CPU maka scheduler
segera mengalokasikan CPU ke proses lain yang telah Ready. Apabila kejadian yang
ditunggu telah selesai maka proses dipindahkan kembali ke antrian Ready dan siap
dijadwalkan.
Sebuah proses dari keadaan Running dapat menjadi Ready kembali karena
diinterupsi oleh proses lain. Interupsi dapat disebabkan karena jatah waktu yang
diberikan CPU ke proses tersebut telah habis sementara proses masih memerlukan
sejumlah waktu untuk selesai. Jatah waktu yang diberikan sering disebut sebagai
quantum time (time slice) yang dapat berkisar antara 1 hingga 100 milidetik.

Interupsi suatu proses terkait erat dengan strategi penjadwalan proses yang digunakan
sistem operasi yaitu strategi preemptive dimana suatu proses dapat saja disela oleh
proses lain pada saat Running.
-

Sebuah proses menjadi Terminated disebabkan oleh beberapa hal diantaranya:


1. Proses memang sudah sele sai mengerjakan tugasnya, sehingga diakhiri secara
normal
2. Melewati batas waktu yang telah diberikan.
3. Terjadi kesalahan perhitungan misalnya mengerjakan instruksi pembagian
dengan nol (division by zero) , atau menyimpan angka yang lebih besar daripada
yang dapat diakomodasi oleh perangkat keras.
4. Terjadi kegagalan I/O seperti kegagalan pembacaan dan penulisan file.
5. Proses induknya berakhir, pada kasus ini suatu proses dibuat oleh proses lain,
proses pembuat disebut sebagai parent, sedangkan proses yang dibuat disebut
sebagai child . Sistem dirancang untuk mengakhiri secara otomatis proses
proses childnya bila proses parent berakhir.
6. Proses child diakhiri atas permintaan proses parentnya. Pada kasus ini parent
mengirim signal tertentu untuk mengakhiri childnya misalnya mengirim signal
SIGQUIT, SIGKILL atau SIGTERM.

3. Konsep Pembuatan Proses


Konsep pembuatan proses pada sistem operasi linux :
1) Setiap proses diberi nomor khusus sebagai identifikasi yang disebut process identification
atau PID berupa angka integer unik.
2) Jika proses selesai (Terminated) maka semua sumber daya yang digunakan termasuk PID
dibebaskan kembali.
3) Proses dibuat menggunakan system call fork() yang sering disebut forking proses
4) System call fork() mengkopi proses pemanggil sehingga akan terdapat 2 proses yaitu:
1. Proses pemanggil disebut PARENT
2. Proses hasil kopian disebut CHILD
5) Proses CHILD identik dengan proses PARENT-nya tetapi memiliki PID yang berbeda.
6) Setelah proses baru (child) berhasil dibuat eksekusi dilanjutkan secara normal di masing
masing proses pada baris setelah pemanggilan system call fork().
7) Proses pemanggil (PARENT) dapat melakukan forking proses lebih dari satu kali
sehinggamemungkinkan terdapat banyak proses CHILD yang dieksekusi.
8) Proses CHILD dapat melakukan forking proses seperti halnya PARENT sehingga dapat
terbentuk struktur pohon proses.
4. Identifikasi Proses
Untuk melihat PID setiap proses di sistem, dapat digunakan perintah ps seperti
terlihat pada gambar berikut :

Pustaka GNU C telah menyediakan beberapa tipe dan fungsi untuk membaca ID proses,
diantaranya :
- Tipe Data : pid_t
Tipe yang merepresentasikan ID proses, tipe data pid_t merupakan signed
integer dalam pustaka GNU tipe ini adalah int.
-

Fungsi : pid_t getpid (void)


Fungsi 'getpid' mengembalikan ID proses aktif dan tidak membutuhkan
argument.

Fungsi : pid_t getppid (void)


Fungsi `getppid' (get parent pid) mengembalikan ID parent proses aktif dan tidak
membutuhkan argument.

Untuk menggunakan tipe data dan fungsi diatas perlu disertakan file header
types.h dan unistd.h Berikut contoh program yang yang membaca ID proses aktif dan ID
proses parent-nya.
5. Sinyal
Proses dapat mengirim dan menerima sinyal dari dan ke proses lainnya. Proses
mengirim sinyal melalui instruksi kill dengan format
kill [-nomor sinyal] PID
Dibawah adalah nama-nama sinyal pada proses dalam linux serta deskripsinya, yaitu:
Nama Sinyal
SIGABRT
SIGALRM
SIGFPE
SIGHUP
SIGILL

Deskripsi
Dikirim untuk membatalkan proses dan memaksa core dump
Ketika alarm sudah pergi
Sebuah kesalahan floating-point telah terjadi (misalnya pembagian dengan 0)
Hangup, sinyal dikirim bila proses terputus, misalnya melalui putusnya hubungan
modem.
Sinyal interrupt, melalui ^C

SIGQUIT
SIGKILL
SIGPIPE
SIGEGV
SIGTERM
SIGUSR1
SIGUSR

Sinyal Quit, melalui ^\


Sinyal kill, menghentikan proses.
Sebuah proses yang telah diketikkan ke pipe dimana tidak ada pembaca
Proses telah direferensikan alamat memori yang tidak valid
Sinyal terminal software
Tersedia untuk keperluan aplikasi-didefinisikan
Tersedia untuk keperluan aplikasi-didefinisikan

Nomor sinyal : 1 s/d maksimum nomor sinyal yang didefinisikan system Standar nomor
sinyal yang terpenting adalah :
No Sinyal

Nama

SIGHUP

2
3
9
15

SIGINT
SIGQUIT
SIGKILL
SIGTERM

Deskripsi
Hangup, sinyal dikirim bila proses terputus, misalnya melalui
putusnya hubungan modem.
Sinyal interrupt, melalui ^C
Sinyal Quit, melalui ^\
Sinyal kill, menghentikan proses.
Sinyal terminal software

5.1. MENGIRIM SINYAL


Mengirim sinyal adalah satu alat komunikasi antar proses, yaitu memberitahukan
proses yang sedang berjalan bahwa ada sesuatu yang harus dikendalikan. Berdasarkan
sinyal yang dikirim ini maka proses dapat bereaksi dan administrator/programmer dapat
menentukan reaksi tersebut. Mengirim sinyal menggunakan instruksi
kill [-nomor sinyal] PID
Sebelum mengirim sinyal PID proses yang akan dikirim harus diketahui terlebih
dahulu.
5.2. LANGKAH LANGKAH
1.
2.
3.
4.

Langkah-langkah untuk masuk ke dalam linux adalah sebagai berikut :


Masuk ke sistem operasi Linux
Login sebagai stD3XXYYY.
Gunakan instruksi status proses : ps.
Gunakan instruksi untuk mengelola sinyal : kill, trap, nohup

Sinyal juga digunakan untuk tujuan lain. Sebagai contoh, jika suatu proses
melakukan aritmatika floating-point, dan secara tidak sengaja membagi oleh 0, itu
mendapat SIGFPE (floating titik pengecualian) sinyal. Sinyal yang dibutuhkan oleh
POSIX tercantum dalam Gambar. 10-5. Banyak sistem Linux memiliki sinyal tambahan
juga, tapi program menggunakan mereka mungkin tidak portabel untuk versi lain dari
Linux dan UNIX pada umumnya.
6. Mengorntrol Prosas pada Shell

Shell
menyediakan
fasilitas
job
control
yang
memungkinkan
mengontrol beberapa job atau proses yang sedang berjalan pada waktu yang sama.
Misalnya bila melakukan pengeditan file teks dan ingin melakukan interrupt pengeditan
untuk mengerjakan hal lainnya. Bila selesai, dapat kembali (switch) ke editor dan
melakukan pengeditan file teks kembali.
Job bekerja pada foreground atau background. Pada foreground hanya diper
untukkan untuk satu job pada satu waktu. Job pada foreground akan mengontrol shell
menerima input dari keyboard dan mengirim output ke layar. Job pada background tidak
menerima input dari terminal, biasanya berjalan tanpa memerlukan interaksi.
Job pada foreground kemungkinan dihentikan sementara (suspend),
dengan menekan [Ctrl-Z]. Job yang dihentikan sementara dapat dijalankan kembali
pada foreground atau background sesuai keperluan dengan menekan fg atau bg .
Sebagai catatan, menghentikan job seme ntara sangat berbeda dengan melakuakan
interrupt job (biasanya menggunakan [Ctrl-C]), dimana job yang diinterrup akan
dimatikan secara permanen dan tidak dapat dijalankan lagi.
7. Mengontrol Ptoses Lain
Perintah ps dapat digunakna untuk mewujudkan semua proses yang sedang
berjalan pada mesin (bukan hanya proses pada shell saat ini) dengan format :
ps fae atau
ps aux
beberapa versi linux mempunyai utilitas sistem yang disebut top yang
menyediakan cara interaktif untuk memonitor aktifitas sistem. Statistic secara detail
dengan proses yang berjalan ditampilkan dan secara terus-menerus di-refresh. Proses
ditampilkan secara terurut dari utilitas CPU. Kunci yang berguna pada top adalah
s set update frequency
u display proses dari satu user
k kill proses (dengan PID)
q quit
Utilitas untuk melakukan pengontrolan proses dapat ditemukan pada sistem linux
dengan perintah killall. Perintah ini akan menghentikan proses seuai dengan PID atau job
number proses.
8. Booting Pada Linux
Booting dapat diartikan sebagai proses untuk menghidupkan computer sampai
sistem operasi mengambil alih proses. BIOS (Basic Input Output System) adalah suatu kode
software yang ditanam di dalam suatu sistem computer yang memiliki fungsi untama untuk
memberikan informasi visual pada saat computer dinyalakan, memberi akses ke keyboard
dan juga memberi akses komunikasi secara low-level diantara komponen hardware.
a. Boot Manager
Pengertian Boot manager adalah suatu aplikasi yang menjadi bawaan dari semua
jenis Linux untuk mengatur proses booting agar dapat digunakan untuk multiple boot.
Sebagai contoh Kita telah meng-install Windows XP dan ingin meng-install Linux Ubuntu
maka secara otomatis bila Linux telah terinstall di hardisk maka Linux akan membuat pilihan
booting untuk multiple boot. GRUB singkatan dari GRand Unified Bootloader, yaitu program

kecil yang menampilkan pilihan sistem operasi pada saat proses booting sehingga nantinya
dapat melakukan multiple boot. LILO mempunyai kepanjangan Linux LOader adalah loader
boot, yang dapat digunakan untuk memilih Linux, MS-DOS atau sistem operasi lain pada
saat boot. lilo biasanya digunakan pada mesin intel-compatible , sedangkan mesin lain seperti
Digital Equipment Corp. menggunakan MILO. Alpha PC, SPARCH-compatible dapat
menggunakan SILO. Pada linux masa awal boot loader harus dipasang sendiri selain sistem
operasi linux itu sendiri (dikonfigurasi manual oleh user) Untuk linux yang sekarang kita
gunakan kita tidak perlu menginstal loader karena saat install system oprasi nya maka akan
secara otomatis terinstall pada linux kita. Kita dapat melakukan konfigurasi pada lilo dengan
menggunakan text editor seperti vi,pico dan lain lain,dimana user root yang diizinkan untuk
melakukan konfigurasi.letak file lilo ada di /etc/lilo.conf.
Pengertian POST (Power On Self Tes)
POST (Power On Self Tes), yaitu test yang dilakukan oleh komputer / PC untuk
mengecek fungsi fungsi komponen pendukung computer apakah bekerja dengan baik atau
tidak. POST dilakukan pada saat booting (awal nyalanya mesin), jika komputer mengalami
suatu masalah, maka akan terdeteksi gejala kesalahannya melalui POST dan itu berupa suara
peringatan / pesan berupa bentuk suara yang dihasilkan melalui speaker atau tampilan visual
dimonitor. Selain itu, pesan / peringatan kesalahan juga dapat di deteksi melalui kinerja dari
komputer, misalnya komputer tidak hidup walaupun listrik AC sudah terhubung dam tombol
power sudah ditekan.
POST memungkinkan user dapat mendeteksi, mengisolasi, menentukan, dan
menemukan kesalahan sehingga dapat memperbaiki penyimpanan atau kerusakan yang
terjadi pada komputer. Mekanisme POST disediakan oleh semua produk komputer atau
motherboard dan tersimpan di dalam ROM atau flash ROM BIOS. Secara umum proses dan
prosedur yang dilakukan dalam POST pada semua produk motherboard sama. Terdapat
beberapa perbedaan yang menjadikan ciri dari produk motherboard tertentu, tetapi pada
dasarnya tetap sama.
- Prosedur POST (Power On Self Tes)
POST dilakukan setelah komputer dihidupkan dan mulai booting, proses ini
dilakukan oleh BIOS. Adapun urutan prosedur POST sebagai berikut :
a. Test Power Supply ditandai dengan lampu power hidup dan kipas pendingin
power supply berputar,
b. Secara otomatis dilakukan reset terhadap kerja CPU oleh sinyal power good
yang dihasilkan oleh power supply jika dalam kondisi baik pada saat
dihidupkan, kemudian CPU mulai melaksanakan instruksi awal pada ROM
BIOS dan selanjutnya,
c. Pengecekan terhadap BIOS dan isinya. BIOS harus dapat dibaca. Instruksi
awal ROM BIOS adalah jump (lompat) ke alamat program POST,
d. Pengecekan terhadap CMOS, CMOS harus dapat bekerja dengan baik.
Program POST diawali dengan membaca data setup (setting hardware awal)
pada RAM CMOS setup, sebagai data acuan untuk pengecekan,
e. Melakukan pengecekkan CPU, timer (pewaktuan), kendali memori akses
langsung, memori bus dan memori module,
f. Memori sebesar 16KB harus tersedia dan dapat dibaca / ditulis untuk
keperluan ROM BIOS dan menyimpan kode POST,

g. Pengecekan Input / Output controller. Controller tersebut harus dapat bekerja


untuk mengontrol proses membaca / menulis data. Termasuk Input / Output
untuk VGA card yang sidah terhubung dengan monitor.
h. Jika ada salah satu prosedur POST yang tidak berhasil dilewati, maka
komputer akan menerima peringatan kesalahan dari POST. Peringatan
kesalahan berupa kode beep yang dikeluarkanmelalui speaker yang
terhubung dengan motherboar (intinya speaker dimotherboard) atau tampilan
dilayar monitor sesuai dengan standar masing masing motherboard.
TAHAP-TAHAP TERJADINYA PROSES BOOTING
Tahap awal pada proses booting yang dilakukan oleh sistem operasi adalah
bootsrap loader. Bootsrap loader adalah aplikasi pertama yang dijalankan BIOS sesaat setelah
booting. Bootloader akan meload kernel yang menjalankan sistem operasi, serta bertujuan
untuk melacak semua alat input dan alat output yang terpasang atau terhubung pada
komputer.. Dalam beberapa sistem, terdapat bootloader yang berbeda. Bootloader Windows,
berbeda dengan Bootloader Linux, Berbeda juga dengan bootloader BSD.
Secara umum, gambaran tahapan-tahapan yang terjadi pada proses booting adalah sebagai
berikut:
Saat komputer dihidupkan, memorinya masih kosong. Belum ada instruksi yang
dapat dieksekusi oleh prosesor. Oleh karena itu, prosesor dirancang untuk selalu mencari
alamat tertentu di BIOS ( Basic Input Output System) ROM. Pada alamat tersebut, terdapat
sebuah instruksi jump yang menuju kealamat eksekusi awal BIOS. Setelah itu, prosesor
menjalankan Power On Self Test(POST), yaitu memeriksa kondisi hardware yang terhubung
pada komputer.
Setelah itu, BIOS mencari Video Card. Secara khusus dia mencari BIOS milik
Video Card. Kemudian sistem BIOS menjalankan Video Card BIOS. Barulah sesudah itu,
Video Card di inisalisasi.
Kemudian BIOS memeriksa ROM pada hardware yang lain, apakah memiliki
BIOS yang tersediri apakah tidak. Jika ya, maka akan dieksekusi juga.
Lalu BIOS melakukan pemeriksaan lagi, misalnya memeriksa besar memori dan jenis
memori. Lebih lanjut lagi, dia memeriksa hardware yang lain, seperti disk. Lalu dia mencari
disk dimana proses boot bisa dilakukan, yaitu mencari boot sector. Boot sector ini bisa berada
di hard disk, atau floppy disk.
Pada windows, proses start up booting dapat diuraikan sebagai berikut :
MBR (Master Boot Record) adalah sebuah program yang sangat kecil yang terdapat pada
sector pertama hardisk, MBR kemudian me-load suatu program bernama NTLDR ke dalam
memori.
NTLDR kemudian memindahkan komputer ke flat memory model (bypassing the 640KB
memory restrictions placed on PCs) kemudian membaca file BOOT.INI.
Jika komputer mempunyai beberapa partisi yang bootable, NTLDR akan menggunakan
informasi yang terdapat pada file BOOT.INI untuk menampilkan pilihan boot, apabila hanya
terinstall windows xp saja maka tampilan menu akan dilewati dan windows akan me-load
windows xp.
Sebelum meload windows xp, NTLDR membuka program lain ke dalam memory
yang disebut NDETEC.COM. File ini melakukan pengecekan semua hardware yang terdapat
pada komputer. Setelah semua hardware ditemukan, NDTECT.COM memberikan kembali

informasi tersebut ke NTLDR. NTLDR kemudian berusaha me-load versi Windows XP yang
dipilih pada step 3. Hal ini dilakukan dengan menemukan file NTOSKRNL pada folder
System32 yang terdapat pada directory windows xp NTOSKRNL adalah program utama pada
system operasi windows yaitu sebuah kernel Setelah kernel tersebut di-load ke memory,
NTLDR passes control of the boot process to the kernel and to another file named HAL.DLL.
HAL.DLL controls Windows famous hardware abstraction layer (HAL) NTOSKRNL
kemudia menangani proses boot selanjutnya. Langkah pertama adalah meload beberapa lowlevel system drivers. Kemudian NTOSKRNL me-load semua file-file yang dibutuhkan
untuk membuat core sistem operasi windows xp.
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 me-load default profile.
Sesudah windows mengenali hardware profile yang digunakan, windows kemudian
me-load semua device driver untuk semua hardware yang terdapat pada komputer, Pada saat
ini tampilan monitor menampilkan Welcome To Windows XP boot screen.
Terakhir windows menjalankan semua service yang dijadwalkan secara otomatis. Pada saat
ini tampilan monitor menampilkan logon screen.
Berdasarkan prosesnya, booting dapat dikenali dengan beberapa jenis, yaitu:
- Cold Boot Boot (proses menghidupkan komputer) yang terjadi pada saat komputer
dalam keadaan mati. Cold boot dilakukan dengan cara menghidupkan komputer
dengan menekan tombol switch power. Booting dingin mendaur ulang akses memori
acak komputer sekaligus juga menghapus virus-virus yang mungkin berada dalam
memori sebelumnya.
- Warm Boot Boot (proses menghidupkan komputer) yang terjadi pada saat
komputer dialiri listrik kembali dan listrik dimatikan hanya sejenak. Dengan tujuan
mengulang kembali proses komputer dari awal. Warm Boot ini biasanya terjadi
disebabkan oleh software crash atau terjadi pengaturan ulang dari sistem. Atau Warm
boot bisa juga diartikan mengaktifkan kembali tanpa harus dimatikan terlebih dahulu,
misalnya dengan menekan tombol reset, atau memencet sekaligus tombol
CTRL+ALT+DEL pada sistem operasi Disk Operating System (DOS). Me-restart
komputer dengan menekan Ctrl+Alt+Del atau melakukan shutdown dan restart.
Booting panas ini dapat dideteksi dan dimanipulasi oleh virus.
- Soft Boot Boot (proses menghidupkan komputer) yang dikendalikan melalui
sistem.
- Hard Boot Boot (proses menghidupkan komputer) yang dilakukan dengan cara
dipaksa.
- ReBoot Peristiwa mengulang kembali sistem dari awal. reBoot dilakukan oleh
beberapa hal, antara lain seperti sistem tidak bereaksi dalam beberapa lama, atau
terjadi perubahan setting dalam sistem.
Rincian bervariasi dari platform ke platform, tetapi secara umum langkah-langkah
berikut mewakili proses boot. Ketika komputer mulai, BIOS melakukan Power- On-Self-Test (POST) dan
penemuan perangkat awal dan inisialisasi, karena OS ' proses boot dapat mengandalkan akses ke disk,
layar, keyboard, dan sebagainya. Selanjutnya, sektor pertama dari disk boot, MBR (Master Boot Record),
dibaca menjadi tetap lokasi memori dan dieksekusi. Sektor ini berisi program kecil (512-byte) yang
memuat program mandiri yang disebut boot dari perangkat boot, biasanya sebuah IDE atau SCSI disk.

Program boot salinan pertama itu sendiri ke alamat tinggi-memori tetap untuk
membebaskan memori rendah untuk sistem operasi. Setelah pindah, booting membaca direktori root dari
perangkat boot. Untuk melakukan hal ini, harus memahami sistem file dan format yang direktori, yang
merupakan kasus dengan beberapa bootloader seperti GRUB (GRand Bersatu Bootloader). Populer
lainnya bootloader, seperti Intel LILO, tidak bergantung pada setiap filesystem tertentu. Sebagai gantinya,
mereka membutuhkan peta blok dan alamat tingkat rendah, yang menggambarkan sektor fisik, kepala,
dan silinder, untuk menemukan sektor terkait yang akan dimuat. Kemudian boot membaca dalam kernel
sistem operasi dan melompat untuk itu.
Setelah selesai tugasnya dan kernel berjalan. Kernel kode start-up ditulis dalam
bahasa assembly dan sangat mesin tergantung. Pekerjaan khas termasuk menyiapkan tumpukan kernel,
mengidentifikasi Jenis CPU, menghitung jumlah RAM ini, menonaktifkan interupsi, memungkinkan
MMU, dan akhirnya memanggil prosedur utama C-bahasa untuk memulai utama bagian dari sistem
operasi.
Kode C juga memiliki inisialisasi cukup untuk melakukan, tapi ini lebih logis dari
fisik Ini dimulai dengan mengalokasikan buffer pesan untuk membantu booting men-debug masalah.
Sebagai hasil inisialisasi, pesan yang ditulis di sini tentang apa yang terjadi, sehingga mereka dapat
memancing keluar setelah kegagalan boot oleh diagnostik khusus program. Pikirkan ini sebagai sistem
operasi ini perekam penerbangan kokpit (yang peneliti kotak hitam mencari setelah kecelakaan pesawat).
Berikutnya data kernel struktur dialokasikan. Kebanyakan ukuran tetap, tetapi beberapa, seperti cache
halaman dan struktur tabel halaman tertentu, tergantung pada jumlah RAM yang tersedia.
Pada titik ini sistem mulai konfigurasi otomatis. Menggunakan file konfigurasi
mengatakan jenis apa dari perangkat I / O mungkin hadir, ia mulai menyelidiki perangkat untuk melihat
mana yang benar-benar hadir. Jika perangkat penyelidikan merespon probe, itu adalah ditambahkan ke
tabel perangkat yang terpasang. Jika gagal untuk merespon, diasumsikan absen dan diabaikan selanjutnya.
Tidak seperti versi tradisional UNIX, perangkat Linux driver tidak perlu statis terkait dan dapat dimuat
secara dinamis (seperti kaleng semua versi MS-DOS dan Windows, kebetulan).
Argumen untuk dan terhadap dinamis memuat driver yang menarik dan bernilai
menyatakan secara singkat. Argumen utama untuk pembebanan dinamis adalah bahwa biner tunggal
dapat dikirim ke pelanggan dengan konfigurasi yang berbeda dan secara otomatis memuat driver yang
dibutuhkan, bahkan mungkin melalui jaringan. Argumen utama terhadap pembebanan dinamis adalah
keamanan. Jika Anda menjalankan situs yang aman, seperti database bank atau server Web perusahaan,
Anda mungkin ingin membuat mustahil bagi siapa saja untuk memasukkan kode acak ke dalam kernel.
Administrator sistem mungkin menjaga sumber sistem operasi dan objek file pada mesin aman, lakukan
semua sistem membangun di sana, dan kapal biner kernel ke mesin lain melalui lokal jaringan area. Jika
driver tidak dapat dimuat secara dinamis, skenario ini mencegah mesin operator dan orang lain yang tahu
password superuser dari suntik berbahaya atau kereta kode ke kernel. Selain itu, di situs besar, konfigurasi
hardware diketahui persis pada saat sistem dikompilasi dan terkait. Perubahan yang cukup langka yang
harus relink sistem ketika hardware baru perangkat ditambahkan tidak masalah.

Daftar Pustaka
http://assep32.blogspot.co.id/2014/10/proses-booting-pada-sistem-operasi.html