Unix এবং Linux-এর ইতিহাস: 1969 থেকে বর্তমান সময়
1969 সালে Bell Labs থেকে শুরু হওয়া Unix-এর যাত্রা কীভাবে Linux-এ রূপ নিল তা জানুন। AT&T লাইসেন্সিং বিতর্ক, BSD এবং 1992 সালের আইনি লড়াইয়ের বিস্তারিত ইতিহাস এখানে তুলে ধরা হয়েছে।
Unix এবং Linux-এর সংক্ষিপ্ত ইতিহাস
Unix এবং Linux-এর ইতিহাস মূলত সোর্স কোডের মালিকানা নিয়ে দীর্ঘ বিতর্কের ইতিহাস। 1969 সালে Bell Labs-এ Unix-এর যাত্রা শুরু হয়। 1991 সালে Helsinki-তে Linux-এর সূচনা হয় এবং এতে মূল Unix-এর কোনো কোড ব্যবহার করা হয়নি। যা এই দুইয়ের মধ্যে সেতুবন্ধন তৈরি করেছে তা হলো এর ডিজাইন এবং প্রকাশিত ইন্টারফেসসমূহ: ফাইল, প্রসেস, পাইপ এবং একটি শেল যা ছোট ছোট প্রোগ্রামগুলোকে একত্রে যুক্ত করে। 1970-এর দশকে বিশ্ববিদ্যালয়গুলোতে Unix ছড়িয়ে পড়ে, কারণ 1956 সালের একটি অ্যান্টিট্রাস্ট সেটেলমেন্টের কারণে AT&T (American Telephone and Telegraph)-এর সফটওয়্যার বিক্রি করা নিষিদ্ধ ছিল; তাই Bell Labs সোর্স কোড স্বল্পমূল্যে লাইসেন্স হিসেবে প্রদান করত। শেষ পর্যন্ত Unix সব জায়গায় ছড়িয়ে পড়ে, যদিও AT&T ছাড়া অন্য কারো এর ওপর মালিকানা ছিল না। এরপর যে লাইসেন্সিং লড়াই শুরু হয়, তা-ই নির্ধারণ করে দিয়েছে যে আপনার সার্ভার র্যাকে কোন ফ্রি Unix-সদৃশ সিস্টেমটি জায়গা করে নেবে।
1969: একটি অব্যবহৃত PDP-7 এবং যে ধারণাগুলো টিকে গিয়েছিল
1969 সালে Bell Labs, Multics প্রজেক্ট থেকে নিজেদের সরিয়ে নেয়। Multics (multiplexed information and computing service) ছিল MIT এবং General Electric-এর সাথে তৈরি একটি বিশাল টাইম-শেয়ারিং সিস্টেম, যা শেষ করার মতো বড় নয় বলে Labs সিদ্ধান্ত নেয়। Ken Thompson তার পছন্দের ধারণাগুলো রেখে বাকিগুলো বাদ দেন এবং একটি অব্যবহৃত PDP-7 মিনি কম্পিউটারে ছোট একটি টাইম-শেয়ারিং সিস্টেম লেখেন। Dennis Ritchie তার সাথে যোগ দেন। Unix নামটি ছিল Multics-এর প্রতি একটি ব্যঙ্গাত্মক রসিকতা।
1970 সালে সিস্টেমটি একটি PDP-11 মেশিনে স্থানান্তর করা হয়, যা Labs পেটেন্ট বিভাগের টাইপিস্টদের জন্য কিনেছিল। কারণ একটি অপারেটিং সিস্টেমের চেয়ে টেক্সট প্রসেসিং টুলের জন্য তহবিল পাওয়া সহজ ছিল। সেই মেশিনে 24 KB কোর মেমোরি ছিল, যা সিস্টেম এবং ইউজার প্রোগ্রামের মধ্যে ভাগ করা থাকত। এই তহবিল পাওয়ার আকস্মিক ঘটনার কারণেই 1971 সালের নভেম্বরের প্রথম Unix ম্যানুয়ালটি ছিল ফরম্যাট করা নথির একটি সেট, এবং এই কারণেই আপনি এখনও man 5 crontab টাইপ করেন। সেই ম্যানুয়ালের সেকশন নম্বরগুলোই আপনার বর্তমান ম্যানুয়ালের সেকশন নম্বর।
দুটি পরিবর্তন এই ডিজাইনকে স্থায়ী রূপ দেয়। 1973 সালে Version 3-এ পাইপ (pipes) যুক্ত হয়, কারণ Doug McIlroy বছরের পর বছর ধরে যুক্তি দিয়েছিলেন যে প্রোগ্রামগুলোকে একে অপরের সাথে যুক্ত করা সম্ভব হওয়া উচিত। Thompson | অপারেটরটি যোগ করেন, যার ফলে একটি প্রোগ্রামের আউটপুট পরবর্তী প্রোগ্রামের ইনপুট হিসেবে কাজ করতে শুরু করে। এরপর 1973 সালের শেষের দিকে Version 4-কে C ভাষায় নতুন করে লেখা হয়। একটি পোর্টেবল ভাষায় লেখা অপারেটিং সিস্টেম এমন হার্ডওয়্যারে চলতে পারে যার জন্য এটি তৈরি হয়নি, আর এই কারণেই Unix তার শুরুর সব মেশিনের চেয়ে বেশিদিন টিকে আছে।
Unix কেন ছড়িয়ে পড়েছিল: AT&T-এর এটি বিক্রির অনুমতি ছিল না
1956 সালের একটি সম্মতি ডিক্রি (consent decree) AT&T-এর বিরুদ্ধে আনা একটি অ্যান্টিট্রাস্ট মামলার নিষ্পত্তি করে। AT&T তার টেলিফোন একচেটিয়া আধিপত্য বজায় রাখে এবং বিনিময়ে একটি শর্ত মেনে নেয়: টেলিযোগাযোগ ছাড়া অন্য কোনো ব্যবসায় তারা জড়িত থাকবে না। সফটওয়্যার ছিল সেই ব্যবসাগুলোর একটি। তাই বিশ্ববিদ্যালয়গুলো যখন Unix-এর জন্য অনুরোধ জানায়, Bell Labs তখন এটিকে পণ্য হিসেবে বিক্রি করতে পারেনি। তারা কোনো সাপোর্ট বা ওয়ারেন্টি ছাড়াই নামমাত্র মূল্যে এর সোর্স কোড লাইসেন্স করে।
এর প্রভাব ছিল ব্যাপক এবং এটি AT&T-এর পরিকল্পনার অংশ ছিল না। 1975 সালে মুক্তি পাওয়া Sixth Edition Unix শত শত কম্পিউটার সায়েন্স বিভাগে সম্পূর্ণ সোর্স কোডসহ পৌঁছে যায়। ইউনিভার্সিটি অফ নিউ সাউথ ওয়েলসের John Lions সেই কার্নেল সোর্স কোডটি লাইন-বাই-লাইন ব্যাখ্যাসহ ছাপিয়ে তা থেকে পাঠদান শুরু করেন। একটি পুরো প্রজন্ম একটি বাস্তব অপারেটিং সিস্টেম পড়ার মাধ্যমে এটি কীভাবে কাজ করে তা শিখে ফেলে।
এরপর লাইসেন্সের শর্ত পরিবর্তিত হয়। 1979 সালের Seventh Edition লাইসেন্সে ক্লাসে সোর্স কোড ব্যবহার নিষিদ্ধ করা হয়, ফলে Lions-এর সেই ব্যাখ্যাপত্র ফটোকপির ফটোকপি হিসেবে ছড়িয়ে পড়ে। পুরো গল্পের রূপরেখা এটাই। Unix একই সাথে সর্বত্র ছিল এবং মুক্ত ছিল না, তাই যে কেউ যে উন্নতিই করুক না কেন, তা অন্য কারো মালিকানাধীন কোডের উন্নতি হিসেবে গণ্য হতো।
Berkeley: ইউনিক্সের যে অংশগুলো আপনি সচরাচর টাইপ করেন
Ken Thompson 1975 থেকে 1976 শিক্ষাবর্ষ University of California, Berkeley-তে অতিবাহিত করেন এবং সেখানে একটি অত্যন্ত সক্রিয় ইউনিক্স গ্রুপ রেখে যান। বার্কলের Computer Systems Research Group (CSRG) স্থানীয় উন্নয়নের টেপগুলো সরবরাহ করত, আর সেই টেপগুলোই BSD বা Berkeley Software Distribution নামে পরিচিতি পায়। Bill Joy এর শুরুর দিকের অনেক কাজের নেপথ্যে ছিলেন: 1978 সালে 1BSD এবং 1979 সালে 2BSD, যাতে vi এডিটর এবং C shell অন্তর্ভুক্ত ছিল।
C shell থেকেই !! এবং !$ এর উৎপত্তি। Bash এই সিনট্যাক্স উত্তরাধিকার সূত্রে পেয়েছে, আর এই কারণেই bash history expansion চল্লিশ বছর পরেও ডাবল কোটেশনের ভেতরে বিস্ময়সূচক চিহ্ন টাইপ করা ব্যবহারকারীদের অবাক করে।
এরপর DARPA (US Defense Advanced Research Projects Agency) বার্কলেকে ইউনিক্সে নতুন ইন্টারনেট প্রোটোকল যুক্ত করার জন্য অর্থায়ন করে। 1983 সালের আগস্টে মুক্তি পাওয়া 4.2BSD-তে TCP/IP (transmission control protocol over internet protocol) এবং socket application programming interface যুক্ত করা হয়। আপনার সার্ভারের প্রতিটি নেটওয়ার্ক সার্ভিস আজও সেই একই ক্রমে socket(), bind(), listen() এবং accept() কল করে, কারণ বার্কলে 1983 সালে এই নামগুলোই নির্ধারণ করেছিল।
একটি ছোট বিষয় পরবর্তী দশকের গতিপথ নির্ধারণ করে দিয়েছিল। একটি BSD টেপ সম্পূর্ণ সিস্টেম ছিল না। এটি ছিল AT&T-এর ইউনিক্সের ওপর কিছু বাড়তি সংযোজন, এবং এটি আইনত চালানোর জন্য আপনার একটি বৈধ AT&T সোর্স লাইসেন্সের প্রয়োজন ছিল। বার্কলে কয়েক বছর ধরে ফাইল বাই ফাইল AT&T-এর অংশগুলোকে নিজেদের কোড দিয়ে প্রতিস্থাপন করে। সেই প্রতিস্থাপন প্রক্রিয়াটি পুরোপুরি সম্পন্ন হয়েছিল কি না, তা নিয়ে পরবর্তীতে আদালতে মামলা হয়েছিল।
1984: বিভাজন এবং পরবর্তী ইউনিক্স যুদ্ধ
1 জানুয়ারি 1984 সালে বেল সিস্টেম ভেঙে ফেলা হয় এবং এর সাথে সেই সম্মতি ডিক্রিটিও বাতিল হয়ে যায় যা AT&T-কে সফটওয়্যার ব্যবসা থেকে দূরে রেখেছিল। AT&T এখন ইউনিক্সকে পণ্য হিসেবে বিক্রি করতে পারত এবং তারা তা-ই করল। বাণিজ্যিক সোর্স লাইসেন্সগুলো ব্যয়বহুল হয়ে উঠল, ফলে ইউনিক্স আর সেই সস্তা জিনিস রইল না যা বিশ্ববিদ্যালয়গুলো শিক্ষার্থীদের হাতে তুলে দিত।
ভেন্ডররা আগেই এটিকে ফর্ক (fork) করে ফেলেছিল। প্রতিটি ওয়ার্কস্টেশন কোম্পানি তাদের নিজস্ব হার্ডওয়্যারে নিজস্ব ইউনিক্স সরবরাহ করত, তাই আশির দশকের শেষের দিকে একটি মেশিনের জন্য লেখা প্রোগ্রাম অন্য মেশিনে চালানোর জন্য সেটিকে পোর্ট (port) করার প্রয়োজন হতো। 1988 সালে শিল্পটি দুটি স্ট্যান্ডার্ড ক্যাম্পে বিভক্ত হয়ে যায়—একদিকে Open Software Foundation এবং অন্যদিকে Unix International। তারা বছরের পর বছর ধরে একে অপরের সাথে অসামঞ্জস্যপূর্ণ সিস্টেম সরবরাহ করে গেছে এবং কার ইউনিক্স আসল, তা নিয়ে বিতর্কে লিপ্ত ছিল।
সেই বিশৃঙ্খলা থেকেই POSIX (portable operating system interface)-এর জন্ম। 1988 সালে IEEE 1003.1 প্রকাশিত হয়, যেখানে একটি ইউনিক্স-সদৃশ সিস্টেমের করণীয় বিষয়গুলো লিপিবদ্ধ করা হয়: সিস্টেম কল, শেলের আচরণ, স্ট্যান্ডার্ড ইউটিলিটি এবং C লাইব্রেরি ইন্টারফেস। এটি শুনতে যতটা সাধারণ মনে হয়, তার চেয়ে অনেক বেশি গুরুত্বপূর্ণ, কারণ একটি স্ট্যান্ডার্ড হলো একটি স্পেসিফিকেশন এবং কোনো লাইসেন্সই একে নিয়ন্ত্রণ করতে পারে না। তিন বছর পর একজন শিক্ষার্থী সেই নথিপত্র অনুসরণ করে একটি কার্নেল লিখেছিলেন।
Minix এবং এর রেখে যাওয়া শূন্যতা
Andrew Tanenbaum 1987 সালে তার অপারেটিং সিস্টেমের পাঠ্যবইয়ের শিক্ষণীয় সিস্টেম হিসেবে Minix প্রকাশ করেন। Minix ছিল একটি ছোট Unix-সদৃশ সিস্টেম, যার সোর্স কোড বইয়ের সাথেই দেওয়া থাকত এবং এটি শিক্ষার্থীদের মালিকানাধীন সাধারণ PC-তে চলত। ক্লাসরুমে এটি পড়া আইনত বৈধ ছিল, যা Seventh Edition Unix-এর ক্ষেত্রে আর সম্ভব ছিল না।
Minix ইচ্ছাকৃতভাবেই ছোট রাখা হয়েছিল, কারণ এটি একটি বইয়ের মাধ্যমে ব্যাখ্যাযোগ্য হতে হতো। Tanenbaum এমন সব প্যাচ প্রত্যাখ্যান করেছিলেন যা এটিকে একটি প্রোডাকশন সিস্টেমে পরিণত করতে পারত। এর লাইসেন্সটিও মুক্ত ছিল না: আপনাকে বইটি কিনতে হতো এবং আপনার পরিবর্তিত Minix পুনরায় বিতরণ করার সিদ্ধান্ত আপনার হাতে ছিল না। তাই 1991 সালের মধ্যে একজন শিক্ষার্থী একটি কার্যকর Unix-সদৃশ কার্নেল পড়তে পারলেও, এর ওপর ভিত্তি করে দীর্ঘস্থায়ী কিছু তৈরি করতে পারত না।
GNU-এর কাছে কার্নেল বাদে সবকিছুই ছিল
Richard Stallman 1983 সালের সেপ্টেম্বর মাসে GNU প্রজেক্টের ঘোষণা দেন, যার লক্ষ্য ছিল একটি সম্পূর্ণ ফ্রি Unix-এর মতো সিস্টেম তৈরি করা। 1991 সালের মধ্যে GNU কার্নেলের চারপাশের বেশিরভাগ অংশ তৈরি করে ফেলেছিল: GCC কম্পাইলার, GNU C লাইব্রেরি, বাইনারি ইউটিলিটি এবং bash, যা Brian Fox 1989 সালে লিখেছিলেন এবং আপনার সার্ভার এখনও আপনাকে এই শেলটিতেই লগইন করায়। GNU কার্নেল, Hurd, ছিল সেই অংশ যা বারবার পিছিয়ে যাচ্ছিল।
GNU General Public License version 2 1991 সালের জুন মাসে প্রকাশিত হয়। এর নিয়মটি সংক্ষিপ্ত। আপনি কোডটি ব্যবহার এবং পরিবর্তন করতে পারেন, এবং যদি আপনি ফলাফলটি বিতরণ করেন, তবে আপনাকে অবশ্যই একই শর্তে সোর্স কোড বিতরণ করতে হবে। এই নিয়মটি দুই সেকশন পরের এই গল্পের মূল ভিত্তি হয়ে দাঁড়াবে।
1991 সালের আগস্ট: comp.os.minix-এ পোস্ট
1991 সালের 25 আগস্ট হেলসিংকির একজন শিক্ষার্থী Usenet গ্রুপ comp.os.minix-এ একটি পোস্ট করেন:
Hello everybody out there using minix -
I'm doing a (free) operating system (just a hobby, won't be big and
professional like gnu) for 386(486) AT clones.1991 সালের সেপ্টেম্বর মাসে সংস্করণ 0.01 রিলিজ করা হয়। এতে Unix বা Minix-এর কোনো কোড ছিল না। এটি ছিল 386 আর্কিটেকচারের জন্য একটি নতুন কার্নেল, যা একটি Minix মেশিনে তৈরি করা হয়েছিল। এটি POSIX ইন্টারফেসের সাথে সামঞ্জস্য রেখে লেখা এবং বিদ্যমান GNU টুলগুলোর সাথে যুক্ত ছিল। 1992 সালের জানুয়ারি মাসে Tanenbaum, Torvalds-কে বলেছিলেন যে মনোলিথিক কার্নেল একটি সেকেলে ডিজাইন। ডিজাইনের দিক থেকে তার যুক্তিটি সঠিক ছিল, কিন্তু Torvalds ভিন্ন একটি প্রশ্নের উত্তর দিচ্ছিলেন: একজন শিক্ষার্থীর মালিকানাধীন সস্তা কম্পিউটারে কোনটি ভালোভাবে চলে।
1992 সালের ফেব্রুয়ারি মাসে, 0.12 সংস্করণটিকে GPL লাইসেন্সের অধীনে আনা হয়। Torvalds পরবর্তীতে এটিকে তার সেরা সিদ্ধান্ত হিসেবে অভিহিত করেছেন। মূল Linux লাইসেন্সে অর্থ লেনদেন নিষিদ্ধ ছিল, যা পরবর্তীতে আসা CD বিক্রেতা এবং সাপোর্ট কোম্পানিগুলোর জন্য বাধা হয়ে দাঁড়াত। GPL বাণিজ্যের সুযোগ দেয়, কিন্তু একই সাথে প্রতিটি ডিস্ট্রিবিউটেড পরিবর্তনকে মূল শেয়ারড ট্রিতে ফিরিয়ে আনা বাধ্যতামূলক করে।
মামলা: এপ্রিল 1992 থেকে ফেব্রুয়ারি 1994
বার্কলে জুন 1991 সালে Networking Release 2 (Net/2) প্রকাশ করে: এটি ছিল প্রায় একটি সম্পূর্ণ BSD সিস্টেম, যেখান থেকে AT&T-এর ফাইলগুলো সরিয়ে ফেলা হয়েছিল। ছয়টি কার্নেল ফাইল অনুপস্থিত ছিল। বিল এবং লিন জোলিটজ সেগুলোর বিকল্প লিখে মার্চ 1992 সালে 386BSD 0.0 এবং 14 জুলাই 1992 সালে 386BSD 0.1 প্রকাশ করেন। লিনাক্স যখন কেবল একটি শখের কার্নেল ছিল, ঠিক সেই সময়েই 386-এর জন্য একটি মুক্ত, সম্পূর্ণ এবং পরিপক্ক BSD সিস্টেমের অস্তিত্ব তৈরি হয়। Berkeley Software Design, Inc. (BSDi) একটি সমর্থিত বাণিজ্যিক বিল্ড, BSD/386 বিক্রি শুরু করে এবং 1-800-ITS-UNIX টেলিফোন নম্বর ব্যবহার করে এর বিজ্ঞাপন দেয়।
এপ্রিল 1992 সালে, Unix System Laboratories (USL)—যা তৎকালীন Unix-এর মালিকানাধীন AT&T-এর একটি অঙ্গপ্রতিষ্ঠান—ট্রেড সিক্রেট এবং Unix ট্রেডমার্ক লঙ্ঘনের অভিযোগে নিউ জার্সির ফেডারেল আদালতে BSDi-এর বিরুদ্ধে মামলা করে। পরবর্তীতে মামলাটি সংশোধন করে এতে Regents of the University of California-কে যুক্ত করা হয়। 1993 সালে ইউনিভার্সিটি ক্যালিফোর্নিয়ায় পাল্টা মামলা করে এই যুক্তি দিয়ে যে, AT&T তাদের নিজস্ব লাইসেন্সের শর্ত অনুযায়ী যথাযথ স্বীকৃতি না দিয়েই System V-এর ভেতরে বার্কলের কোড ব্যবহার করেছে।
1993 সালে আইনি ভিত্তিটি দুর্বল হয়ে পড়ে। বিচারক ডিকিনসন ডেবেভয়েস USL-এর প্রাথমিক নিষেধাজ্ঞা (preliminary injunction) প্রত্যাখ্যান করেন। তিনি মত দেন যে, পুরনো 32V কোডের ওপর USL-এর কপিরাইট দাবি সম্ভবত অবৈধ, কারণ AT&T কোনো কপিরাইট নোটিশ ছাড়াই বছরের পর বছর ধরে সেই কোড বিতরণ করেছে। 1993 সালের মাঝামাঝি সময়ে Novell, AT&T-এর কাছ থেকে USL কিনে নেয় এবং Novell-এর ব্যবস্থাপনা কর্তৃপক্ষ এই বিরোধের সমাপ্তি চাইছিল। 1994 সালের ফেব্রুয়ারি মাসে মামলার নিষ্পত্তি হয়। বার্কলে ডিস্ট্রিবিউশনের প্রায় 18,000 ফাইলের মধ্যে তিনটি ফাইল সরিয়ে ফেলা হয় এবং প্রায় সত্তরটি ফাইলে USL-এর কপিরাইট নোটিশ যুক্ত করা হয়।
বার্কলে জুন 1994 সালে 4.4BSD-Lite প্রকাশ করে এবং এটি আইনত সম্পূর্ণ পরিষ্কার ছিল। FreeBSD এবং NetBSD—উভয়ই 1993 সালে বিতর্কিত Net/2 কোডের ওপর ভিত্তি করে প্রতিষ্ঠিত হয়েছিল—তাদের সিস্টেমগুলোকে এই নতুন ভিত্তির ওপর পুনরায় তৈরি করতে শুরু করে, যার জন্য 1994 সালের বাকি সময়ের বেশিরভাগ অংশ ব্যয় হয়। লিনাক্স 1.0 মার্চ 1994 সালে মুক্তি পায়, যা ছিল সেই পুনর্গঠনের মধ্যবর্তী সময়।
কেন Linux সার্ভারের বাজারে আধিপত্য বিস্তার করল, BSD কেন নয়?
আইনি লড়াই একটি প্রচলিত উত্তর এবং এটি উত্তরের একটি অংশ। 1992 সালের এপ্রিল থেকে 1994 সালের ফেব্রুয়ারির মধ্যে, কোনো পণ্যের জন্য ফ্রি Unix বেছে নেওয়ার সময় যে কাউকে AT&T-এর আইনজীবীদের করা মামলার ঝুঁকির বিপরীতে একজন ফিনিশ ছাত্রের তৈরি কার্নেলকে বিবেচনা করতে হতো, যার বিরুদ্ধে কেউ মামলা করতে পারত না। এটি ছিল সেই নির্দিষ্ট সময় যখন ওয়েব উদ্ভূত হয় এবং প্রথম Linux ডিস্ট্রিবিউশনগুলো আত্মপ্রকাশ করে: 1993 সালের জুলাইয়ে Slackware, আগস্টে Debian, এবং পরবর্তীতে Red Hat ও SUSE। Red Hat সেই শুরুর সুবিধাটিকে বাণিজ্যিক মানে রূপান্তর করে, এবং Red Hat Linux থেকে CentOS এবং পরবর্তীতে Rocky ও AlmaLinux-এর পথ ব্যাখ্যা করে কেন 1993 সালে প্রতিষ্ঠিত একটি ডিস্ট্রিবিউশন আজও অনেক ব্যবসায়িক সার্ভারে কী চলবে তা নির্ধারণ করে।
আদালতের মামলার মতোই আরও চারটি বিষয় গুরুত্বপূর্ণ ছিল।
- হার্ডওয়্যার। Linux তার কোডের প্রথম লাইন থেকেই সাধারণ 386 PC-কে লক্ষ্য করেছিল, এবং এই হার্ডওয়্যারটিই সস্তা হয়ে উঠেছিল। BSD-এর মূল মনোযোগ ছিল VAX এবং ওয়ার্কস্টেশনের দিকে, আর 386 পোর্টটি ছিল দুজন ব্যক্তির বাইরের একটি প্রচেষ্টা।
- লাইসেন্স। GPL অনুযায়ী, কোনো কোম্পানি যদি পরিবর্তিত কার্নেল সরবরাহ করে তবে তাদের সেই পরিবর্তনগুলো প্রকাশ করতে হয়, ফলে ভেন্ডরদের কাজগুলো একটি মূল ট্রিতেই ফিরে আসত। BSD লাইসেন্স কোম্পানিগুলোকে তাদের পরিবর্তনগুলো গোপন রাখার সুযোগ দেয় এবং কোম্পানিগুলো তা করেছিলও।
- উন্নয়নের মডেল। Torvalds অপরিচিতদের কাছ থেকে আসা প্যাচগুলো দ্রুত মার্জ করতেন এবং নিয়মিত রিলিজ দিতেন। 386BSD এত ধীরগতিতে রিলিজ দিত যে 1993 সালেই এর ব্যবহারকারীরা এটিকে দুইবার ফর্ক করে NetBSD এবং FreeBSD তৈরি করে, এবং 1995 সালে আবারও OpenBSD তৈরি হয়।
- গতিবেগ (Momentum)। ডেভেলপাররা সেখানে যান যেখানে অন্য ডেভেলপাররা আগে থেকেই আছেন, এবং যে সিস্টেমে ব্যবহারকারী বেশি, ড্রাইভারগুলোও সেই সিস্টেমের জন্যই লেখা হয়।
প্রযুক্তিগত প্রশ্নের ক্ষেত্রে সৎ হতে হবে। 1994 সালে BSD ছিল একটি অধিকতর সম্পন্ন সিস্টেম, যার একটি সুসংগত ভিত্তি, নথিভুক্ত ইতিহাস এবং নেটওয়ার্কিং কোড ছিল, যা আয়ত্ত করতে Linux-এর কয়েক বছর লেগেছিল। 1994 সালে কেউ Linux বেছে নেয়নি কারণ এটি ভালো ছিল। মানুষ এটি বেছে নিয়েছিল কারণ এটি সহজলভ্য ছিল, কোনো আইনি জটিলতা ছিল না, তাদের নিজেদের হার্ডওয়্যারে চলত এবং প্রতি সপ্তাহে উন্নত হচ্ছিল।
BSD যা ধরে রেখেছে এবং এটি বর্তমানে যেখানে চলে
BSD তার যাত্রা অব্যাহত রেখেছে। যা সে হারিয়েছে তা হলো ডিফল্ট অবস্থান। এর সবচেয়ে স্পষ্ট প্রমাণ আপনার নিজের মেশিনে রয়েছে: 1999 সালে OpenBSD প্রজেক্ট OpenSSH তৈরি করে, এবং বর্তমানে প্রায় প্রতিটি Linux সিস্টেমে এটিই SSH সার্ভার হিসেবে ব্যবহৃত হয়। এই কারণেই SSH কি সংক্রান্ত যে অভ্যাসগুলো শেখা জরুরি উভয় পরিবারের জন্যই অভিন্ন।
Netflix তাদের ভিডিও পরিবেশন করে FreeBSD অ্যাপ্লায়েন্স থেকে। Juniper রাউটারে ব্যবহৃত অপারেটিং সিস্টেম Junos-এর মূলে রয়েছে FreeBSD। PlayStation-এর সিস্টেম সফটওয়্যার FreeBSD থেকে উদ্ভূত। Apple-এর macOS এবং iOS-এর কার্নেল ও ইউজারল্যান্ডে BSD কোড বিদ্যমান। যে পারমিসিভ লাইসেন্সের কারণে BSD শেয়ার্ড সার্ভার ট্রি-এর অবস্থান হারিয়েছিল, সেই লাইসেন্সই BSD কোডকে এমন অনেক হার্ডওয়্যারের ভেতরে জায়গা করে দিয়েছে যা কখনোই এর নাম উল্লেখ করে না।
আপনি যদি আজ কোনো সিদ্ধান্ত নিতে চান, তবে প্রশ্নটি ঐতিহাসিক নয়, বরং ব্যবহারিক। সার্ভার হিসেবে Linux এবং FreeBSD-এর তুলনা মূলত ZFS, jails, ports tree এবং কতটুকু থার্ড-পার্টি সফটওয়্যার Linux-কে ভিত্তি হিসেবে ধরে নেয় তার ওপর নির্ভর করে। সার্ভার হিসেবে FreeBSD 15 একটি আধুনিক ও রক্ষণাবেক্ষণকৃত সিস্টেম, কোনো জাদুঘরের প্রদর্শনী নয়। আর Linux বনাম Windows Server একটি ভিন্ন প্রশ্ন, যার উত্তর আপনার অ্যাপ্লিকেশন স্ট্যাকের ওপর নির্ভর করে।
আজকের VPS-এ ব্যবহৃত 1969 সালের ডিজাইন
এর প্রতিটি প্রযুক্তি এটি ব্যবহারকারী অধিকাংশ মানুষের চেয়েও পুরনো।
- পাইপ (pipe)।
who | wc -lলগ-ইন করা ব্যবহারকারীদের সংখ্যা গণনা করে, কারণ 1973 সালের Version 3 Unix একটি প্রোগ্রামের আউটপুটকে অন্য প্রোগ্রামের ইনপুট হিসেবে ব্যবহারের সুবিধা দিয়েছিল। - ম্যানুয়াল সেকশন।
man 1 lsএবংman 5 crontab1971 সালের নভেম্বরের ম্যানুয়াল থেকে নেওয়া নাম্বারিং স্কিম ব্যবহার করে। - ফাইলসিস্টেম বিভাজন।
/usr-এর অস্তিত্বের কারণ হলো, 1971 সালে PDP-11-এর রুট ডিস্ক পূর্ণ হয়ে গিয়েছিল এবং ডেভেলপাররা ফাইলগুলোকে দ্বিতীয় ডিস্ক প্যাকে সরিয়ে নিয়েছিলেন। ডিস্ট্রিবিউশনগুলো এখন এই বিভাজন সরিয়ে ফেলেছে: Ubuntu 24.04 বা Debian 13-এls -ld /binচালালে আপনিusr/bin-এর একটি সিম্বলিক লিঙ্ক পাবেন। - সকেট কল। বার্কলি 1983 সালে 4.2BSD-এর জন্য এগুলো লিখেছিল এবং প্রতিটি নেটওয়ার্ক ডেমোন এখনও সেগুলোই ব্যবহার করে।
- POSIX। স্ট্যান্ডার্ড অনুযায়ী লেখা একটি
#!/bin/shস্ক্রিপ্ট Linux, FreeBSD, macOS এবং Solaris-এ কোনো পরিবর্তন ছাড়াই চলে, কারণ এই স্ট্যান্ডার্ডটিই তারা সবাই বাস্তবায়ন করেছে।
একটি উত্তরাধিকার এই দীর্ঘ যাত্রায় টিকে থাকেনি: Linux যে System V থেকে নেওয়া শেল-স্ক্রিপ্ট বুট সিকোয়েন্স ব্যবহার করত, তা এখন প্রায় সব ডিস্ট্রিবিউশন থেকেই বিলুপ্ত। আর systemd দিয়ে এটিকে প্রতিস্থাপনের বিতর্কটি ইউনিক্স-সদৃশ সিস্টেম কেমন হওয়া উচিত, তা নিয়ে সাম্প্রতিকতম লড়াই।
আপনি যখন একটি ভার্চুয়াল প্রাইভেট সার্ভার ভাড়া করে লগ-ইন করেন, তখন আপনি এমন একটি ইন্টারফেসে টাইপ করছেন যা 24 KB মেমোরি এবং পেটেন্ট বিভাগের প্রয়োজন মেটানোর জন্য ডিজাইন করা হয়েছিল। এটি টিকে আছে কারণ ইন্টারফেসটি প্রকাশিত হয়েছিল, বিতর্কিত হয়েছিল, স্ট্যান্ডার্ডাইজ করা হয়েছিল এবং পরবর্তীতে এমন মানুষদের দ্বারা নতুন করে তৈরি করা হয়েছিল, যাদের মূল কোড দেখার অনুমতি ছিল না।
FAQ
Linux-এ কি কোনো অরিজিনাল Unix কোড আছে?
না। Linus Torvalds 1991 সালে একদম শুরু থেকে kernel-টি লিখেছিলেন, যা AT&T-এর কোনো সোর্স কোডের পরিবর্তে POSIX ইন্টারফেসকে লক্ষ্য করে তৈরি করা হয়েছিল। Unix-এর উত্তরাধিকার এখানে কেবল একটি ডিজাইন এবং প্রকাশিত ইন্টারফেস হিসেবে বিদ্যমান: ফাইল, প্রসেস, পাইপ এবং সিস্টেম কলের নামগুলো। kernel-এর চারপাশের GNU টুলগুলোও 1983 সাল থেকে নতুন করে লেখা হয়েছিল। এই স্বাধীনতার কারণেই BSD কোড নিয়ে AT&T-এর করা মামলা Linux-কে কোনোভাবেই স্পর্শ করতে পারেনি।
BSD-এর বিরুদ্ধে AT&T-এর মামলাটি কবে হয়েছিল এবং এটি কি BSD-কে ধ্বংস করেছিল?
Unix-এর মালিকানাধীন AT&T-এর সাবসিডিয়ারি প্রতিষ্ঠান USL 1992 সালের এপ্রিলে BSDi-এর বিরুদ্ধে মামলা করে এবং পরবর্তীতে ইউনিভার্সিটি অফ ক্যালিফোর্নিয়াকেও বিবাদী হিসেবে যুক্ত করে। 1993 সালে বিচারক প্রাথমিক নিষেধাজ্ঞা প্রত্যাখ্যান করেন এবং জানান যে, পুরনো 32V কোডের ওপর কপিরাইট দাবিটি সম্ভবত অবৈধ। 1993 সালের মাঝামাঝি সময়ে Novell প্রতিষ্ঠানটি USL কিনে নেয় এবং 1994 সালের ফেব্রুয়ারিতে মামলাটি নিষ্পত্তি করে। এতে প্রায় 18,000 ফাইলের মধ্যে মাত্র তিনটি ফাইল সরিয়ে ফেলা হয় এবং প্রায় সত্তরটি ফাইলে নতুন কপিরাইট নোটিশ যুক্ত করা হয়। এটি BSD-কে ধ্বংস করেনি। তবে, যখন বিশ্ব একটি ফ্রি Unix বেছে নিচ্ছিল, সেই দুই বছর BSD-এর ব্যবহারকে এটি স্থবির করে দিয়েছিল।
BSD-এর পরিবর্তে Linux কেন সার্ভারের বাজারে আধিপত্য বিস্তার করল?
আইনি নিশ্চয়তা ছিল এর অন্যতম কারণ: 1992 এবং 1993 সাল জুড়ে Linux-এর বিরুদ্ধে কোনো মামলা ছিল না, কিন্তু BSD-এর বিরুদ্ধে মামলা ছিল। অন্যান্য কারণগুলোর মধ্যে ছিল প্রথম দিন থেকেই 386 আর্কিটেকচারকে লক্ষ্য করা, GPL-এর মাধ্যমে ভেন্ডরদের পরিবর্তনগুলোকে একটি একক ট্রিতে ফিরিয়ে আনা, এবং এমন একটি দ্রুত মার্জ প্রসেস যা কন্ট্রিবিউটরদের আগ্রহী রেখেছিল, যখন 386BSD তিনটি ভিন্ন ধারায় বিভক্ত হয়ে যাচ্ছিল। কারিগরি শ্রেষ্ঠত্ব এখানে নির্ণায়ক ফ্যাক্টর ছিল না, কারণ 1994 সালে BSD অনেক বেশি পূর্ণাঙ্গ সিস্টেম ছিল।
FreeBSD কি আজও ব্যবহার করার মতো?
হ্যাঁ, এবং সুনির্দিষ্ট কিছু কারণে: ZFS-এর সাথে বেস সিস্টেমের ইন্টিগ্রেশন, আইসোলেশন মডেল হিসেবে jails-এর পরিপক্কতা, একটি সুসংগত ইউনিট হিসেবে বেস সিস্টেমের উন্নয়ন এবং সঠিক ও নির্ভুল ডকুমেন্টেশন। এর জন্য যে মূল্য দিতে হয় তা হলো কম্প্যাটিবিলিটি বা সামঞ্জস্য বজায় রাখার কাজ, কারণ বেশিরভাগ থার্ড-পার্টি সার্ভার সফটওয়্যার, কন্টেইনার টুলিং এবং ভেন্ডর সাপোর্ট Linux-কে কেন্দ্র করে তৈরি। যখন FreeBSD-এর স্টোরেজ এবং নেটওয়ার্কিংয়ের সুবিধাগুলো এই বাড়তি পরিশ্রমের চেয়ে বেশি কার্যকর মনে হবে, তখনই এটি বেছে নিন; পুরনো ঐতিহ্যের প্রতি আনুগত্যের কারণে নয়।