DEV Community

Cover image for ডকার শেখার আগে লিনাক্স বেসিকস: লিনাক্স কি আসলেই একটি অপারেটিং সিস্টেম? 🐧
Ragib Hasan
Ragib Hasan Subscriber

Posted on

ডকার শেখার আগে লিনাক্স বেসিকস: লিনাক্স কি আসলেই একটি অপারেটিং সিস্টেম? 🐧

ডকার (Docker) ইকোসিস্টেম নিয়ে কাজ করতে গেলে একটি বিষয় খুব দ্রুত পরিষ্কার হয়ে যায়— ডকার ইঞ্জিন মূলত লিনাক্স অপারেটিং সিস্টেমের উপর রান করে। যদি আপনার হোস্ট ওএস (Host OS) উইন্ডোজ বা ম্যাক হয়, তবে ডকার ডেস্কটপ ব্যাকএন্ডে একটি ভার্চুয়াল মেশিন বা লিনাক্স কার্নেল তৈরি করে তার উপর রান হয়।

এর মানে হলো, ডকারকে খুব ভালোভাবে বুঝতে হলে এর পেছনের ফাউন্ডেশন অর্থাৎ লিনাক্স (Linux) সম্পর্কে ক্লিয়ার ধারণা থাকা জরুরি। বিল্ডিংয়ের ফাউন্ডেশন যেমন মজবুত হওয়া দরকার, ডকার বা ডেভপস (DevOps) জার্নিতে লিনাক্স কার্নেলের আর্কিটেকচার বোঝাও ঠিক তেমনই গুরুত্বপূর্ণ।


লিনাক্স (Linux) কি একটি অপারেটিং সিস্টেম?

আমরা কথায় কথায় বলি "লিনাক্স অপারেটিং সিস্টেম", কিন্তু সত্যি বলতে লিনাক্স কখনোই কোনো অপারেটিং সিস্টেম ছিল না!

লিনাক্স হচ্ছে মূলত একটি কার্নেল (Kernel)। ১৯৯১ সালে 'লিনাস টরভল্ডস' (Linus Torvalds) নামক একজন কম্পিউটার সায়েন্টিস্ট এই কার্নেলটির কোড লেখেন এবং পরবর্তীতে এটিকে ওপেন-সোর্স করে দেন।

যেহেতু লিনাক্স শুধু একটি কার্নেল, তাই এটিকে ব্যবহার উপযোগী অপারেটিং সিস্টেমে রূপান্তর করতে আরও অনেক কিছুর প্রয়োজন হয়। আর তখনই আসে লিনাক্স ডিস্ট্রিবিউশন (Linux Distribution) বা সংক্ষেপে ডিস্ট্রো (Distro) এর ধারণা।


লিনাক্স ডিস্ট্রিবিউশন (Linux Distro) কী?

একটি সম্পূর্ণ বা কমপ্লিট অপারেটিং সিস্টেম তৈরি করতে একটি কোর কার্নেলের সাথে আরও বেশ কিছু কম্পোনেন্ট যুক্ত করতে হয়। একটি কমপ্লিট লিনাক্স ডিস্ট্রিবিউশনে সাধারণত নিচের ৬টি জিনিস থাকে:

  1. Linux Kernel: সিস্টেমের কোর বা হার্ট।
  2. GNU Utilities: সিস্টেমের ব্যাসিক কমান্ড ও টুলস।
  3. Package Manager: সফটওয়্যার ইনস্টল, আপডেট বা ডিলিট করার মাধ্যম (যেমন: apt, yum)।
  4. Init System: সিস্টেম বুট হওয়ার পর প্রসেস ম্যানেজ করার সিস্টেম।
  5. Desktop Environment: গ্রাফিক্যাল ইউজার ইন্টারফেস (GUI)।
  6. Other Tools & Configurations: অন্যান্য প্রয়োজনীয় টুলস এবং কনফিগারেশন ফাইল।

এই সবগুলো কম্পোনেন্ট যখন লিনাক্স কার্নেলের সাথে যুক্ত হয়, তখনই আমরা উবুন্টু (Ubuntu), ফেডোরা (Fedora) বা কালি লিনাক্সের (Kali Linux) মতো একটি কমপ্লিট অপারেটিং সিস্টেম বা ডিস্ট্রিবিউশন পাই।

নিচের ডায়াগ্রামটি দেখলে লিনাক্স ডিস্ট্রিবিউশনের আর্কিটেকচার আরও ক্লিয়ার হবে:

Modern Linux OS Architecture


Base System এবং Derived System

লিনাক্সের দুনিয়ায় অনেক ডিস্ট্রিবিউশন রয়েছে। এতগুলো ডিস্ট্রো কীভাবে এলো? এর পেছনে রয়েছে Base এবং Derived সিস্টেমের কনসেপ্ট।

বেস সিস্টেম (Base System):
যেসব অপারেটিং সিস্টেম একদম স্ক্র্যাচ থেকে কোর কার্নেল ও অন্যান্য কম্পোনেন্ট দিয়ে তৈরি করা হয়, সেগুলো হলো বেস সিস্টেম। যেমন:

  • Debian (ডেবিয়ান ফ্যামিলি)
  • Red Hat (রেড হ্যাট ফ্যামিলি)
  • Alpine (অ্যালপাইন ফ্যামিলি)
  • Arch Linux

ডিরাইভড সিস্টেম (Derived System):
যখন একটি স্টেবল বেস সিস্টেমকে ভিত্তি করে নতুন কোনো অপারেটিং সিস্টেম বানানো হয়, তখন তাকে ডিরাইভড সিস্টেম বলে।

  • যেমন, Debian হলো একটি বেস সিস্টেম। এই ডেবিয়ানের প্যাকেজ ম্যানেজার ও ইউটিলিটি ব্যবহার করে এবং নতুন ডেস্কটপ এনভায়রনমেন্ট ও কনফিগারেশন যোগ করে তৈরি করা হয়েছে Ubuntu
  • আবার Ubuntu-কে বেস করে তৈরি করা হয়েছে Linux Mint, Pop!_OS, Zorin OS ইত্যাদি।

এ কারণেই যারা উবুন্টু ব্যবহার করেন, তারা সফটওয়্যার ইনস্টলের জন্য apt বা apt-get প্যাকেজ ম্যানেজার ব্যবহার করেন, যা মূলত ডেবিয়ানের। অন্যদিকে Red Hat ফ্যামিলির ডিস্ট্রোগুলোতে (যেমন: CentOS, Fedora) yum বা rpm কাজ করে। আবার Alpine লিনাক্সে কাজ করে apk এবং Arch লিনাক্সে pacman


শেষ কথা

লিনাক্সের এই বিষয়গুলো (যেমন: প্যাকেজ ম্যানেজার কী, ইনভায়রনমেন্ট কীভাবে কাজ করে) গভীরভাবে বুঝতে পারলে ডকার শেখা পানির মতো সহজ হয়ে যাবে। ডকারফাইল (Dockerfile) লেখা বা কন্টেইনার ইমেজ তৈরি করার সময় লিনাক্সের এই বেসিক জ্ঞানগুলোই আপনাকে ম্যাজিকের মতো সাহায্য করবে!

Top comments (0)