X Window System protocols and architecture
کمپیوٹنگ میں، ایکس ونڈو سسٹم (عام طور پر: ایکس 11، یا ایکس) بٹ میپ ڈسپلے کے لیے ایک نیٹ ورک شفاف ونڈو سسٹم ہے۔ اس مضمون میں ایکس 11 کے پروٹوکول اور تکنیکی ڈھانچے کی تفصیل دی گئی ہے۔ کلائنٹ-سرور ماڈل اور نیٹ ورک شفافیت ایکس کلائنٹ-سرور ماڈل کا استعمال کرتا ہے۔ ایک ایکس سرور پروگرام کمپیوٹر پر گرافیکل ڈسپلے کے ساتھ چلتا ہے اور مختلف کلائنٹ پروگراموں کے ساتھ بات چیت کرتا ہے۔ ایکس سرور صارف اور کلائنٹ پروگراموں کے درمیان کام کرتا ہے، کلائنٹ پروگراموں سے گرافیکل آؤٹ پٹ (ونڈوز) کے لیے ٹی سی پی پورٹ 6000 پر درخواستوں کو قبول کرتا ہے اور انہیں صارف (ڈسپلے) پر دکھاتا ہے، اور صارف کا ان پٹ (کی بورڈ، ماؤس) وصول کرتا ہے اور اسے کلائنٹ پروگراموں میں منتقل کرتا ہے۔ ایکس میں، سرور صارف کے کمپیوٹر پر چلتا ہے، جبکہ کلائنٹ ریموٹ مشینوں پر چل سکتے ہیں۔ یہ اصطلاح کلائنٹ-سرور سسٹمز کے عام تصور کو الٹ دیتی ہے، جہاں کلائنٹ عام طور پر صارف کے مقامی کمپیوٹر پر چلتا ہے اور سرور ریموٹ کمپیوٹر پر چلتا ہے۔ ایکس ونڈو کی اصطلاحات یہ نقطہ نظر رکھتی ہیں کہ ایکس ونڈو پروگرام تمام سرگرمیوں کے مرکز میں ہے، یعنی۔ ایکس ونڈو پروگرام ایپلی کیشنز، اور صارف کے ماؤس اور کی بورڈ ان پٹ سے درخواستوں کو قبول کرتا ہے اور ان کا جواب دیتا ہے۔ لہذا، ایپلی کیشنز (ریموٹ کمپیوٹرز پر) کو ایکس ونڈو سرور پروگرام کے کلائنٹس کے طور پر دیکھا جاتا ہے۔ سرور اور کلائنٹ کے درمیان مواصلاتی پروٹوکول نیٹ ورک کو شفاف طریقے سے چلاتا ہے: کلائنٹ اور سرور ایک ہی مشین پر یا مختلف مشینوں پر چل سکتے ہیں، ممکنہ طور پر مختلف آرکیٹیکچرز اور آپریٹنگ سسٹم کے ساتھ۔ ایک کلائنٹ اور سرور ایک خفیہ کردہ کنکشن پر کنکشن کو سرنگ بنا کر انٹرنیٹ پر محفوظ طریقے سے بات چیت کر سکتے ہیں۔ ڈیزائن کے اصول باب شیفلر اور جم گیٹس نے ایکس کے ابتدائی اصولوں کو درج ذیل ترتیب دیا (جیسا کہ شیفلر/گیٹس 1996 میں درج ہے): نئی فعالیت کو اس وقت تک شامل نہ کریں جب تک کہ کوئی عمل درآمد کرنے والا اس کے بغیر حقیقی ایپلی کیشن کو مکمل نہ کر سکے۔ یہ فیصلہ کرنا اتنا ہی اہم ہے کہ نظام کیا نہیں ہے، اتنا ہی ضروری ہے کہ یہ فیصلہ کیا جائے کہ نظام کیا ہے۔ دنیا کی تمام ضروریات کو پورا نہ کریں ؛ بلکہ، نظام کو توسیع پذیر بنائیں تاکہ اضافی ضروریات کو اوپر کی طرف مطابقت پذیر انداز میں پورا کیا جا سکے۔ ایک مثال سے عام کرنے سے بدتر واحد چیز بغیر کسی مثال کے عام کرنا ہے۔ اگر کسی مسئلے کو مکمل طور پر نہیں سمجھا جاتا ہے، تو شاید یہ بہتر ہے کہ کوئی حل فراہم نہ کیا جائے۔ اگر آپ 10 فیصد کام کے لیے مطلوبہ اثر کا 90 فیصد حاصل کر سکتے ہیں تو آسان حل استعمال کریں۔ (یہ بھی دیکھیں کہ بدتر بہتر ہے۔) جتنا ممکن ہو سکے پیچیدگی کو الگ کریں۔ پالیسی کے بجائے طریقہ کار فراہم کریں۔ خاص طور پر، صارف انٹرفیس پالیسی کو کلائنٹس کے ہاتھوں میں رکھیں۔ ایکس 11 کے ڈیزائن کے دوران پہلے اصول میں ترمیم کی گئی تھی: نئی فعالیت شامل نہ کریں جب تک کہ آپ کسی حقیقی ایپلی کیشن کے بارے میں نہ جانیں جس کی ضرورت ہوگی۔ تب سے X نے بڑی حد تک ان اصولوں کو برقرار رکھا ہے۔ X.Org فاؤنڈیشن 1987 کے اصل پروٹوکول کے ساتھ تقریبا مکمل طور پر مطابقت رکھتے ہوئے، نفاذ کی توسیع اور بہتری کے نقطہ نظر سے حوالہ کے نفاذ کو تیار کرتی ہے۔ سرور اور کلائنٹس کے درمیان بنیادی پروٹوکول مواصلات نیٹ ورک چینل پر پیکٹوں کا تبادلہ کرکے کیا جاتا ہے۔ کلائنٹ پہلا پیکٹ بھیج کر کنکشن قائم کرتا ہے۔ سرور ایک پیکٹ واپس بھیج کر جواب دیتا ہے جس میں کنکشن کی قبولیت یا انکار کا ذکر ہوتا ہے، یا مزید تصدیق کی درخواست کے ساتھ۔ اگر کنکشن قبول کیا جاتا ہے، تو قبولیت پیکٹ میں کلائنٹ کے لیے ڈیٹا ہوتا ہے جو سرور کے ساتھ بعد میں ہونے والی بات چیت میں استعمال ہوتا ہے۔ کنکشن قائم ہونے کے بعد، کلائنٹ اور سرور چینل پر چار مختلف قسم کے پیکٹوں کا تبادلہ کرتے ہیں: درخواست: کلائنٹ سرور سے معلومات کی درخواست کرتا ہے یا اسے کوئی عمل انجام دینے کی درخواست کرتا ہے۔ جواب: سرور درخواست کا جواب دیتا ہے۔ تمام درخواستیں جوابات پیدا نہیں کرتی ہیں۔ واقعہ: سرور کلائنٹ کو ایونٹ بھیجتا ہے، مثال کے طور پر، کی بورڈ یا ماؤس ان پٹ، یا ونڈو کو منتقل کیا جا رہا ہے، سائز تبدیل کیا جا رہا ہے یا بے نقاب کیا جا رہا ہے۔ غلطی: اگر کوئی درخواست غلط ہے تو سرور ایک ایرر پیکٹ بھیجتا ہے۔ چونکہ درخواستیں قطار میں کھڑی ہیں، اس لیے درخواست سے پیدا ہونے والے ایرر پیکٹ فوری طور پر نہیں بھیجے جا سکتے ہیں۔ ایکس سرور بنیادی خدمات کا ایک مجموعہ فراہم کرتا ہے۔ کلائنٹ پروگرام سرور کے ساتھ تعامل کرکے زیادہ پیچیدہ افعال کا احساس کرتے ہیں۔ ونڈوز جسے دوسرے گرافیکل یوزر انٹرفیس عام طور پر ونڈو کہتے ہیں وہ ایکس ونڈو سسٹم میں ایک ٹاپ لیول ونڈو ہے۔ ونڈو کی اصطلاح ان ونڈوز کے لیے بھی استعمال ہوتی ہے جو دوسری ونڈو کے اندر ہوتی ہیں، یعنی پیرنٹ ونڈو کی ذیلی ونڈوز۔ گرافک عناصر جیسے بٹن، مینو، آئیکن وغیرہ۔ یہ سب ونڈوز کا استعمال کرتے ہوئے حاصل کیے جاتے ہیں۔ ونڈو صرف پیرنٹ ونڈو کے سب ونڈو کے طور پر بنائی جا سکتی ہے۔ اس کی وجہ سے کھڑکیوں کو درخت میں درجہ بندی کے مطابق ترتیب دیا جاتا ہے۔ ایکس سرور خود بخود درخت کی جڑ بناتا ہے، جسے روٹ ونڈو کہا جاتا ہے۔ اوپری سطح کی ونڈوز بالکل جڑ ونڈو کی براہ راست ذیلی ونڈوز ہیں۔ بظاہر، جڑ کی کھڑکی اسکرین جتنی بڑی ہوتی ہے، اور دوسری تمام کھڑکیوں کے پیچھے ہوتی ہے۔ شناخت کنندگان ایکس سرور ونڈوز، فونٹ وغیرہ کے بارے میں تمام ڈیٹا کو محفوظ کرتا ہے۔ کلائنٹ ان اشیاء کے شناخت کاروں کو جانتا ہے-انٹیجرز جو وہ سرور کے ساتھ بات چیت کرتے وقت ان کے ناموں کے طور پر استعمال کر سکتا ہے۔ مثال کے طور پر، اگر کوئی کلائنٹ ونڈو بنانا چاہتا ہے، تو وہ سرور سے ونڈو بنانے کی درخواست کرتا ہے اور (کامیابی کی صورت میں) بدلے میں ایک شناخت کنندہ حاصل کرتا ہے جو سرور نئی بنائی گئی ونڈو سے وابستہ ہوتا ہے۔ شناخت کنندہ کو بعد میں کلائنٹ درخواست کرنے کے لیے استعمال کر سکتا ہے، مثال کے طور پر، ونڈو میں کھینچا جانے والا سٹرنگ۔ شناخت کنندگان سرور کے لیے منفرد ہوتے ہیں، نہ صرف کلائنٹ کے لیے ؛ مثال کے طور پر، کسی بھی دو ونڈوز میں ایک ہی شناخت کنندہ نہیں ہوتا، چاہے وہ دو مختلف کلائنٹس کے ذریعے بنائے گئے ہوں۔ ایک کلائنٹ کسی بھی آبجیکٹ تک رسائی حاصل کر سکتا ہے جسے اس کا شناخت کنندہ دیا گیا ہے، چاہے کسی دوسرے کلائنٹ نے آبجیکٹ تخلیق کیا ہو۔ صفات اور خصوصیات ہر ونڈو میں صفات کا ایک پہلے سے طے شدہ مجموعہ اور خصوصیات کا ایک مجموعہ ہوتا ہے، یہ سب ایکس سرور میں محفوظ ہوتے ہیں اور مناسب درخواستوں کے ذریعے گاہکوں کے لیے قابل رسائی ہوتے ہیں۔ خصوصیات ونڈو کے بارے میں ڈیٹا ہیں، جیسے اس کا سائز، پوزیشن، پس منظر کا رنگ وغیرہ۔ خصوصیات ڈیٹا کے ٹکڑے ہوتے ہیں جو ونڈو سے منسلک ہوتے ہیں۔ صفات کے برعکس، ایکس ونڈو کور پروٹوکول کی سطح پر خصوصیات کا کوئی مطلب نہیں ہے۔ ایک کلائنٹ صوابدیدی ڈیٹا کو ونڈو کی خاصیت میں محفوظ کر سکتا ہے۔ ایک پراپرٹی کی خصوصیت ایک نام، ایک قسم اور ایک قدر ہوتی ہے۔ خصوصیات لازمی پروگرامنگ زبانوں میں متغیرات سے ملتی جلتی ہیں، اس میں ایپلی کیشن ایک دیئے گئے نام اور دی گئی قسم کے ساتھ ایک نئی پراپرٹی بنا سکتی ہے اور اس میں ایک قدر ذخیرہ کر سکتی ہے۔ خصوصیات ونڈوز سے وابستہ ہیں: مختلف اقسام اور اقدار کے ساتھ ایک ہی نام کی دو خصوصیات دو مختلف ونڈوز پر موجود ہو سکتی ہیں۔ خصوصیات زیادہ تر بین کلائنٹ مواصلات کے لیے استعمال ہوتی ہیں۔ مثال کے طور پر، WM _ NAME نامی پراپرٹی ونڈو کے نام کو محفوظ کرتی ہے۔ ونڈو منیجر عام طور پر اس پراپرٹی کو پڑھتے ہیں اور اس کے اوپری حصے میں ونڈو کا نام ظاہر کرتے ہیں۔ ایکسپروپ پروگرام ونڈو کی خصوصیات کو ظاہر کر سکتا ہے۔ خاص طور پر، xprop-root جڑ ونڈو کی خصوصیات کو ظاہر کرتا ہے، جس میں X وسائل (پروگراموں کے پیرامیٹرز) شامل ہیں۔ ایونٹس وہ پیکٹ ہوتے ہیں جو سرور کی طرف سے کلائنٹ کو یہ بتانے کے لیے بھیجے جاتے ہیں کہ کچھ ایسا ہوا ہے جس میں کلائنٹ کو دلچسپی ہو۔ ایک کلائنٹ سرور سے کسی دوسرے کلائنٹ کو ایونٹ بھیجنے کی درخواست کر سکتا ہے ؛ یہ کلائنٹس کے درمیان بات چیت کے لیے استعمال ہوتا ہے۔ مثال کے طور پر، جب کوئی کلائنٹ اس متن کی درخواست کرتا ہے جو فی الحال منتخب کیا گیا ہے، تو ایک ایونٹ کلائنٹ کو بھیجا جاتا ہے جو فی الحال ونڈو کو سنبھال رہا ہے جس میں انتخاب ہوتا ہے۔ ونڈو کا مواد کچھ حالات میں "تباہ" ہو سکتا ہے (مثال کے طور پر، اگر ونڈو کو ڈھانپ دیا گیا ہے)۔ جب بھی تباہ شدہ مواد کا کوئی علاقہ نظر آتا ہے، سرور کلائنٹ کو مطلع کرنے کے لیے ایک ایکسپوز ایونٹ تیار کرتا ہے کہ ونڈو کا ایک حصہ کھینچنا ہے۔ دیگر تقریبات کلائنٹس کو کی بورڈ یا ماؤس ان پٹ، نئی ونڈوز کی تخلیق وغیرہ کے بارے میں مطلع کرنے کا کام کر سکتی ہیں۔ کچھ قسم کے واقعات ہمیشہ کلائنٹ کو بھیجے جاتے ہیں، لیکن زیادہ تر قسم کے واقعات صرف اس صورت میں بھیجے جاتے ہیں جب کلائنٹ نے پہلے ان میں دلچسپی ظاہر کی ہو، کیونکہ کلائنٹ صرف کسی قسم کے واقعات میں دلچسپی رکھتے ہوں گے۔ مثال کے طور پر، ایک کلائنٹ کی بورڈ سے متعلق ایونٹ میں دلچسپی لے سکتا ہے لیکن ماؤس سے متعلق ایونٹس میں نہیں۔ جس طرح سے ایکس ونڈو سسٹم رنگوں کو سنبھالتا ہے وہ بعض اوقات صارفین کو الجھاتا ہے، اور تاریخی طور پر کئی مختلف طریقوں کی حمایت کی گئی ہے۔ زیادہ تر جدید ایپلی کیشنز مکمل رنگ (24 بٹ رنگ، سرخ، سبز اور نیلے رنگ کے ہر ایک کے لیے 8 بٹس) استعمال کرتی ہیں، لیکن پرانی یا ماہر ایپلی کیشنز کو مختلف رنگ کے موڈ کی ضرورت پڑ سکتی ہے۔ بہت سی تجارتی ماہر ایپلی کیشنز سیوڈو کلر کا استعمال کرتی ہیں۔ ایکس 11 پروٹوکول دراصل زیادہ تر گرافک کارروائیوں میں ایک ہی رنگ کی نمائندگی کے لیے ایک واحد 32 بٹ غیر دستخط شدہ عدد کا استعمال کرتا ہے-جسے پکسل ویلیو کہا جاتا ہے۔ بنیادی رنگوں کی شدت کو منتقل کرتے وقت، ہر رنگ کے جزو کے لیے 16 بٹ انٹیجر استعمال کیا جاتا ہے۔ رنگوں کی درج ذیل نمائشیں موجود ہیں ؛ ان سب کو کسی مخصوص ڈیوائس پر سپورٹ نہیں کیا جا سکتا ہے۔ ڈائریکٹ کلر: ایک پکسل ویلیو کو الگ الگ سرخ، سبز اور نیلے ذیلی شعبوں میں تقسیم کیا جاتا ہے۔ ہر ذیلی فیلڈ ایک علیحدہ رنگین نقشہ ترتیب دیتا ہے۔ تمام رنگین نقشوں میں اندراجات کو تبدیل کیا جا سکتا ہے۔ ٹرو کلر: ڈائریکٹ کلر کی طرح، سوائے اس کے کہ کلر میپ کے اندراجات ہارڈ ویئر کے ذریعہ پہلے سے متعین ہیں اور انہیں تبدیل نہیں کیا جا سکتا۔ عام طور پر، سرخ، سبز اور نیلے رنگ کے نقشوں میں سے ہر ایک شدت کا (قریب) لکیری ریمپ فراہم کرتا ہے۔ گرے اسکیل: ایک پکسل ویلیو انڈیکس ایک واحد رنگین نقشہ ہے جس میں یک رنگ شدت ہوتی ہے۔ رنگین نقشہ اندراجات کو تبدیل کیا جا سکتا ہے۔ جامد سرمئی: گرے اسکیل کی طرح، سوائے اس کے کہ رنگین نقشہ اندراجات ہارڈ ویئر کے ذریعہ پہلے سے متعین ہیں اور انہیں تبدیل نہیں کیا جا سکتا۔ سیوڈو کلر (چنکی): ایک پکسل ویلیو انڈیکس ایک واحد رنگین نقشہ ہے جس میں رنگ کی شدت ہوتی ہے۔ رنگین نقشہ اندراجات کو تبدیل کیا جا سکتا ہے۔ جامد رنگ: سیوڈو کلر کی طرح، سوائے اس کے کہ رنگین نقشہ اندراجات ہارڈ ویئر کے ذریعہ پہلے سے متعین ہیں اور انہیں تبدیل نہیں کیا جا سکتا۔ ایکسلیب اور دیگر کلائنٹ لائبریریاں زیادہ تر کلائنٹ پروگرام ایکسلیب کلائنٹ لائبریری کے ذریعے سرور کے ساتھ بات چیت کرتے ہیں۔ ایکسلیب کے علاوہ، ایکس سی بی لائبریری ایکس پروٹوکول سے زیادہ قریب سے کام کرتی ہے۔ خاص طور پر، زیادہ تر کلائنٹ Xaw، Motif، GTK +، یا Qt جیسی لائبریریوں کا استعمال کرتے ہیں جو بدلے میں سرور کے ساتھ بات چیت کے لیے Xlib کا استعمال کرتے ہیں۔ کیو ٹی نے 5 ریلیز کے ساتھ ایکسلیب سے ایکس سی بی میں تبدیل کیا، لیکن کلائنٹ پروگرام اس تبدیلی سے تقریبا مکمل طور پر متاثر نہیں ہوئے۔ انٹر کلائنٹ مواصلات ایکس ونڈو کور پروٹوکول کلائنٹس کے درمیان مواصلات کے لیے میکانزم فراہم کرتا ہے: ونڈو کی خصوصیات اور واقعات، خاص طور پر کلائنٹ سے کلائنٹ کے پیغام کے واقعات۔ تاہم، یہ اس طرح کے تعاملات کے لیے کسی پروٹوکول کی وضاحت نہیں کرتا ہے۔ اس کے بجائے، بین کلائنٹ مواصلاتی کنونشنوں کا ایک علیحدہ مجموعہ ان پروٹوکول کو کنٹرول کرتا ہے۔ انٹر کلائنٹ کمیونیکیشن کنونشن دستی ونڈو مینیجر کے ساتھ انتخاب اور ایپلی کیشنز کے تعامل کے ذریعے ڈیٹا کے تبادلے کے لیے پروٹوکول کی وضاحت کرتا ہے۔ کچھ لوگوں نے اس وضاحت کو مشکل اور الجھن کا باعث سمجھا ہے۔ ایپلی کیشن کی شکل اور احساس اور مواصلات کی مستقل مزاجی کو عام طور پر کسی دیئے گئے ڈیسک ٹاپ ماحول میں پروگرامنگ کے ذریعے حل کیا جاتا ہے۔ انٹر کلائنٹ ایکسچینج پروٹوکول (ICE) کلائنٹس کے درمیان تعامل کے لیے پروٹوکول بنانے کے لیے ایک فریم ورک کی وضاحت کرتا ہے، تاکہ پروگرامر اس کے اوپر ایک مخصوص پروٹوکول بنا سکیں۔ خاص طور پر، ایکس سیشن مینجمنٹ پروٹوکول (ایکس ایس ایم پی) آئی سی ای پر مبنی ایک پروٹوکول ہے جو سیشن مینیجر کے ساتھ ایپلی کیشنز کے درمیان تعامل کو کنٹرول کرتا ہے، جو وہ پروگرام ہے جو انٹرایکٹو سیشن کے اختتام پر ڈیسک ٹاپ کی حیثیت کو محفوظ کرنے اور اسی صارف کے ساتھ دوسرا سیشن دوبارہ شروع ہونے پر اسے بازیافت کرنے کا خیال رکھتا ہے۔ فریڈیسک ٹاپ کی خصوصیات میں نئے کنونشن شامل ہیں، بشمول ڈریگ اینڈ ڈراپ کنونشن Xdnd (جو ڈیٹا کو منتخب کرکے اور دوسری ونڈو میں گھسیٹنے کے لیے استعمال ہوتا ہے) اور سرایت شدہ ایپلیکیشن کنونشن Xembed (جس میں تفصیل دی گئی ہے کہ ایک ایپلیکیشن کس طرح کسی دوسری ایپلیکیشن کے سب ونڈو میں چل سکتی ہے)۔ سلیکشنز، کٹ بفرز، اور ڈریگ اینڈ ڈراپ ایکس ونڈو سسٹم میں سلیکشنز، کٹ بفرز، اور ڈریگ اینڈ ڈراپ کا طریقہ کار صارف کو ایک ونڈو سے دوسری ونڈو میں ڈیٹا منتقل کرنے کی اجازت دیتا ہے۔ سلیکشنز اور کٹ بفر کا استعمال (عام طور پر) اس وقت کیا جاتا ہے جب صارف کسی ونڈو میں ٹیکسٹ یا کوئی دوسرا ڈیٹا منتخب کرتا ہے اور کسی مختلف ونڈو میں پیسٹ کرتا ہے۔ ڈریگ اینڈ ڈراپ کا استعمال اس وقت کیا جاتا ہے جب صارف ونڈو میں کچھ منتخب کرتا ہے، پھر سلیکشن پر کلک کرتا ہے اور اسے دوسری ونڈو میں گھسیٹتا ہے۔ چونکہ دو مختلف ایپلی کیشنز دونوں ونڈوز کو سنبھال سکتی ہیں، ڈیٹا ٹرانسفر کے لیے ایک ہی ایکس سرور سے منسلک مختلف کلائنٹس کو بات چیت کرنے کی ضرورت ہوتی ہے۔ ایکس ونڈو کور پروٹوکول میں کچھ قسم کی درخواستیں اور واقعات شامل ہیں جو سلیکشن ایکسچینج کے لیے مخصوص ہیں، لیکن منتقلی بنیادی طور پر کلائنٹ سے کلائنٹ ایونٹ بھیجنے اور ونڈو کی خصوصیات کا استعمال کرتے ہوئے کی جاتی ہے، جو سلیکشن ٹرانسفر کے لیے مخصوص نہیں ہیں۔ صارفین کلائنٹس کے درمیان مختلف اقسام کا ڈیٹا منتقل کر سکتے ہیں: یہ عام طور پر ٹیکسٹ ہوتا ہے، لیکن یہ پکسمپ، نمبر، اشیاء کی فہرست وغیرہ بھی ہو سکتا ہے۔ انتخاب اور ڈریگ اینڈ ڈراپ فعال میکانزم ہیں: صارف کے ونڈو میں ڈیٹا کو منتخب کرنے کے بعد، ونڈو کو سنبھالنے والے کلائنٹ کو اس ڈیٹا کو درخواست کرنے والی ایپلی کیشن میں منتقل کرنے کے لیے ایک پروٹوکول کی فعال طور پر حمایت کرنی چاہیے۔ کٹ بفر، اس کے برعکس، ایک غیر فعال طریقہ کار فراہم کرتے ہیں: جب صارف کچھ متن منتخب کرتا ہے، تو اس کا مواد کٹ بفر میں منتقل ہو جاتا ہے، جہاں یہ تب بھی باقی رہتا ہے جب ونڈو کو سنبھالنے والی ایپلی کیشن ختم ہو جاتی ہے اور ونڈو تباہ ہو جاتی ہے۔ ونڈو مینیجر ونڈوز کی عمومی ظاہری شکل اور گرافیکل یوزر انٹرفیس کے دیگر گرافیکل عناصر کو کنٹرول کرنے والا ایک پروگرام ہے۔ مختلف تنصیبات میں ایکس ونڈو سسٹم کی شکل میں فرق بنیادی طور پر مختلف ونڈو مینیجرز کے استعمال یا ونڈو منیجر کی مختلف ترتیبات سے پیدا ہوتا ہے۔ ونڈو مینیجر ونڈوز کی پوزیشن کا فیصلہ کرنے، ان کے ارد گرد آرائشی بارڈر رکھنے، آئیکنز کو ہینڈل کرنے، ونڈوز کے باہر ماؤس کلکس کو ہینڈل کرنے ("پس منظر" پر)، کچھ کیسٹروک کو ہینڈل کرنے وغیرہ کا خیال رکھتا ہے۔ ایکس سرور کے نقطہ نظر سے، ونڈو مینیجر کسی دوسرے کلائنٹ کی طرح کلائنٹ کے طور پر کام کرتا ہے۔ ونڈوز کے ارد گرد ابتدائی پوزیشن اور آرائشی بارڈرز کو ونڈو مینیجر مندرجہ ذیل درخواستوں کا استعمال کرتے ہوئے سنبھالتا ہے: ایک ایپلیکیشن سرور سے درخواست کر سکتی ہے کہ وہ دی گئی ونڈو کی میپنگ (دکھانے) سب ونڈوز کی درخواستوں کو پورا نہ کرے، اور اس کے بجائے ایونٹ بھیجے۔ ایک ایپلیکیشن ونڈو کے پیرنٹ کو تبدیل کرنے کی درخواست کر سکتی ہے۔ ونڈو مینیجر ٹاپ لیول ونڈوز (چلڈرن آف دی روٹ ونڈو) کی نقشہ سازی کے لیے کسی بھی درخواست کو روکنے کے لیے پہلی درخواست کا استعمال کرتا ہے۔ جب بھی کوئی دوسری ایپلیکیشن ٹاپ لیول ونڈو کی میپنگ کی درخواست کرتی ہے، تو سرور ایسا نہیں کرتا بلکہ اس کے بجائے ونڈو مینیجر کو ایونٹ بھیجتا ہے۔ زیادہ تر ونڈو منیجر ونڈو کی دوبارہ دیکھ بھال کرتے ہیں: وہ ایک بڑی ٹاپ لیول ونڈو بناتے ہیں (جسے فریم ونڈو کہا جاتا ہے) اور اصل ونڈو کو اس کے بچے کے طور پر دوبارہ دیکھ بھال کرتے ہیں۔ گرافک طور پر، یہ اصل ونڈو کو فریم ونڈو کے اندر رکھنے سے مطابقت رکھتا ہے۔ فریم ونڈو کی وہ جگہ جو اصل ونڈو کے ذریعے نہیں لی جاتی ہے وہ ونڈو کے ارد گرد آرائشی فریم ("بارڈر" اور "ٹائٹل بار") کے لیے استعمال ہوتی ہے۔ ونڈو مینیجر فریم ونڈو میں ماؤس کلکس کا انتظام کرتا ہے۔ یہ، مثال کے طور پر، صارف کو بارڈر پر یا ٹائٹل بار پر کلک کرکے اور گھسیٹ کر ونڈو کو منتقل کرنے یا سائز تبدیل کرنے کی اجازت دیتا ہے۔ ونڈو مینیجر گرافیکل یوزر انٹرفیس کے شبیہیں اور متعلقہ بصری عناصر کو بھی سنبھالتا ہے۔ ایکس ونڈو کور پروٹوکول کی سطح پر شبیہیں موجود نہیں ہیں۔ انہیں ونڈو مینیجر کے ذریعے نافذ کیا جاتا ہے۔ مثال کے طور پر، جب بھی کسی ونڈو کو "آئیکونیفائیڈ" کرنا پڑتا ہے، ایف وی ڈبلیو ایم ونڈو مینیجر ونڈو کو بے نقاب کرتا ہے، اور آئیکن کے نام کے لیے ایک ونڈو اور ممکنہ طور پر آئیکن امیج کے لیے ایک اور ونڈو بناتا ہے۔ اس لیے شبیہیں کے معنی اور ہینڈلنگ کا فیصلہ مکمل طور پر ونڈو مینیجر کرتا ہے: کچھ ونڈو مینیجرز جیسے کہ ڈبلیو ایم 2 شبیہیں بالکل بھی لاگو نہیں کرتے۔ سیشن مینیجر تقریبا، سیشن کی حالت ایک مقررہ وقت پر "ڈیسک ٹاپ کی حالت" ہوتی ہے: ونڈوز کا ایک سیٹ جس میں ان کا موجودہ مواد ہوتا ہے۔ مزید واضح طور پر، یہ ان ونڈوز اور معلومات کا انتظام کرنے والی ایپلی کیشنز کا مجموعہ ہے جو ان ایپلی کیشنز کو ضرورت پڑنے پر اپنی منظم ونڈوز کی حالت کو بحال کرنے کی اجازت دیتا ہے۔ ایکس سیشن مینیجر کے نام سے جانا جانے والا پروگرام سیشن کی حالت کو محفوظ اور بحال کرتا ہے۔ سب سے زیادہ قابل شناخت بات یہ ہے کہ سیشن مینیجر کا استعمال صارف کو انٹرایکٹو سیشن سے لاگ آؤٹ کرنے کی اجازت دیتا ہے لیکن دوبارہ لاگ ان کرتے وقت بالکل وہی ونڈوز اسی حالت میں تلاش کرنے کی اجازت دیتا ہے۔ اس کے کام کرنے کے لیے، سیشن مینیجر پروگرام لاگ آؤٹ پر چل رہی ایپلی کیشنز کے ناموں کو محفوظ کرتا ہے اور لاگ ان پر انہیں دوبارہ شروع کرتا ہے۔ ایپلی کیشنز کی حالت کو بھی بحال کرنے کے لیے (جو ونڈوز کے مواد کو بحال کرنے کے لیے ضروری ہے)، ایپلی کیشنز کو سیشن مینیجر کی درخواست پر اپنے عمل کی حالت کو بچانے کے قابل ہونا چاہیے اور جب وہ دوبارہ شروع کریں تو اسے دوبارہ لوڈ کرنا چاہیے۔ ایکس ونڈو سسٹم میں ایک ڈیفالٹ سیشن مینیجر شامل ہے جسے ایکس ایس ایم کہا جاتا ہے۔ ڈویلپرز نے مخصوص ڈیسک ٹاپ سسٹمز کے لیے دوسرے سیشن مینیجرز کو لکھا ہے۔ اہم مثالوں میں، اور بالترتیب کے ڈی ای، ایکس ایف سی ای، اور GNOME کے لیے شامل ہیں۔ ایکس ڈسپلے مینیجر ایکس ڈسپلے مینیجر کے نام سے جانا جانے والا پروگرام ایکس ونڈو سسٹم میں گرافیکل لاگ ان پرامپٹ دکھاتا ہے۔ زیادہ عام طور پر، ایک ڈسپلے مینیجر مقامی کمپیوٹر پر ایک یا زیادہ ایکس سرورز چلاتا ہے یا ریموٹ کمپیوٹرز پر چلنے والے ایکس سرورز سے آنے والے کنکشنز کو قبول کرتا ہے۔ مقامی سرورز ڈسپلے مینیجر کے ذریعے شروع کیے جاتے ہیں، جو اس کے بعد صارف کو لاگ ان اسکرین پیش کرنے کے لیے ان سے جڑ جاتے ہیں۔ ریموٹ سرورز ڈسپلے مینیجر سے آزادانہ طور پر شروع ہوتے ہیں اور اس سے جڑ جاتے ہیں۔ اس صورت حال میں، ڈسپلے مینیجر ایک گرافیکل ٹیل نیٹ سرور کی طرح کام کرتا ہے: ایک ایکس سرور ڈسپلے مینیجر سے جڑ سکتا ہے، جو ایک سیشن شروع کرتا ہے۔ اس سیشن کو استعمال کرنے والی ایپلی کیشنز ڈسپلے مینیجر کے اسی کمپیوٹر پر چلتی ہیں لیکن کمپیوٹر پر ان پٹ اور آؤٹ پٹ ہوتی ہیں جہاں ایکس سرور چلتا ہے (جو صارف کے سامنے والا کمپیوٹر یا ریموٹ کمپیوٹر ہو سکتا ہے)۔ ایکس ونڈو سسٹم ایکس ڈی ایم کے ساتھ بنیادی فراہم کردہ ڈسپلے مینیجر کے طور پر جہاز کرتا ہے۔ دیگر ڈسپلے مینیجرز میں جی ڈی ایم (GNOME)، کے ڈی ایم/ایس ڈی ڈی ایم (KDE)، ڈبلیو ڈی ایم (ونڈو میکر میں استعمال ہونے والے ونگز ویجیٹ سیٹ کا استعمال کرتے ہوئے) اور داخلہ (روشن خیالی v. 17 میں استعمال ہونے والے فن تعمیر کا استعمال کرتے ہوئے) شامل ہیں۔ X کے لیے یوزر انٹرفیس عناصر ابتدائی ویجیٹ ٹول کٹ میں Xaw (ایتینا ویجیٹ سیٹ، 1983)، OLIT (اوپن لک انٹرنسکس ٹول کٹ، 1988)، XVव्यू (1988)، موٹیف (1980 کی دہائی) اور TK شامل تھے۔ او ایل آئی ٹی اور ایکس ویو سن کی میراث اوپن ونڈوز ڈیسک ٹاپ ماحول کے لیے بنیادی ٹول کٹ کے طور پر کام کرتے ہیں۔ موٹیف کامن ڈیسک ٹاپ انوائرمنٹ (سی ڈی ای) کے لیے بنیادی ٹول کٹ فراہم کرتا ہے، جو تجارتی یونکس سسٹمز جیسے سولارس، اے آئی ایکس اور ایچ پی-یو ایکس پر استعمال ہونے والا ڈیسک ٹاپ ماحول ہے۔ (سولرس 10 میں سی ڈی ای اور GNOME دونوں شامل ہیں، مؤخر الذکر ترجیحی ڈیسک ٹاپ ماحول کے ساتھ۔) حال ہی میں تیار کردہ ٹول کٹس میں کیو ٹی (1991 -، کے ڈی ای کے ذریعے استعمال شدہ)، جی ٹی کے + (1997 -، GNOME کے ذریعے استعمال شدہ)، ڈبلیو ایکس ویجیٹس (1992-)، ایف ایل ٹی کے (1998-)، فاکس (1997-) اور ایف پی جی یو آئی (2005-موجودہ) شامل ہیں۔ ایکسٹینشنز شیفلر اور گیٹس نے ایکس سرور کو سادہ لیکن توسیع پذیر بنانے کے لیے ڈیزائن کیا۔ اس طرح، زیادہ فعالیت اب پروٹوکول کی توسیع میں رہتی ہے۔ پروٹوکول کی سطح پر، ہر توسیع کو نئی درخواست/واقعہ/غلطی پیکٹ کی اقسام تفویض کی جا سکتی ہیں۔ توسیعی خصوصیات تک رسائی کلائنٹ ایپلی کیشنز کے ذریعے توسیعی لائبریریوں کے ذریعے حاصل کی جاتی ہے۔ سرور کے ڈیزائن میں ماڈیولرٹی کی کمی کی وجہ سے موجودہ ایکس سرور کے نفاذ میں ایکسٹینشنز کو شامل کرنا مبینہ طور پر مشکل ہے۔ یہ ایکس سی بی پروجیکٹ کا ایک طویل مدتی مقصد ہے کہ وہ ایکس ایم ایل پروٹوکول کی وضاحتوں سے ایکسٹینشنز کے کلائنٹ اور سرور دونوں اطراف کو خودکار طریقے سے تیار کرے۔ مندرجہ ذیل ٹیبل ان ایکسٹینشنز کا جزوی کیٹلاگ فراہم کرتا ہے جو تیار کی گئی ہیں، جنہیں تقریبا تعارف کی بازیافت کے ذریعے ترتیب دیا گیا ہے: متروک ایکسٹینشنز یہ بھی دیکھیں کہ ایکس لیب انٹرنسکس (ایکس ٹی) ایکس ونڈو سسٹم کور پروٹوکول ایکس منطقی فونٹ کی تفصیل نوٹ حوالہ جات archive.org کا 1990 ایڈیشن ہے۔ مزید پڑھنے کے لیے رابرٹ ڈبلیو شیفلر اور جیمز گیٹس: ایکس ونڈو سسٹم: کور اور ایکسٹینشن پروٹوکول، ایکس ورژن 11، ریلیز 6 اور 6.1، ڈیجیٹل پریس 1996، ایکس ونڈوز کا تعارف [sic] بیرونی لنکس X.Org فاؤنڈیشن X.Org فاؤنڈیشن وکی ایکس ونڈو سسٹم انٹرنلز کینٹن لی کے صفحات ایکس ونڈو اور موٹف ایکس 11 ایکسٹینشن ٹیوٹوریل پروٹوکول اور فن تعمیر ایپلی کیشن لیئر پروٹوکول ریموٹ ڈیسک ٹاپ پروٹوکول ایکس ونڈو ایکسٹینشنز