Penjaga Rahasia Windows: Bagaimana Service Control Manager Bekerja Secara Diam-diam di Balik Layar?

Saat Anda memulai sistem Windows, banyak layanan yang berjalan diam-diam di latar belakang, yang merupakan landasan penting bagi stabilitas sistem operasi. Pengaktifan dan pengelolaan layanan ini sebagian besar merupakan tanggung jawab Service Control Manager (SCM). SCM adalah proses sistem khusus yang terdapat di bawah sistem operasi seri Windows NT, yang bertanggung jawab untuk memulai, menghentikan, dan berinteraksi dengan proses layanan Windows.

Fungsionalitas utama SCM dimulai dengan fungsi utamanya SvcCtrlMain(), yang memulai semua layanan yang dikonfigurasi untuk memulai secara otomatis.

File yang dapat dieksekusi SCM services.exe terletak di %SystemRoot%\System32\ dan dimulai oleh proses Wininit di awal pengaktifan sistem. Saat SCM mulai bekerja, pertama-tama ia menginisialisasi basis data internalnya dari layanan yang terinstal, yang melibatkan pembacaan kunci registri tertentu.

Secara khusus, ia menginisialisasi basis data internal dengan membaca dua kunci registri berikut:

  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ServiceGroupOrder\List, kunci ini berisi nama-nama grup layanan dan urutannya.
  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services, kunci ini berisi data layanan dan driver perangkat yang sebenarnya.

SCM menentukan urutan pemuatan layanan berdasarkan nilai Grup dan dependensi setiap layanan. Selama proses ini, jika dependensi melingkar ditemukan, SCM akan mencatat kesalahan dan melewati layanan yang bergantung pada grup yang dimuat terlambat.

Langkah berikutnya dalam SCM adalah memeriksa apakah driver perangkat yang harus dimulai selama sistem dinyalakan berhasil dimuat dan menyimpan driver yang gagal dalam daftar yang disebut ScFailedDrivers.

SCM kemudian memanggil fungsi ScAutoStartServices(), yang mengulang semua layanan yang ditandai untuk memulai otomatis dan memulainya sebagaimana mestinya. Untuk setiap layanan, SCM memanggil fungsi ScStartService() untuk memastikan bahwa proses layanan berjalan di bawah akun yang benar. Jika layanan tidak berjalan di bawah akun Sistem, SCM memanggil fungsi LSASS LogonUserEx() untuk mendapatkan kata sandi "rahasia" yang disimpan dengan aman saat layanan awalnya dikonfigurasi.

Tidak hanya itu, ada juga jenis layanan khusus - layanan memulai otomatis tertunda. Jenis layanan ini diperkenalkan di Windows Vista untuk mengatasi masalah startup sistem yang lambat. SCM tidak akan mulai menginisialisasi layanan mulai otomatis yang tertunda hingga semua layanan mulai otomatis yang tidak tertunda telah diproses.

Meskipun ada penundaan dalam memulai layanan ini, layanan ini tidak jauh berbeda dari layanan lain kecuali urutan dimulainya layanan.

Perlu dicatat bahwa SCM juga secara khusus menangani layanan driver perangkat. Nilai registrasi Tipe dari layanan ini adalah SERVICE_KERNEL_DRIVER atau SERVICE_FILE_SYSTEM_DRIVER. Ketika SCM memanggil ScStartService(), ia selanjutnya memanggil fungsi ScLoadDeviceDriver() untuk memuat driver yang sesuai.

Melalui panggilan sistem NtLoadDriver, SCM memastikan bahwa driver dimuat dengan benar. Selama proses awal pengaktifan, SCM bahkan bertanggung jawab untuk memberi tahu aplikasi lain, seperti Windows Explorer, saat status koneksi drive jaringan berubah dengan menyiarkan pesan Windows WM_DEVICECHANGE.

Desain ini memungkinkan pengguna mengelola sumber daya dan layanan sistem mereka dengan lebih baik, memastikan kelancaran pengoperasian sistem operasi.

Namun, meskipun SCM berperan penting dalam memulai sistem, banyak pengguna tidak benar-benar memahami cara kerjanya. Di balik setiap pengoperasian SCM, terdapat teknologi yang kompleks dan efisien. Bahkan, teknologi ini memungkinkan pengguna untuk menggunakan aplikasi dan layanan yang tampaknya biasa tanpa hambatan apa pun.

Pada versi Windows mendatang, bagaimana SCM akan berkembang untuk memenuhi kebutuhan pengguna yang semakin beragam?

Trending Knowledge

Rahasia memulai layanan secara otomatis: Bagaimana sistem Windows mempercepat startup?
Di era digital saat ini, startup yang cepat dan pengoperasian sistem yang efisien sangat penting bagi pengguna. Sistem Windows dapat memulai banyak layanan dalam waktu singkat, dan di balik ini terdap
Misteri Layar Biru: Perubahan mengejutkan apa yang akan terjadi jika Anda menghentikan services.exe?
Dalam sistem operasi Windows modern, Service Control Manager (SCM) atau services.exe merupakan salah satu komponen inti dari operasi sistem. Proses ini bertanggung jawab untuk memulai, menghentikan,

Responses