যেহেতু অ্যাপল ওএস-এক্স অপারেটিং সিস্টেমটি ইউনিক্স ডেরিভেটিভ (বিএসডি), এবং অন্তর্নিহিত (ইন্টেল) ম্যাক আর্কিটেকচার একই, তাই লিনাক্সে অ্যাপল-নির্দিষ্ট অ্যাপ্লিকেশনগুলি চালানো কেন খুব সরল নয়?
যেহেতু অ্যাপল ওএস-এক্স অপারেটিং সিস্টেমটি ইউনিক্স ডেরিভেটিভ (বিএসডি), এবং অন্তর্নিহিত (ইন্টেল) ম্যাক আর্কিটেকচার একই, তাই লিনাক্সে অ্যাপল-নির্দিষ্ট অ্যাপ্লিকেশনগুলি চালানো কেন খুব সরল নয়?
উত্তর:
ওএস এক্স আসলে (বেশিরভাগ) বিএসডি শীর্ষে মালিকানাধীন গ্রাফিকাল শেল। একটি ওএস এক্স জিইউআই অ্যাপ্লিকেশন তৈরি করতে, অ্যাপলটিকে প্রকাশিত এপিআই অনুসরণ করতে হবে, এবং এটি ক্রস প্ল্যাটফর্ম নয় এবং সহজে বহনযোগ্য নয়।
এটা কেন অধিকাংশ লাইব্রেরি এর হয় সহজে লিনাক্স বৈশিষ্ট্যসমূহ নিয়ে আসা (আসলে সবচেয়ে লিনাক্স বিকশিত হয়) কিন্তু না তাদের গ্রাফিকাল শেল।
পাশের নোটে: সেখানে ফ্রেমওয়ার্ক রয়েছে যা দিয়ে আপনি ক্রস প্ল্যাটফর্ম জিইউআই অ্যাপ্লিকেশন তৈরি করতে পারেন। কিউটি মনে আসে। তবে এই ফ্রেমওয়ার্কগুলি ক্রস প্ল্যাটফর্ম হ'ল এগুলি তৈরি করা অ্যাপ্লিকেশনগুলি একটি "স্থানীয়" জিইউআই অ্যাপ্লিকেশনটির চেয়ে নির্দিষ্ট প্ল্যাটফর্মে কম ব্যবহারকারী বান্ধব করে তোলে। এই ফ্রেমওয়ার্কগুলি প্ল্যাটফর্মগুলিতে সমস্ত কিছুকে জেনারিক করে তোলে, যা অ্যাপলের ক্ষেত্রে খারাপ, কারণ অ্যাপল একটি খুব নির্দিষ্ট ব্যবহারকারীর অভিজ্ঞতা তৈরি করেছে যা সহজেই অন্যান্য প্ল্যাটফর্মগুলিতে "ফিট করে না"।
সম্পাদনা (উত্তরে মন্তব্যগুলি সংযুক্ত করতে - ধন্যবাদ @ নিক, @ কেবিবিসেট এবং @ জন):
একটি সমাধান হ'ল পুরো ওএস এক্স গ্রাফিক্যাল শেলটি (বদ্ধ উত্স কোকো / কোর লাইব্রেরিগুলি - যা ওএস এক্সকে সত্যই অনন্য করে তোলে) ) লিনাক্স থেকে। এবং প্রযুক্তিগতভাবে, অ্যাপল এটি বেশ সহজ করতে পারে, তবে তাদের কোনও কারণ নেই কারণ তাদের পুরো ব্যবসায়ের মডেলটি তাদের পুরো প্ল্যাটফর্ম - হার্ডওয়্যার এবং সফ্টওয়্যারটির স্বতন্ত্রতা।
এটি সংবিধানযোগ্য যে কেউ লাইব্রেরিগুলি ক্লোন করার চেষ্টা করতে পারে, তবে এটি করতে মানব-দশক সময় লাগবে, এবং সম্ভবত সমস্ত অনিবন্ধিত কলগুলির কারণে কখনও সঠিক হবে না যা পুনরায় প্রতিলিপি করতে হবে।
গ্রাফিকাল স্তর মোটেও এক রকম নয়। ওএস এক্স একটি মালিকানাধীন গ্রাফিকাল কাঠামো ব্যবহার করে, লিনাক্স এক্স ব্যবহার করে (X11 / X.org)
প্রায় সমস্ত নেটিভ ওএস এক্স অ্যাপ্লিকেশনগুলি কোকো, কোরএ্যানিমেশন এবং এর মতো ফ্রেমওয়ার্কগুলি ব্যবহার করে, যা কেবল ওএস এক্সে উপলভ্য are
উদাহরণস্বরূপ, বলুন আপনার কাছে এমন একটি অ্যাপ্লিকেশন রয়েছে যা ব্যবহারকারীর জন্য একটি পাসওয়ার্ড সঞ্চয় করে - ওএস এক্সে, এটি এর কীচেইন সিস্টেম এবং প্রাসঙ্গিক এপিআইগুলি ব্যবহার করবে। আপনি যদি এটি লিনাক্সে বন্দরে রাখেন তবে কোনও সরাসরি সমতুল্য নেই, তাই আপনাকে এই পুরো বৈশিষ্ট্যটি পুনরায় চাপিয়ে দিতে হবে। এটি একটি ক্ষুদ্র বৈশিষ্ট্য, এবং এটি একটি বৃহত পুনর্লিখন প্রয়োজন।
আপনি যদি নিজের অ্যাপ্লিকেশনটি জিটিকে, কিউটি বা ডাব্লু এক্সজেডের মতো ক্রস-প্ল্যাটফর্মের জিইউআই লাইব্রেরি ব্যবহার করে লিখেন এবং পোর্টিং অনেক সহজ হবে (বা, "সম্ভব") - তবে অপারেটিং সিস্টেমগুলি এখনও ইউআই এর শর্তে খুব আলাদা (উদাহরণস্বরূপ, ওএস) এক্স পৃথক মেনু বার ব্যবহার করে, যেখানে লিনাক্স প্রতিটি উইন্ডোর জন্য মেনু বার রাখে)
আমি দেখেছি এমন সেরা ক্রস-প্ল্যাটফর্ম পোর্টগুলির মধ্যে একটি হ'ল ট্রান্সমিশন , যা একটি লাইব্রেরি হিসাবে এটির মূল কার্যকারিতা কার্যকর করে (এতে যতটা সম্ভব প্ল্যাটফর্ম-নির্দিষ্ট কোড থাকে) এবং তারপরে পৃথকভাবে প্রতিটি প্ল্যাটফর্মের জন্য স্থানীয় জিইউআই তৈরি করা হয়। এর অর্থ প্রতিটি বন্দরটিতে প্রচুর কোড ভাগ হয় তবে সবার মধ্যে ভাল, নেটিভ ইন্টারফেস থাকে (লিনাক্সে ভালভাবে ফিট হওয়া একটি একক ইন্টারফেসের চেয়ে বরং ওএস এক্সে বা এর বিপরীতে থাকে)
কোকোট্রন নামে একটি প্রকল্প রয়েছে যার লক্ষ্য "অ্যাপল ইনক। এর কোকো ডকুমেন্টেশন দ্বারা বর্ণিত অনুরূপ ক্রস-প্ল্যাটফর্ম অবজেক্টিভ-সি এপিআই বাস্তবায়ন করা" যা সম্ভাব্যভাবে পোর্টিংকে আরও সহজ করে তুলবে, তবে মনে হচ্ছে দেরীর খুব কম কার্যকলাপ রয়েছে seems (সর্বশেষ ব্লগ-পোস্টটি ২০০৮ সালের ডিসেম্বরে ছিল)
কারণ বেশিরভাগ অ্যাপ্লিকেশনগুলি মেশিনটিতে চালিত প্রসেসর এবং অন্তর্নিহিত আর্কিটেকচারের চেয়ে অনেক বেশি নির্ভর করে। এগুলি ব্যবহারকারীর ইন্টারফেস টুলকিট এবং অন্যান্য প্ল্যাটফর্ম-নির্দিষ্ট গ্রন্থাগারগুলির উপর নির্ভর করে।