4. BSD বনাম লিন্যাক্স

BSD'র সাথে লিন্যাক্সের কোন একটি ডিস্ট্রিবিউশন, যেমন Debian লিন্যাক্সের পার্থক্যটা কোথায় ? সাধারণ ব্যবহারকারীদের জন্য পার্থক্য আসলেই খুব কম; কারণ দুটোই ইউনিক্স জাতীয় অপারেটিং সিস্টেম। তাছাড়া উভয়েই সম্পূর্ণ অলাভজনক প্রজেক্টের অবদান। ( অন্য অনেক লিন্যাক্স ডিস্ট্রিবিউশনের ক্ষেত্রে অবশ্য একথা প্রযোজ্য নয় )। পরবর্তি পরিচ্ছেদে আমরা BSD'র বিভিন্ন বৈশিষ্ট্য বর্ণনা করার পাশাপাশি লিন্যাক্সের সাথে তা তুলনা করবো। এই বর্ণনাটি সবচেয়ে ভালভাবে প্রযোজ্য FreeBSD'র ক্ষেত্রে; তবে NetBSD বা OpenBSD'র সাথেও এর পার্থক্য খুব একটা বেশি নয়।

4.1. BSD কি কারো মালিকানাধীন ?

প্রশ্নই আসে না; BSD কোন একক ব্যক্তি বা প্রতিষ্ঠানের সম্পত্তি নয়। BSD উন্নয়ন ও প্রকাশনার দায়িত্বে নিয়োজিত রয়েছে পৃথিবীব্যাপী ছড়িয়ে থাকা একদল অত্যন্ত উচ্চপ্রযুক্তি জ্ঞানসম্পন্ন ও আত্মনিবেদিত মানুষের একটি দল। তবে BSD'র কিছু অংশ অন্যান্য ওপেনসোর্স প্রজেক্টের তৈরী করা।

4.2. BSD উন্নয়ন প্রক্রিয়া

BSD কার্নেলগুলোর উন্নয়ন প্রক্রিয়া ওপেনসোর্স সফটওয়ার তৈরীর পদ্ধতিতে পরিচালিত হয়। প্রত্যেক প্রজেক্ট তাদের সমস্ত সোর্সকোডকে CVS এর মাধ্যমে সবার জন্য উন্মুক্ত করে দেয়। BSD বিষয়ক লেখালেখি এবং অন্যান্য প্রাসঙ্গিক ফাইলও BSD সোর্সের অংশ। CVS ব্যবহারকারীগণ পছন্দমত সোর্সের যেকোন সংস্করণ ডাউনলোড করতে পারেন।

পৃথিবীব্যাপী অসংখ্য ব্যক্তি BSD'র উন্নয়নের পেছনে কাজ করেন। এদেরকে মোটামুটি তিনটি ভাগে বিভক্ত করা যায়ঃ

কন্ট্রিবিউটর

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

কমিটার

এরা BSD সোর্সে সরাসরি পরিবর্তন করতে পারেন। নিজ নিজ ক্ষেত্রে যথেষ্ট যোগ্যতাসম্পন্ন হলেই কেবল কমিটার হওয়া যায়।

কোন কমিটার সবাইকে জানিয়ে নাকি নিজ দায়িত্বে BSD সোর্সে পরিবর্তন করবেন তা তার বিচার বিবেচনার ওপর নির্ভরশীল। ভুল হওয়ার কোন সম্ভাবনাই না থাকলে অভিজ্ঞ কমিটারগণ সকলের সম্মতি নেয়ার প্রয়োজন বোধ করেন না। উদাহরণস্বরূপ ডকুমেন্টেশন প্রজেক্টের একজন কমিটার যেকোন সময় বানান বা ব্যাকরণগত ভুল সংশোধন করতে পারেন, এজন্য অন্যান্য কমিটারদের সম্মতি নেয়াটা অর্থহীন। অন্যদিকে একজন ডেভেলপার যখন জটিল ও দীর্ঘমেয়াদী প্রভাব ফেলতে সক্ষম কোন পরিবর্তন করেন বা নতুন কিছু যোগ করেন তখন তা পরীক্ষার জন্য সকলের সামনে পেশ করাটাই প্রচলিত নিয়ম। খুবই বিরল কিছু ক্ষেত্রে অবশ্য মূখ্য রূপরেখা প্রণয়নকারীর (Principal Architect) দায়িত্বপ্রাপ্ত কেন্দ্রীয় কমিটির একজন সদস্য কোন কমিটারের করা পরিবর্তনকে বাদ দিতে পারেন; এই ব্যাপারটিকে বলা হয় “Backing Out”। BSD সোর্সে কোন পরিবর্তন করা হলে তা প্রত্যেক কমিটারকেই ইমেইল এর মাধ্যমে জানানো হয়। ফলে গোপনে কোন পরিবর্তন করা কখনই সম্ভব নয়।

