উইন্ডোজ থেকে লিনাক্সে সরানো: বোঝা - এক্স উইন্ডো সিস্টেম, এক্স সার্ভার, এক্সর্গ, এক্সফ্রি 86


10

আমি একটি উইন্ডোজ বিকাশকারী (Win32api) উইন্ডোজ থেকে লিনাক্সে চলে আসছি। লিনাক্স ইনস্টল করার সময় এক্স 11, এক্স উইন্ডো সিস্টেম, এক্স সার্ভার, এক্সর্গ, এক্সফ্রি 86 এবং কী নয় সে সম্পর্কে অনেক কিছু জানতে হবে।

উইন্ডোতে আমরা কীভাবে এ জাতীয় জিনিস সম্পর্কে সচেতন নই? এগুলি সম্পর্কে উইকি নিবন্ধ আমাকে ভয় দেখায়। কেউ কি এই বিষয়গুলি ব্যাখ্যা করতে পারেন? তারা কিভাবে কাজ? এটি লিনাক্স এবং উইন্ডোতে নয় কেন এত জটিল?

যে কোনও ভাল রেফারেন্স প্রশংসা করা হয়।

পিএস: আমি ইন্টার্নালগুলি জানতে পছন্দ করি, গভীরতায় যেতে দ্বিধা করবেন না।


1
পড়ার পর উত্তর এই প্রবন্ধে "থটস এবং অসংলগ্ন এক্স প্রোটোকল এ" পড়া julien.danjou.info/blog/...
থাবা

উত্তর:


13

উইন্ডোজ আপনাকে মাইক্রোসফ্ট দ্বারা সম্পন্ন একক এপিআই / ফ্রেমওয়ার্কের একক বাস্তবায়নের শীর্ষে একটি একক ডেস্কটপের একক বাস্তবায়ন দেয়।

ইউনিক্স সিস্টেমে আপনি একটি এপিআই / ফ্রেমওয়ার্ক (এক্স 11 / এক্স উইন্ডো সিস্টেম) পাবেন যার জন্য একাধিক বাস্তবায়ন (Xorg, Xfree86) বিদ্যমান রয়েছে যার উপরে আপনি বিভিন্ন "উচ্চ স্তরের" এপিআই / ফ্রেমওয়ার্ক (জিটিকে +, কিউটি, ...) পান ) কারণ কাঁচা এক্স 11 খুব আদিম, যার উপরে আপনি বিভিন্ন ডেস্কটপগুলি (জিনোম, কেডিএ, ...) পান যা সমস্ত বিভিন্ন লোকের দ্বারা সম্পন্ন হয়।

তদুপরি, এক্স 11 সিস্টেমটি গ্র্যান্ড আপ থেকে দূরবর্তী জিইআইআইগুলি মাথায় রেখে তৈরি করা হয়েছে - যেমন, একটি লোকাল মেশিন যা দূরবর্তীভাবে চলমান অ্যাপ্লিকেশনটির জিইউআই প্রদর্শন করে - যা "এক্স সার্ভার" এবং "এক্স ক্লায়েন্ট" এর ধারণাগুলি উপস্থাপন করে।

তারপরে একটি নামকরণ রয়েছে যা নতুনদের জন্য ভুল উপায়ে "অনুভব" করে: আপনার স্থানীয় মেশিনটি "এক্স সার্ভার" চালাচ্ছে "ডিসপ্লে একটি জিইউআই" পরিষেবা সরবরাহ করে, যখন রিমোট মেশিনটি "এক্স ক্লায়েন্ট" পরিষেবাগুলি ব্যবহার করে GUI প্রদর্শন করতে আপনার মেশিনে।

ভাল, এটি দ্রুত ওভারভিউ; আপনি যখন তা বাছাই করে ফেললেন, বিষয় সম্পর্কে কোনও নিবন্ধ / ফোরামের পোস্টগুলি বোঝা আরও সহজ হওয়া উচিত।

