প্রোগ্রামগুলি সংকলিত বিন্যাসে বিতরণ করা হয় না কেন?


32

তারা যেমন নির্দেশ দেয়

cd downloaded_program
./configure
make install

এটি প্রয়োজনীয় ELF তৈরি করে এবং সম্ভবত কিছু .so ফাইল।

উইন্ডোজ অ্যাপ্লিকেশনগুলির মতো ডাউনলোডের জন্য একটি জিপ ফাইলের মধ্যে সেগুলি রাখেন না কেন? ব্যবহারকারীদের দ্বারা তাদের সংকলন করার কোনও কারণ আছে কি?


18
সোর্স কোডটি এভাবেই বিতরণ করা হয়। আপনি এটি উবুন্টু দিয়ে ট্যাগ করেছেন - আপনি কি aptজিনিস চেষ্টা করেছেন ?
মাইকজার্ভ

11
উবুন্টু: 40,000 সবচেয়ে সাধারণ প্রোগ্রাম: $ sudo apt-get install [name]। আরও বিরল সফ্টওয়্যার: কিছু অবশ্যই উত্স থেকে তৈরি করা উচিত ma cmake .. && Make, ./configure && Make, waf, scons ইত্যাদি ~ 10 বিল্ড অপশন}}
নড লারসেন

6
আপনার কাছে তিনটি উইন্ডোজ © সংস্করণ এবং ~ 100 "লিনাক্স ওএস" সংস্করণ রয়েছে। (40,000) সর্বাধিক সাধারণ প্রোগ্রামের চেয়ে বেশি রক্ষণাবেক্ষণ এবং সঞ্চয় করা অসম্ভব।
নড লারসেন

35
এই প্রশ্নটি ঠিক ভুল। সবচেয়ে সফ্টওয়্যার বাইনারি বিন্যাসে বিতরণ করা হয়, সাধারণত .rpmবা .debবা .tgzপ্যাকেজ। উত্সটি তাদের জন্য বিতরণ করা হয়েছে যারা এটি নিজেরাই সংকলন করতে চান বা এটি পরীক্ষা করতে বা এটি সংশোধন করতে চান, বা এটি এক বা একাধিক ডিস্ট্রোজের জন্য প্যাকেজ করতে চান। কেউ .zipলিনাক্সে বাইনারি বিতরণের জন্য ব্যবহার করে না কারণ .zip ফাইলগুলি প্রয়োজনীয় ফাইল যেমন ব্যবহারকারী, গোষ্ঠী এবং তাদের থাকা ফাইলগুলির জন্য অনুমতিগুলি সমর্থন করে না।
ক্যাস

2
আমি চালাতে চেয়েছি এমন কোনও লিনাক্স প্রোগ্রাম সংকলন করার দরকার নেই। এক্সিকিউটেবলগুলি সর্বদা পাওয়া যায় ... এখনও অবধি।
ব্যবহারকারী 2338816

উত্তর:


34

আসুন কারণগুলি বিশ্লেষণ করুন ...

বিশ্লেষণ :

প্ল্যাটফর্মের সাথে অন্তর্ভুক্তিগুলি : এমন পরিবেশে এমন কিছু সমস্যা দেখা দেয় যেখানে বিকাশকারীরা কোনও অ্যাপ্লিকেশনের বেশ কয়েকটি আর্কিটেকচার-নির্দিষ্ট ভেরিয়েন্ট তৈরি এবং বজায় রাখছেন:

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

  • বিভিন্ন রূপের জন্য বিভিন্ন বিল্ড পদ্ধতি প্রয়োজন - বিভিন্ন প্ল্যাটফর্মের বিল্ড পদ্ধতি পৃথক হয় vary পার্থক্যগুলির মধ্যে সংকলক অবস্থান, সংকলক বিকল্প এবং লাইব্রেরির মতো বিবরণ জড়িত থাকতে পারে।

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

  • প্রতিটি অপারেটিং সিস্টেমের নিজস্ব লিঙ্কিং ম্যানেজমেন্ট স্কিম থাকে এবং এটি প্রয়োজন মতো ইএলএফ (এক্সিকিউটেবল এবং লিঙ্কিং ফর্ম্যাট) ফাইল প্রস্তুত করে।

  • সংকলকটি এমন একটি বিল্ড উত্পন্ন করবে যা নির্দেশাবলীর অনুক্রম এবং পৃথক আর্কিটেকচারের অর্থ ভিন্ন নির্দেশিকা সেট ( নির্দেশ সেট আর্কিটেকচারের তুলনা )। সুতরাং, কম্পাইলারের আউটপুট প্রতিটি আর্কিটেকচারের জন্য পৃথক (উদাহরণ: x86, x86-64, এআরএম, এআরএম 64, আইবিএম পাওয়ার আইএসএ, পাওয়ারপিসি, মটোরোলার 6800, এমওএস টি 6502, এবং আরও অনেকগুলি )

