BSD কি, কেন, কার জন্য | ||
---|---|---|
Prev |
BSD'র সাথে লিন্যাক্সের কোন একটি ডিস্ট্রিবিউশন, যেমন Debian লিন্যাক্সের পার্থক্যটা কোথায় ? সাধারণ ব্যবহারকারীদের জন্য পার্থক্য আসলেই খুব কম; কারণ দুটোই ইউনিক্স জাতীয় অপারেটিং সিস্টেম। তাছাড়া উভয়েই সম্পূর্ণ অলাভজনক প্রজেক্টের অবদান। ( অন্য অনেক লিন্যাক্স ডিস্ট্রিবিউশনের ক্ষেত্রে অবশ্য একথা প্রযোজ্য নয় )। পরবর্তি পরিচ্ছেদে আমরা BSD'র বিভিন্ন বৈশিষ্ট্য বর্ণনা করার পাশাপাশি লিন্যাক্সের সাথে তা তুলনা করবো। এই বর্ণনাটি সবচেয়ে ভালভাবে প্রযোজ্য FreeBSD'র ক্ষেত্রে; তবে NetBSD বা OpenBSD'র সাথেও এর পার্থক্য খুব একটা বেশি নয়।
প্রশ্নই আসে না; BSD কোন একক ব্যক্তি বা প্রতিষ্ঠানের সম্পত্তি নয়। BSD উন্নয়ন ও প্রকাশনার দায়িত্বে নিয়োজিত রয়েছে পৃথিবীব্যাপী ছড়িয়ে থাকা একদল অত্যন্ত উচ্চপ্রযুক্তি জ্ঞানসম্পন্ন ও আত্মনিবেদিত মানুষের একটি দল। তবে BSD'র কিছু অংশ অন্যান্য ওপেনসোর্স প্রজেক্টের তৈরী করা।
BSD কার্নেলগুলোর উন্নয়ন প্রক্রিয়া ওপেনসোর্স সফটওয়ার তৈরীর পদ্ধতিতে পরিচালিত হয়। প্রত্যেক প্রজেক্ট তাদের সমস্ত সোর্সকোডকে CVS এর মাধ্যমে সবার জন্য উন্মুক্ত করে দেয়। BSD বিষয়ক লেখালেখি এবং অন্যান্য প্রাসঙ্গিক ফাইলও BSD সোর্সের অংশ। CVS ব্যবহারকারীগণ পছন্দমত সোর্সের যেকোন সংস্করণ ডাউনলোড করতে পারেন।
পৃথিবীব্যাপী অসংখ্য ব্যক্তি BSD'র উন্নয়নের পেছনে কাজ করেন। এদেরকে মোটামুটি তিনটি ভাগে বিভক্ত করা যায়ঃ
এরা সোর্সকোড এবং বিভিন্ন বিবরণ লেখার কাজে নিয়োজিত। তবে BSD সোর্সে পরিবর্তনের অধিকার কন্ট্রিবিউটরদের নেই। কোন কমিটার পরীক্ষা করে সম্মতি দেবার পরই কেবল কন্ট্রিবিউটরদের করা কাজগুলো BSD সোর্সের অন্তর্ভুক্ত হয়।
এরা BSD সোর্সে সরাসরি পরিবর্তন করতে পারেন। নিজ নিজ ক্ষেত্রে যথেষ্ট যোগ্যতাসম্পন্ন হলেই কেবল কমিটার হওয়া যায়।
কোন কমিটার সবাইকে জানিয়ে নাকি নিজ দায়িত্বে BSD সোর্সে পরিবর্তন করবেন তা তার বিচার বিবেচনার ওপর নির্ভরশীল। ভুল হওয়ার কোন সম্ভাবনাই না থাকলে অভিজ্ঞ কমিটারগণ সকলের সম্মতি নেয়ার প্রয়োজন বোধ করেন না। উদাহরণস্বরূপ ডকুমেন্টেশন প্রজেক্টের একজন কমিটার যেকোন সময় বানান বা ব্যাকরণগত ভুল সংশোধন করতে পারেন, এজন্য অন্যান্য কমিটারদের সম্মতি নেয়াটা অর্থহীন। অন্যদিকে একজন ডেভেলপার যখন জটিল ও দীর্ঘমেয়াদী প্রভাব ফেলতে সক্ষম কোন পরিবর্তন করেন বা নতুন কিছু যোগ করেন তখন তা পরীক্ষার জন্য সকলের সামনে পেশ করাটাই প্রচলিত নিয়ম। খুবই বিরল কিছু ক্ষেত্রে অবশ্য মূখ্য রূপরেখা প্রণয়নকারীর (Principal Architect) দায়িত্বপ্রাপ্ত কেন্দ্রীয় কমিটির একজন সদস্য কোন কমিটারের করা পরিবর্তনকে বাদ দিতে পারেন; এই ব্যাপারটিকে বলা হয় “Backing Out”। BSD সোর্সে কোন পরিবর্তন করা হলে তা প্রত্যেক কমিটারকেই ইমেইল এর মাধ্যমে জানানো হয়। ফলে গোপনে কোন পরিবর্তন করা কখনই সম্ভব নয়।
FreeBSD এবং NetBSD উভয় প্রজেক্টেরই নিজস্ব কেন্দ্রীয় কমিটি রয়েছে, যাদের দায়িত্ব হল প্রজেক্টের সামগ্রিক দিক দেখাশোনা করা। কেন্দ্রীয় কমিটির ভূমিকা কোন সুনির্দিষ্ট, সুঘোষিত গন্ডীতে আবদ্ধ নয়। সাধারণত ডেভেলপাররাই কেন্দ্রীয় কমিটির সদস্য নির্বাচিত হন; তবে কমিটির প্রত্যেক সদস্যকেই যে ডেভেলপার হতে হবে এমন কোন কথা নেই। বিভিন্ন BSD প্রজেক্টের কেন্দ্রীয় কমিটির ভূমিকায় পার্থক্য থাকলেও প্রতিটি প্রজেক্টের দিকনির্দেশনায় সাধারণ একজন কমিটার অপেক্ষা কেন্দ্রীয় কমিটির একজন সদস্যের কথার মূল্য অনেক বেশি।
BSD প্রজেক্টগুলোর এধরনের পরিচালনা পদ্ধতির সাথে লিন্যাক্সের বেশ কিছু পার্থক্য রয়েছে ঃ
সম্পূর্ন প্রক্রিয়াটি কোন একক ব্যক্তির নিয়ন্ত্রাণাধীন নয়। কার্যত অবশ্য এটা খুব বড় কোন পার্থক্য নয়, কারণ BSD প্রজেক্টের মূখ্য রূপরেখা প্রণয়নকারী (Chief Architect) কমিটারদের করা যেকোন পরিবর্তনকে বাদ দিতে পারেন। তাছাড়া লিন্যাক্সের ক্ষেত্রেও বেশ কিছু ব্যক্তির সোর্সকোড পরিবর্তনের অধিকার আছে।
BSD সোর্সকে কেন্দ্রীয়ভাবে সংরক্ষণ করা হয়। ফলে একটিমাত্র সাইট থেকেই সমগ্র অপারেটিং সিস্টেমের যেকোন সংস্করণ পাওয়া যায়।
শুধুমাত্র কার্নেল নয় বরং সম্পূর্ন অপারেটিং সিস্টেমের পেছনেই BSD প্রজেক্টগুলো কাজ করে। তবে এটি খুব বড় কোন সুবিধা নয়, কারণ অ্যাপলিকেশন সফটওয়ার ছাড়া লিন্যাক্স বা BSD কোনটিই আমাদের কোন কাজে আসবে না। আর BSD'তে ব্যবহৃত অ্যাপলিকেশন সফটওয়ারগুলো প্রায়শঃই লিন্যাক্সেও ব্যবহৃত হয়।
নিয়মতান্ত্রিকভাবে একটিমাত্র CVS ব্যবহার করায় BSD'র উন্নয়ন প্রক্রিয়া বেশ সরল। শুধুমাত্র প্রকাশের তারিখ বা সংস্করণ সূচক সংখ্যা ব্যবহার করেই যেকোন BSD সোর্সকে খুজে বের করা যায়। CVS ব্যবহার করে প্রতিদিন প্রায় ১০০ বার BSD সোর্সকে পরিবর্তন করা হয়। এসব পরিবর্তনের অধিকাংশই অবশ্য খুবই ক্ষুদ্র।
প্রতিটি BSD প্রজেক্টই তাদের অপারেটিং সিস্টেমের তিন প্রকারের সংস্করণ প্রকাশ করে। লিন্যাক্সের মতই প্রতিটি সংস্করণকে একটি সংখ্যা দিয়ে নির্দেশ করা হয়, যেমন ১.৪.১ বা ৩.৫। তাছাড়া সংস্করণসূচক সংখ্যার শেষে আরো একটি শব্দ যোগ করা হয়ঃ
বর্তমানে যে সংস্করণটির উন্নয়নের জন্য কাজ চলছে, তাকে বলা হয় CURRENT। FreeBSD প্রজেক্টে CURRENT এর পূর্বে একটি সংখ্যা থাকে, যেমন FreeBSD 0.5-CURRENT। NetBSD প্রজেক্টের নামকরণ পদ্ধতি কিছুটা ভিন্ন; অভ্যন্তরীন পরিবর্তন বোঝানোর জন্য এই প্রজেক্টে সংস্করণ সূচক সংখ্যার শেষে একটি অক্ষর যোগ করা হয়, যেমন - NetBSD 1.4.3G। OpenBSD প্রজেক্টে কোন সংস্করণ সূচক সংখ্যা ব্যবহৃত হয়না, যেমন - OpenBSD-current। BSD'তে যা কিছু পরিবর্তন করা হয় বা যোগ করা হয় তার সবই CURRENT সংস্করণেই প্রথম অন্তর্ভূক্ত হয়।
প্রতি বছর নির্দষ্ট সময় অন্তর দু থেকে চারবার প্রতিটি BSD প্রজেক্ট তাদের অপারেটিং সিস্টেমের RELEASE সংস্করণ প্রকাশ করে। এই সংস্করণ সিডিতে পাওয়া যায় এবং FTP সাইট থেকেও ডাউনলোড করা যায়। RELEASE এর উদাহরণ হল OpenBSD 2.6-RELEASE এবং NetBSD 1.4-RELEASE। RELEASE সংস্করণ প্রকাশ করা হয় সাধারণত সাধারণ ব্যবহারকারীদের জন্য এবং এটিই সর্বাপেক্ষা বেশি ব্যবহৃত হয়। NetBSD প্রজেক্টও তাদের অপারেটিং সিস্টেমের প্যাচ (Patch) সংস্করণ প্রকাশ করে। এই সংস্করণের নামের শেষে তৃতীয় একটি সংখ্যা ব্যবহৃত হয়, যেমন - NetBSD 1.4.2
RELEASE সংস্করণে ভুল (BUG) পাওয়া গেলে তা সংশোধন করে CVS এ অবস্থিত মূল BSD সোর্সের অন্তর্ভুক্ত করা হয়। ফলে যে নতুন BSD সংস্করণ পাওয়া যায় তাকে FreeBSD র ক্ষেত্রে বলা হয় STABLE। তবে NetBSD ও OpenBSD'র ক্ষেত্রে RELEASE নামই চালু থাকে। একটি নির্দিষ্ট সময় ধরে CURRENT সংস্করণে পরীক্ষানিরীক্ষার পর কিছু কিছু নতুন উপদান অনেক সময় RELEASE সংস্করণেও যোগ করা হয়।
লিন্যাক্স ডিস্ট্রিবিউশনের সংখ্যা অনেক হলেও ওপেনসোর্স BSD'র সংখ্যা মাত্র তিনটি। প্রতিটি BSD প্রজেক্টেরই নিজস্ব সোর্স সংগ্রহ এবং কার্নেল রয়েছে। কার্যত অবশ্য দেখা যায় যে বিভিন্ন লিন্যাক্সে ব্যবহৃত অ্যাপলিকেশন সফটওয়ারে যতটুকু পার্থক্য রয়েছে, বিভিন্ন BSD'তে ব্যবহৃত অ্যাপলিকেশনের মাঝে পার্থক্য তার থেকেও কম।
বিভিন্ন BSD প্রজেক্টের লক্ষ্য ও উদ্দেশ্যকে ছকে ফেলে পৃথক করাটা বেশ কঠিন। মূল ব্যাপারগুলো অনেকটা এরকম ঃ
FreeBSD'র লক্ষ্য হল উচ্চক্ষমতা ও সহজ ব্যবহারযোগ্যতা। ইন্টারনেটভিত্তিক সংস্থাগুলোর মাঝে এটি বিশেষভাবে জনপ্রিয়। পিসি এবং কম্প্যাক কর্পোরেশনের আলফা কম্পিউটারে FreeBSD চালানো যায়। অন্যান্য BSD থেকে FreeBSD ব্যবহারকারীর সংখ্যা অনেক বেশি।
NetBSD প্রজেক্টের লক্ষ্য হল বিভিন্ন মডেলের কম্পিউটারে তাদের অপারেটিং সিস্টেমকে চালাতে পারা; তাই তাদের মূলমন্ত্রই হল “of course it runs NetBSD” অর্থাত্ “নিশ্চয় NetBSD এই কম্পিউটারটিকে চালাতে পারে”। ছোট্ট পামটপ থেকে শুরু করে শক্তিশালী বড়মাপের সার্ভার - সবকিছুতেই আজ NetBSD চালানো যায়। এমনকি একসময় নাসা (NASA) কর্তৃক পরিচালিত নভোযানেও NetBSD ব্যবহৃত হয়েছে। বিশেষ করে পুরনো ধরনের যেসব কম্পিউটার ইন্টেল প্রসেসর ব্যবহার করে না, সেসব চালানোর জন্য NetBSD একটি চমত্কার অপারেটিং সিস্টেম।
OpenBSD'র লক্ষ্য নিশ্ছিদ্র নিরাপত্তা এবং সোর্সকোডের নির্ভূলতা। ওপেনসোর্স চিন্তাধারা অনুসরণের পাশাপাশি কঠিন সর্তকতার সাথে সোর্সকোড পরীক্ষার ফলে OpenBSD'র নিরাপত্তা ও নির্ভুলতা একটি প্রমাণিত ও স্বীকৃত সত্য। এজন্য নিরাপত্তার ব্যাপারে বিশেষভাবে সচেতন বিভিন্ন প্রতিষ্ঠান, যেমন - ব্যাংক, শেয়ার বাজার, মার্কিন সরকারি দপ্তর - এদের কাছে OpenBSD বিশেষভাবে সমাদৃত। NetBSD'র মত OpenBSDও বেশকিছু মডেলের কম্পিউটারে চলতে সক্ষম।
এছাড়াও ওপেনসোর্স নয় এরকম রয়েছে আরও দুটি BSD। এরা হল BSD/OS এবং অ্যাপল কর্পোরেশনের Mac OS Xঃ
4.4 BSD থেকে উদ্ভুত অপারেটিং সিস্টেমগুলোর মধ্যে BSD/OS সবচেয়ে প্রাচীন। যদিও এটি ওপেনসোর্স নয়, কিন্তু বেশ অল্প খরচেই এর সোর্সকোড লাইসেন্স কেনা যায়। FreeBSD'র সাথে BSD/OS এর প্রচুর মিল রয়েছে।
অ্যাপল কম্পিউটার কর্পোরেশনের ম্যাকিন্টশ কম্পিউটারে ব্যবহৃত অপারেটিং সিস্টেমের সর্বশেষ সংস্করণ হল MacOS X। এই অপারেটিং সিস্টেমটির কার্নেল ব্যাতীত অন্যান্য অংশ ওপেনসোর্স নয়। অ্যাপল কর্পোরেশনের প্রধান কয়েকজন ডেভেলপারের FreeBSD সোর্সকোড পরিবর্তনের অধিকার রয়েছে।
লিন্যাক্সের লাইসেন্স হল GNU General Public License বা GPL। GPL এর উদ্দেশ্য হল ওপেনসোর্স নয় এধরনের সকল সফটওয়ারকে ঝেঁটিয়ে বিদায় করা। GPL সফটওয়ারের ওপর ভিত্তি করে নির্মিত নতুন কোন সফটওয়ারের সোর্সকোড প্রকাশ করতে সফটওয়ার নির্মাতা বাধ্য। কিন্তু BSD লাইসেন্স এতটা কঠোর নয়। ফলে BSD লাইসেন্স ব্যবহার করে সফটওয়ারের শুধুমাত্র বাইনারি বা কম্পাইল্ড সংস্করণও প্রকাশ করা সম্ভব। বিশেষ কর Embedded অ্যাপলিকেশনের জন্য এই ব্যবস্থা খুবই সুবিধাজনক।
যেহেতু BSD'তে চলতে সক্ষম অ্যাপলিকেশন সফটওয়ারের সংখ্যা লিন্যাক্স অপেক্ষা কম, তাই BSD ডেভেলপাররা BSD'তেই লিন্যাক্সের সফটওয়ার চালাবার জন্য একটি প্যাকেজ তৈরী করেছ&