সম্পাদনা করুন: ওপির প্রথম দুটি মন্তব্যের জবাব দিতে।

হ্যাঁ, "X11" কেবলমাত্র একটি প্রোটোকল, এবং Xorg / XFree86 দুটি বাস্তবায়ন। এর প্রাথমিক স্তরে, এক্স 11 কেবলমাত্র লাইন এবং বিন্দুগুলি আঁকার বিষয়ে, যা আপনি জিইউআই করতে চাইলে মারাত্মকভাবে কার্যকর হয় না।

এক্স 11 প্রোটোকলের শীর্ষে, লোকেরা অনেকগুলি প্রয়োগ করে এবং উইন্ডোজের সাথে 1: 1 তুলনা করা বেশ কঠিন কারণ মাইক্রোসফ্ট কখনই বিষয়গুলিকে আলাদা রাখার জন্য মাথা ঘামায় না। এছাড়াও আমি কোনও জিইউআই-টাইপ বিকাশকারী নই, অর্থাত্ উভয় সিস্টেমের সাথে আমার আসল অভিজ্ঞতাটি ন্যূনতম।

নীচে, একটি "উইন্ডো ম্যানেজার" একটি উইন্ডো সরবরাহ করে (সীমানা পরিচালনা করে, সজ্জিত / ছোট / সর্বাধিক বোতামগুলি পুনরায় আকার দেয়, ইত্যাদি) এবং উইজেটের সরঞ্জামসেটটিতে উইন্ডোর মধ্যে "রিয়েল এস্টেট" সরবরাহ করে। অনেক উইন্ডো ম্যানেজার রয়েছে, কিছু অন্যান্য সিস্টেমের নকল করছে (উইন্ডোজ, ম্যাকস, অ্যামিগাওএস, যাই হোক না কেন) এবং এগুলি বেশিরভাগই বাকী সিস্টেমে স্বচ্ছ বিনিময়যোগ্য।

"উইজেট টুলসেট" আপনাকে বোতাম, স্লাইডার, পাঠ্য ক্ষেত্র ইত্যাদি সরবরাহ করে যার উপর আপনার জিইউআই তৈরি করতে হবে। আপনি (অ্যাপ্লিকেশন বিকাশকারী হিসাবে) আসলে এটিই এপিআই বুদ্ধিমানভাবে "দেখুন", এবং আপনার অ্যাপ্লিকেশনটির বেশিরভাগ "চেহারা এবং অনুভূতি" সিদ্ধান্ত নেয়।

একটি সামঞ্জস্যপূর্ণ চেহারা ও অনুভূতি সরবরাহ করার জন্য একটি "ডেস্কটপ" একটি নির্দিষ্ট উইজেট টুলসেট / উইন্ডো ম্যানেজার সংমিশ্রণের উপরে বেশ কয়েকটি অ্যাপ্লিকেশন তৈরি করে। আপনি যদি ডেস্কটপটি নিজেই বিকাশ করতে না চান তবে এগুলি নিয়ে আপনাকে বিরক্ত করার দরকার নেই।

ডেস্কটপ "জিনোম" উইন্ডো ম্যানেজার "মেটাসিটি" এর উপরে উইজেট টুলসেট "জিটিকে +" ব্যবহার করে।

ডেস্কটপ "কেডিএ" উইন্ডো ম্যানেজার "কেউইন" এর উপরে উইজেট টুলসেট "কিউটি" ব্যবহার করে।

উল্লেখ্য, বিশেষত এই দুটি, জিটিকে + এবং কিউটি সহজ "উইজেট টুলসেটগুলি" এর বাইরে "অ্যাপ্লিকেশন ডেভলপমেন্ট ফ্রেমওয়ার্কগুলিতে" বিকশিত হয়েছে। আপনি যদি লিনাক্সের জন্য জিইউআই অ্যাপ্লিকেশন বিকাশ করতে চান তবে কার্যকরভাবে আপনাকে এই দুটির মধ্যে কোনটি ব্যবহার করতে চান তা বেছে নিতে হবে। আরও বেশি পছন্দ রয়েছে, যদি আপনি আরও "লাইটওয়েট" অ্যাপ্লিকেশন চান (বড় লাইব্রেরি নির্ভরতার প্রয়োজন নেই) তবে বর্তমানে বেশিরভাগ সিস্টেমে ইতিমধ্যে যাইহোক GTK + এবং Qt libs ইনস্টল করা আছে।

কোনও কেএনপি ডেস্কটপে জিনোম ডেস্কটপ বা জিটিকে + অ্যাপ্লিকেশনগুলিতে কিউটি অ্যাপ্লিকেশন ব্যবহার করা পুরোপুরি সম্ভব (এটি সর্বদা এর মতো ছিল না), সুতরাং আপনাকে সামঞ্জস্যতা নিয়ে খুব চিন্তা করতে হবে না। তুলনামূলক কার্যকারিতার দুটি অ্যাপ্লিকেশনগুলির মধ্যে একটি পছন্দ দেওয়া হয়েছে, লোকেরা সাধারণত তাদের পছন্দের ডেস্কটপের "নেটিভ" উইজেটগুলি ব্যবহার করে অ্যাপ্লিকেশনটিকে পছন্দ করবে তবে আমি এটি নিয়ে চিন্তা করব না।

অন্যান্য, "উইজেট টুলসেট" -র পছন্দের আরও গুরুত্বপূর্ণ বুলেট পয়েন্ট: লাইসেন্সিং শর্তাদি, আপনার পছন্দের ভাষার সমর্থন, ক্রস-প্ল্যাটফর্মের সামঞ্জস্য।


স্ক্রিপ্টাম পোস্ট করুন : বেশ কয়েক বছর পরে ফিরে আসার পরে, আমি আমার নিজের কিছু জিইউআই প্রোগ্রামিং অভিজ্ঞতা গ্রহণ করেছি এবং বুঝতে পারছি উপরের ব্যাখ্যায় একটি জিনিস অনুপস্থিত যা আপনি "কোন পথে যাবেন" পরামর্শটি খুঁজছেন: ডাব্লু এক্সজেডস । এটি এমন একটি কাঠামো যা আপনি স্থানীয়ভাবে যা ব্যবহার করছেন তার উপরে তৈরি করে এবং পারফরম্যান্স ত্যাগ বা লাইসেন্সের স্ট্রিং সংযুক্ত না করে স্বচ্ছভাবে পোর্টেবল জিইউআই বিকাশের অনুমতি দেয় । সি ++ এপিআই। এটি আমার জিইউআই প্রয়োজনীয়তার জন্য আমি বেছে নিয়েছি এবং আমি অনুভব করেছি যে এটি সম্পূর্ণতার জন্য উল্লেখ করা উচিত


+1 এবং নোট করুন যে আপনি যদি কোনও কাঠামো বাছাই করে পরিচালনা করেন (উদাহরণস্বরূপ Qt) আপনার সমস্ত এক্স স্টাফ (কিছু যদিও) সম্পর্কে তেমন যত্ন নেওয়ার প্রয়োজন হবে না।
পিটার জারিক

উইন্ডোজ এপিআইয়ের +1 এবং সুতরাং জিইউআই অংশটি Qt & GTK + এর সমতুল্য। তাহলে উইন্ডোতে এক্স উইন্ডো সিস্টেমের সমতুল্য কী? কেন এবং কীভাবে কেডিএ এবং জিনোমের উপস্থিতি রয়েছে?
নখর

