سامانه پنجره اکس

سامانهٔ پنجره اکس (که معمولاً سیستم پنجره X یا براساس نسخه اصلی فعلی آن که ۱۱ است، X11 نیز نامیده می‌شود) یک سامانهٔ نرم‌افزاری و پروتکل تحت شبکه است که اساس قابلیت‌های رابط‌های کاربری گرافیکی (GUI) و دستگاه‌های ورودی پیشرفته را برای رایانه‌های تحت شبکه فراهم می‌کند. این سیستم یک لایه انتزاع سخت‌افزاری ایجاد می‌کند یعنی سایر نرم‌افزارها از مجموعه‌ای از دستورهای عمومی استفاده می‌کنند که استقلال از سخت‌افزار و امکان استفاده مجدد از برنامه‌ها را بر روی هر رایانه‌ای که X را پیاده‌سازی کرده باشد، موجب می‌گردد.
پروژه اکس در دانشگاه ماساچوست (MIT) و در سال ۱۹۸۴ آغاز شد. نسخه فعلی (یعنی X۱۱) در ۱۹۸۷ انتشار یافت. بنیاد X.Org پروژهٔ X را هدایت می‌کند و پیاده‌سازی مرجع کنونی آن، یعنی X.Org Server، به عنوان یک نرم‌افزار آزاد و متن‌باز و تحت گواهی MIT و گواهی‌های آزاد مشابهی در دسترس است.
اکس، تنها ساختار پایه یا ابتدایی واسط گرافیکی کاربر را فراهم می‌کند: نمایش و حرکت پنجره‌ها روی صفحه و برقراری ارتباط از طریق کیبرد و ماوس. بنابر این، شکلی که اکس می‌تواند به خود بگیرد شدیداً وابسته به برنامه‌های دیگر است. برنامه‌های مدیر پنجره مختلف می‌توانند رابط‌های کاملاً متفاوتی ایجاد کنند. اکس بخشی از سیستم‌عامل نیست بلکه به عنوان یک برنامه و در لایه‌ای بالاتر از خود سیستم‌عامل اجرا می‌شود.
بر خلاف پروتکل‌های پنجره قبلی، اکس کاملاً برای کار در شبکه رایانه‌ای طراحی شده‌است. به عبارت دیگر، ارتباط اکس با صفحه نمایش به جای ارتباط مستقیم، ارتباطی مبتنی بر شبکه است. در اکس، شبکه شفاف است: جایی که برنامه اجرا می‌شود می‌تواند با جایی که دیده می‌شود تفاوت داشته باشد.

طراحی

اکس از یک مدل سرویس‌گیرنده-سرویس‌دهنده (Client-Server) استفاده می‌کند. سرور اکس برنامه‌ایست که بر روی رایانه‌ای که دارای نمایشگر و کیبورد است نصب می‌شود. سرور اکس درخواست‌ها را از کلاینت‌ها دریافت کرده، پس از پردازش، آنها را بر روی صفحه نمایش (یا دیگر دستگاه‌های خروجی) رسم می‌کند. همچنین سرور اکس اطلاعات را از ماوس و کیبورد و دیگر دستگاه‌های ورودی دریافت کرده، آنها را برای کلاینت‌ها ارسال می‌کند. کلاینت‌ها در حقیقت همان برنامه‌های کاربردی مثل فایرفاکس، لیبره‌آفیس و ... هستند. یک کلاینت درخواست‌هایی مانند «لطفاً پنجره‌ای با مختصات X و Y را در صفحه نمایش رسم کنید» را برای سرور اکس ارسال می‌کند. سرور اکس این درخواست‌ها را گرفته و سپس پنجره را بر روی صفحه نمایش رسم می‌کند. به عنوان مثالی دیگر، سرور اکس اطلاعات را از ماوس دریافت کرده و سپس پیام‌هایی مانند «کاربر در درحال حرکت دادن ماوس در مختصات X و Y است» را برای کلاینت‌ها ارسال می‌کند.
ارتباط بین کلاینت‌ها و سرور اکس از طریق پروتکل‌های شبکه صورت می‌گیرد؛ بنابراین این دو برنامه می‌توانند بر روی کامپیوترهای مختلف، حتی با سیستم‌عامل‌های مختلف نصب شوند.

هدف و قابلیت‌ها

X Window یک سیستم مستقل از معماری برای رابط‌های کاربری گرافیکی و دستگاه‌های ورودی پیشرفته بر روی شبکه است که امکان اشتراک‌گذاری توان محاسباتی یک رایانه اشتراک‌زمانی را از طریق برنامه‌های کلاینت فراهم می‌سازد. هر کاربر با استفاده از یک پایانه تحت شبکه قابلیت تعامل با نمایشگر را از طریق هر گونه دستگاه ورودی کاربری دارد. با توجه به پشتیبانی عمومی از نرم‌افزارهای X در سیستم‌عامل‌های یونیکس، لینوکس و مکینتاش، معمولاً از X برای اجرای نرم‌افزارهای کلاینت بر روی رایانه‌های شخصی استفاده می‌گردد، حتی در صورتی که نیاز به اشتراک زمانی نباشد.
X امکان پنجره‌سازی برای نمایشگرهای رایانه و مدیریت کیبرد، اعمال کنترل دستگاه‌های اشاره‌گر و صفحات لمسی را فراهم می‌کند. این سیستم در توزیع استاندارد خود یک راه‌حل تعامل و نمایش کامل اما ساده است که یک مجموعه ابزار استاندارد و پشته پروتکل برای ساختن رابط‌های کاربر گرافیکی در سیستم‌های مشابه یونیکس و OpenVMS را فراهم می‌کند و در عین حال امروزه در بسیاری از سیستم‌عاملهای مدرن نیز شبیه‌سازی شده‌است.
اکس تنها چارچوب اساسی و اولیه را برای ساخت واسط‌های گرافیکی فراهم می‌کند. همانند ترسیم و جابجایی پنجره‌ها بر روی صفحه نمایش، و تعامل با ماوس، صفحه کلید یا صفحه لمسی. اکس اجبار نمی‌کند که رابط کاربری باید وجود داشته باشد، برنامه‌هایی تحت عنوان مدیر پنجره وجود دارند که این کار را انجام می‌دهند. استفاده از مدیر پنجره اجباری نیست و برنامه‌ها می‌توانند به شکل مستقیم از از قابلیت‌های گرافیکی اکس و بدون رابط کاربری استفاده کنند. به این ترتیب، ظاهر بصری محیط‌های مبتنی بر اکس به شدت گوناگون و مختلف است. برنامه‌های مختلف، ممکن است رابط‌های کاربری کاملاً متفاوتی را ارائه دهند. اکس به صورت یک لایه انتزاعی اضافه بر روی هسته سیستم‌عامل ساخته شده‌است.
برخلاف پروتکل‌های نمایشی اولیه، اکس به جای کار بر روی دستگاه‌های نمایشی پیوسته و جدایی‌ناپذیر، به‌طور خاص برای استفاده بر روی اتصالات شبکه طراحی شده‌است. اکس به شکل شبکه-شفاف است: ماشینی که یک برنامه کاربردی (کلاینت اکس) بر روی آن اجرا می‌شود، می‌تواند از ماشینی که سرور اکس بر روی آن اجرا می‌شود متفاوت باشد و این دو برنامه می‌توانند هر کدام روی ماشین‌های مختلفی با سیستم‌عامل‌های مختلف اجرا شوند.

پیدایش

اکس اولین‌بار در ایمیل معرفی شد: