অসাম (উইন্ডো ব্যবস্থাপক)

অসাম ("awesome") বা অসামডব্লিউএম ("awesomeWM") হল এক্স উইন্ডো সিস্টেমের জন্য একটি ডায়নামিক উইন্ডো ব্যবস্থাপক সফ্টওয়্যার। এটি সি এবং লুয়া প্রোগ্রামিং ভাষায় লেখা। সফ্টওয়্যারটির কনফিগারেশন এবং সম্প্রসারণের জন্য লুয়া ব্যবহৃত হয়। ২০০৭ সালের সেপ্টেম্বরে ডিডব্লিউএম এর একটি ফর্ক হিসেবে জুলিয়েন দাঞ্জু অসামের কাজ শুরু করেন। এর লক্ষ্য হচ্ছে সংক্ষিপ্ত আকারের এবং দ্রুতগতিসম্পন্ন হওয়া। এর পাশাপাশি এটি কিবোর্ড-নির্ভর ব্যবস্থাপনা সুবিধাকে সামনে রেখে তৈরি।
প্রথমদিকে সফ্টওয়্যার প্রকল্পটির নাম ছিল "জেডিডব্লিউএম" (jdwm), "জেডি" মূল প্রোগ্রামারের নামের আদ্যক্ষর,এবং "ডিডব্লিউএম" এর পূর্বসুরী প্রকল্পটির নাম ইঙ্গিত করে। জেডিডব্লিউএম-এর জন্য প্রথম গিট রিপজিটরি স্থাপন করা হয় ২০০৭ সালের ৫ সেপ্টেম্বর, এবং পাঁচ দিন পরেই দাঞ্জু প্রকল্পটির নাম হিসেবে "অসাম" বাছাই করেন। "হাউ আই মেট ইয়োর মাদার" টিভি সিরিজের বার্নি স্টিনসনের বহুলব্যবহৃত উক্তি থেকে নামটি এসেছে। ২০০৭ সালের ২০ সেপ্টেম্বর অসামডব্লিউএম আনুষ্ঠানিকভাবে উন্মুক্ত করা হয়।
দক্ষ কম্পিউটার ব্যবহারকারীরা দৈনন্দিন কাজে প্রায়ই প্রোগ্রামযোগ্য এবং সম্প্রসারণযোগ্য সফ্টওয়্যার ব্যবহার করেন। অসামের ডেভলপারের মতে, ওই রকম বৈশিষ্ট্যের উইন্ডো ব্যবস্থাপকের সংখ্যা অপ্রতুল, এবং এই ঘাটতি পূরণ করার জন্যই একটি প্রোগ্রামেবল, এক্সটেন্সিবল উইন্ডো ম্যানেজার প্রদান করাই অসাম প্রকল্পের লক্ষ্য। এই লক্ষ পূরণের জন্য অসাম একটি উইন্ডো ম্যানেজার কাঠামো (framework) হিসেবে লিখিত; আকারে ছোট, খুব দ্রুত, পরিবর্তনীয়, এবং লুয়া দ্বারা সম্পরসারণযোগ্য। উচ্চমাত্রায় কনফিগারেবল এবং সম্প্রসারণযোগ্য হলেও অসামের প্রাথমিক কনফিগারেশন খুবই সরলীকৃত; এর পেছনে ডেভলপারের উদ্দেশ্য ছিল প্রত্যেক ব্যবহারকারীকে নিজস্ব প্রয়োজনমত অসামকে স্বতন্ত্রভাবে সাজিয়ে নিতে উৎসাহী করা।
অসামের মৌলিক বৈশিষ্ট্যের মধ্যে রয়েছে:
একদম শুরু থেকেই অসাম প্রকল্পটি একটি স্বতন্ত্র কনফিগারেশন ফাইল দ্বারা বিশদভাবে নিয়ন্ত্রণযোগ্য করে লিখিত। অসামের ডেভলপার কনফিগারেশন ফাইল ফরম্যাট এবং কনফিগারেশন প্রক্রিয়ায় বিশেষ গুরুত্ব দিয়েছেন। অসামের ইতিহাসে এর কনফিগারেশন ব্যবস্থায় কয়েকবার গুরুতর পরিবর্তন করা হয়েছে।
৩.০ সংস্করণের আগে অসামের একটি বৈশিষ্ট্য ছিল এর সরল ব্যবস্থাপনা পদ্ধতি; দাঞ্জুর ভাষায়, ""no complicated configuration""। অসামের প্রথম সংস্করণগুলো (১.x) ছিল মূলত ডিডব্লিউএমের কোডের আংশিক পরিবর্তন, এবং লিবকনফিগ লাইব্রেরির সাহায্যে একটি সরল কনফিগারেশন ফাইল ব্যবহার করত। ২.x সংস্করণে লিবকনফিউজ লাইব্রেরির ব্যবহার শুরু হয়, তবে কনফিগারেশন ফাইল ফরম্যাটে কোন বড় পরিবর্তন ঘটেনি।
২০০৮ এর ২০ মে তারিখে অসাম মেইলিং লিস্টে জুলিয়েন দাঞ্জু ঘোষণা করেন যে আসন্ন ৩.০ সংস্করণ সম্পূর্ণ নতুন একটি কনফিগারেশন পদ্ধতি থাকবে। এই সংস্করণ থেকে লুয়া-ভিত্তিক কনফিগারেশনের প্রচলন হয়। প্রথমদিকে কনফিগারেশন ফাইলের অবস্থান codice_1 ছিল, এবং পরবর্তীতে এক্সডিজি আদর্শ অনুসারে codice_2 অবস্থানে নেয়া হয়। একটি প্রোগ্রামিং ভাষা নির্ভর ব্যবস্থাপনা পদ্ধতি যুক্ত করার ফলে অসামের কনফিগারেশনে পূর্বে অসম্ভব ছিল এমন কৌশল প্রয়োগ করা সম্ভব হয়, এবং ডায়নামিক ব্যবস্থাপনার সুযোগ তৈরি হয়।
অসাম প্রকল্পের ওয়েব নীড়পাতায় লুয়া এপিআইয়ের বিশদ বর্ণনা রয়েছে। এর পাশাপাশি কিছু টিউটোরিয়াল এবং অসামের সথে সরবরাহ করা প্রারম্ভিক কনফিগারেশন ফাইলটির বিস্তারিত ব্যাখ্যা সংযোজিত রয়েছে।
২০০৮ এর ১৮ সেপ্টেম্বর প্রকাশিত অসাম ৩.০ সংস্করণে এক্স সার্ভারের সঙ্গে যোগাযোগের জন্য এক্সসিবি ("X protocol C-language Binding", XCB) লাইব্রেরির ব্যবহার শুরু হয়। অসামই ছিল এক্সলিব (xlib) এর পরিবর্তে এক্সসিবি ব্যবহারকারী প্রথম উইন্ডো ব্যবস্থাপক। বর্তমান অসামের প্রধান ডেভলপারদের একজন, আর্নো ফন্টেইন, এক্সসিবি সমর্থনের কোড রচনা করেন। এক্সসিবি সমর্থনের কারণ হিসেবে তিনি এর কিছু গুরুত্বপূর্ণ সুবিধা তুলে ধরেছিলেন: "মডুলার কাঠামো; যোগাযোগ প্রটোকলে সরাসরি প্রবেশ্যতা; মাল্টিথ্রেডিং; সমসাময়িক ("asynchronous") বার্তা আদানপ্রদান"।
প্রাক-৩.০ সংস্করণের কনফিগারেশন ব্যবস্থায় নানাবিধ সংকীর্ণতা দেখা যায়, যার ফলস্বরূপ অসামের কোড রচয়িতা লুয়া-ভিত্তিক ব্যবস্থাপনা প্রণালী অসামে যুক্ত করেন। লুয়া দিয়ে স্ক্রিপ্টিং যোগ্য প্রথম প্রার্থী সংস্করণ (release candidate 1) ২০০৮ এর আগস্টে প্রকাশিত হয়। ওই বছরের সেপ্টেম্বরে সম্পূর্ণ লুয়া এপিআইসম্পন্ন এবং এক্সসিবি সমর্থিত প্রথম আনুষ্ঠানিক সংস্করণ উন্মুক্ত করা হয়।
লুয়া এপিআই যুক্ত করার ফলে অসামের কনফিগারেশন সম্পূ্র্ণ প্রোগ্রামযোগ্য হয়ে উঠেছে। এর লুয়া কনফিগারেশন ফাইলটি কার্যত একটি পরিপূর্ণ লুয়া প্রোগ্রাম হিসেবে কাজ করে।
অসামে এপিআইয়ের Beautiful নামক লাইব্রেরির সাহায্যে বৈচিত্র্যময় থিম এবং স্কিন তৈরি করা যায়। লুয়া এপিআই দ্বারা লিখিত বলে কনফিগারেশনের মত অসামের থিমসমূহও সম্পূর্ণ প্রোগ্রামযোগ্য।
এছাড়া অসামে উইজেট সুবিধাও রয়েছে (থিমের দৃশ্যমান কিছু গ্রাফিক উপাদান এবং সংশ্লিষ্ট কোডের সমন্বিত কাঠামো), যার মাধ্যমে ব্যবহারকারীরা প্রয়োজনমাফিক স্বতন্ত্র গ্রাফিকাল বৈশিষ্ট্য যোগ করতে পারেন, যেমন ওয়াইফাই নির্দেশক, ব্যাটারি নির্দেশক, প্রিয় অ্যাপ্লিকেশন তালিকা, ইত্যাদি। উইজেটসমূহও লুয়া ভাষায় লিখিত হয়।
প্রকৃতপক্ষে অসামের কনফিগারেশন, থিম এবং উইজেটসমূহ অসামের লুয়া এপিআইয়ের মধ্য দিয়ে একই স্তরের লুয়া প্রোগ্রাম হিসেবে চালিত হয়।
প্রচুর ইউনিক্স-সদৃশ অপারেটিং সিস্টেমের জন্য অসাম উপলদ্ধ, যেমন আর্চ লিনাক্স, ডেবিয়ান, ফেদোরা লিনাক্স, জেন্টু লিনাক্স, উবুন্তু, সোর্স মেজ গ্নু/লিনাক্স, ওপেনসুয্যে, ম্যাজেয়া, নিক্সওএস, ফ্রিবিএসডি, নেটবিএসডি এবং ওপেনবিএসডি।
অসামের ১.০ থেকে ১.৩ সংস্করণের কোন বিশেষ নাম ছিল না, তবে ২.০ সংস্করণ (নভেম্বর ২০০৭) থেকে প্রতিটি সংস্করণে নির্দিষ্ট নাম প্রদান করা হচ্ছে। এযাবত সবগুলো নাম সঙ্গীত সম্পর্কীয়। ২.০ সংস্করণের নাম ছিল "Bumping Toaster"। ৪র্থ সংস্করণে ড্যাফ্ট পাঙ্কের গানের নাম ব্যবহার করা হচ্ছে, যেমন সর্বশেষ ৪.৩ সংস্করণের নাম "Too long"।