@ ডেভসোলার: আপনি সঠিক পথে আছেন। দয়া করে আরও কিছু বর্ণনামূলক হন be এক্স 11 কি পসিক্সের মতো স্পেসিফিকেশন? এবং xorg & xfree86 এর দুটি বাস্তবায়ন? যদি জিটিকে + এন্ড কিউটি থাকে তবে জিনোম ও কে-ডি-র প্রয়োজন কী ছিল? প্রতিটি পদক্ষেপ / স্তরটিকে উইন্ডোজের সাথে তুলনা করুন। আমার জন্য বুঝতে সহজ।
নখর

At the bottom, a "window manager"এক্স উইন্ডো সিস্টেমে উইন্ডো ম্যানেজার তৈরি? যদি তাই হয়, উইন্ডোজ সিস্টেম নীচে ডান হবে? আপনি আমাকে উইন্ডো ম্যানেজার এবং উইন্ডো সিস্টেমের সাথে বিভ্রান্ত করছেন।
নখর

"এক্স 11" / "এক্স উইন্ডো (সিস্টেম)", "এক্সর্গ" / "এক্সফ্রি 86" দ্বারা প্রয়োগ করা, একেবারে নীচে রয়েছে এবং বিন্দু এবং লাইন সরবরাহ করে। একটি "উইন্ডো ম্যানেজার" ("মেটাসিটি" / "কুইন") উইন্ডোজ (ফ্রেম, টেনে আনার, পুনরায় আকার দেওয়ার, সমাপনকরণ) সরবরাহ করে।
দেবসোলার

3

Http://en.wikedia.org/wiki/X_Window_S সিস্টেমে প্রদত্ত ব্যাখ্যাটি বুঝতে আপনি কেন এতটা কঠিন মনে করছেন তা আমি বুঝতে পারি না :

এক্স উইন্ডো সিস্টেমটিতে সাধারণত 2 টি অংশ থাকে:

  • একটি সার্ভার (XServer নামে পরিচিত)
  • ক্লায়েন্ট (বলা হয় .. এক্সক্লিয়েন্টস :))

সার্ভারটি হার্ডওয়্যার (গ্রাফিক কার্ড, ইনপুট ডিভাইস) এর সাথে সংযোগ স্থাপন করে এবং ক্লায়েন্টদের এই সংস্থানগুলি ব্যবহার করার অনুমতি দেয়। ক্লায়েন্টরা এক্সসার্ভারের সাথে সংযুক্ত হয় এবং সরবরাহিত সংস্থানগুলি ব্যবহার করে।

ইউনিক্সের জন্য সার্ভার রয়েছে (জর্গ, ম্যাক লোকেরা তাদের নিজস্ব আছে ইত্যাদি) এবং উইন্ডোজের জন্য (হামিংবার্ড, সাইর্গউইনের বন্দরের Xorg ইত্যাদি)।

আপনি অন্য ওএসে চলমান সার্ভারের সাথে একটি ওএসের ক্লায়েন্টকে সংযুক্ত করতে পারেন।

সার্ভার ও ক্লায়েন্ট মধ্যে যোগাযোগ পারেন মাধ্যমে সম্পন্ন করা হয় Xlib-এপিআই বা (আরো আধুনিক) xcb-এপিআই

একটি সাধারণ অ্যাপ্লিকেশন তৈরি করতে আপনি সাধারণত এটি করুন:

  • এক্সসার্ভারের সাথে সংযোগ করুন
  • উইন্ডো তৈরি করার জন্য জাস্টারভারকে অনুরোধ করুন (যা আপনাকে "হ্যান্ডেল" দেবে)
  • উইন্ডোটি আনতে জাস্টারভারকে বলুন
  • প্রক্রিয়া ইভেন্ট (মাউস, কীবোর্ড, এক্সপোজার, গতি ইত্যাদি)
  • উইন্ডোতে স্টাফ আঁকুন (পাঠ্য, গ্রাফিক্স ইত্যাদি)
  • এক্সসারভারকে সমস্ত সংস্থান ছেড়ে দেওয়ার কথা বলে অ্যাপটি বন্ধ করুন

এবং .. সম্পন্ন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.