লিনাক্স এর মূলে রয়েছে এর অপারেটিং সিস্টেম কার্নেল । আমাদের নিজেদের অজান্তেই কার্নেল আমাদের ফোন, ল্যাপটপ, কম্পিউটার, গাড়িসহ অনেক ক্ষেত্রেই কাজ করে যাচ্ছে । কার্নেল নিয়ে আমাদের জানাতে আজ তৃপ্ত আফসিন কথা বলছে লিনাক্স কার্নেল এবং লিনাক্স ডেভেলপমেন্ট নিয়ে…
সবাইকে “লিনাক্স ইস্কুল” পর্ব – ২ এ স্বাগতম । যদি আপনি “লিনাক্স ইস্কুল পর্ব – ১” পড়ে না থাকেন, তবে “লিনাক্স ইস্কুল পর্ব – ১” আগে পড়ে আসার জন্য অনুরধ করা হচ্ছে।
কার্নেল(Kernel) শব্দটা হয়তো অনেকেই প্রথম শুনছেন, কিন্তু কার্নেল এর উৎপত্তি অপারেটিং সিস্টেম(OS) এর আদি থেকেই। তাহলে কেন আমরা কার্নেল সম্পর্কে এত অনবিহিত? কারণ হিসেবে বলা যায় কার্নেল আমারা দেখি না, যেভাবে আমারা সচরাচর কম্পিউটার প্রোগ্রাম গুলো দেখতে পারি।কারেনলও এক প্রকার কম্পিউটার প্রোগ্রাম কিন্তু এর অবস্থান আমাদের লোক-চক্ষুর অগোচরে। তাহলে আর কথা না বারিয়ে কার্নেল কি সেটা বলি…
কার্নেল(Kernel) কি ?
কার্নেল হচ্ছে কোন অপারেটিং সিস্টেম(OS) এর Core বা কেন্দ্রিকা। এর অপর নাম নিউক্লিয়াস(Nucleus)। নিউক্লিয়াস যেমন কোন জীব কোষের সার্বিক নিয়ন্ত্রণে নিয়োজিত , ঠিক তেমনি ভাবেই কারেনলও একটি অপারেটিং সিস্টেম(OS) এর সার্বিক কাজে নিয়জিত। কার্নেল হচ্ছে Software এবং Hardware এর মধ্যকার সেতুবন্ধন বা ব্রিজ। কার্নেল Software থেকে প্রেরিত সংকেত Hardware এর নিকট পৌঁছে দেয় আবার Hardware হতে তা Software এর নিকট নিয়ে আসে।
কার্নেল এর কাজসমূহ –
১। ইনপুট এবং অউতপুট(I/O) এর কাজ নিয়ন্ত্রণ।
২। কম্পিউটার মেমোরি(RAM) এর ববস্থাপনা ।
৩। Startup Program সমূহ সম্পর্কে কম্পিউটার কে জানানো।
৪। Device Driver এর ব্যবস্থাপনা ।
৫। Software এবং Hardware এর মধ্যে সমন্বয় সাধন।
# Windows OS এ ব্যবহারিত কার্নেলসমূহ – MS DOS, Windows RT, Windows NT
# Mac OS এ ব্যবহারিত কার্নেলসমূহ – Hybrid (XNU),OpenStep, Mach.
# Linux এ ব্যবহারিত কার্নেল – 1 – 4.x(২০১৬ পর্যন্ত)
লিনাক্স কার্নেল(Kernel)
অন্যান্য অপারেটিং সিস্টেম(OS) এর কার্নেল এর মত Linux কার্নেল ও এক প্রকার কার্নেল। কিন্তু এর বিশেষত্ব হচ্ছে এটি একটি Opensource প্রোজেক্ট। অন্যান্য অপারেটিং সিস্টেম(OS) এর কার্নেলসমূহ মূলত “Close Source” হয়। যা আপনি চাইলেই আপনার কোন কাজে ব্যবহার করতে পারবেন না, এমনকি এর কোন কিছু কপিও করতে পারবেন না।আর এই দিক থেকেই লিনাক্স কার্নেল বাতিক্রম। আপনার প্রয়োজন অনুসারে লিনাক্স কার্নেল আপনি ব্যাবহার করতে সক্ষম।
লিনাক্স কার্নেল এর কিছু বৈশিষ্ট্য –
১।পরিবর্তনযোগ্যতা-লিনুক্স কার্নেল খুবই পরিবর্তনযোগ্য । লিনাক্স কার্নেল অনেকটা “Lego Blocks” এর মতো। প্রতিটা অংশ একক ভাবে কাজে লাগানো যায় এবং সমন্বিত ভাবে কোন নির্দিষ্ট রূপ দেওয়া যায়। এর ফলে লিনাক্স এ প্রোগ্রাম গুলো হার্ডওয়্যার এর সাথে খুবই ওতপ্রোতভাবে ভাবে জড়িত হতে পারে।
২। মূল্য – যেহেতু লিনাক্স কার্নেল একটি Opensource প্রোজেক্ট, তাই ইহা বিনামূল্যেই পাওয়া যায়।যেকেউই Kernel.org থেকে লিনাক্স কার্নেল সংগ্রহ করতে পারে । অন্যান্য অপারেটিং সিস্টেম(OS) এর কার্নেল ডাউনলোড তো দূরের কথা, দেখতে পারাই যায় না।তাই এদিক থেকে লিনাক্স কার্নেল অতুলনীয়।
৩। হার্ডওয়্যার সাপোর্ট (Hardware Support) – প্রায় সব হার্ডওয়্যার ডিভাইসই লিনাক্স এর সাথে কোন প্রকার ড্রাইভার(Driver) ইন্সটল করা ছাড়াই চলতে সক্ষম*। এর কারণ লিনাক্স কার্নেলই এইসব ড্রাইভার(Driver) আগে থেকেই Pre-installed থাকে। তাই Windows এর মতো ড্রাইভার(Driver) Installation এর ঝামেলা নেই।
*কিছু কিছু ড্রাইভার(Driver) Installation এর প্রয়োজন হতে পারে। যেমনঃ খুব নতুন হার্ডওয়্যার(GPU, CPU, Wi-Fi) , তবে লিনাক্স এর কার্নেল আপডেট এসব নতুন হার্ডওয়্যার এর জন্য সাপোর্ট আনা হয়।
৪। নিরাপত্তা – লিনাক্স কার্নেল এর নিরাপত্তা বাবস্থা অতুলনীয়। যেহেতু, লিনাক্স কার্নেল এর “Source Code” উন্মুক্ত তাই, কোন নিরাপত্তামূলক দুর্বলতা ধরা পরলেই তা নিমিষেই সমাধান হয়ে যায়। এছাড়াও লিনাক্স কার্নেল এর কিছু একক বৈশিষ্ট্যএর কারণে লিনাক্স কার্নেল আর বেশি নিরাপদ।
লিনাক্স ডেভেলপমেন্ট প্রক্রিয়া
লিনাক্স ডেভেলপমেন্ট সম্পর্কে জানতে হলে আগে Opensource Software সম্পর্কে জানতে হবে।
Opensource Software বা মুক্ত সফটওয়্যার বলতে এমন সফটওয়ার কে নির্দেশ করে যাতে প্রোগ্রাম এর মালিক বাদেও অন্যান্য মানুষ উক্ত সফটওয়্যার এর ডেভেলপমেন্ট এ অংশগ্রহণ করতে পারে, অর্থাৎ, তার সোর্সকোড থেকে শুরু করে প্রোগ্রাম ডকুমেন্টটেসোন পর্যন্ত সকল বিষয়ে সাধারণ মানুষ অংশ নিতে পারবে।Linus Torvalds এই ধারনা এর প্রবক্তা।
উল্লেখ্য লিনাক্স হচ্ছে সর্বাপেক্ষা বড় Opensource সফটওয়্যার বা প্রোজেক্ট।
যেভাবে লিনাক্স কার্নেল তৈরি হয় –
১। লিনাক্স কার্নেল এ অংশগ্রহণকৃত ডেভেলপার এর সংখ্যা কয়েক লাখ। লিনাক্স কার্নেল এর প্রীতিটি পরিবর্তনকে “প্যাচ(Patch)” বলা হয়।“প্যাচ(Patch)” এ যা যা থাকতে পারে –
# নিরাপত্তামূলক দুর্বলতা সংশোধন।
# নতুন হার্ডওয়্যার এর জন্য সাপোর্ট।
# কোন সমস্যা(Bug) সমাধান।
# Performance Improvement।
#নতুন Feature যোগ করা।
………… ইত্যাদি।
২।ডেভেলপাররা E-Mail এর মাধ্যমে একজন “Senior Linux Kernel Developer” এর নিকট তাদের “প্যাচ(Patch)” Submit করেন।
৩।এরপর নির্বাচিত “প্যাচ(Patch)” টি কে একজন “Maintainer” আরো গভীর ভাবে পর্যবেক্ষণ করবেন।
৪।এইধাপ অতিক্রম করলেই “প্যাচ(Patch)” টি লিনাক্স “Creator” নিকট পৌঁছাবে।
৫। সবশেষে Linus Torvalds “প্যাচ(Patch)” টি গ্রহণ করলে তা পরবর্তী লিনাক্স কার্নেলে যুক্ত হবে।
{উল্লেখ্য Linus Torvalds এর অনুমুতি ছাড়া কোন “প্যাচ(Patch)”ই লিনাক্স কার্নেলে যুক্ত হতে পারবে না}
মূলত এভাবেই লিনাক্স কার্নেল তৈরি হয়, তবে লিনাক্স কার্নেলকে এরপর যেকেউই তার ইচ্ছা অনুযায়ী পরিবর্তন করতে পারবে।
যাদের এতো কথা পড়তে ভালো লাগে না, তারা নিচের ভিডিও টি দেখতে পারেন –
“লিনাক্স ইস্কুল” পর্ব – ২ এখানেই সমাপ্ত হচ্ছে। লিনাক্স Distribution সম্পর্কে “লিনাক্স ইস্কুল” পর্ব – ৩ এ আলোচনা করা হবে। সবাইকে পড়ার আমন্ত্রণ রইলো।
// আমার ভুল-ভ্রান্তি ক্ষমা সুন্দর দৃষ্টিতে দেখার জন্য অনুরোধ রইলো//
Tripto Afsin is a student of Shaheed Police Smrity College. Chat with this fellow blogger on https://www.facebook.com/Tripto.Afsin or https://plus.google.com/u/0/+TriptoAfsin/posts