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

کی. دی. ای.۴
گنوم ۲٫۲۰
ایکس. اف. سی. ای. ۴٫۴
سامانه پنجره اکس (که معمولا سیستم پنجره 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 را فراهم می‌کند و در عین حال امروزه در بسیاری از سیستم‌عاملهای مدرن نیز شبیه‌سازی شده‌است.
اکس تنها چارچوب اساسی و اولیه را برای ساخت واسط‌های گرافیکی فراهم می‌کند. همانند ترسیم و جابجایی پنجره‌ها بر روی صفحه نمایش، و تعامل با ماوس، صفحه کلید یا صفحه لمسی. اکس اجبار نمی‌کند که رابط کاربری باید وجود داشته باشد، برنامه‌هایی تحت عنوان مدیر پنجره وجود دارند که این کار را انجام می‌دهند. استفاده از مدیر پنجره اجباری نیست و برنامه‌ها می‌توانند به شکل مستقیم از از قابلیت‌های گرافیکی اکس و بدون رابط کاربری استفاده کنند. به این ترتیب، ظاهر بصری محیط‌های مبتنی بر اکس به شدت گوناگون و مختلف است. برنامه‌های مختلف، ممکن است رابط‌های کاربری کاملا متفاوتی را ارائه دهند. اکس به صورت یک لایه انتزاعی اضافه بر روی هسته سیستم‌عامل ساخته شده‌است.
برخلاف پروتکل‌های نمایشی اولیه، اکس به جای کار بر روی دستگاه‌های نمایشی پیوسته و جدایی‌ناپذیر، به‌طور خاص برای استفاده بر روی اتصالات شبکه طراحی شده‌است. اکس به شکل شبکه-شفاف است: ماشینی که یک برنامه کاربردی (کلاینت اکس) بر روی آن اجرا می‌شود، می‌تواند از ماشینی که سرور اکس بر روی آن اجرا می‌شود متفاوت باشد و این دو برنامه می‌توانند هر کدام روی ماشین‌های مختلفی با سیستم‌عامل‌های مختلف اجرا شوند.
اصول اولیه
در ۱۹۸۴، باب شیفلر و جیم گتیس اصول اولیه ایکس را به این صورت تدوین کرند:
هیچ قابلیت جدیدی اضافه نکنید مگر اینکه برنامه‌نویسی بدون آن قابلیت نتواند برنامه واقعی‌اش را تمام کند.
اهمیت تصمیم‌گیری در این مورد که برنامه چه چیزی قرار نیست باشد، همانقدر مهم است که برنامه چه چیزی قرار است باشد. لازم نیست به همه نیازهای جهان پاسخ دهید. نکته مهم این است که برنامه قابل توسعه باشد تا بعدها بتوان با حفظ سازگاری، آن را پیش برد.
تنها چیزی که از تعمیم دادن بر مبنای یک مثال بدتر است، تعمیم دادن بدون وجود حتی یک مثال است.
اگر مشکل کاملا درک نشده باشد، بهترین کار این است که هیچ جوابی داده نشود.
اگر می‌توانید ۹۰٪ خواسته‌ها را با ۱۰ درصد کار جواب دهید، از راه حل ساده‌تر استفاده کنید.
تا جایی که ممکن است، پیچیدگی را ایزوله کنید.
به جای خط مشی، مکانیزم ارائه دهید. به طور عام، خط مشی رابط کاربری را به کلاینتها بسپارید.
در طول توسعه ایکس.۱۱، قانون اول به این شکل تغییر کرد: "هیچ قابلیت جدیدی اضافه نکنید مگر اینکه برنامه‌ای واقعی را بشناسید که به آن نیاز داشته باشد."
پیدایش
اکس اولین‌بار در ایمیل معرفی شد