সুরক্ষা :

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

মার্কেট : এই বিভাগে অনেকগুলি কারণ রয়েছে, তবে আমি এটি আবার চালু করার চেষ্টা করব:

  • প্রতিটি সংস্থার লক্ষ্য সমস্ত প্ল্যাটফর্মে পৌঁছানোর লক্ষ্য নয়, এটি বাজার এবং প্ল্যাটফর্মগুলির জনপ্রিয়তা এবং তারা কী বিক্রি করতে চায় তার উপর নির্ভর করে।

  • ফ্রি সফ্টওয়্যারটিতে সফটওয়্যারটি যথাসম্ভব বিস্তৃতভাবে উপলব্ধ করার চেতনা রয়েছে তবে এটি বোঝায় না যে সফটওয়্যারটি প্রতিটি প্ল্যাটফর্মের জন্য ডিজাইন করা হয়েছে, এটি সেই সম্প্রদায়ের উপর নির্ভর করে যারা এটি সমর্থন করে।

উপসংহার :

প্রতিটি সফটওয়্যার প্রতিটি প্ল্যাটফর্মের জন্য ডিজাইন করা হয় না। সমস্ত আর্কিটেকচার এবং প্ল্যাটফর্মের জন্য বাইনারি সরবরাহ করা এটি সংকলন, এটি পরীক্ষা করে এবং এটি সমস্ত প্ল্যাটফর্মের জন্য বজায় রাখার জন্য বোঝায়। এটি আরও বেশি কাজ যা মাঝে মাঝে খুব ব্যয়বহুল হয় এবং ব্যবহারকারী যদি এটি নিজের প্ল্যাটফর্মে সংকলন করে তবে এড়ানো যায়। এছাড়াও, ব্যবহারকারী কী চালাচ্ছেন সে সম্পর্কে সচেতন হবে।


1
আমি মনে করি প্রসেসরের মডেল পার্থক্য সম্পর্কে কিছুটা আরও স্পষ্ট করে এই উত্তরটি উন্নত হবে - এবং কীভাবে years 10 বছর আগে, প্রতিটি ইউনিক্স রূপটি মূলত নিজস্ব ছিল। লিনাক্স আজকের মতো বিস্তৃত প্রভাব ছিল না।
সোব্রিক

@ সোব্রিক: বা এমনকি প্রতি সেমি প্রসেসরের মডেল পার্থক্যের কথা উল্লেখ করুন - 10 বছর আগে আমাদের আজকের 2 ধরণের চেয়ে বেশি ব্যবহার হত এবং লিনাক্স প্রায় সবগুলিতে চলেছিল (আমি নিজেই পাওয়ারপিসিতে লিনাক্স চালিয়েছিলাম)। এটি আজও x86, এএমডি 64 (অন্যথায় x86-64 নামে পরিচিত) এবং আর্মের সাথে আংশিকভাবে প্রাসঙ্গিক। এমআইপিএস আজও এমন লোকদের মধ্যে বেশ জনপ্রিয় যারা তাদের নিজস্ব চিপ তৈরি করতে পারে কারণ এটি এতক্ষণে সম্পূর্ণ পেটেন্ট মুক্ত।
slebetman

দেরি করার জন্য দুঃখিত! দুজন কেই ধন্যবাদ! আমি সিপিইউ আর্কিটেকচারে কিছু উল্লেখ যুক্ত করেছি, আমি একটি তুলনা তালিকার একটি লিঙ্কও যুক্ত করেছি। আমি উত্তরটি এত বড় হতে চাই না। তবে হ্যাঁ, এটি খুব প্রাসঙ্গিক!
Facundo ভিক্টর

1
সুরক্ষা মন্তব্যটি বোঝায় যে পাঠক / ইনস্টলারটি কোডটি কীভাবে পড়তে এবং বুঝতে হয় তা জানে। শেলশকের দুর্বলতা কয়েক দশক ধরেও লক্ষ্য না করে বেঁচে গিয়েছিল আমি শ্রদ্ধার সাথে সেটিকে কিছুটা ভ্রান্ত বিশ্বাস বলে পরামর্শ দেব। এটি জ্ঞাত এবং যোগ্য কোডারদের কোড হ্যাঁ মূল্যায়ন করার অনুমতি দেয় না তবে এটি বিজ্ঞাপন হিসাবে কোনও সত্যিকারের সুরক্ষা প্রতিরোধকারী নয়। এটি আসলে বিপরীত প্রভাব থাকতে পারে। রাষ্ট্রীয় ও সংগঠিত অপরাধের অর্থায়িত হ্যাকাররা পরবর্তী শেল শক খোলার আশায় আজকাল ওপেন সোর্স লাইব্রেরি / প্রকল্পগুলির সমস্ত ম্যানর জন্য সম্ভবত কোড অবদান রাখছে ...
টেকম্যাগ

