गोले के बीच स्विच करना, वर्तमान में चल रहे संगीत को रोक देता है


11

जब मैं संगीत सुन रहा था तो मैंने Ctrl+ Alt+ का उपयोग करके वर्चुअल कंसोल को बदल दिया F2, और अचानक संगीत को रोक दिया गया। X सर्वर Ctrl+ Alt+ चलाने वाले कंसोल पर वापस लौटना F7या कंसोल में उपयोगकर्ता के लिए लॉग इन करना जो मैं वर्तमान में उपयोग कर रहा हूं ( Ctrl+ Alt+ F2), फिर से संगीत बजाना शुरू करता है।

लिनक्स (मैं उबंटू का उपयोग कर रहा हूं) एक बहु-उपयोगकर्ता ऑपरेटिंग सिस्टम है। जहां तक ​​मुझे पता है, इसमें 7 वर्चुअल कंसोल हैं जिन्हें उपयोगकर्ता एक साथ लॉग इन कर सकते हैं और काम कर सकते हैं। तो ऐसा क्यों हो रहा है? यदि कंसोल को स्विच करते समय मेरा सिस्टम अपडेट हो रहा था तो क्या होगा?


4
पूछने का सही सवाल यह है कि यदि उन सभी उपयोगकर्ताओं को संगीत बजाना चाहिए तो क्या होगा?
JdeBP

जवाबों:


4

लिनक्स में कई वर्चुअल कंसोल हैं। इन कंसोल के बीच Ctrl+ Alt+ स्विच। जब आप कंसोल 7 से कंसोल 2 पर स्विच करते हैं, तो इनपुट और आउटपुट बाह्य उपकरणों को कंसोल 7 से कंसोल 2 में फिर से रूट किया जाता है। कंसोल 7 निष्क्रिय होने पर, इसका इनपुट / आउटपुट बाह्य उपकरणों तक कोई पहुंच नहीं है: प्रदर्शन चालू नहीं दिखाया गया है स्क्रीन, अनुप्रयोगों को कीबोर्ड इनपुट नहीं मिलता है, आदि।Fn

ऐतिहासिक कारणों के लिए, ध्वनि इनपुट और आउटपुट इनपुट डिवाइस जैसे कीबोर्ड और माउस और वीडियो डिस्प्ले से पूरी तरह से अलग चैनल का उपयोग करता है। कंसोल डिवाइस (ऑपरेटिंग सिस्टम में अमूर्त) कीबोर्ड और वीडियो को कवर करते हैं, लेकिन ध्वनि नहीं। यूनिक्स प्रणाली पर ध्वनि का सबसे सामान्य बुनियादी कार्यान्वयन उस प्रणाली से स्वतंत्र है, और ध्वनि बाह्य उपकरणों का उपयोग करने की अनुमति कंसोल के स्वामित्व के बजाय समूह सदस्यता के आधार पर दी गई है। यह वास्तव में एक डिजाइन की कमी है।

उबंटू ने चीजें सेट की हैं ताकि सत्र कंसोल में लॉग इन हो, और केवल उन्हें, ऑडियो डिवाइस तक पहुंच हो। यदि आप कंसोल को स्विच करते हैं, तो आप ऑडियो डिवाइस तक पहुंच खो देते हैं, जब तक कि आप उस अन्य कंसोल में प्रवेश नहीं करते हैं। यह वही है जो वास्तव में शुरू से किया जाना चाहिए था, लेकिन इसलिए नहीं था क्योंकि कंसोल इंटरफेस के डिजाइनर ध्वनि के बारे में नहीं सोच रहे थे।

जब आप दूसरे कंसोल पर जाते हैं, तो आपके प्रोग्राम चलते रहते हैं, क्योंकि सीपीयू कंसोल के साथ नहीं, बल्कि मशीन से जुड़ा होता है: मशीन पर मौजूद किसी भी व्यक्ति को सीपीयू समय का उपयोग करने की अनुमति होती है। वही अन्य संसाधनों जैसे मेमोरी और फाइल्स (अनुमतियों के अधीन) के लिए जाता है। यह केवल उपयोगकर्ता के साथ सहभागिता है जो कंसोल स्वामित्व द्वारा नियंत्रित होते हैं। जब आप लॉग इन नहीं होते हैं, तो आप अपनी ध्वनि को बंद कर देते हैं, जहां आप लॉग इन नहीं होते हैं क्योंकि आपके प्रोग्राम ध्वनि आउटपुट डिवाइस तक पहुंचने का विशेषाधिकार खो देते हैं।

मेरा मानना ​​है कि उबंटू पोलकिट के माध्यम से नियंत्रण को लागू करता है , लेकिन मुझे नहीं पता कि यह कैसे काम करता है।


