সমস্ত ম্যাক অ্যাপ্লিকেশনগুলি লিনাক্সে সহজে পোর্টেবল হয় না কেন?


15

যেহেতু অ্যাপল ওএস-এক্স অপারেটিং সিস্টেমটি ইউনিক্স ডেরিভেটিভ (বিএসডি), এবং অন্তর্নিহিত (ইন্টেল) ম্যাক আর্কিটেকচার একই, তাই লিনাক্সে অ্যাপল-নির্দিষ্ট অ্যাপ্লিকেশনগুলি চালানো কেন খুব সরল নয়?

উত্তর:


23

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

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

সম্পাদনা (উত্তরে মন্তব্যগুলি সংযুক্ত করতে - ধন্যবাদ @ নিক, @ কেবিবিসেট এবং @ জন):
একটি সমাধান হ'ল পুরো ওএস এক্স গ্রাফিক্যাল শেলটি (বদ্ধ উত্স কোকো / কোর লাইব্রেরিগুলি - যা ওএস এক্সকে সত্যই অনন্য করে তোলে) ) লিনাক্স থেকে। এবং প্রযুক্তিগতভাবে, অ্যাপল এটি বেশ সহজ করতে পারে, তবে তাদের কোনও কারণ নেই কারণ তাদের পুরো ব্যবসায়ের মডেলটি তাদের পুরো প্ল্যাটফর্ম - হার্ডওয়্যার এবং সফ্টওয়্যারটির স্বতন্ত্রতা।
এটি সংবিধানযোগ্য যে কেউ লাইব্রেরিগুলি ক্লোন করার চেষ্টা করতে পারে, তবে এটি করতে মানব-দশক সময় লাগবে, এবং সম্ভবত সমস্ত অনিবন্ধিত কলগুলির কারণে কখনও সঠিক হবে না যা পুনরায় প্রতিলিপি করতে হবে।


মালিকানাধীন গ্রাফিকাল শেলটি বিএসডি চলমান থাকলে লিনাক্সে তুলনামূলকভাবে সহজে পোর্ট করা যায় না কেন? অন্তর্নিহিত আর্কিটেকচারটি পৃথক হলে আমি বিষয়টি বুঝতে পেরেছিলাম, তবে এখন অন্তর্নিহিত আর্কিটেকচারটি কেবলমাত্র ইন্টেল হয় তবে গ্রাফিকাল শেলটি কেন কেবল আরও একটি গ্রন্থাগার নয়?
নিক পিয়েরপয়েন্ট

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

1
সুতরাং ... অ্যাপলের পক্ষে অন্ততপক্ষে কোনও প্রযুক্তিগত সমস্যা নেই - তারা ইউনিক্সে ইতিমধ্যে চালিত হওয়ায় তারা অপেক্ষাকৃত সহজেই লিনাক্সে চালাতে ওএস-এক্স স্থানান্তর করতে পারে। স্পষ্টতই কোড বন্ধ উত্স হওয়ায় সকলের জন্যই বড় চুক্তি এবং কোনও সম্পূর্ণ প্রকাশিত এপিআই নেই। এটি কি ন্যায্য সংক্ষিপ্তসার?
নিক পিয়েরপয়েন্ট

3
নিক: মূলত, হ্যাঁ ওএসএক্সকে লিনাক্স প্ল্যাটফর্মে নিয়ে যাওয়ার বিষয়ে অ্যাপলের কোনও আগ্রহ নেই ; তারা যখন তাদের ওপেন সোর্স ডারউইন প্ল্যাটফর্মে (বিএসডি স্তর) এবং তাদের বদ্ধ উত্স কোকো / কোর * লাইব্রেরিতে (যা ওএসএক্সকে সত্যই অনন্য করে তোলে) কেন এত বেশি বিনিয়োগ করেছে? তাদের পুরো ব্যবসায়ের মডেল হ'ল তাদের সম্পূর্ণ প্ল্যাটফর্মের বৈশিষ্ট্য - হার্ডওয়্যার এবং সফ্টওয়্যার। এটি সংবিধানযোগ্য যে কেউ লাইব্রেরিগুলি ক্লোন করার চেষ্টা করতে পারে, তবে এটি করতে মানব-দশক সময় লাগবে, এবং সম্ভবত সমস্ত অনিবন্ধিত কলগুলির কারণে কখনও সঠিক হবে না যা পুনরায় প্রতিলিপি করতে হবে। আর কি শেষ?
জন রুডি