তুমি ঠিক! আমি প্রতিবিম্বিত করার জন্য উত্তরটি পরিবর্তন করেছি। আমি উত্তরের মূল লক্ষ্যটির দিকে ফোকাসটি হারাতে চেষ্টা করেছি। ধন্যবাদ টেকম্যাগ!
ফেসুন্ডো ভিক্টর

10

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

উত্স কোড হিসাবে সফ্টওয়্যার বিতরণ করাও স্বাধীন যাচাইয়ের অনুমতি দেয় যে সফ্টওয়্যার এটির পরিবর্তে বা পাশাপাশি কিছু বাজে কিছু করার দাবি করে এবং যা করে না - এটি স্রষ্টায় বিশ্বাসীর স্তরকে হ্রাস করা সত্ত্বেও বাস্তবে এটি বাড়ায়!


8

প্রথমত, আপনার প্রশ্নটি ত্রুটিযুক্ত ভিত্তিতে তৈরি। প্রোগ্রাম হয় কম্পাইল বিন্যাসে বিতরণ!

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

ডিফল্টরূপে, প্যাকেজ পরিচালক আপনাকে বিতরণ রক্ষণাবেক্ষণকারীদের দ্বারা তৈরি প্যাকেজ সরবরাহ করে। আপনি প্যাকেজগুলির তৃতীয় পক্ষের উত্সগুলিও খুঁজে পেতে পারেন; তৃতীয় পক্ষের প্যাকেজ সরবরাহ করার জন্য উবুন্টু পিপিএ সরবরাহ করে standard

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

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


5

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

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

একইভাবে, যদি আমি কোনও কাস্টম লিনাক্স সংস্করণ তৈরি করার সিদ্ধান্ত নিয়েছি যা বিভিন্ন বিঘ্ন, লঙ্কার ইত্যাদি ব্যবহার করে, তবে কোডটি সংকলনের জন্য আমার এখনও উত্স কোডের প্রয়োজন। উত্স কোডে প্ল্যাটফর্ম-নির্দিষ্ট বিল্ড নির্দেশনা না থাকলেও প্রতিটি প্ল্যাটফর্ম আলাদা এবং ভিন্ন সিস্টেম থেকে কোনও ইএলএফ না চালাতে পারে।


ঠিক এই কারণেই আপনি সম্ভবত "64 বিট" উইন্ডোজ ওএসে অন্যান্য প্রোগ্রামের মতো 32 বিট ফায়ারফক্স চালিয়ে যাচ্ছেন যেখানে 64 বিট লিনাক্স সাধারণত একটি 64 বিট অ্যাপ্লিকেশন চালায়।
এমচিড

5

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

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

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

বাইনারি-কেবল আকারে বিতরণ করা সফটওয়্যারটির জন্য দীর্ঘমেয়াদী স্থিতিশীল প্ল্যাটফর্ম অর্জন (প্রদত্ত লিনাক্স বিতরণের বাইরে) লিনাক্স সম্প্রদায়ের কিছু উপাদান এমনকি অযাচিত হিসাবে বিবেচিত হবে। উভয় প্ল্যাটফর্মের অপ্রয়োজনীয় ব্যবহারকারী হিসাবে, আমি এটি বলছি না যে ভাল বা খারাপ; এটা যেমন এটি হয়।


4

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

উইন্ডোতে বিবেচনা করুন, বাইনারিগুলি সফ্টওয়্যার ভাগ করে নেওয়ার জন্য সবচেয়ে সুবিধাজনক এবং পোর্টেবল ফর্ম। যেহেতু সংকলন উৎস স্বাভাবিক উইন্ডোস সফ্টওয়্যার বন্টন মডেল অংশ নয়, মাইক্রোসফট বছরের পর বছর ধরে দুর্দান্ত লেন্থ চলে গেছে তার OS- এর একাধিক সংস্করণ জুড়ে বাইনেরিতে কাজ নিশ্চিত করার: http://www.joelonsoftware.com/articles/APIWar.html


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

আপনি যদি উইন্ডোজ / এক্স 86 তৈরি করেন তবে আপনি বাইনারি সামঞ্জস্যের 95% coverেকে রাখবেন। বেশ ভালো. লিনাক্স / এক্স ৮86 আরও সাধারণ হয়ে উঠছে, আমরা এমন এক বিশ্ব থেকে এসেছি যেখানে আপনার নিজস্ব বিশেষ প্রসেসরের আর্কিটেকচার এবং ইউনিক্স বৈকল্পিক সহ বিভিন্ন বড় নাম ছিল - এটি বাইনারি সামঞ্জস্যপূর্ণ ছিল না।
সোব্রিক