आप यह कोशिश कर सकते हैं। एक संगीत चलायें और वीटी को स्विच करें। कुछ समय बाद F7 VT पर वापस जाएँ। गीत ठीक उसी बिंदु से शुरू होता है जहां इसे रोका जाता है। यह कैसे संभव है अगर सिस्टम सोते हुए धागे नहीं है। साउंड I / O तक पहुंच नहीं देने से खिलाड़ी पॉज नहीं कर सकता। और मैंने इसे एक प्रोग्राम इंस्टॉल करने के दौरान भी आज़माया। आश्चर्यजनक रूप से, कार्यक्रम तब भी स्थापित किया गया था जब मुझे वीटी स्विच किया गया था।
3

1
@DScript प्लेयर थ्रेड अवरुद्ध है क्योंकि यह साउंड सिस्टम की प्रतीक्षा कर रहा है। एक थ्रेड जो साउंड सिस्टम की प्रतीक्षा नहीं कर रहा है वह चलता रहता है। ध्वनि I / O तक पहुंच न देना खिलाड़ी को ब्लॉक करता है , क्योंकि जिस तरह से यह किया गया है वह अनुरोध को अस्वीकार करने के लिए नहीं बल्कि इसे ब्लॉक करने के लिए है।
गिलेस एसओ- बुराई को रोकें '

1

कुछ समय पहले, लोगों ने कंप्यूटर टर्मिनलों का उपयोग इनपुट डेटा में या यूनिक्स मेनफ्रेम से डेटा प्रदर्शित करने के लिए किया था। यदि इनमें से कोई टर्मिनल उपयोगकर्ता चाहता था, मान लें कि, cat /dev/zeroआउटपुट को सभी टर्मिनलों / उपयोगकर्ताओं को एक ही मेनफ़्रेम से कनेक्ट नहीं किया गया था (ऐसा इसलिए है क्योंकि यह एक बहु उपयोगकर्ता प्रणाली थी, और प्रत्येक उपयोगकर्ता अन्य उपयोगकर्ताओं को प्रभावित किए बिना इसे चला सकता है) ।

हमारे दिनों में, हम आभासी टर्मिनलों (या वर्चुअल कंसोल - वीसी) का उपयोग कर रहे हैं जो भौतिक कंप्यूटर टर्मिनलों के सॉफ्टवेयर एमुलेशन हैं , और इसी तरह से काम करते हैं। यदि आप VC1 पर लॉग इन हैं और चलाते हैं ls -alR /, तो आउटपुट को सभी VCs पर प्रसारित नहीं किया जाएगा, और, भले ही आप किसी अन्य VC पर स्विच करते हों, आपका lsVC1 में चालू रहेगा और यह आउटपुट को VC1 में भेज देगा (इसी तरह, आपका अपडेट यदि आप किसी अन्य वीसी पर स्विच करते हैं तो भी वीसी आपके द्वारा शुरू किए गए कमांड को चालू रखेगा।

अब, यह मानक आउटपुट की तुलना में थोड़ा अलग है, जैसा कि (डिफ़ॉल्ट रूप से) यह आउटपुट के लिए एक ही डिवाइस का उपयोग करता है, इससे कोई फर्क नहीं पड़ता कि वीसी आपके उपयोगकर्ता को लॉग इन करता है, लेकिन आपके उपयोगकर्ता को आउटपुट के एक्सेस के लिए लॉग इन करना होगा। ध्वनि उपकरण।

वीसी के बारे में कुछ और विवरणों के लिए आप यहां एक नज़र डाल सकते हैं ।


आप यह कोशिश कर सकते हैं। एक संगीत चलायें और वीटी को स्विच करें। कुछ समय बाद F7 VT पर वापस जाएँ। गीत ठीक उसी बिंदु से शुरू होता है जहां इसे रोका जाता है। यह कैसे संभव है अगर सिस्टम सोते हुए धागे नहीं है। साउंड I / O तक पहुंच नहीं देने से खिलाड़ी पॉज नहीं कर सकता। और मैंने इसे एक प्रोग्राम इंस्टॉल करने के दौरान भी आज़माया। आश्चर्यजनक रूप से, कार्यक्रम तब भी स्थापित किया गया था जब मुझे वीटी स्विच किया गया था।
3

@ ड्राफ्ट यह है कि क्योंकि आप जिस खिलाड़ी का उपयोग कर रहे हैं, वह किसी अन्य वीसी के पास स्विच करने और रोकने के लिए डिज़ाइन किया गया था। डिफ़ॉल्ट रूप से, सिस्टम किसी अन्य वीसी पर स्विच करने पर प्रक्रियाओं को अच्छा या विराम नहीं देगा।
पेट्री

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.