গ্নু প্রকল্প

গ্নু প্রকল্প একটি ফ্রি সফটওয়্যার, সকলের সমন্বিত প্রকল্পের মাধ্যমে এটি পরিচালিত হয়। রিচার্ড স্টলম্যান এমআইটিতে থাকাকালীন সময়ে ২৭ সেপ্টেম্বর ১৯৮৩ সালে এই প্রকল্পের ঘোষণা দেন। ১৯৮৪ সালের জানুয়ারি মাসে এই প্রকল্পের মাধ্যমে গ্নু অপারেটিং সিস্টেম তৈরীর কাজ শুরু হয়। এর প্রথম ঘোষণায় প্রথমিক লক্ষ্য এবং উদ্দেশ্য সম্পর্কে বলা হয়েছে, ""a sufficient body of free software [...] to get along without any software that is not free.""
এই উদ্দেশ্য পূরণের লক্ষ্যে গ্নু প্রকল্পের মাধ্যমে GNU ("GNU" is a recursive acronym that stands for "GNU's Not Unix") নামের একটি অপারেটিং সিস্টেম তৈরীর কাজ শুরু করা হয়। একটি ফ্রি অপারেটিং সিস্টেম তৈরীর লক্ষ পূরণের সর্বশেষ অংশটি সম্পন্ন হয় ১৯৯২ সালে। গ্নু সিস্টেমের কার্নেল তৈরীর কাজ চলাকালে,
লিনাক্স কার্নেল নামের একটি অপারেটিং সিস্টেম কার্নেল গ্নু জিপিএল ২য় সংস্করণ লাইসেন্সের অধিনে প্রকাশ করা হয়।
গ্নু প্রকল্প বর্তমানে যে কাজ সমূহ করে থাকে, সেগুলো হল সফটওয়্যার ডেভলপমেন্ট, প্রচারণা, এবং নতুন সফটওয়্যার এবং অন্যান্য বিষয়সমূহ সকলের সামনে তুলে ধরা।
একেবারে শুরুর দিকে এই প্রকল্পে ছিল "ইম্যাকস নামে একটি টেক্সট এডিটর। Lisp নামের প্রোগ্রামিং ভাষায় এডিটরে কমান্ড ব্যবহার করতে হত, এর সাথে ছিল সোর্স লেভেলের ডিবাগার, একটি yacc-কম্পিটেবল পার্সার জেনারেটর এবং একটি লিংকার"। এর সাথে একটি কার্নেল ছিল, যদিও সেই সময় এটি পূর্ণাঙ্গ ছিল না। পরবর্তীতে কার্নেল এবং কম্পাইলার সম্পূর্ণ হওয়ার পর প্রোগ্রাম ডেভলপমেন্টের কাজে গ্নু ব্যবহার করা শুরু হয়। এর মূল লক্ষ্য ছিল ইউনিক্স সিস্টেমের মত বিভিন্ন কাজেএ ব্যবহার উপযোগী অ্যাপলিকেশন তৈরী করা। গ্নু ইউনিক্স সিস্টেমের অ্যাপলিকেশনসমূহ চালাতে পারতো যদিও এটি বিশেষ উল্লেখযোগ্য হিসাবে চিহ্নিত করা হত না। পরবর্তীতে গ্নুতে আরও বিশেষ ধরনের কিছু বৈশিষ্ট সংযোজন করা হয় এর মধ্যে রয়েছে বড় আকারের ফাইলের নাম ব্যবহার, ফাইল সংস্করণ নম্বর ব্যবহার, এবং ক্র্যাশ করে না এমন ফাইল সিস্টেম ইত্যাদি। গ্নু মেনিফেস্টো লেখা হয়েছিল অন্যদের সহায়তা পেতে এবং সকলে সম্পৃক্ততার সুযোগ সৃষ্টি করে দিতে। প্রোগ্রামারদের তাদের পছন্দের অংশে অংশগ্রহণের জন্য উৎসাহিত করা হত। যেকেউ এই প্রকল্পে অর্থ অনুদান, কম্পিউটার যন্ত্রাংশ দান অথবা নিজের অবসর সময়ে কোড লিখে সহায়তা করেছেন।
যদিও অধিকাংশ গ্নু প্রকল্পের ফলাফল কারিগরি ধরনের। কিন্তু এই প্রকল্পটি শুরু করা হয়েছিল একটি সামাজিক, নৈতিক এবং রাজনৈতিক আন্দোলন হিসাবে। সফটওয়্যার এবং লাইসেন্স প্রকাশের পাশাপাশি গ্নু প্রকল্প থেকে বেশ কিছু প্রকাশনা হয়েছে, যদিও এর অধিকাংশেরই লেখক ছিলেন রিচার্ড স্টলম্যান।
গ্নু ওয়েবসাইটে এর অধীনে পরিচালিত প্রকল্পসমূহের একটি তালিকা রয়েছে। এবং প্রতিটি প্রকল্পের ক্ষেত্রে নির্ধারিতভাবে বলা আছে ঠিক কোন ধরনের ডেভলপাররা এখানে কাজ করতে পারবেন। এই সকল প্রকল্পে কাজ করার যোগ্যতার নির্দিষ্ট কোন মাত্রা নির্ধারণ করা হয়নি এবং এক একটি প্রকল্পে এক এক ধরনের যোগ্যতা প্রয়োজন হয়, তবে প্রোগ্রামিং এর অভিজ্ঞতা রয়েছে এমন সকলকেই যোগদানের জন্য উৎসাহিত করা হয়।
গ্নু প্রকল্পে এমন সফটওয়্যার সমূহ ব্যবহার করা হয় যা কপি, সম্পাদনা, বা বিতরণের ক্ষেত্রে স্বাধীনতা দেয়া হয়েছে। এগুলোকে স্বাধীন সফটওয়্যার বলা হয় কারণ ব্যবহারকারীর প্রয়োজন অনুযায়ী এটি পরিবর্তন করার অনুমতি দেয়া হয়েছে। কম্পিউটার প্রোগ্রামাররা কীভাবে এই সফটওয়্যারটি পেতে পারে সেটি নির্ভর করে এর বিতরণ পদ্ধতির উপর। প্রোগ্রামার সফটওয়্যারটি তার কোনো বন্ধু বা ইন্টারনেট থেকে সংগ্রহ করে থাকতে পারেন, অথবা সফটওয়্যারটি কিনে থাকতে পারেন।
গ্নু সফটওয়্যারের ক্ষেত্রে চার ধরনের স্বাধীনতার নিশ্চিত করে থাকে:
কপিলেফ্ট প্রোগ্রামারদের সফটওয়্যারগুলো স্বাধীনভাবে ব্যবহার করার সুযোগ করে দেয়। কপিলেফ্ট আইনগত পদ্ধতিতে বৈধভাবে প্রত্যেককে সফটওয়্যার বা এর সোর্স কোড ব্যবহার, সম্পদনা, এবং পুনর্বিতরণ করার অধিকার দেয়া। তবে এক্ষেত্রে বিতরণের সময় অবশ্যই এই নিয়মগুলো/অধিকারগুলো দিতে হবে। নতুন তৈরী প্রোগ্রাম এবং সোর্সকোডও কপিলেফ্ট হতে হবে।
গ্নু প্রকল্পের মূল লক্ষ্য ছিল একটি ফ্রি সফটওয়্যার অপারেটিং সিস্টেম তৈরী করা। ১৯৯২ এর মধ্যমে গ্নু প্রকল্পের অধিনে অপারেটিং সিস্টেমের প্রধান প্রধান অংশগুলো তৈরী সম্পন্ন হয়েছিল। এবং কার্নেল গ্নু হার্ড এর কাজ চলছিল। ১৯৯১ সালে লিনুস তোরভাল্দ্‌স পৃথকভাবে লিনাক্স কার্নেল তৈরী করেন, যার মাধ্যমে এই শেষ শূন্যস্থানটিও পূরণ হয়ে যায়। লিনাক্স ০.১২ সংস্করণটি ১৯৯২ সালে জিপিএল লাইসেন্সের অধিনে প্রকাশ করা হয়েছিল। গ্নু এবং লিনাক্স এর সমন্বয়ে সর্বপ্রথম একটি পূর্ণাঙ্গ ফ্রি সফটওয়্যার অপারেটিং সিস্টেম প্রকাশ করা হয়। যদিও লিনাক্স গ্নু প্রকল্পের অংশ নয়, কিন্তু এটির ডেভলপমেন্টের কাজে GCC এবং আরও কিছু গ্নু প্রোগ্রামিং টুল ব্যবহার করা হয়েছে।