Core Team বা কেন্দ্রীয় কমিটি

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

BSD প্রজেক্টগুলোর এধরনের পরিচালনা পদ্ধতির সাথে লিন্যাক্সের বেশ কিছু পার্থক্য রয়েছে ঃ

  1. সম্পূর্ন প্রক্রিয়াটি কোন একক ব্যক্তির নিয়ন্ত্রাণাধীন নয়। কার্যত অবশ্য এটা খুব বড় কোন পার্থক্য নয়, কারণ BSD প্রজেক্টের মূখ্য রূপরেখা প্রণয়নকারী (Chief Architect) কমিটারদের করা যেকোন পরিবর্তনকে বাদ দিতে পারেন। তাছাড়া লিন্যাক্সের ক্ষেত্রেও বেশ কিছু ব্যক্তির সোর্সকোড পরিবর্তনের অধিকার আছে।

  2. BSD সোর্সকে কেন্দ্রীয়ভাবে সংরক্ষণ করা হয়। ফলে একটিমাত্র সাইট থেকেই সমগ্র অপারেটিং সিস্টেমের যেকোন সংস্করণ পাওয়া যায়।

  3. শুধুমাত্র কার্নেল নয় বরং সম্পূর্ন অপারেটিং সিস্টেমের পেছনেই BSD প্রজেক্টগুলো কাজ করে। তবে এটি খুব বড় কোন সুবিধা নয়, কারণ অ্যাপলিকেশন সফটওয়ার ছাড়া লিন্যাক্স বা BSD কোনটিই আমাদের কোন কাজে আসবে না। আর BSD'তে ব্যবহৃত অ্যাপলিকেশন সফটওয়ারগুলো প্রায়শঃই লিন্যাক্সেও ব্যবহৃত হয়।

  4. নিয়মতান্ত্রিকভাবে একটিমাত্র CVS ব্যবহার করায় BSD'র উন্নয়ন প্রক্রিয়া বেশ সরল। শুধুমাত্র প্রকাশের তারিখ বা সংস্করণ সূচক সংখ্যা ব্যবহার করেই যেকোন BSD সোর্সকে খুজে বের করা যায়। CVS ব্যবহার করে প্রতিদিন প্রায় ১০০ বার BSD সোর্সকে পরিবর্তন করা হয়। এসব পরিবর্তনের অধিকাংশই অবশ্য খুবই ক্ষুদ্র।

