kabuklar arasında geçiş yapmak, çalmakta olan müziği durdurur


11

Müzik dinlerken Ctrl+ Alt+ kullanarak sanal konsolu değiştirdim F2ve aniden müzik duraklatıldı. X sunucusunu Ctrl+ Alt+ çalıştıran konsola geri dönmek F7veya şu anda ( Ctrl+ Alt+ F2) kullanmakta olduğum konsolda oturum açmak , müziği yeniden çalmaya başlar.

Linux (Ubuntu kullanıyorum) çok kullanıcılı bir işletim sistemidir. Bildiğim kadarıyla, kullanıcıların aynı anda oturum açıp çalışabilecekleri 7 sanal konsolu var. Yani niye bu gerçekleşti? Konsolları değiştirirken sistemim güncelleniyor olsaydı ne olurdu?


4
Sorulması gereken doğru soru , bu kullanıcıların tümü müzik çalmak isteseydi ne olurdu?
JdeBP

Yanıtlar:


4

Linux'ta birden çok sanal konsol vardır. Ctrl+ Alt+ bu konsollar arasında geçiş yapar. Konsol 7'den konsol 2'ye geçtiğinizde, giriş ve çıkış çevre birimleri konsol 7'den konsol 2'ye yeniden yönlendirilir. Konsol 7 etkin olmadığında, giriş / çıkış çevre birimlerine erişimi yoktur: ekran üzerinde gösterilmez ekran, uygulamalar klavye girişi vb. almaz.Fn

Tarihsel nedenlerden ötürü, ses girişi ve çıkışı, klavye ve fare gibi giriş cihazlarından ve video ekranlarından tamamen farklı kanallar kullanır. Konsol cihazları (işletim sistemindeki soyutlama) klavyeyi ve videoyu kapsar ancak sesi kapsamaz. Bir Unix sisteminde sesin en yaygın temel uygulaması bu sistemden bağımsızdır ve ses çevre birimlerini kullanma izni, konsolun sahipliğinden ziyade grup üyeliğine göre verilir. Bu aslında bir tasarım eksikliğidir.

Ubuntu, oturumun konsola oturum açmasını ve yalnızca bunların ses cihazına erişmesini sağlayacak şekilde ayarladı. Konsolları değiştirirseniz, diğer konsola da giriş yapmadığınız sürece ses cihazına erişiminizi kaybedersiniz. Bu en başından beri gerçekten yapılmalıydı, ama konsol arayüz tasarımcıları ses hakkında düşünmedikleri için değildi.

Başka bir konsola geçtiğinizde, CPU bir konsolla değil bir makineyle ilişkili olduğu için programlarınız çalışmaya devam eder: makinede hesabı olan herkesin CPU zamanını kullanmasına izin verilir. Aynı şey bellek ve dosyalar (izinlere tabi) gibi diğer kaynaklar için de geçerlidir. Yalnızca kullanıcıyla konsol sahipliği tarafından yönetilen etkileşimlerdir. Giriş yapmadığınız bir konsola geçtiğinizde sesleriniz durur, çünkü programlarınız ses çıkış aygıtına erişim ayrıcalığını kaybeder.

Ubuntu'nun Polkit üzerinden erişim kontrolü uyguladığına inanıyorum , ancak bunun nasıl çalıştığını tam olarak bilmiyorum.


Bunu deneyebilirsiniz. Bir müzik çalın ve VT'yi değiştirin. Bir süre sonra F7 VT'ye geri dönün. Şarkı tam olarak duraklatıldığı noktadan başlar. Sistem iplik uymuyorsa bu nasıl mümkün olur. Sese G / Ç erişimi vermemesi müzikçaları duraklatamaz. Ben de bir program yüklerken denedim. Şaşırtıcı bir şekilde, VT değiştirildiğimde bile program kurulmuştu.
DScript

1
@DScript Müzik sistemi iş parçacığı ses sistemini beklediği için engellendi. Ses sistemini beklemeyen bir iş parçacığı çalışmaya devam eder. I sese erişim sağlayarak değil / O does iş böyle yapılır isteği reddetmek için ama onu engellemek için değil, çünkü oyuncu bloke ederler.
Gilles 'SO- kötü olmayı bırak

1

Bir süre önce, insanlar bir Unix ana karesine veri girmek veya bu çerçeveden veri görüntülemek için bilgisayar terminalleri kullandılar . Bu terminal kullanıcılarından herhangi biri, diyelim ki, cat /dev/zeroçıktı aynı ana kareye bağlı tüm terminallere / kullanıcılara yayınlanmadıysa (bunun nedeni çok kullanıcılı bir sistem olması ve her kullanıcının görevlerini diğer kullanıcıları etkilemeden çalıştırabilmesidir) .

Günümüzde , fiziksel bilgisayar terminallerinin yazılım emülasyonları olan ve benzer şekilde çalışan sanal terminaller (veya sanal konsollar - VC) kullanıyoruz . VC1'de oturum açtıysanız ve çalışırsanız , çıkış tüm VC'lere yayınlanmaz ve başka bir VC'ye geçseniz bile VC1'de çalışmaya devam eder ve çıktısını VC1'e gönderirsiniz (aynı şekilde güncellemeniz komutu, başka bir VC'ye geçseniz bile başlattığınız VC'de çalışmaya devam edecektir).ls -alR /ls

Şimdi, ses, standart çıkıştan biraz farklıdır, çünkü (varsayılan olarak), kullanıcı giriş yaptığınız VC'den bağımsız olarak çıkış için aynı cihazı kullanır, ancak kullanıcı çıkışına erişmek için giriş yapmış olmalıdır. ses cihazı.

VC ile ilgili daha fazla bilgi için buraya da bakabilirsiniz .


Bunu deneyebilirsiniz. Bir müzik çalın ve VT'yi değiştirin. Bir süre sonra F7 VT'ye geri dönün. Şarkı tam olarak duraklatıldığı noktadan başlar. Sistem iplik uymuyorsa bu nasıl mümkün olur. Sese G / Ç erişimi vermemesi müzikçaları duraklatamaz. Ben de bir program yüklerken denedim. Şaşırtıcı bir şekilde, VT değiştirildiğimde bile program kurulmuştu.
DScript

@DScript, kullandığınız oynatıcının başka bir VC'ye geçişi ve duraklatmayı algılayacak şekilde tasarlanmış olmasından kaynaklanmaktadır. Varsayılan olarak, sistem başka bir VC'ye geçiş yaparken hoş olmaz veya işlemleri duraklatmaz.
Petri

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.