Alur Eksekusi Saat Windows 7 Dijalankan


Sistem operasi Microsoft Windows merupakan sistem operasi yang kode programnya tidak dipublikasi untuk umum (open source) sehingga sulit untuk mengetahui apa yang terjadi di dalam sistem operasi ini.   Beruntungnya, ada beberapa referensi yang membeberkan arsitektur internal Microsoft Windows tanpa harus mempublikasi source code-nya.   Salah satunya adalah seri buku Windows Internals karangan Mark Russinovich dan rekannya.   Mark Russinovich juga adalah programmer yang membuat tools SysInternals Suite yang dapat di-download secara gratis.   Pada kesempatan ini, saya akan mencoba memahami alur eksekusi saat Windows 7 dijalankan berdasarkan informasi yang saya peroleh dari buku Windows Internal dan tool Process Monitor (procmon.exe) dari Sysinternals Suite.

Saya mulai dengan menjalankan Process Monitor (procmon.exe), kemudian memilih menu Options, Enable Boot Logging. Setelah itu, saya segera me-restart komputer.  Setelah desktop Windows 7 muncul, saya kembali menjalankan Process Monitor.  Kali ini saya akan diminta untuk melakukan konversi event yang telah di-capture.   Setelah memilih Yes, proses konversi akan dilakukan.   Setelah selesai, saya memilih menu Tools, Process Tree….   Saya akan memperoleh hasil seperti pada gambar berikut ini:

Tampilan Process Tree Dari Hasil Boot Trace Process Monitor

Tampilan Process Tree Dari Hasil Boot Trace Process Monitor

Gambar di atas memperlihatkan seluruh proses yang dikerjakan pada saat menjalankan Windows 7.   Proses yang berwarna abu-abu adalah proses yang sudah tidak ada lagi (telah selesai).

Pada sistem operasi Windows, selalu ada sebuah proses dengan id 0 yang disebut sebagai idle process.   Proses ini berbeda dari yang lainnya karena proses ini tidak diasosiasikan dengan sebuah file program (tidak ada yang namanya file ‘idle process.exe‘).  Begitu juga proses id 4 yang disebut sebagai System.   Proses ini dikerjakan di kernel mode (memiliki hak akses paling tinggi).

Session Manager (smss.exe) adalah proses user mode yang pertama kali diciptakan oleh proses di kernel mode.   Proses ini akan memeriksa apakah sudah ada proses sebelumnya.   Bila sudah ada, ia akan membuat duplikatnya.   Dengan demikian, walaupun smss.exe dijalankan berkali-kali, pada akhirnya hanya ada satu smss.exe (master smss).   Sebagai contoh, pada pantauan Process Monitor, smss.exe dengan process id 316 (master smss) menciptakan dua proses baru (id 400 dan id 464), namun pada akhirnya hanya master smss yang masih hidup.

Master smss akan menjalankan program yang nilainya tertera di isi registry HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\BootExecute.   Secara default, program tersebut adalah autochk.exe.   Selain itu, ia juga akan membuat dua proses smss lain, masing-masing untuk session 0 (noninteractive) dan session 1 (interactive), seperti yang terlihat pada gambar berikut ini:

Session 0 (Non-interactive) dan Session 1 (Interactive)

Session 0 (Non-interactive) dan Session 1 (Interactive)

Setiap session memiliki subsystem process.   Windows pada awalnya dirancang untuk mendukung beberapa subsystem berbeda.  Walaupun demikian, untuk saat ini, Client/Server Runtime Subsystem (CSRSS) atau csrss.exe merupakan satu-satunya yang paling masuk akal untuk dipakai (karena dukungan untuk Unix subsystem akan ditiadakan setelah Windows 8.1).

Pada session 0 (noninteractive), smss akan menjalankan wininit.exe.   Selanjutnya, wininit.exe akan menjalankan services.exe (Service Control Manager), lsass.exe (Local Security Authentication Subsystem Server), dan lsm.exe (Local Session Manager).   Service Control Manager akan menjalankan services yang terdaftar di Control Panel, Administrative Tools, Services.   Pada dasarnya mereka tersimpan di isi registry HKLM\SYSTEM\CurrentControlSet\Services.   lsass.exe berperan dalam menerapkan keamanan sistem operasi.   lsm.exe mengirim pesan ke smss untuk membuat session baru saat pengguna memilih switch user.   lsm.exe juga berkomunikasi dengan Winlogon dan CSRSS.

Berbeda dengan session 0 yang menjalankan wininit.exe, session 1 (interactive) akan menjalankan winlogon.exe.   Winlogon bertanggung jawab menampilkan layar login bila kombinasi tombol Ctrl+Alt+Del ditekan.   Winlogon juga akan mengerjakan program di isi registry HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit (defaultnya adalah userinit.exe).   Userinit.exe akan melakukan persiapan dan pada akhirnya akan menjalankan explorer.exe.   Proses explorer.exe  mengendalikan apa yang dilihat pengguna setelah login seperti taskbar, desktop dan sebagainya.   Proses userinit.exe akan selesai setelah explorer.exe dijalankan.   Hal ini menyebabkan bila dilihat di task manager, explorer.exe terlihat tidak memiliki parent.  Proses pada sistem operasi Windows tidak memiliki sistem hierarki, dimana seharusnya explorer.exe adalah cucu dari winlogon.exe.   Sebagai contoh, gambar berikut ini memperlihatkan proses yang masih hidup setelah proses login selesai:

Tampilan Process Tree Setelah Windows 7 Siap Dipakai

Tampilan Process Tree Setelah Windows 7 Siap Dipakai

Perihal Solid Snake
I'm nothing...

Apa komentar Anda?

Please log in using one of these methods to post your comment:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: