X11 çekirdek ile nasıl etkileşime girer / giriş yapar


14

Linux çekirdeği ile metin tabanlı etkileşimi anladığım gibi, altındaki TTY cihazlarından birine bağlanan ve bir kullanıcı adı isteyen initstart getty(veya agetty) adlı bir program /dev. Bundan sonra login, kullanıcının parolasını soran ve doğruysa, kullanıcının tercih ettiği kabuğu (ör. bashVeya csh) başlatan bir program çalıştırılır . Bu noktada bash, TTY cihazı aracılığıyla çekirdekle etkileşime girer.

Bu giriş işlemi X11 için nasıl çalışır? X11 bir TTY üzerinden çekirdekle etkileşime giriyor mu?

Yanıtlar:


15

Kabuk, başka bir şey değil, kullanıcı girişi elde etmek ve çıktı üretmek için bir TTY cihazı (birine bağlıysa) kullanır. Bir kabuğun bir TTY'ye bağlı olması, tarafından belirlenir getty(ve korunur login); çoğu zaman kabuk bir TTY'ye bağlı olup olmadığını umursamaz. Çekirdek ile etkileşimi sistem çağrıları aracılığıyla gerçekleşir .

Bir X11 sunucusu girişleri bilmiyor (tıpkı bir kabuk gibi). X11'deki oturum açma işlemi iki şekilde çalışır:

  • kullanıcı terminalde oturum açar ve ardından X'i başlatır (genellikle kullanarak startx);
  • veya X sunucusu, kullanıcıdan oturum açma ve parola isteyen (veya gerekli kimlik doğrulama bilgilerinin istenildiği) bir “görüntü yöneticisi” ile başlatılır.

X11 sunucularının girdi alma ve çıktı üretme biçimi bir kabuktan çok farklıdır. Giriş tarafında, X, farelerden başlayarak mermilerin yapmadığı cihazları biliyor; tipik olarak bunları doğrudan kendi sürücüleri ile yönetir. Klavyeler için bile, X'in çekirdeğin kullanımını tamamlayan kendi sürücüleri vardır (anladığım kadarıyla, Linux'ta X, TTY sürücüsünü klavyeden ham girişi okumak için kullanır, ancak bunu kendi sürücüsünü kullanarak yorumlar). Çıkış tarafında, X, görüntüleme aygıtlarını doğrudan, çekirdeğin yardımı olsun veya olmasın ve bir TTY aygıtından geçmeden görüntüler.

Birçok sistemlerde X11 sunucuları yapmak çekirdek ile senkronize etmek, kullanım TTY cihazlar olsa: Sanal terminalleri destekleyen sistemlerde, X “rezerv” üzerinde çalıştığı VT ve sap VT anahtarlama gerekiyor. Yol boyunca başka incelikler de var; bu nedenle Linux'ta X, GPM'yi (farelerin metin modu kullanımına izin veren bir program) devre dışı bırakmak için TTY'yi değiştirir. X ayrıca bir VT paylaşabilir ...

Geçmişteki bazı iş istasyonlarında, çekirdek ile çok açık bir senkronizasyon yoktu; Eğer çalışmadıysanız xconsole, X11 ekranınızın üst kısmında “metin modunda” görüntülenen çekirdek mesajlarıyla karşılaşabilirsiniz.


2

Çekirdeğin kesinlikle bir giriş ya da giriş yapan bir kavramı yoktur - tek dikkat ettiği şey, belirli bir kullanıcı kimliği altında çalışan süreçler olmasıdır (ki bu da çekirdeğin işi değildir!). İster bir terminalde ister bir X11 ekran yöneticisinde olsun, bir oturum açma programı root olarak çalışır ve daha sonra yerel çözümleyici (NSS ve libc şeyler - çekirdek iş değil) önerilen UID için bir ortam oluşturmak için setuid () ve ilgili çağrıları kullanır sadece kimliği doğrulanmış kullanıcı için kullanın.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.