@ সোব্রাইক আপনি কোথা থেকে এই 95% চিত্রটি পেয়েছেন? গতবার আমি দেখেছি প্রতি 1 x86 এর জন্য 4 টি এআরএম সিপিইউ ছিল। এটি কয়েক বছর আগে, সবার আগে এআরএম প্রসেসরের সাথে স্মার্ট ফোন ব্যবহার শুরু হয়েছিল। সুতরাং যদি আমরা ধরে নিই যে এমন কোনও প্রসেসর নেই যা 20%।
ctrl-alt-delor

3

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


0

আমি ব্যক্তিগতভাবে কোনও প্রোগ্রামের নির্বাহযোগ্য হওয়া পছন্দ করি না তার প্রধান কারণ হ'ল সোর্স কোডটি আসলে কী করছে (তা বেশিরভাগ কারণেই আমি কেবল অন্যের কোড দেখে আনন্দ করি) তবে আমি বেশ কয়েকজনকে জানি যারা দূষিত কোডের জন্য উত্স কোডও পরীক্ষা করে।


0

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

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


0

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

এমনকি চিন্তার জন্য কেবল পিসি নিয়ে এখনও দুটি আর্কিটেকচার রয়েছে: 32 বিট এবং 64 বিট। যদি আপনি লক্ষ্য করেন, উইন্ডোজ সফ্টওয়্যারটির সিংহভাগ কেবলমাত্র bit৪ বিট উপেক্ষা করে কেবল 32 বিট সফটওয়্যারটি উপস্থাপন করে, আপনার যদি 64 বিট সিস্টেম থাকে তবে আপনাকে সাব-অনুকূলतम সফ্টওয়্যারটি রেখে যায়। তারপরে গ্রন্থাগার রয়েছে। একটি সফ্টওয়্যার বিক্রেতাই চান না যে আপনি যদি ইতিমধ্যে সঠিক লাইব্রেরি ইনস্টল না করে থাকেন তবে তাদের প্রোগ্রামটি চালানোর চেষ্টা করার সময় আপনি অদ্ভুত ত্রুটি পেতে পারেন না, সুতরাং তারা কেবল তাদের প্রোগ্রামের সাথে লাইব্রেরিটি অন্তর্ভুক্ত করে (ডাউনলোডটি বৃহত্তর করে তুলুন, আপনার কাছে ইতিমধ্যে এই লাইব্রেরি থাকলেও )। দ্বিতীয় প্রোগ্রাম একই কাজ করে তবে লাইব্রেরির বিভিন্ন সংস্করণ রয়েছে। সর্বোত্তম ক্ষেত্রে, প্রোগ্রাম বিতে লাইব্রেরির একটি নতুন সংস্করণ রয়েছে যা পশ্চাদপটে সামঞ্জস্যপূর্ণ, তাই আপনি যদি প্রোগ্রাম বি পরে ইনস্টল করেনপ্রোগ্রাম এ, জিনিসগুলি কাজ করে তবে বিপরীত ক্রমে এগুলি ইনস্টল করা আপনাকে লাইব্রেরির পুরানো সংস্করণ সহ ছেড়ে দেয় এবং তাই প্রোগ্রাম বি বিরতি দেয়। প্রায়শই বার যদিও, গ্রন্থাগার বিক্রেতা যে পরিবর্তন হয় তোলে না অনগ্রসর সামঞ্জস্যপূর্ণ ও লাইব্রেরি নাম পরিবর্তন মাথা ঘামান না, তাই কোন ব্যাপার যা আপনি, প্রথম এক ভঙ্গ করবে দুই প্রোগ্রাম ইনস্টল অর্ডার। একে বলা হয় "ডেল হেল"।

দুর্ভাগ্যক্রমে, এড়াতে, বেশিরভাগ উইন্ডোজ সফ্টওয়্যার তাদের সমস্ত লাইব্রেরি ভাগ করে নেওয়া ডিরেক্টরিগুলির পরিবর্তে তাদের নিজস্ব প্রোগ্রাম ডিরেক্টরিতে পাঠিয়ে দেয়, সুতরাং প্রতিটি প্রোগ্রামের নিজস্ব ব্যক্তিগত লাইব্রেরি রয়েছে এবং এটি একে অপরের সাথে কখনই ভাগ করে নেবে না, যা পুরোকে পরাস্ত করে প্রথমে dlls এর পয়েন্ট এবং আপনি নকল লাইব্রেরি সমস্ত ডাউনলোড অনেক বেশি রাম এবং ডিস্ক স্থান এবং সময় ব্যবহার করে শেষ।

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

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