প্রতিটি BSD প্রজেক্টই তাদের অপারেটিং সিস্টেমের তিন প্রকারের সংস্করণ প্রকাশ করে। লিন্যাক্সের মতই প্রতিটি সংস্করণকে একটি সংখ্যা দিয়ে নির্দেশ করা হয়, যেমন ১.৪.১ বা ৩.৫। তাছাড়া সংস্করণসূচক সংখ্যার শেষে আরো একটি শব্দ যোগ করা হয়ঃ

  1. বর্তমানে যে সংস্করণটির উন্নয়নের জন্য কাজ চলছে, তাকে বলা হয় CURRENT। FreeBSD প্রজেক্টে CURRENT এর পূর্বে একটি সংখ্যা থাকে, যেমন FreeBSD 0.5-CURRENT। NetBSD প্রজেক্টের নামকরণ পদ্ধতি কিছুটা ভিন্ন; অভ্যন্তরীন পরিবর্তন বোঝানোর জন্য এই প্রজেক্টে সংস্করণ সূচক সংখ্যার শেষে একটি অক্ষর যোগ করা হয়, যেমন - NetBSD 1.4.3G। OpenBSD প্রজেক্টে কোন সংস্করণ সূচক সংখ্যা ব্যবহৃত হয়না, যেমন - OpenBSD-current। BSD'তে যা কিছু পরিবর্তন করা হয় বা যোগ করা হয় তার সবই CURRENT সংস্করণেই প্রথম অন্তর্ভূক্ত হয়।

  2. প্রতি বছর নির্দষ্ট সময় অন্তর দু থেকে চারবার প্রতিটি BSD প্রজেক্ট তাদের অপারেটিং সিস্টেমের RELEASE সংস্করণ প্রকাশ করে। এই সংস্করণ সিডিতে পাওয়া যায় এবং FTP সাইট থেকেও ডাউনলোড করা যায়। RELEASE এর উদাহরণ হল OpenBSD 2.6-RELEASE এবং NetBSD 1.4-RELEASE। RELEASE সংস্করণ প্রকাশ করা হয় সাধারণত সাধারণ ব্যবহারকারীদের জন্য এবং এটিই সর্বাপেক্ষা বেশি ব্যবহৃত হয়। NetBSD প্রজেক্টও তাদের অপারেটিং সিস্টেমের প্যাচ (Patch) সংস্করণ প্রকাশ করে। এই সংস্করণের নামের শেষে তৃতীয় একটি সংখ্যা ব্যবহৃত হয়, যেমন - NetBSD 1.4.2

  3. RELEASE সংস্করণে ভুল (BUG) পাওয়া গেলে তা সংশোধন করে CVS এ অবস্থিত মূল BSD সোর্সের অন্তর্ভুক্ত করা হয়। ফলে যে নতুন BSD সংস্করণ পাওয়া যায় তাকে FreeBSD র ক্ষেত্রে বলা হয় STABLE। তবে NetBSD ও OpenBSD'র ক্ষেত্রে RELEASE নামই চালু থাকে। একটি নির্দিষ্ট সময় ধরে CURRENT সংস্করণে পরীক্ষানিরীক্ষার পর কিছু কিছু নতুন উপদান অনেক সময় RELEASE সংস্করণেও যোগ করা হয়।

4.3. BSD'র রকমফের

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

বিভিন্ন BSD প্রজেক্টের লক্ষ্য ও উদ্দেশ্যকে ছকে ফেলে পৃথক করাটা বেশ কঠিন। মূল ব্যাপারগুলো অনেকটা এরকম ঃ

এছাড়াও ওপেনসোর্স নয় এরকম রয়েছে আরও দুটি BSD। এরা হল BSD/OS এবং অ্যাপল কর্পোরেশনের Mac OS X

4.4. BSD ও গনুহ (GNU) পাবলিক লাইসেন্সের পার্থক্য

লিন্যাক্সের লাইসেন্স হল GNU General Public License বা GPL। GPL এর উদ্দেশ্য হল ওপেনসোর্স নয় এধরনের সকল সফটওয়ারকে ঝেঁটিয়ে বিদায় করা। GPL সফটওয়ারের ওপর ভিত্তি করে নির্মিত নতুন কোন সফটওয়ারের সোর্সকোড প্রকাশ করতে সফটওয়ার নির্মাতা বাধ্য। কিন্তু BSD লাইসেন্স এতটা কঠোর নয়। ফলে BSD লাইসেন্স ব্যবহার করে সফটওয়ারের শুধুমাত্র বাইনারি বা কম্পাইল্ড সংস্করণও প্রকাশ করা সম্ভব। বিশেষ কর Embedded অ্যাপলিকেশনের জন্য এই ব্যবস্থা খুবই সুবিধাজনক।

4.5. আর যা কিছু জানা দরকার

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

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

4.6. তাহলে কি BSD, না লিন্যাক্স ব্যবহার করবো ?

BSD এবং লিন্যাক্সের মাঝে বিভিন্ন পার্থক্য থাকলেও বাস্তবে এর প্রভাব কতটুকু ? BSD কার জন্য আর লিন্যাক্সই বা কার জন্য ?

এই প্রশ্নের জবাব দেয়া খুবই কঠিন। নিচের পরামর্শগুলো হয়তো কিছুটা সাহায্য করতে পারেঃ

4.7. BSD সংক্রান্ত সেবা ও প্রশিক্ষণ

BSDi সবসময়ই BSD/OS সংক্রান্ত সেবা দিয়ে এসেছে। সম্প্রতি তারা FreeBSD ভিত্তিক সেবা দেয়ারও ঘোষণা দিয়েছে।

এছাড়া FreeBSD, NetBSD ও OpenBSD'র ব্যাপারে পরামর্শ দিয়ে থাকেন এরকম ব্যক্তিদের তালিকাও প্রত্যেক প্রজেক্টের নিকট থেকে পাওয়া যায়।