Mengapa pengaturan kernel, bukannya pemisahan hak istimewa?

12

Pengaturan mode kernel agak sulit dilakukan di Linux pada awalnya, tetapi sekarang cukup mengagumkan untuk memilikinya. Maksud saya, X tidak perlu dijalankan sebagai root? Konsol dipercepat perangkat keras beresolusi tinggi? Hal yang keren.

Masalahnya adalah, banyak platform UNIX tidak memiliki modeetting driver kernel apa pun. Jadi perangkat keras yang mengandalkan KMS sekarang sebagian besar terbatas pada Linux.

Pertanyaan saya: mengapa menerapkan ini di kernel?

Jika akses perangkat keras diperlukan untuk mengatur resolusi layar, mengapa tidak menggunakan daemon istimewa yang terpisah, atau biner setuid kecil? Itu akan mempertahankan keuntungan memisahkan kode istimewa, dan membiarkan server tampilan berjalan sebagai pengguna terbatas; sambil menyingkirkan persyaratan driver khusus, dan membuat dukungan lintas-UNIX lebih mudah. Baik? Atau apakah saya melewatkan sesuatu yang penting di sini?

DanL4096
sumber
Itulah ide di balik arsitektur OS microkernel .
Barmar
Dalam hal ini saya tidak memikirkan model tipe microkernel, lebih mudah dibawa-bawa antara kernel yang berbeda.
DanL4096
1
KMS juga digunakan oleh OpenBSD dan FreeBSD, dan Solaris juga memiliki KMS. Dengan cara ini ketika pengembang membuat driver yang berfungsi untuk Linux maka dukungan driver juga akan mengalir ke orang lain yang menggunakan KMS.
hspaans
1
Ini hal arsitektur. Akses perangkat keras adalah satu, jika bukan ATAS, tugas sebuah kernel. Memisahkan pekerjaan antara kernel dan userspace adalah canggung, karena Anda akan membutuhkan dua komponen yang sebenarnya hanya melakukan satu pekerjaan dengan antarmuka yang buram. Pada akhirnya Anda akan melakukan pekerjaan di dalam domain kernel, oleh karena itu ada alasan kuat untuk meletakkan semuanya di dalam kernel. Tentu saja Anda dapat mengimplementasikannya dan di mana pun Anda inginkan. Platform yang kokoh adalah semua tentang arsitektur dan antarmuka yang didefinisikan dengan jelas (!). Semuanya goyah.
Bananguin
1
Ada periode yang cukup lama di mana berbagai jenis crash akan meninggalkan konsol dalam mode aneh di mana X tidak berfungsi lagi, tetapi akses conole gaya TTY sebenarnya tidak dipulihkan. IIRC GL masalah percepatan dan crash yang digunakan untuk memprovokasi situasi ini cukup sering. KMS berarti bahwa kernel tahu bagaimana memperbaiki masalah dan mengembalikan keadaan konsol. TKI sebagian merupakan peningkatan kegunaan. Sementara orang mungkin berpendapat bahwa kernel dapat meminta daemon userspace untuk melakukan ini, saya kira itu mungkin tidak selalu berfungsi dengan baik. Menempatkannya di kernel berarti tidak ada kesulitan sumber tertutup.
James Youngman

Jawaban:

1

Kernel sudah mengelola perangkat keras jaringan, perangkat keras audio, kipas, dan perangkat keras lainnya, sehingga masuk akal bahwa perangkat keras grafis juga dikelola oleh kernel.

Alexander
sumber