4
জিএনইএসটিপ হ'ল ওএস এক্সে থাকা মূল লাইব্রেরির অনেকগুলি একটি ওপেন সোর্স বাস্তবায়ন, তবে অ্যাপল এর পরে অনেকগুলি যুক্ত করেছে তাই পোর্টিং করা এখনও এত সহজ নয়: উইকি.গনসটপ.আর
টিআরএস

2

অ্যাপল-নির্দিষ্ট অ্যাপ্লিকেশন দ্বারা আপনি জিইউআই অ্যাপ্লিকেশন বোঝাতে চান? একবার আপনি কমান্ড লাইনের উপরে চলে গেলে লিনাক্সে সমর্থিত নয় এমন সমস্ত কিছুর (গ্রাফিক্স, শব্দ ইত্যাদি) জন্য অ্যাপল নির্দিষ্ট এপিআই থাকে তাই আপনি সহজেই অ্যাপ্লিকেশনগুলি পোর্ট করতে পারবেন না।


1

গ্রাফিকাল স্তর মোটেও এক রকম নয়। ওএস এক্স একটি মালিকানাধীন গ্রাফিকাল কাঠামো ব্যবহার করে, লিনাক্স এক্স ব্যবহার করে (X11 / X.org)

প্রায় সমস্ত নেটিভ ওএস এক্স অ্যাপ্লিকেশনগুলি কোকো, কোরএ্যানিমেশন এবং এর মতো ফ্রেমওয়ার্কগুলি ব্যবহার করে, যা কেবল ওএস এক্সে উপলভ্য are

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

আপনি যদি নিজের অ্যাপ্লিকেশনটি জিটিকে, কিউটি বা ডাব্লু এক্সজেডের মতো ক্রস-প্ল্যাটফর্মের জিইউআই লাইব্রেরি ব্যবহার করে লিখেন এবং পোর্টিং অনেক সহজ হবে (বা, "সম্ভব") - তবে অপারেটিং সিস্টেমগুলি এখনও ইউআই এর শর্তে খুব আলাদা (উদাহরণস্বরূপ, ওএস) এক্স পৃথক মেনু বার ব্যবহার করে, যেখানে লিনাক্স প্রতিটি উইন্ডোর জন্য মেনু বার রাখে)

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

কোকোট্রন নামে একটি প্রকল্প রয়েছে যার লক্ষ্য "অ্যাপল ইনক। এর কোকো ডকুমেন্টেশন দ্বারা বর্ণিত অনুরূপ ক্রস-প্ল্যাটফর্ম অবজেক্টিভ-সি এপিআই বাস্তবায়ন করা" যা সম্ভাব্যভাবে পোর্টিংকে আরও সহজ করে তুলবে, তবে মনে হচ্ছে দেরীর খুব কম কার্যকলাপ রয়েছে seems (সর্বশেষ ব্লগ-পোস্টটি ২০০৮ সালের ডিসেম্বরে ছিল)


1

কারণ বেশিরভাগ অ্যাপ্লিকেশনগুলি মেশিনটিতে চালিত প্রসেসর এবং অন্তর্নিহিত আর্কিটেকচারের চেয়ে অনেক বেশি নির্ভর করে। এগুলি ব্যবহারকারীর ইন্টারফেস টুলকিট এবং অন্যান্য প্ল্যাটফর্ম-নির্দিষ্ট গ্রন্থাগারগুলির উপর নির্ভর করে।

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