Пока я слушал музыку, я поменял виртуальную консоль с помощью Ctrl+ Alt+ F2, и музыка неожиданно остановилась. Возвращаясь обратно в консоль , которая запускает X - сервер Ctrl+ Alt+ F7или вход в систему для пользователя в консоли , что я в настоящее время использую ( Ctrl+ Alt+ F2), начинает играть музыку снова.
Linux (я использую Ubuntu) - многопользовательская операционная система. Насколько я знаю, у него есть 7 виртуальных консолей, в которые пользователи могут входить и работать одновременно. Так почему же это происходит? Что произойдет, если моя система будет обновляться при переключении консолей?
Ответы:
Linux имеет несколько виртуальных консолей. Ctrl+ Alt+ переключается между этими консолями. При переключении с консоли 7 на консоль 2 периферийные устройства ввода и вывода перенаправляются с консоли 7 на консоль 2. Когда консоль 7 неактивна, она не имеет доступа к периферии ввода-вывода: дисплей не отображается на экран, приложения не получают ввод с клавиатуры и т. д.Fn
По историческим причинам для ввода и вывода звука используются совершенно разные каналы от устройств ввода, таких как клавиатура и мышь, и от видеодисплеев. Консольные устройства (абстракция в операционной системе) покрывают клавиатуру и видео, но не звук. Наиболее распространенная базовая реализация звука в системе Unix не зависит от этой системы, и разрешение на использование звуковой периферии предоставляется на основании членства в группе, а не владения консолью. На самом деле это недостаток дизайна.
Ubuntu настроил все так, чтобы сессия вошла в консоль и только у них был доступ к аудиоустройству. Если вы переключите консоли, вы потеряете доступ к аудиоустройству, если только вы не войдете в эту другую консоль. Это то, что действительно должно было быть сделано с самого начала, но не потому, что дизайнеры консольных интерфейсов не думали о звуке.
Когда вы переключаетесь на другую консоль, ваши программы продолжают работать, потому что процессор связан не с консолью, а с машиной: любому, кто имеет учетную запись на машине, разрешено использовать время процессора. То же самое касается других ресурсов, таких как память и файлы (в зависимости от разрешений). Только взаимодействие с пользователем регулируется владением консолью. Ваш звук перестает воспроизводиться, когда вы переключаетесь на консоль, где вы не вошли в систему, потому что ваши программы теряют право доступа к устройству вывода звука.
Я считаю, что Ubuntu реализует управление доступом через Polkit , но я не знаю точно, как это работает.
источник
Некоторое время назад люди использовали компьютерные терминалы для ввода данных или отображения данных с мэйнфрейма Unix. Если кто-то из пользователей этого терминала хотел, скажем,
cat /dev/zero
чтобы вывод не передавался всем терминалам / пользователям, подключенным к одному и тому же мэйнфрейму (это потому, что это была многопользовательская система, и каждый пользователь мог выполнять свои задачи, не затрагивая других пользователей). ,В наши дни мы используем виртуальные терминалы (или виртуальные консоли - VC), которые являются программной эмуляцией физических компьютерных терминалов и работают аналогичным образом. Если вы вошли в VC1 и работаете
ls -alR /
, выходные данные не будут транслироваться на все VC, и, даже если вы переключитесь на другой VC, выls
продолжите работать в VC1 и отправите свои выходные данные в VC1 (так же, как ваше обновление Команда будет продолжать работать в том VC, в котором вы ее запускали, даже если вы переключаетесь на другой VC).Теперь звук немного отличается от стандартного вывода, так как (по умолчанию) он использует одно и то же устройство для вывода независимо от того, в какой VC ваш пользователь вошел, но ваш пользователь должен войти в систему, чтобы иметь доступ к выходу звуковое устройство.
Вы также можете посмотреть здесь более подробную информацию о VC.
источник
Пытаться
От: https://www.reddit.com/r/linux/comments/1ckvhd/keeping_music_playing_across_multiple_terminal/
источник