Showing posts with label Linux Basics. Show all posts
Showing posts with label Linux Basics. Show all posts

লিনাক্স – অপারেটিং সিস্টেম হিসেবে একটি পর্যালোচনা-২

আজকে রেইড (RAID) কনসেপ্ট নিয়ে বলা যাক। মিশন ক্রিটিক্যাল ইনফরমেশন স্টোরেজ এর ক্ষেত্রে রেইড ডিভাইসের জুড়ি নেই। রেইড কনসেপ্ট মূলত আর কিছুই নয়- এটি একটি কম্পিউটারের সিপিইউতে একটি হার্ডডিস্ক এর বদলে অনেকগুলি হার্ডডিস্কের সমাহার বলতে পারেন- এখানে মূল হার্ডডিস্ক যেটিতে অপারেটিং সিস্টেম থাকে সেটি হুবহু অন্য হার্ডডিস্কগুলিতে কিছুক্ষন পরপর কপি হতে থাকে। এ কপি করার কাজটি করে থাকে রেইড ডিভাইস কন্ট্রোলার।

উইকি থেকে -

RAID combines two or more physical hard disks into a single logical unit using special hardware or software.
অর্থাৎ রেইড দুটি বা তার অধিক হার্ডডিস্ককে বিশেষ সফটওয়্যার বা হার্ডওয়্যার এর সাহায্যে একটি লজিক্যাল ইউনিটে রূপান্তরিত করে থাকে।

বলতে পারেন - কেন রেইড দরকার?

যারা কোন আর্থিক প্রতিষ্ঠানে কাজ করে থাকেন তাদের কাছে এর গুরুত্ব বুঝিয়ে বলার দরকার হয় না। ব্যাংক, বীমা ও অন্যান্য আর্থিক প্রতিষ্ঠানের ডাটা হচ্ছে এর প্রানভোমরা স্বরূপ। সামান্য কয়েকটি ডাটা হারিয়ে গেলে প্রভূত আর্থিক ক্ষতি হতে পারে এ প্রতিষ্ঠানসমূহে। সুতরাং বুঝতেই পারছেন কেন রেইড তাদের জন্য দরকার।

ধরুন - গ্রামীন ফোনের সার্ভারে হঠাৎ করে ডাটাগুলি হারপিক ওয়াশ হয়ে গেল। এখন আপনার মোবাইলে থাকা হাজার খানেক টাকার ব্যালেন্স দেখলেন নিমেষেই গায়েব। তাহলে গ্রামীন কি ব্যবসা চালাতে পারবে? এরকম প্রতিষ্ঠান তাই কখনোই আপনার সাধের উইন্ডোজ ব্যবহার করবে না। বরং তারা সিকিউরড কোন সিস্টেম যেমনঃ সোলারিস, লিনাক্স বা তার কোন ভ্যারিয়েন্ট, বিএসডি ইত্যাদি ব্যবহার করে থাকে তাদের তথ্যের নিরাপত্তার জন্য। আপনি যেভাবে উইন্ডোজ রি-ইনস্টল করেন ও রকম রি-ইনস্টল করলে প্রতিবারই আপনার মোবাইলে থাকা ব্যালেন্স যে কোথায় যেত তা আর বলার অপেক্ষা রাখে না। ভাগ্যিস তারা উইন্ডোজ ব্যবহার করে না! ::U::

রেইড ডিভাইস ৫/১০/১৫ মিনিট পরপর স্বয়ংক্রিয়ভাবে মূল হার্ডডিস্কের কপি অন্যান্য হার্ডডিস্কে হুবহু লিখতে থাকে। ফলে মূল হার্ডডিস্ক ফেইল করলে সাথে সাথে অন্য হার্ডডিস্ককে সচল করে কাজ অব্যাহত রাখা সম্ভব। এটি কিন্তু ব্যাকআপের মত নয়। বরং লো-লেভেলে বাইট বাই বাইট তথ্য রেপ্লিকা/কপি করতে থাকে অন্যান্য হার্ডডিস্কগুলিতে। তাই ডাটা হারানোর ঝুকি এখানে অনেক কম।

বেশ কয়েক ধরনের রেইড আছে- যেগুলিকে রেইড ০ , রেইড ১, রেইড২ - রেইড ৬ পর্যন্ত গননা করা হয়। আপনি যে ডেস্কটপ ও.এস. (এক্সপি/সেভেন) ব্যবহার করেন তাতে মাত্র একটি রেইড সাপোর্ট করে (রেইড ০)। আর উইন্ডোজ সার্ভার সাপোর্ট করে RAID 0, RAID 1, and RAID 5। তবে এজন্য আপনাকে পয়সা গুনতে হবে ভাই। আলাদা ও.এস. কেনার ঝক্কি বলে কথা।

আর ফ্রি লিনাক্সের কথা শুনবেন। ফ্রি তো এজন্য মান খুব খারাপ ;):: - তাই এতে সাপোর্ট করে RAID 0, RAID 1, RAID 4, RAID 5, RAID 6। :ttt:

উইকি থেকে-
# Linux supports RAID 0, RAID 1, RAID 4, RAID 5, RAID 6 and all layerings
# Microsoft's server operating systems support 3 RAID levels; RAID 0, RAID 1, and RAID 5.


সব শেষে বলা যায়- লিনাক্স মানে শুধু গেম খেলা বা গান/মুভি চালানো নয় বরং এটি কম্পিউটার জগতের অনেক অজানা দুয়ার সবার সামনে উম্মুক্ত করে দেয়। সবাইকে হ্যাপি লিনাক্সিং...

লিনাক্স – অপারেটিং সিস্টেম হিসেবে একটি পর্যালোচনা-১

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

প্রথমেই আসুন একজন সাধারন ব্যবহারকারী কি কি কাজে কম্পিউটার ব্যবহার করেন তার একটি লিস্ট তৈরী করি।

১. সাধারন এপ্লিকেশন চালানো- যেমনঃ এম.এস.ওয়ার্ড, এক্সেল, পাওয়ার পয়েন্ট
২. মাল্টিমিডিয়া সংক্রান্ত বিনোদন উপভোগ করা - যেমনঃ গান শোনা, মুভি দেখা, গেম খেলা
৩. নেটওয়ার্কিং ও ইন্টারনেট সংক্রান্ত কাজ করা- ফাইল ও ফোল্ডার শেয়ারিং করা, ব্রাউজ করা, ডাউনলোড করা, ইমেইল করা ইত্যাদি।

একটু অগ্রসর ব্যবহারকারীদের তালিকায় থাকে আরো কিছু সফটওয়্যার যেমনঃ এডোবি ফটোশপ, ইলাস্ট্রেটর, মায়া, এডোবি প্রিমিয়ার, অটোক্যাড ইত্যাদি বিশেষায়িত সফটওয়্যার সমূহ।

উপরে যে তালিকাটি দিয়েছি তা মূলত একজন সাধারন ব্যবহারকারীর কথা মাথায় রেখেই দেয়া হয়েছে।

অপারেটিং সিস্টেম মূলতঃ পুরো কম্পিউটারকে নিয়ন্ত্রন করে থাকে। তাই শুধুমাত্র উপরের তালিকাটি যে এটির জন্য যথেষ্ট নয় সেটি বোঝা যে কারো পক্ষেই সহজ।

পৃথিবীতে যাবতীয় টেকনোলজির দুটি দিকের ব্যবহারকারী রয়েছে-
১. একদল উক্ত টেকনোলজি থেকে সুবিধা গ্রহন করে থাকে
২. আরেকদল উক্ত টেকনোলজিকে উত্তরোত্তর সমৃদ্ধ করতে থাকে- অর্থাৎ উদ্ভাবন, গবেষনা, পরিবর্তন, পরিবর্ধন এ ধরনের কাজ করে থাকে এ দলটি।

উদাহরনস্বরূপ- ওষুধের কথাই ধরুন। ওষুধ কোন গবেষক তৈরীর পর তা মানুষের ব্যবহার উপযোগী হলে সবার জন্য বাজারে ছাড়া হয়ে থাকে। তারপর রোগাক্রান্ত মানুষ তার সুস্থতার জন্য সেটি কিনে তার প্রয়োজন মিটিয়ে থাকে।

এখন উপরোক্ত ওষুধ যদি তৈরীই না হত তাহলে মানুষ কি তা থেকে উপকৃত হতে পারতো? আবার যদি এ ওষুধ তৈরী করা ও গবেষনার কাজ যদি একটি কোম্পানির হাতে কুক্ষিগত থাকে তবে মানুষ কি ঐ কোম্পানির কাছে অসহায় হয়ে যাবে না? আবার ওষুধ তৈরীর ফর্মূলাটি যদি সবার জন্য উম্মুক্ত না থাকে তবে তা একটি ভয়ের কারন ও বটে। কারন নিত্য নতুন ভাইরাস, ব্যাকটেরিয়ার সামনে উক্ত ওষুধটি তার কর্মক্ষমতা হারিয়ে ফেলবে। তাই ওষুধের ফর্মূলাটি সবার সামনে উম্মুক্ত থাকলে তা নিয়ে গবেষনা করা, পরিবর্তন করা, পরিবর্ধন করা অনেক সহজ হবে।

আবার ভাবুন- এ সমস্ত কষ্টকর কাজ যারা করেন তাদেরকে যদি অন্যরা উপহাস করেন যে তোমরা এ ধরনের ফালতু কাজে সময় নষ্ট করো কেন? বাজারে ভাল পন্য তো রয়েছে। সেগুলিই তো যথেষ্ট।

উপরের কথাগুলি বলার কারন হচ্ছে - উম্মুক্ত সোর্স এর মান যেমনই হোক না কেন তাকে নিয়ে উপহাস করার কিছু নেই। যারা বিশ্ববিদ্যালয় পর্যায়ে গবেষনা করবেন তাদের জন্য এর কোন বিকল্প নেই। ক্লোজড সোর্স প্রোগ্রামের কোড তারা কিভাবে দেখবেন ও শিখবেন? ডাটাবেজ সম্পর্কে ধারনা নিতে হলে ওরাকল এর চেয়ে মাইএসকিউএল কি বেশী ভাল নয়?

এবার বলা যাক অপারেটিং সিস্টেমের বহুমাত্রিক ব্যবহার নিয়ে। উপরে বর্নিত সাধারন ব্যবহারকারীদের কাজ ছাড়াও কম্পিউটার বহু ক্ষেত্রে ব্যবহার করা হয়ে থাকে। যেমনঃ

১. প্রোগ্রামিং করা- বিভিন্ন টুলস যেমন- সি++, ডেলফি, জাভা, পাইথন ইত্যাদে ল্যাঙ্গুয়েজ দিয়ে প্রোগ্রামিং সমস্যা সমাধান।
২. ওয়েব সার্ভার সেট আপ করা
৩. নেটওয়ার্ক সেবা প্রদান
৪. সিকিউরড রিমোট এ্যাডমিনিস্ট্রেশন
৫. শক্তিশালী রাউটার ও গেটওয়ে তৈরী
৬. ডাটাবেজ সার্ভার সেটআপকরন
৭. এফটিপি সার্ভার সেটআপ
৮. ইমেইল সার্ভার সেটআপ
৯. মেইল ফিল্টারিং বা স্প্যাম নিয়ন্ত্রন
১০. ব্যাকআপ সার্ভার সিস্টেম
১১. ভার্চ্যুয়ালাইজেশন
১২. সুপার কম্পিউটার সিস্টেম তৈরী বা ক্লাস্টারিং
১৩. ডেটা সুরক্ষায় একাধিক হার্ডডিস্কের সমন্বয়ে রেইড ডিভাইস তৈরী

এখন কেউ যদি বলেন উপরোক্ত কাজগুলি গান শোনা আর গেম খেলা থেকেও কম গুরুত্বপূর্ন তাহলে আসুন তাদের জন্য কিছু উদাহরন দেয়া যাক।

গেম খেলবেন ভাল কথা কিন্তু ওয়েবসাইট ব্রাউজ না করলে কি চলবে আপনার? যদি না চলে তবে জেনে রাখুন পৃথিবীতে বেশীরভাগ ওয়েব সার্ভার চলে লিনাক্সে। অর্থাৎ লিনাক্স না থাকলে বিশ্বের অধিকাংশ আকর্ষনীয় ওয়েবসাইট আপনি পেতেন না। আর এ ওয়েব সার্ভার নিজের জন্য বানাতে চাইলে লিনাক্স কিন্তু আপনাকে শিখতেই হবে গেম খেলার পাশাপাশি। আপনার এক্সপি/ভিস্তা/সেভেন দিয়ে কি এরকম শক্তিশালী ভাইরাস প্রুফ ওয়েব সার্ভার বানাতে পারবেন যা মাসের পর মাস রিবুট ছাড়াই চলতে সক্ষম।

একটি দামী সিসকো রাউটার নিজের জন্য ফ্রিতে পেতে চান- তাহলে লিনাক্স ইনস্টল করে ফেলুন আর নিজের জন্য রাউটার কনফিগার করে নিন।

আরেকটি কথা- এগুলি লিনাক্সে ফ্রি পাওয়া যায় যা আপনাকে টাকা দিয়ে কিনতে হতো। :v

মেইল তো সারাজীবন ইয়াহু/জিমেইল দিয়ে করেছেন। নিজের কোম্পানির জন্য এরকম সার্ভার তৈরী করতে হলে কি করবেন? আপনার ভিস্তা/সেভেন এগুলি কিন্তু পারে না। এজন্য মাইক্রোসফট আপনার কাছ থেকে আলাদা পয়সা নেবে ভাই। তার চেয়ে লিনাক্স দিয়ে করে ফেলুন। কোন খরচ হওয়ার ভয় নেই। :C

এবার আসুন সুপার কম্পিউটার এর কথা বলি। সুপার কম্পিউটার তৈরী হয় কিভাবে তা কি জানেন? অনেকগুলি সিপিইউ একসাথে দ্রুতগতির নেটওয়ার্ক এর মাধ্যমে যুক্ত হয়ে তৈরী হয় সুপার কম্পিউটার। :thumb: ঘরে বসে তৈরি করতে হলে ভিস্তা/সেভেন দিয়ে কিন্তু কিচ্ছু হবে না। :-((( মাইক্রোসফট এর কাছ থেকে আলাদা ও.এস. কিনুন অথবা লিনাক্স নিয়ে বসে যান পরীক্ষা নিরীক্ষা চালাতে। চুপি চুপি একটি তথ্য- বিশ্বের প্রথম ৫০০ সুপার কম্পিউটার এর প্রায় ৯০% চলে লিনাক্সে। উইন্ডোজ এখানে লিনাক্সের ধারে কাছে ও নেই দেখে মন খারাপ হল নাকি? ভাই আপনার উইন্ডোজ ভাল হলে সুপার কম্পিউটার এর পরিসংখ্যান তো উল্টো হওয়ার কথা। আরও শুনে রাখুন- সুপার কম্পিউটার গুলিই আপনাকে আবহাওয়ার পরিসংখ্যান দেয়, মহাকাশে কৃত্রিম উপগ্রহ পাঠায়, চাদে রকেট পাঠায়, বোয়িং বিমান তৈরী করে স্বয়ংক্রিয়ভাবে- আরও কত কি যা বলে শেষ করা যাবে না স্বল্প পরিসরে।

তবে উপরের স্বল্প কথাগুলি থেকে ভাববেন না লিনাক্সে গেম খেলা, চিঠি লেখা বা হিসাব করার মত কাজ করা যায় না। লিনাক্সের ও রয়েছে বেশ কিছু চমৎকার প্রোগ্রাম যেমন- রাইটার, ক্যাল্ক, জিম্প।

লিনাক্সের তিন বৃহৎ শক্তি

লিনাক্স পরিমন্ডলে রয়েছে তিন বৃহৎ শক্তি। বৃহৎ শক্তির ডিস্ট্রিবিউশন তিনটি সময়ের পরীক্ষায় উত্তীর্ন এবং অন্য ডিস্ট্রোগুলির অধিকাংশই তাদের থেকে বিকশিত হয়েছে। কি কি বৈশিষ্ট্য তাদেরকে অনন্য করেছে এবং কিভাবে তারা লিনাক্স জগতকে একটি সুস্পষ্ট রূপ দান করেছে তা আমাদের আজকের আলোচ্য বিষয়।
লিনাক্সের ইকোসিস্টেম একটি জটিল বিষয়। একদিকে অন্যের সম্পাদন কৃত কাজ থেকে সবাই যেমন উপকৃত হচ্ছে তেমনি অন্যদিকে ডিস্ট্রিবিউশন এবং কমিউনিটি সমূহের মাঝে প্রায়ই বিদ্বেষ এবং দ্বন্ধ দেখা দেয়। অনেকে প্রায়ই অভিযোগ করে থাকেন লিনাক্স জগতে অতি বেশী মাত্রায় পছন্দ বিদ্যমান এবং যদি একটি বা দুটি থাকত তবে আমরা অনেক ভাল থাকতাম। তবে, কোনটিই মূল সত্য থেকে খুব বেশী দূরে নয়।

লিনাক্স ডিস্ট্রিবিউশন সমূহের বহুমাত্রিকতার একটি সুস্পষ্ট কারন রয়েছে। তাদের অস্তিত্বের কারন হচ্ছে এ গ্রহে সবার প্রয়োজনকে মেটানো কোন একক ডিস্ট্রিবিউশনের পক্ষে সম্ভব নয়। বিভিন্ন মানুষ তাদের কাজ সম্পাদনে জন্য বিভিন্ন পদ্ধতি পছন্দ করে থাকেন। শুধু তাই নয়, যে ডিস্ট্রিবিউশনটি সার্ভারের জন্য উপযুক্ত সেটি নিশ্চয়ই কোন ল্যাপটপের সাথে মানানসই হবে না। তাই হাজারো রকম ডিস্ট্রো আমাদের জন্য নিঃসন্দেহে এক আশীর্বাদ স্বরূপ।

শুরুর কথা

অবশ্যই ব্যাপারটি শুরুতে এমন ছিল না। গানূহ এর যেমন একটি সূচনা রয়েছে, তেমনি রয়েছে লিনাক্সের এবং রয়েছে প্রথম ডিস্ট্রিবিউশনের ও একটি সূচনাকাল।

হ্যাঁ ঠিক, প্রথম অফিসিয়াল ডিস্ট্রিবিউশনটি ছিল এমসিসি ইনটেরিম(MCC Interim), যা ফেব্রুয়ারি ১৯৯২ তে প্রকাশিত হয়। এটিই ছিল প্রথম অফিসিয়াল ডিস্ট্রিবিউশন যা কোন কম্পিউটারে ইনস্টল করা যেত এবং লিনাক্স কার্নেল ও গানূহ ইউজারল্যান্ডসহ বের হয়। একই বছরে একটি নতুন এবং সে সময়কালের জনপ্রিয় একটি ডিস্ট্রিবিউশন তৈরী হয় যাকে আমরা সফটল্যান্ডিং লিনাক্স সিস্টেম বা সংক্ষেপে SLS হিসেবে জানি যেটি পরবর্তীকালে স্ল্যাকওয়ারের জন্ম দেয় যা প্যাট্রিক ভলকার্ডিং কর্তৃক তৈরী। বর্তমান পর্যন্ত স্ল্যাকওয়ার-ই হচ্ছে টিকে থাকা লিনাক্স ডিস্ট্রিবিউশন সমূহের মধ্যে প্রাচীনতম।
স্ল্যাকওয়ার যে সময় বিকশিত হয় সে সময়টাতে প্রায় অর্ধ ডজন ডিস্ট্রিবিউশন বিদ্যমান ছিল। তবে কয়েকমাস পর, আগস্ট ১৬, ১৯৯৩ এ, সব থেকে গুরুত্বপূর্ন ডিস্ট্রোর একটি অস্তিত্বলাভ করে, যাকে আমরা আজও স্বাধীনভাবে উন্নয়নকৃত লিনাক্সসমূহের মধ্যে প্রাচীনতম ডিস্ট্রিবিশনের মুকটধারী বলে জানি। হ্যাঁ ঠিক ধরেছেন - ডেবিয়ান। ডেবিয়ান পূর্বের করা কোন কাজের অংশবিশেষ/শাখা ছিল না, বরং আয়ান মারডক কর্তৃক তৈরীকৃত একটি স্বাধীন, নিজস্ব প্রজেক্ট ছিল। পুরোপুরি কমিউনিটি পরিচালিত ডেবিয়ান এখনো সব থেকে বৃহৎ অবানিজ্যিক লিনাক্স পরিবেশক হিসেবে বিদ্যমান।

ডেবিয়ানের জন্মের ঠিক এক বছর পর, ১৯৯৪ সালে তৃতীয় এবং চূড়ান্ত প্রভাব বিস্তারকারী সদস্য হিসেবে রেড হ্যাট লিনাক্সের দৃশ্যপটে আবির্ভাব। ডিস্ট্রিবিউশনটি মূলতঃ মার্ক ইউইং এর হাতে সৃষ্টি কিন্তু শীঘ্রই এটি বব ইয়াং এর কোম্পানি এসিসি কর্পোরেশনের সাথে একীভূত হয় যেটি রেড হ্যাটের জন্য আগে থেকেই সফটওয়্যার প্রস্তুত করে আসছিল। শুরু থেকেই রেড হ্যাট লিনাক্সকে কর্পোরেট ভুবনের কথা মাথায় রেখেই ডিজাইন করা হয়েছে। এটি লিনাক্সের একটি বানিজ্যিক বাস্তবায়ন ছিল এবং তা বর্তমানেও আছে এবং যেটি মুক্ত সফটওয়্যারকে কেন্দ্র করে নির্মিত।


জন্মলাভ করা


এ তিনটি ডিস্ট্রিবিউশন, যারা মহীরুহ স্বরূপ, একত্রে লিনাক্সের স্তম্ভ হিসেবে বিদ্যমান । ভিন্ন ভিন্ন টেকনোলজি এবং নতুন ধারা সৃষ্টির মাধ্যমে তারা প্রত্যেকেই একেকটি ধারার নেতৃত্ব প্রদান করে চলেছে যা আমাদের নিত্য সঙ্গী। লিনাক্সকে আজকের অবস্থানে নিয়ে আসার পিছনে তাদের রয়েছে এক সুদীর্ঘ পথ পাড়ি দেয়ার সুস্পষ্ট নিদর্শন।
শুধুমাত্র প্রাচীনতম হিসেবে টিকে থাকাই নয়, এর সাথে তারা প্রত্যেকেই এক একটি বৃহৎ গোষ্ঠীর অপারেটিং সিস্টেমের জন্মদাতাও বটে। অবশ্য এর পাশাপাশি কিছু গুরুত্বপূর্ন স্বাধীন ডিস্ট্রিবিউশন রয়েছে যেমনঃ আর্চ, ক্রাক্স, গেন্টু, লিনাক্স ফ্রম স্ক্রাচ, পাপ্পি, রক, টাইনি কোর, ইয়োপার এবং উল্লেখযোগ্য আরো কয়েকটি। তবে, এ লিংকের গানূহ/লিনাক্স ডিস্ট্রোর টাইমলাইন ছবি থেকে উপরোক্ত ডিস্ট্রো তিনটির প্রভাব সম্পর্কে সহজেই অনুমান করা যায়।

ডিস্ট্রোওয়াচের দেয়া তথ্য অনুযায়ী স্ল্যাকওয়ার থেকে ৬৬টি ডিস্ট্রিবিউশন তৈরী হয়েছে। রেড হ্যাট থেকে সরাসরি বিকশিত হয়েছে ৪০টির মত (অন্যদের উপর অথবা ফেডোরা থেকে হয়েছে ৮০টির কাছাকাছি), যেখানে মহিমান্বিত প্রপিতামহ ডেবিয়ান এর ক্ষেত্রে সংখ্যাটি ২৫০! চূড়ান্তভাবে ধরা যায় যে, আজকের দিনে প্রচলিত বেশীরভাগ লিনাক্স ডিস্ট্রিবিউশন কোন না কোনভাবে এ মূল তিনটির উপর ভিত্তি করে তৈরী।

এ তিনটি ডিস্ট্রিবিউশনের মধ্যে সত্যিকারের পার্থক্য খুব বেশী নয়। অবশ্য তাদের মূল ভিত্তি একই; একটি লিনাক্স কার্নেল, গানূহ ইউজারল্যান্ড সাথে বিভিন্ন ডেস্কটপ এবং এ্যাপ্লিকেশনসমূহ। এ মিলসমূহের পাশাপাশি, ডিস্ট্রিবিউশনসমূহের মাঝে পার্থক্যটি কোথায়? এখন আমরা দেখব, এদের প্রত্যেকটিরই রয়েছে একক অনন্য কিছু বৈশিষ্ট্য যা বৈচিত্র্যতা কেন গুরুত্বপূর্ন তার যথার্থ প্রতিফলন!

স্ল্যাকওয়্যার - একক নেতৃত্ব

এক দিক থেকে বলা যায়, স্ল্যাকওয়ার পূর্বের মতই বর্তমানেও একক নেতৃত্বের এক সফল প্রদর্শন। প্যাট্রিক ভলকার্ডিং ডিস্ট্রিবিউশনটি তৈরী করেন এবং আজও তার নিয়ন্ত্রনে রয়েছে এটি। অবশ্য, তার পরিমন্ডলে রয়েছে একটি চমৎকার এবং নিবেদিত টীম কিন্তু তিনিই একমাত্র ব্যক্তি যিনি কোন লক্ষ্য নির্ধারন করে থাকেন।

ডিস্ট্রিবিউশনটি সহজ কেন্দ্রিক হওয়াকে গুরুত্ব দিয়ে থাকে এবং যতদূর সম্ভব ইউনিক্সের সাথে সাদৃশ্য বজায় রেখে চলতে চেষ্টা করে। এটি প্যাকেজসমূহের জন্য বাড়তি প্যাচ দেয় না বরং এর মূল উৎসের সাথে সর্বোচ্চ মিল রেখে অবিকৃত অবস্থায় বাজারে ছাড়ে। স্ল্যাকওয়্যার ব্যবহারীর উপর বেশীরভাগ ক্ষমতা ছেড়ে দেয় এবং যতদূর সম্ভব কাস্টোমাইজেশনেক এড়িয়ে চলে। প্রথাগতভাবে এটি প্যাকেজ ম্যানেজারকে খুব বেশী ব্যবহার করে না এবং যদিও এটি প্যাকেজসমূহ ইনস্টল, আপগ্রেড এবং মুছে ফেলতে পারে তবে ডিপেনডেন্সি/নির্ভরতাকে ব্যবস্থাপনার আওতায় নিয়ে আসে না। এ ধরনের কাজকে সিস্টেম এ্যাডমিন বা ব্যবহারকারীর উপরই ছেড়ে দেয়া হয়, এবং এটিই স্ল্যাকওয়্যারের সাথে অন্য দুটি ডিস্ট্রোর মৌলিক পার্থক্য।

এ কারনে, এটিকে প্রায়ই ব্যবহারের জন্য কষ্টসাধ্য একটি ডিস্ট্রোরূপে বিবেচনা করা হয়, তবে এর ভক্তগন একে একটি শক্তিশালী এবং স্থিতিস্থাপক জরুরী টুলস হিসেবেই দেখে থাকেন। তা সত্বেও, কমিউনিটির মাঝে স্ল্যাকওয়্যার যথেষ্ট সমীহ আদায় করে নিয়েছে এবং এটি খুবই স্ট্যাবল/সুপ্রতিষ্ঠিত।

সম্প্রতি এটি ৬৪-বিট এবং ARM আর্কিটেকচারের জন্যও সাপোর্ট দিতে শুরু করেছে, কিন্তু এর পূর্বে এটি শুধুমাত্র ৩২-বিট এর প্রতিই বেশী মনোযোগী ছিল। এটি শুধুমাত্র একটি গুরুত্বপূর্ন ডেস্কটপ এনভারোনমেন্ট সাপোর্ট করে আর তা হল, কেডিই, যদিও অন্যান্য ডেস্কটপ যেমনঃ গানোম কমিউনিটি দ্বারা সাপোর্টেড।

যেখানে অন্যান্য নতুন ডিস্ট্রোসমূহ কোন বিষয়কে সহজ করার জন্য অতিরিক্ত স্তর বা লেয়ার যুক্ত করছে, সেখানে স্ল্যাকওয়ার এর ইউনিক্স ভিত্তিকে অটুট রেখে চলেছে যা একটি সহজ কিন্তু শক্তিশালী, উচ্চমানের কনফিগারেবল সিস্টেম প্রদান করে থাকে। 


ডেবিয়ান- গর্বিত কমিউনিটি

ডেবিয়ানের রয়েছে এক সূদীর্ঘ গর্বিত ইতিহাস। এটি সারাবিশ্বের বিভিন্ন কমিউনিটির স্বেচ্ছাসেবক দ্বারা পরিচালিত, যেখানে রয়েছে এক হাজারের উপর উন্নয়নকারী যারা মুক্ত সফটওয়্যারের পক্ষ থেকে সর্বোৎকৃষ্ট অপারেটিং সিস্টেম প্রদানে সমন্বিত প্রয়াস অব্যাহত রেখেছে। ডেবিয়ান অনন্য/অদ্বিতীয় কারন এটি এর নিজস্ব গঠনতন্ত্র দ্বারা নিয়ন্ত্রিত হয়, যাকে সোশ্যাল কন্ট্রাক্ট বা সামাজিক চুক্তি বলে, যা মূলতঃ মুক্ত সফটওয়্যার এর গাইডলাইন এবং নীতির সমন্বয়। এজন্যই এর প্রাতিষ্ঠানিক কাঠামো এত মজবুত যেখানে একজন নির্বাচিত দলনেতা সহ সেক্রেটারি এবং টেকনিক্যাল টীম থাকে। নেতৃত্ব নির্বাচন প্রক্রিয়া বছরে একবার অনুষ্ঠিত হয়।

স্ল্যাকওয়ারের মত ডেবিয়ান নেতা সর্বময় ক্ষমতার অধিকারী নন। প্রকৃতপক্ষে কোন সাধারন প্রস্তাবনার মাধ্যমে, ডেভেলপার বা উন্নয়নকারীগন কোন সিদ্ধান্ত বদলে দেয়া থেকে শুরু করে নেতৃত্ব অপসারন এমনকি গঠনতন্ত্র পর্যন্ত পরিবর্তন করতে পারেন। ডেভেলপারগন কোন গুরুত্বপূর্ন ইস্যুর উপর ভোট প্রদান করতে পারেন যা প্রজেক্টকে প্রভাবিত করে থাকে (যেমন কোন বাইনারি ফার্মওয়্যার অন্তর্ভুক্ত করা হবে কিনা)।

ডেবিয়ান তার নিজস্ব শক্তিশালী প্যাকেজ ব্যবস্থাপনার উপর ভিত্তি করে আবর্তিত হয় যার রয়েছে কতিপয় গুরুত্বপূর্ন উপাদান। এ সিস্টেমটি শুধুমাত্র সাধারন কাজ যেমন প্যাকেজ ইনস্টল -আনইনস্টলের কাজই করেই ক্ষান্ত হয় না বরং স্বয়ংক্রিয়ভাবে তা ডিপেনডেন্সিকে ও সামলে থাকে। এটি শুরু থেকেই ডেবিয়ানের খুব গুরুত্বপূর্ন একটি অংশ যা একে অন্যান্য ডিস্ট্রিবিউশন থেকে স্বতন্ত্র মর্যাদা দিয়েছে। ডেবিয়ান তার বিখ্যাত .deb প্যাকেজ ফরম্যাট ব্যবহার করে থাকে যেটি স্ল্যাকওয়্যারের সাধারন টারবল বা রেডহ্যাটের আরপিএম থেকে পুরোপুরি ভিন্ন। বিভিন্ন দিক বিবেচনায় প্যাকেজ ব্যবস্থাপনাই হচ্ছে ডেবিয়ানের মূল চাবিকাঠি। সফটওয়্যার উন্নয়নের জন্য প্রজেক্টটির কঠোর নীতিমালা রয়েছে এবং আপগ্রেডের সময় এটি প্যাকেজসমূহের উপর সঠিকভাবে মনোযোগ নিবন্ধ করে যাতে একটি সঙ্গতিপূর্ন সিস্টেম নিশ্চিত করতে পারে। প্যাকেজসমূহ যাতে সঠিকভাবে প্রস্তুত হয় এবং নির্ভুলভাবে কাজ করে তার উপর সর্বাধিক গুরুত্ব দেয়া হয়।

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

এছাড়াও স্ল্যাকওয়ার এর মত কেবল এক/দুটি আর্কিটেকচার নয় বরং ১১টি ভিন্ন ভিন্ন আর্কিটেকচার সাপোর্ট করে ডেবিয়ান, যার সাথে আরো ৫টি নতুন আর্কিটেকচার অচিরেই যুক্ত হতে যাচ্ছে। এটি ২৫০০০ এর ও বেশী প্যাকেজসহ ছাড়া হয়েছে যা প্যাকেজ ব্যবস্থাপনা সিস্টেমের সহায়তায় সর্বদা ইনস্টলের জন্য প্রস্তুত। নির্ভরযোগ্য বৈশিষ্ট্য এবং বহু সংখ্যক আর্কিটেকচার সাপোর্টের জন্য ডেবিয়ান ব্যাপকভাবে ডেস্কটপ, সার্ভার এবং এম্বডেড সিস্টেমে ব্যবহৃত হয়ে থাকে।

যদি ডেবিয়ান প্রজেক্টের অর্জন হিসাব করেন তবে তা সত্যিই অতুলনীয়। এর দৃঢ় ভিত্তি এবং কাঠামো ডেবিয়ানের সাফল্যে গুরুত্বপূর্ন অবদান রেখেছে এবং উবুন্তুর মত অন্যান্য ডিস্ট্রিবিউশনের জন্য এক চমৎকার পছন্দের ভিত্তি তৈরী করেছে।

রেড হ্যাট- বানিজ্যিক উপস্থিতি

শুরু থেকেই রেড হ্যাট লিনাক্স লিনাক্সের একটি বানিজ্যিকীকরন হিসেবে বিবেচিত হয়ে আসছে। আজ ও পর্যন্ত সহায়তা সেবা প্রদান, প্রশিক্ষন এবং বিভিন্ন সেবা সমন্বিতকরনের মাধ্যমে এটি চমৎকার সাফল্য দেখিয়ে চলেছে। রেডহ্যাটের জনপ্রিয়তার একটি বড় কারন হচ্ছে কর্পোরেট পরিবেশে একটি সাপোর্টেড লিনাক্স ডিস্ট্রিবিউশন হিসেবে এর ব্যাপক ব্যবহার। রেডহ্যাট লিনাক্সের উপর শত শত কোর্স চালু রয়েছে এবং বহুদিন যাবত রেডহ্যাটকে লিনাক্সের সমার্থক হিসেবে ভাবা হতো।
রেড হ্যাটের অফিসিয়াল কমার্শিয়াল ডিস্ট্রিবিশন - রেড হ্যাট এন্টারপ্রাইজ লিনাক্স (আরএইচইএল) এবং অন্যরা যেমন ফেডোরা এর মধ্যে পার্থক্যটা ফুটিয়ে তোলা জরুরী। RHEL কে রেডহ্যাটের কাছ থেকে কেনার সময় শুধুমাত্র বাইনারী ফর্মে পাওয়া যায় যা অন্য দু’ডিস্ট্রিবিউশনের তুলনায় ভিন্ন। তবে পুরো অপারেটিং সিস্টেমের সোর্স কোড উম্মুক্ত এবং এটি থেকে আরো বেশ কিছু ডিস্ট্রিবিউশন বিকশিত হয়েছে (যেমনঃ সেন্ট ওএস)।

RHEL এর বেশীরভাগ উন্নয়কাজ রেডহ্যাটের নিজস্ব কর্মচারীরাই করে থাকেন। রেডহ্যাটের উন্নয়ন প্রক্রিয়া রেড হ্যাটের কমিউনিটি পরিচালিত ডিস্ট্রিবিউশন ফেডোরা ভিত্তিক যা স্ল্যাকওয়ার বা ডেবিয়ান থেকে অনেকটাই ভিন্ন। যদিও একটি সুপ্রতিষ্ঠিত এবং আকর্ষনীয় ডিস্ট্রিবিউশন এর নিজস্ব স্বত্বাধিকার ভিত্তিক, অন্যদিকে ফেডোরা হচ্ছে নতুন টেকনোলজির জন্য একটি পরীক্ষা ক্ষেত্র যা পরবর্তীতে রেডহ্যাটের বানিজ্যিক ডিস্ট্রোতে স্থানান্তরিত হয়।

রেডহ্যাট ডেবিয়ানের তুলনায় একটু দেরীতেই পরিপূর্ন এবং সমন্বিত প্যাকেজ ব্যবস্থাপনা অর্জনে সক্ষম হয়েছে। তবে এর মূল স্তরে প্যাকেজসমূহ আরপিএম ফরম্যাটকে কেন্দ্র করেই আবর্তিত যেটি আবার বিভিন্ন ধরনের লো-লেভেল টুলস দ্বারা নিয়ন্ত্রিত হয়ে থাকে। আজকের দিনে ডেবিয়ানের মতই রেডহ্যাটে প্যাকেজ ইনস্টল করা সহজ বিষয়ে পরিনত হয়েছে যেখানে ডিপেনডেন্সীকে অনুসরনের পর্যাপ্ত সহায়তা বিদ্যমান এবং সেই সাথে এর আকর্ষনীয় ফিচারসমূহ মেশিনের সুদৃঢ় অবস্থা নিশ্চিত করে থাকে।

রেডহ্যাট বর্তমানে লিনাক্স কার্নেল এবং এক্স ডট অর্গ উভয় প্রজেক্টেই নেতৃত্ব স্থানীয় অবদানকারীদের একজন। এটি আরো গুরুত্বপূর্ন কিছু সফটওয়্যার এর নির্ভরযোগ্য উৎসস্থল যেগুলি আমরা আমাদের প্রাপ্য হিসেবে গ্রহন করেছি যেমনঃ ডি-বাস, হল, পলিসি কিট, নেটওয়ার্ক ম্যানেজার, পালস অডিও, লিবারেশন ফন্ট এবং আরো বহু কিছু যা এখানে উল্লেখ করা সত্যিই কঠিন।
রেডহ্যাট উম্মুক্ত সফটওয়্যারের এক বড় সমর্থক এবং তারা একটি প্যাটেন্ট নীতি প্রনয়ন করেছে যা উম্মুক্ত সফটওয়্যারের কল্যানে ব্যবহার করে থাকে। তাদের ব্যবসায়িক আদর্শ বড় ধরনের সাফল্য লাভ করেছে এবং উম্মুক্ত সফটওয়্যার থেকে কিভাবে অর্থ উপার্জন করা যেতে পারে তার গুরুত্বপূর্ন উদাহরন হিসেবে রেডহ্যাটকে প্রায়শই উপস্থাপন করা হয়ে থাকে।

উপসংহারে


সম্ভবত আপনি আগে কখনই উপলব্ধি করেননি লিনাক্স ডিস্ট্রিবিউশন ইতিহাসের অনন্যতাকে অথবা এ ডিস্ট্রিবিউশসমূহ কিভাবে বিকশিত হয়েছে। তাই আশা করি এদের সমৃদ্ধ উত্তরাধিকার নিয়ে কিছুটা পরিচিতি তুলে ধরতে সক্ষম হয়েছে এ টপিক্স। এ ডিস্ট্রিবিশনগুলির অস্তিত্ব লিনাক্স জগতকে একটি সুস্পষ্ট অবয়ব দান করেছে তা সে প্যাকেজ ম্যানেজমেন্টই হোক, বা আধুনিক এ্যাপ্লিকেশন, সংস্কৃতি অথবা দর্শন যাই হোক না কেন যেমনটা আমরা বর্তমানে প্রত্যক্ষ করছি। প্রত্যেক ডিস্ট্রিবিউশনই আমাদের পছন্দের প্ল্যাটফরমের ধারাবাহিক সাফল্যের ক্ষেত্রে অত্যন্ত গুরুত্বপূর্ন ভূমিকা রেখে চলেছে।

উল্লেখযোগ্য পার্থক্য সত্বেও এ তিন পরাশক্তি অতীতের মতই বর্তমানে ও বেশ জনপ্রিয়। এটি জানা ও বেশ উজ্জীবিত করে আমাদেরকে যে, যদিও বর্তমানে শত শত ডিস্ট্রো সক্রিয় রয়েছে কিন্তু তাদের কেউই এ তিন ডিস্ট্রোর অবস্থানকে স্থানচ্যূত করতে পারেনি। এটি সুষ্পষ্ট যে, শত পার্থক্য থাকা সত্বেও ডিস্ট্রো তিনটির আরো বহু কিছু প্রদানযোগ্য রয়েছে। প্রকৃতপক্ষে, তাদের পার্থক্যের কারনেই সম্ভবত তারা এখনও শক্তিশালী অবস্থান ধরে রেখেছে। এমন কোন একক জিনিস নেই যেটি কম্পিউটার বিশ্বে সবার জন্য প্রযোজ্য এবং আমরা এ বৈচিত্র্যতার উপস্থিতি যা পছন্দ করার স্বাধীনতা সহ বিদ্যমান তাকে স্বাগত জানাই।

এ তিনটি ডিস্ট্রিবিউশনের প্রতি কৃতজ্ঞতাসহ শেষ করছি যাদের জন্য আমাদের রয়েছে বহু বছর ধরে গড়ে ওঠা এক সমৃদ্ধ সংস্কৃতি এবং ইতিহাস।

লিনাক্স অপারেটিং সিস্টেম এর প্রাথমিক ধারনা-৫

আজ এ সিরিজের শেষ পোস্টটি করতে যাচ্ছি। আশা করি এ সিরিজটি নতুন, পুরাতন সব ধরনের লিনাক্স ব্যবহারকারীদের কাজে আসবে। ভবিষ্যতে লিনাক্স নিয়ে বিষয়ভিত্তিক ছোট-খাট টপিকস্ পোস্ট করার ইচ্ছা আছে। তাহলে আসুন শুরু করি-

প্যাকেজ এবং টারবল কি?

লিনাক্স শেখার সময় সি-কম্পাইলার দিয়ে সোর্স ফাইল থেকে বাইনারি প্যাকেজ তৈরী করা বেশীরভাগ ক্ষেত্রেই একটি বিরক্তিকর এবং সময়সাপেক্ষ কাজ। লিনাক্স/ইউনিক্সে যেমন বিভিন্ন ফ্লেভার পাওয়া যায় ঠিক একইভাবে একাধিক সি-কম্পাইলার ও পাওয়া যায় এবং দেখা যায় যে, একটি কম্পাইলার অন্যটির তুলনায় ভাল কাজ করে। এ সমস্যা থেকে পরিত্রানের জন্যই প্যাকেজ সিস্টেম এর উদ্ভব হয়েছে। নিজ হাতে কম্পাইল করা এবং নতুন প্রোগ্রামের ফাইলগুলি বিভিন্ন ডিরেক্টরীতে কপি করার মত ঝামেলা এড়াতে প্যাকেজ ম্যানেজার এর মত প্রোগ্রাম বিভিন্ন ডিস্ট্রোতে দেয়া হয়। প্যাকেজ ম্যানেজার প্রোগ্রাম ইনস্টলের মত জটিল কাজ স্বয়ংক্রিয় পদ্ধতিতে করে থাকে। যেমনঃ রেড হ্যাট তৈরী করেছে রেডহ্যাট প্যাকেজ ম্যানেজার যেটি .RPM এক্সটেনশনের ফাইল নিয়ে কাজ করে থাকে, ডেবিয়ান এর প্যাকেজ ম্যানেজার .DEB ফাইল নিয়ে কাজ করে থাকে। ডেবিয়ানের প্যাকেজ ম্যানেজার বেশ সহজ ও ব্যবহারবান্ধব এবং এটি ইন্টারনেট থেকে সরাসরি প্যাকেজ ডাউনলোড এবং ইনস্টলের সুবিধা দিয়ে থাকে।

এর অর্থ এই নয় যে, প্যাকেজ দিয়েই আপনার সব চাহিদা পুরন হয়ে যাবে। এছাড়াও বিভিন্ন ইউটিলিটি প্রোগ্রাম পাওয়া যায় যেগুলি প্যাকেজ ফরম্যাটে পাওয়া যায় না। লিনাক্সের বিভিন্ন সফটওয়্যার ডাউনলোডের জন্য ওয়েবসাইট রয়েছে। যখন আপনি একটি নির্দিষ্ট কোন ইউটিলিটি সফটওয়্যার খুজবেন তখন প্রথমেই দেখে নিন যে, আপনার লিনাক্স ডিস্ট্রোর জন্য নিজস্ব কোন বাইনারী পাওয়া যায় কিনা। যদি না পাওয়া যায় তবে সোর্স অবশ্যই পাবেন।

যে ফাইলগুলি ডাউনলোড করবেন তা একটি আর্কাইভ বা সংকুচিত আকারে পাওয়া যায় যেটি উইন্ডোজে আমরা সাধারন উইনজিপ এর মত সফটওয়্যার এর সাহায্যে করে থাকি। লিনাক্সেরও নিজস্ব এরকম একটি জিপ প্রোগ্রাম পাওয়া যায় যার নাম gzip (GNU Zip)। বেশীরভাগ লিনাক্স ডিস্ট্রোতেই gzip/gunzip ইউটিলিটি ডিফল্টভাবে দেয়া থাকে। এ প্রোগ্রামের সাহায্যে সংকুচিত ফাইলগুলি সাধারনত.gz এক্সটেনশনের হয়ে থাকে। লিনাক্সে একটি কমপ্রেশড ফাইলকে আনজিপ করার কমান্ড হচ্ছে নিচের মতঃ

gunzip file-name.tar.gz

PKZip এবং WinZip দুটি কাজ করে থাকে। তারা একাধিক ফাইলকে প্রথমে একটি আর্কাইভে রূপান্তরিত করে এবং তারপর এটিকে কমপ্রেস করে থাকে। লিনাক্স/ইউনিক্সে এ দুটি ধাপ আলাদাভাবে সংঘটিত হয়। gzip কমপ্রেশনের কাজ করে থাকে এবং tar একাধিক ফাইলকে আর্কাইভে রূপান্তরিত করার কাজটি করে থাকে। tar ইউটিলিটি একাধিক ফাইলকে একত্রিত/এক্সট্রাক্ট করার কাজটি করে কিন্তু কোন কমপ্রেশন/সংকোচনের কাজ করে না। যে ফাইলগুলি বড় নয় সেগুলি সাধারনত কমপ্রেস অবস্থায় থাকে না। যদি আপনার ডাউনলোডকৃত ফাইলটি একাধিক ফাইলের আনকমপ্রেসড আর্কাইভ হয় তবে এটিতে .tar এক্সটেনশন থাকবে। এ ফাইলগুলিকে টারবল বলা হয়। এ টারবল থেকে আসল ফাইল ফিরে পাওয়ার জন্য নিচের কমান্ডটি দিতে হয়ঃ

tar -xvf file-name.tar

এখানে লক্ষ্যনীয় যে, যদি কমপ্রেস করার সময় tar বিভিন্ন সাবডিরেক্টরীকে অর্ন্তভুক্ত করে থাকে তবে এটি ডিরেক্টরী স্ট্রাকচার-কে আসলের মত হুবহু ফিরে পেতে সাহায্য করে।

কোন ফাইলকে একত্রিত এবং কমপ্রেসড উভয়টি করা হলে তার জন্য দুটি এক্সটেনশন থাকে। যদি কোন ফাইলের এক্সটেনশন.tar.gz অথবা.tgz পেয়ে থাকেন তাহলে আপনাকে প্রথমে এটি আনজিপ করতে হবে gunzip কমান্ডের সাহায্যে ফলে এর এক্সটেনশন.gz ফাইলের নাম থেকে মুছে যাবে। তারপর আপনি একে tar এর সাহায্যে এক্সট্রাক্ট করতে পারবেন।

tar এর নতুন ভার্সনে আনকমপ্রেস এবং এক্সট্রাক্ট করার কাজ একইসাথে করা যায়ঃ

tar -zxvf file-name.tar.gz

এখানে অতিরিক্ত z সুইচটি আনকমপ্রেসের কাজ করবে যদি আপনার tar টি নতুন ভার্সনের হয়।

লিনাক্স/ইউনিক্স এর ভুবনে tar এর সাহায্যে ফাইল কমপ্রেস/এক্সট্রাক্ট করা একটি গুরুত্বপূর্ন দক্ষতা হিসেবে বিবেচিত হয় কেননা অনেক ডিভাইস ড্রাইভার শুধুমাত্র সোর্স কোডে দেয়া হয়ে থাকে।

লিনাক্স কার্নেল পরিচিতি

অন্যান্য অপারেটিং সিস্টেম এর মত লিনাক্সের কার্নেল ও হচ্ছে অপারেটিং সিস্টেম এর মূল অংশ। এটি একটি এক্সিকিউটেবল ফাইল যেখানে অপারেটিং সিস্টেম এর মূল কোডসমূহ থাকে। সকল ডিস্ট্রিবিউশনই লিনাক্স কার্নেল ব্যবহার করে থাকে।

নতুন এবং উন্নত সংস্করনে প্রোগ্রামসমূহ একটু বেশী ভার্সন নম্বর দিয়ে প্রকাশ করা হয় (যেমন নেটস্কেপ ৩, নেটস্কেপ ৪) অথবা সামান্য পরিবর্তনের জন্য একটু ছোট ভার্সন নম্বর দিয়ে প্রকাশ করা হয় (যেমন নেটস্কেপ ৪.০, ৪.৫, ৪.৭৬)। একইভাবে লিনাক্স কার্নেল এর নতুন এবং উন্নত ভার্সনসমূহ এ রকম ভার্সন নম্বর দিয়ে প্রকাশ করা হয়। ডেবিয়ান ৩.১(সার্জ) লিনাক্স কার্নেল এর ২.৪ ভার্সন ব্যবহার করে থাকে যেখানে ডেবিয়ান ৪.০ ডিফল্ট হিসেবে (কোড নেম এচ্‌) ব্যবহার করে ভার্সন ২.৬।

ডিস্ট্রোর ভার্সন জানার সাথে সাথে এই কার্নেল ভার্সনটিও জানতে হবে কারন কার্নেল ভার্সন পরিবর্তনের সাথে সাথে বিভিন্ন সিস্টেম ফাংশন সেটিংস এর প্রক্রিয়া পরিবর্তিত হয়ে থাকে। উদাহরনস্বরূপ বলা যায়, ফায়ারওয়াল এর জন্য যে IPTABLES ইউটিলিটি ব্যবহার করা হয় সেটি শুধুমাত্র ২.৪ অথবা তার পরের কার্নেল এর জন্য প্রযোজ্য ( ২.২ ভার্সন কার্নেলে এর বদলে IPCHAINS ব্যবহার করা হত।)

লিনাক্স যেহেতু সার্ভার সিস্টেম এর জন্য ব্যাপকভাবে ব্যবহৃত হয়ে থাকে এবং সার্ভার ঘন ঘন আপগ্রেড করা হয় না ডেস্কটপ সিস্টেম এর মত, তাই নতুন ভার্সনের কার্নেল রিলিজের পরও পুরনো ভার্সনের জন্য অনেকদিন সাপোর্ট অব্যাহত রাখা হয়। এজন্য আপনি যদি পুরনো কোন কার্নেল ব্যবহার করেন অথবা পুরনো কোন ডিস্ট্রো ব্যবহার করে থাকেন তবে সেগুলি তাড়াহু্ড়ো করে আপডেট করার মত অবস্থায় পড়বেন না এটা বলা যায়।

লিনাক্সের ফাইল সিস্টেমে একটি অংশ আছে যেটি আদৌ কোন ফাইল সিস্টেম নয়। এটি সিস্টেম মেমোরীতে কি ঘটছে তা দেখার জন্য একটি দরজা স্বরূপ মাত্র যেখানে কার্নেল এই মুহুর্তে যা পর্যবেক্ষন করছে তা দেখায়। এজন্য নিচের কমান্ড দিনঃ

cd /proc
ls -laF | more

এখানে মেমোরীতে কার্নেল এর বর্তমান চলমান প্রসেসসমূহ দেখা যায়। যদিও অনেক ফাইলের সাইজ জিরো বাইট দেখায় কিন্তু তাদের অভ্যন্তরে প্রচুর তথ্য জমা থাকে। কোন একটি বিশেষ ফাইলের তথ্য দেখার জন্য আপনাকে cat or more ফাইল কমান্ড ব্যবহার করতে হবে। অনেক প্রোগ্রামই তাদের সিস্টেম পারফরমেন্স এ্যাডজাস্ট করার জন্য এ ডিরেক্টরীতে প্রবেশ করে সিস্টেম এর তথ্য সংগ্রহ করে থাকে।

কার্নের কম্পাইলের জন্য অনেক ধরনের লিনাক্সের বই এবং রিসোর্স পাওয়া যায়। নতুন হার্ডওয়্যার অথবা ফিচার সাপোর্টের জন্য নতুন কার্নেল এর সোর্স কোড সংগ্রহের পর কম্পাইল করতে হয়। তবে এটি কোন ভাল সমাধান নয়। বেশীরভাগ ডিস্ট্রোই কার্নেলকে তাদের নিজেদের মত করে কিছুটা কাস্টমাইজ করে ব্যবহার করে তাই অন্য কোন কার্নেল কম্পাইল করে ব্যবহার করলে অনেক সমস্যার উদ্ভব হয়ে থাকে। এছাড়া কার্নেল আপগ্রেডের জন্য আপনার পছন্দের ডিস্ট্রোতে যে প্যাকেজ দেয়া থাকে তা ব্যবহার করে আপগ্রেডের কাজটি সারতে পারেন যা তুলনামূলকভাবে নিরাপদ। কার্নেল রিকম্পাইল করা যদি আপনার ইচ্ছা হয়ে থাকে তবে সেটি এড়িয়ে যেতে পারেন। নতুন ডিভাইস সাপোর্টের জন্য কার্নেল রিকম্পাইল বর্তমানে শ্রেয়তর পন্থা নয় বরং আপনি মডিউল ব্যবহার করেই তা করতে পারেন।

আরো জানার উপায়

ইউনিক্স এবং লিনাক্স এর জন্য নিজস্ব অনলাইন হেল্প রয়েছে। তাদের বলা হয় "man pages"। এজন্য প্রথমে man টাইপ করুন তারপর কমান্ডের নাম টাইপ করুন। উদাহরনস্বরূপঃ

man mount

তবে এই হেল্প ডকুমেন্টগুলি অপারেটিং সিস্টেম যারা লিখেছে তাদের মত এক্সপার্টদের লেখা তাই বেশীরভাগ ক্ষেত্রেই এগুলি থেকে পরিপূর্ন ধারনা অর্জন সম্ভবপর হয়ে ওঠে না। তবে কিছু কিছু ক্ষেত্রে এটি বেশ সহায়ক। ম্যানুয়াল পেজ দেখা হয়ে গেলে বের হওয়ার জন্য টাইপ করুন q।

man পেজ ছাড়াও HOWTOs নামে একটি বিশাল ডকুমেন্টেশন প্রোজেক্ট আছে লিনাক্সের জন্য যেটি স্বেচ্ছাসেবীদের দ্বারা পরিচালিত হয়ে থাকে। যত ধরনের বিষয় আছে প্রায় প্রত্যেকের উপরই HOWTO নামক টপিক রয়েছে। কিছু HOWTOs আছে যা ততটা স্পষ্ট নয় কিন্তু বাকিগুলি যথেষ্ট মানসম্পন্ন ও সুলিখিত। HOWTO ডকুমেন্টসমূহ কেন্দ্রীয়ভাবে লিনাক্স ডকুমেন্টেশন প্রজেক্ট ওয়েব সাইটে(http://tldp.org/) দেখভাল করা হয়।

যারা ডসে কাজ করতে অভ্যস্ত নন তাদের কাছে লিনাক্স শেখাটা প্রথম প্রথম কিছুটা কঠিন মনে হতে পারে। তবে লিনাক্সের জনপ্রিয়তা দিন দিন বেড়েই চলেছে। তাই লিনাক্স শেখার জন্য সময় এবং শ্রম ব্যয় করাটা ভবিষ্যতের জন্য একটি বড় বিনিয়োগ হবে আপনার জন্য। তাছাড়া লিনাক্স বর্তমানে গ্রাফিক্যাল ইন্টারফেস এর দিক থেকেও অনেক এগিয়ে গেছে। তাই এটি এখন সাধারন মানুষের ও দৃষ্টি আকর্ষনের কেন্দ্রবিন্দু হয়ে দাড়িয়েছে।

লিনাক্সের জন্য বাজারে অনেক ধরনের বই পাওয়া যায়। এ বইগুলির কিছু কিছু প্রাথমিক শিক্ষার্থীদের জন্য আর কিছু আছে এক্সপার্টদের জন্য। তাই আপনার ক্ষেত্রে যেটি প্রযোজ্য সেরকম একটি বেছে নিন এবং এগিয়ে যান। উদাহরন হিসেবে বলা যায়, প্রাথমিক স্টেজের বইগুলিতে নেটওয়ার্কিং বা সার্ভার সাইড নিয়ে কোন আলোচনা সাধারনত থাকে না। একইভাবে যে সমস্ত বইতে নেটওয়ার্ক বা সার্ভার সাইড নিয়ে আলোচনা করা হয় সেগুলিতে ধরে নেয়া হয় যে, পাঠক লিনাক্সের প্রাথমিক ধারনার সাথে পরিচিত।

উইন্ডোজ ভুবনে জড়িয়ে আছেন?

লিনাক্সের ব্যবহার শেখার জন্য বেশীরভাগ ক্ষেত্রেই সবচেয়ে বড় যে বাধা সেটি হলো লিনাক্সকে প্রতিদিন ব্যবহার করার অভাব। অনেক প্রতিষ্ঠানেই উইন্ডোজ অথবা নোভেল প্লাটফরম সেট আপ করা আছে এবং লিনাক্সে কাজ করার মত সুযোগ সেখানে নেই।

আপনি যদি এ ধরনের পরিবেশে নেটওয়ার্ক বা সিস্টেম এডমিনিস্ট্রেটর এর দায়িত্বে থাকেন তবে পুরনো একটি বা দুটি পিসিতে লিনাক্স সেট আপ করে নিচের কাজসমূহ করতে পারেনঃ

  • নেটওয়ার্ক মনিটরিং এবং ট্রাবলশুটিং টুলস হিসেবে ব্যবহার
  • সিকিউরিটি মনিটরিং এবং টেস্টিং টুলস হিসেবে ব্যবহার (বিশেষতঃ যদি ইন্টারনেট কানেক্টড সিস্টেম হয়)

এ কাজগুলি করার জন্য লিনাক্সে অসংখ্য ফ্রি নেটওয়ার্ক মনিটরিং টুলস (যেমন ntop network traffic probe) এবং সিকিউরিটি ইউটিলিটিজ (যেমন nmap port scanner) পাওয়া যায় এবং আপনার বস নিঃসন্দেহে ‘ফ্রি’ শব্দটি নিয়ে আর শংকিত হবেন না। সিকিউরিটি চেক করার জন্য বিভিন্ন ইউটিলিটি রান করা ছাড়াও আপনার ইন্টারনেট কানেক্টেড সার্ভারে কোন Intrusion Detection System যেমন Snort সবসময় চালু রাখতে পারেন যা আপনার নেটওয়ার্ক-কে করবে আরো সুরক্ষিত।

লিনাক্স অপারেটিং সিস্টেম এর প্রাথমিক ধারনা-৪

  • লিনাক্স সিস্টেম এর স্টার্ট আপ ধাপসমূহ
ইউনিক্স এর বিবর্তনের কারনে যাবতীয় লিনাক্স ডিস্ট্রো এবং ইউনিক্স এর ফ্লেভারগুলিকে দুটি প্রধান ভাগে বিভক্ত করা যায়-

১. সিস্টেম V (সিস্টেম ফাইভ)
২. বিএসডি (BSD)

এ দুটি প্রধান সিস্টেম এর পার্থক্য জানা এ জন্য জরুরী যে, এরা স্টার্টআপ ফাইলের জন্য ভিন্ন ভিন্ন ডিরেক্টরী স্ট্রাকচার ব্যবহার করে থাকে এবং স্টার্ট আপ প্রসেস এর জন্য যে ফাইলগুলি ব্যবহৃত হয় সেগুলি জানা থাকলে আপনি নির্দিষ্ট কোন প্রসেসকে স্বয়ংক্রিয়ভাবে চালু করার জন্য অপশন সেট করে দিতে পারেন।

ডেবিয়ান এবং বেশীরভাগ ডিস্ট্রো-ই সিস্টেম ফাইভ ফ্যামিলি এর অন্তর্ভুক্ত। এই তো কিছুদিন আগেও সান মাইক্রোসিস্টেমস তাদের সোলারিস অপারেটিং সিস্টেমকে পরিবর্তন করেছে যাতে সেটি সিস্টেম ফাইভ এর অন্তর্ভুক্ত হয়। তাই সিস্টেম ফাইভ এর স্টার্ট আপ ডিরেক্টরীর স্ট্রাকচার জানা থাকলে বেশীরভাগ লিনাক্স/ইউনিক্স সিস্টেমেই কাজ করতে পারবেন।

ডিরেক্টরীর নাম ডিস্ট্রোভেদে কিছুটা ভিন্ন ভিন্ন হতে পারে তবে ধারনাগত দিক থেকে সবই অভিন্ন প্রকৃতির।

যখন আপনি সিস্টেমে বুট করেন তখন সার্ভিস, প্রসেস সবই শেল স্ক্রিপ্টের সাহায্যে চালু হয়ে থাকে। সকল ধরনের শেল স্ক্রিপ্ট যা মেশিন বুট এর সময় চালু হতে পারে তার সবই /etc/init.d ডিরেক্টরীতে অবস্থিত। এখানে লক্ষ্যনীয় যে, ডিরেক্টরীর নামেও ফাইলের মত পিরিয়ড (init.d) থাকতে পারে।

এই বুট প্রসেস সম্পর্কে পরিচিত হতে হলে আপনাকে অবশ্যই রান লেভেল সম্পর্কে জানতে হবে। লিনাক্স/ইউনিক্স সিস্টেমকে ভিন্ন ভিন্ন মোডের ফাংশনে রান করানো যায়। এটিকে যেমন ডেস্কটপ সিস্টেম এর জন্য সিঙ্গেল ইউজার মোডে রান করানো যায় তেমনই সার্ভার হিসেবে কাজ করানোর জন্য মাল্টি ইউজার মোডেও রান করানো যায়। প্রতিটি রানলেভেলকে একটি নির্দিষ্ট সংখ্যা দ্বারা প্রকাশ করা হয়। এগুলি হলঃ

0 - সিস্টেম বন্ধ করার মোড
1 - একক ব্যবহারকারী মোড
2 - 5 - বহু ব্যবহারকারী মোড
6 - রিবুট/রিস্টার্ট এর মোড

ডেবিয়ান এ রানলেভেল ২ ডিফল্ট অবস্থায় থাকে। একাধিক মাল্টি ইউজার মোড থাকায় এদেরকে কাস্টমাইজ করে ব্যবহার করা যায়। উদাহরনস্বরূপঃ ইন্টারনেট সার্ভার হিসেবে মেশিনকে রান করলে সিকিউরিটির কথা বিবেচনা করে রানলেভেল ২ তে আপনি এনএফএস ফাইল শেয়ারিং মোড ডিজ্যাবল করে রাখতে পারেন। যদি আপনি ইন্টারনাল নেটওয়ার্ক এর জন্য ফাইল সার্ভার স্থাপন করতে চান তাহলে রানলেভেল ৩ তে মেশিনকে চালু করতে পারেন যেখান এনএফএস শেয়ারিং এর অনুমতি দেয়া আছে। প্রাথমিক ভাবে সবগুলি মাল্টি ইউজার মোডের মধ্যে কোন পার্থক্য থাকে না- তাদের সবার সেটআপ একই হয়ে থাকে অর্থাৎ বুটের সময় সবাই সমান সংখ্যক সার্ভিস স্টার্ট করে।

মেশিন চালু অবস্থায় আপনি যেকোন রান লেভেলে সুইচ করতে পারেন যার কমান্ড হচ্ছে নিম্নরূপঃ

init runlevel

উদাহরনস্বরূপঃ রিমোট স্থান হতে যদি মেশিন রিস্টার্ট করতে চান তাহলে এ অপশনটি বেশ কাজে লাগে। টেলনেট সেশন এর মাধ্যমে মেশিন এ লগইন করলে Ctrl-Alt-Del কি-ব্যবহার করে মেশিন রিস্টার্ট করা যায় না। এর বদলে আপনি init 6 কমান্ড দিয়েই কাজ করতে পারেন। অবশ্য মেশিন রিস্টার্ট দিলে আপনার টেলনেট সেশন বন্ধ হয়ে যাবে তবে মেশিন রিবুট করলে আবার কানেক্ট হতে পারবেন।

উপরের আলোচনার ফলে আমরা জানতে পারলাম যে, সিস্টেম স্টার্ট আপ এর সময়ে যে শেল স্ক্রিপ্টগুলি রান হয় সেগুলি /etc/init.d ডিরেক্টরীতে অবস্থিত। এ রান লেভেলগুলি ভিন্ন ভিন্ন স্ক্রিপ্টসমূহ রান করে থাকে যা এই ডিরেক্টরীতে অবস্থিত। মেশিন বুটের সময় /etc/inittab নামের একটি টেক্সট ফাইল এর নির্দেশগুলি প্রথম পালন করা শুরু করে। নিচের উল্লেখিত লাইনটির সাহায্যে এ ফাইলটি মেশিনকে কোন রানলেভেল এ বুট করতে হবে সে নির্দেশ প্রদান করে থাকেঃ

id:2:initdefault:

/etc/inittab ফাইলের এ লাইনটি পরিবর্তনের মাধ্যমে আপনি মেশিন এর ডিফল্ট রানলেভেলটি পরিবর্তন করতে পারবেন। বেশীরভাগ ডিস্ট্রোই রানলেভেল ৩ এ বুট করে থাকে যা ইন্টারনেট সার্ভার এর জন্য মোটেও সুরক্ষিত নয়।

প্রতিটি রান লেভেল এর জন্য /etc ডিরেক্টরীর অভ্যন্তরে একটি করে সাব-ডিরেক্টরী আছে এবং সাব-ডিরেক্টরীর নামটি রানলেভেল এর নামে হয়ে থাকে। সাবডিরেক্টরীর নামটি নিচের ফরম্যাটে হয়ে থাকেঃ

rcX.d

যেখানে X এর মান ০-৬ পর্যন্ত।

এই রানলেভেল সাবডিরেক্টরীগুলিতে আসলে কোন স্ক্রিপ্ট থাকে না। বরং /etc/init.d ডিরেক্টরীতে যে স্ক্রিপ্টগুলি আছে তাদের সিমবোলিক লিংকসমূহ-ই এখানে থাকে। এটির ফলে একই স্ক্রিপ্ট একাধিক রানলেভেলে কপি করার বদলে শুধুমাত্র শেয়ার করেই ব্যবহার করা যায়। তাই স্টার্ট আপ এর সময় যে স্ক্রিপ্টগুলি রান করে তার সবই /etc/init.d ডিরেক্টরীতে পাওয়া যায়।

প্রাথমিকভাবে সকল রানলেভেলের সাবডিরেক্টরীতে /etc/init.d এর স্ক্রিপ্টগুলির সমান সংখ্যক সিমবোলিক লিংক থাকে। এর ফলে, আপনি মাল্টি ইউজার রান লেভেল এর যেটিই পছন্দ করুন না কেন সবার কাজ মূলতঃ একই হয়ে থাকে। আপনি যেকোন রানলেভেল এর সাবডিরেক্টরীতে কোন নতুন কিছু সংযোজন অথবা বাদ দেয়ার মাধ্যমে একে কাস্টমাইজ করে নিতে পারেন।

উদাহরনস্বরূপ, আপনি যদি রানলেভেল ২ কে ইন্টারনেট সার্ভিস এর জন্য নির্ধারিত করতে চান তবে /etc/rc2.d ফোল্ডারটিতে গিয়ে এনএফএস(NFS) স্ক্রিপ্ট এর লিংকটি মুছে দিলেই হবে। তারপর রানলেভেল ৩ অর্থাৎ /etc/rc3.d ডিরেক্টরীতে গিয়ে সকল ইন্টারনেট সার্ভিসের স্ক্রিপ্ট যথা এ্যাপাচি, সেন্ডমেইল এবং আইনেটডি এর লিংকগুলি মুছে দিন যাতে রানলেভেল ৩ শুধুমাত্র নেটওয়ার্ক ফাইল শেয়ারিং এর জন্য ব্যবহার করতে পারেন।

রানলেভেল সাবডিরেক্টরীতে লিংক ব্যবহারের আরও একটি কারন নিহিত আছে। এ লিংকগুলির নামকরনের মাঝেই লুকায়িত আছে স্ক্রিপ্টগুলি কখন চালু হবে এবং কোন ক্রমিক-এ চালু হবে। যে লিংকগুলির নাম বড় হাতের অক্ষর-S দিয়ে শুরু তারা মেশিন স্টার্ট এর সময়ই চালু হয়ে থাকে। যে লিংকগুলির নাম বড় হাতের - K অক্ষর দিয়ে শুরু হয়েছে তারা রানলেভেল থেকে বের /এক্সিট হওয়ার সময় কোন সার্ভিস কে কিল করার জন্য রান করে থাকে। এ কারনেই কোন রানলেভেলকে কোন সার্ভিস কে বন্ধ করার জন্য ঐ সার্ভিসের লিংকটিকে না মুছে তার সামনে একটি আন্ডারস্কোর(_) অথবা ড্যাশ (-) ব্যবহার করে নতুন নামকরন করা হয়। ফলে পরবর্তীতে ঐ সার্ভিসটি আর কাজ করবে না। আবার যখন এটি চালু করার দরকার হবে তখন উক্ত আন্ডারস্কোর বা ড্যাশটিকে উঠিয়ে দিলেই চলে।

মাল্টিইউজার রান লেভেল এর ডিরেক্টরীসমূহে শুধুমাত্র S দিয়ে শুরু এমন লিংকগুলিই থাকে। যে সব রানলেভেল সিস্টেম শাট ডাউন/বন্ধ করা এবং কাজের উপর নিয়ন্ত্রন আরোপে ব্যবহৃত হয় (০, ১, ৬) কেবল সেগুলির ডিরেক্টরীতেই সার্ভিস কিল করার জন্য K দিয়ে শুরু এমন লিংকসমূহ থাকে।

S or K অক্ষরের পর যে নম্বরটি থাকে সেটি দিয়েই নির্ধারিত হয় একটি সার্ভিস কখন চালু হবে (এক্ষেত্রে যে নম্বরটি ছোট সবার আগে সেটি চালু হবে)। এটি প্রসেস সমূহ চালুর জন্য কাজে লাগে কারন একটি সার্ভিস অনেক সময় আরেকটি সার্ভিস এর উপর নির্ভর করতে পারে। উদাহরনস্বরূপঃ যদি নেটওয়ার্ক সার্ভিস চালু না হয় তাহলে আপনি সাম্বা সার্ভিস (যেটি উইন্ডোজ মেশিনের সাথে নেটওয়ার্কিং এর কাজে ব্যবহৃত হয়) চালু করতে চাইবেন না। নিচের কয়েকটি উদাহরন দেখিঃ

S20thisservice
S30thatservice
S40anotherservice
S80yetanother
  • সিস্টেম বন্ধ করার প্রসেস
ডস সিস্টেম এর মত আপনি লিনাক্স সিস্টেমকে বন্ধ করতে পারবেন না। এটিকে অবশ্যই যথার্থ নিয়মে বন্ধ করতে হয়। লিনাক্সে সিস্টেম শাট ডাউন করার জন্য বেশ কয়েকটি পদ্ধতি আছে তবে অধিকাংশ লিনাক্স ডিস্ট্রোতেই আমার কাছে ctrl-alt-del কমান্ড দিয়ে বন্ধ করার নিয়মটি বেশ সহজ মনে হয়। এ কমান্ডটি দিলে ডস সিস্টেম এর মত মেশিন রিবুট হয় না। এটি প্রথমে সকল ধরনের প্রসেসগুলিকে বন্ধ করবে এবং তারপর ফাইল সিস্টেমকে আনমাউন্ট করবে। তারপর এটি যখন পুনরায় রিবুট শুরু করবে তখন সিপিইউ এর পাওয়ার অন করার সুইচ দিয়ে সিস্টেম বন্ধ করে দিতে পারেন । এছাড়া বন্ধ করার জন্য কমান্ড দিতে পারেন - halt -p অথবা poweroff অথবা shutdown

যদি আপনি মেশিনকে চালু রাখতে চান কিন্তু লগড্‌ ইন অবস্থায় থাকতে না চান তবে শেল প্রম্পটে টাইপ করুন exit - যেটি বেশীরভাগ সার্ভার এর ক্ষেত্রে হয়ে থাকে। এ কমান্ডটি আপনাকে লগ আউট করে পুনরায় লগইন স্ক্রিনে নিয়ে যাবে। একটি জিনিস অবশ্যই মনে রাখবেন, কোন ইন্টারনেট সার্ভারে কখনই রুট ইউজার হিসেবে লগইন করে থাকা উচিত নয়।

  • সোর্স এবং বাইনারী কি?
অন্যান্য অপারেটিং সিস্টেম এর মত লিনাক্স ও দু’ধরনের ফাইল নিয়ে কাজ করে থাকে যথাক্রমে ১) বাইনারী ফাইল ও ২) টেক্সট ফাইল। বাইনারী ফাইল আমাদের কাছে হিজিবিজি ধরনের কিছু লেখা ছাড়া আর কিছুই মনে হয় না। তারা হতে পারে প্রোগ্রাম অথবা প্রোগ্রাম বা অপারেটিং সিস্টেম কর্তৃক লিখিত কোন ডাটা ফাইল। টেক্সট ফাইল হচ্ছে যা আমরা পড়ে বুঝতে সক্ষম সে ধরনের কোন ফাইল। নোটপ্যাড বা অন্য সাধারন কোন টেক্সট এডিটরের সাহায্যে এগুলিকে দেখা এবং পরিবর্তন করা যায়।

লিনাক্স ও অন্যান্য অপারেটিং সিস্টেম যে ফাইলগুলি নিয়ে কাজ করে থাকে তারা এ দুটো ফাইলের যেকোন একটি ক্যাটাগরিতে পড়ে। একটি ফাইল সিপিইউ(প্রোগ্রাম) কর্তৃক পরিচালনার জন্য এর জন্য একসেট নির্দেশনা হতে পারে অথবা তাতে ব্যবহারকারীর জন্য কিছু তথ্য/ডাটা থাকতে পারে। প্রোগ্রাম বা এ্যাপ্লিকেশনগুলি অপারেটিং সিস্টেম এর কমান্ড থেকে শুরু করে ওয়ার্ড প্রসেসর জাতীয় যে কোন প্রোগ্রাম হতে পারে। অন্যদিকে ডাটা ফাইলে কোন প্রোগ্রামের জন্য তথ্য বা কনফিগারেশন অপশন থাকতে পারে অথবা তা আমাদের ব্যবহারযোগ্য কোন তথ্য যেমন ওয়ার্ড প্রসেসিং ডকুমেন্ট অথবা কোন ডাটাবেজ ফাইল ও হতে পারে।

উপরের তথ্যগুলি থেকে ফাইল এর প্রকারভেদ সম্পর্কে একটি মোটামুটি ধারনা পাওয়া যায় কারন এটি থেকে কোন ফাইল কি ধরনের তা শুরুতেই আমরা অনুমান করতে পারি এবং সেভাবে কাজ করতে পারি। তবে ফাইলের ধরন এবং প্রকারভেদ এর মধ্যে কোন সম্পর্ক আদতেই নেই। উপরে এতক্ষন যে আলোচনা করেছি সেগুলিকে কিছু পয়েন্ট আকারে এখন আমরা উল্লেখ করতে পারিঃ
  • বাইনারী ফাইল যেকোন প্রোগ্রাম ফাইল ও হতে পারে (যেমন উইন্ডোজে .exe ফাইল)
  • বাইনারী ফাইলে ডাটা ও থাকতে পারে (যেমন পেইন্ট ব্রাশ প্রোগ্রাম দিয়ে তৈরী কোন গ্রাফিক্স ফাইল)
  • টেক্সট ফাইল ও প্রোগ্রাম হতে পারে (যেমন অপারেটিং সিস্টেম এর জন্য কোন স্ক্রিপ্ট/ব্যাচ ফাইল কমান্ডসমূহ)
  • টেক্সট ফাইলগুলিতে ডাটা ও থাকতে পারে (যেমন লিনাক্স প্রোগ্রাম এর জন্য কনফিগারেশগুলিকে টেক্সট ফাইলে সেভ করে রাখে এবং এক্সেল এর প্রোগ্রাম ও টেক্সট ফাইলে ডাটা এক্সপোর্ট করতে পারে)

অধিকাংশ প্রোগ্রামার হয়ত প্রশ্ন করতে পারেন যে, টেক্সট ব্যাচ ফাইল কিভাবে প্রোগ্রাম হয়? কিন্তু বাস্তবে তারা কিছু কাস্টমাইজ কাজ সম্পন্ন করার জন্য সিপিইউ এর প্রতি একসেট নির্দেশ স্বরূপ।

ls কমান্ড দিয়ে কোন ফাইল এর ধরন কি তা জানা সম্ভব নয়। এজন্য file কমান্ড দিতে হয়ঃ

file /bin/ls

যদি ফাইলটি কোন বাইনারী ফাইল হয় তবে উক্ত কমান্ডটি কিছু ডাটা রিটার্ন করবে অথবা কিছু লম্বা লাইন প্রদর্শন করবে যার মাঝে ELF 32-bit কথাটি ও থাকবে (ELF এর অর্থ হচ্ছে Executable and Link Format)। যদি এটি কোন টেক্সট ফাইল হয় তবে এর অভ্যন্তরে text শব্দটি সহ কিছু লাইন প্রদর্শন করবে।

লিনাক্স অপারেটিং সিস্টেমটি সাধারনতঃ দু’ধরনের হয়ে থাকে। বাইনারী ফাইল হচ্ছে যারা আগে থেকেই কম্পাইল করা আছে অর্থাৎ উইন্ডোজ অপারেটিং সিস্টেম এর মত আপনার পিসিতে অপারেটিং সিস্টেমটি চালানোর জন্য প্রস্তুত। তাছাড়া লিনাক্স ওপেন সোর্স হওয়াতে প্রোগ্রামারগন যে কোডগুলি লিখে থাকেন অপারেটিং সিস্টেম এর জন্য সেগুলিও ফ্রি পাওয়া যায়। সোর্স কোড ফাইলগুলি হচ্ছে টেক্সট ফাইল। একজন প্রোগ্রামার একটি টেক্সট এডিটরের এই প্রোগ্রাম স্টেটমেন্ট সমূহ লিখে থাকেন, তারপর সেটিকে সেভ করেন এবং সর্বশেষে বাইনারী ফাইল তৈরীর জন্য এটিকে কম্পাইল করেন যেটি উইন্ডোজের .EXE ফাইলের সমতূল্য।

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

লিনাক্সের এই ওপেন সোর্স নিঃসন্দেহে একটি বড় আশীর্বাদ আমাদের সবার জন্য কেননা এর ফলে আপনি লিনাক্স এবং তার সাথে যত প্রোগ্রাম আছে সবার সোর্স কোড দেখতে পারছেন ফলে তারা আসলে সত্যিকারভাবে কি কাজ করছে তার উপর চোখ রাখতে পারছেন যা ক্লোজড সোর্স অপারেটিং সিস্টেমে সম্ভব নয়। এটি আপনাকে বড় ধরনের সিকিউরিটি থ্রেট থেকে ও মুক্ত রাখছে। কারন উইন্ডোজে একটি প্রোগ্রাম ব্যাকগ্রাউন্ডে আপনার পাসওয়ার্ড বা ক্রেডিট কার্ডের নম্বর এর মালিকের কাছে পাচার করে দিচ্ছে কি না - তা জানার কোন সুযোগ নেই। যখন আপনি উইন্ডোজ আপডেটের জন্য microsoft.com এ যাচ্ছেন তখন সে আপনার মেশিনের কি কি তথ্য চেক করছে এবং আপনার মেশিন থেকে কি কি তথ্য নিচ্ছে তা জানার কোন সুযোগ নেই। শুধু মাইক্রোসফট এর নিজস্ব কিছু লোকই তা জানে।

সকল ধরনের সোর্স কোড ফাইলই কম্পাইল করার মাধ্যমে এক্সিকিউটেবল বাইনারীতে রূপান্তর করা যায়। লিনাক্স/ইউনিক্স এর জগতে তাই প্রোগ্রাম এর সোর্স কোড সহ (টেক্সট ফরম্যাট) বিতরন করাটা হরহামেশাই চোখে পড়ে। কারন লিনাক্স এর অনেক ফ্লেভার বাজারে পাওয়া যায় এবং তা বিভিন্ন প্লাটফরমে রান করে থাকে। তাই প্রতিটি প্লাটফরমের জন্য আলাদা বাইনারী তৈরীর চেয়ে সোর্স কোড দিয়ে দেয়া হয় যেন প্রত্যেকেই তার প্লাটফরমের জন্য বাইনারী তৈরী করে নিতে পারেন। এজন্যই আপনি ভিন্ন ভিন্ন প্লাটফরমের জন্য লিনাক্সের ভিন্ন ভিন্ন ডিস্ক সেট দেখে থাকবেন। যেমনঃ i386-Intel, m68K-Mac, Sparc-Sun, ppc-PowerPC। উইন্ডোজ শুধুমাত্র ইন্টেল /ইন্টেল কম্প্যাটিয়েবল প্লাটফরমের জন্যই কম্পাইল করা হয়। তাই লিনাক্স আপনাকে একই অপারেটিং সিস্টেম বিভিন্ন প্লাটফরমে চালানোর সুযোগ করে দিচ্ছে যে তালিকাতে এমনকি S/390 মেইন ফ্রেম কম্পিউটারও আছে।

সুতরাং কোন ব্যক্তি বা কোম্পানি যারা প্রোগ্রাম তৈরী করেন তাদের জন্য দুটো বিকল্প আছে। তাদেরকে হয় বিভিন্ন প্লাটফরমের জন্য ভিন্ন ভিন্ন বাইনারী তৈরী করতে হবে সকল লিনাক্স ডিস্ট্রোর জন্য (যা করতে হলে তাদের বিভিন্ন প্লাটফরমের মেশিন থাকতে হবে কম্পাইল করার জন্য) অথবা তারা এটির সোর্স কোডটি বিতরন করতে পারেন সবার জন্য যাতে প্রত্যেকেই তাদের নিজস্ব মেশিনের জন্য কম্পাইল করে নিতে পারেন। এজন্য বেশীরভাগ লিনাক্স ফ্লেভারেই একটি ‘সি’ কম্পাইলার দিয়ে দেয়া হয় এবং অনেক প্রোগ্রাম এবং ইউলিটি প্রোগ্রাম একমাত্র সোর্স কোডেই পাওয়া যায়। তবে ডেবিয়ান বিভিন্ন হার্ডওয়্যার প্লাটফরমের জন্য ভিন্ন ভিন্ন ডিস্ক সেট অফার করে এবং সেই সাথে এক সেট সোর্স কোড ডিস্ক সেট ও অফার করে থাকে যেখানে ডেবিয়ান এর সমস্ত প্যাকেজের সোর্স কোড দেয়া থাকে।

লিনাক্স অপারেটিং সিস্টেম এর প্রাথমিক ধারনা-৩

আজ এ সিরিজের তৃতীয় পোস্ট করতে যাচ্ছি। জানিনা কেমন হচ্ছে। কারন এখন পর্যন্ত উল্লেখযোগ্য কোন আলোচনা - সমালোচনা ইত্যাদির মুখোমুখি হইনি। যাই হোক আমার মূল উদ্দেশ্য কে সামনে রেখে এ সিরিজটি শেষ করতে চাই অনাগত ভবিষ্যতের নতুন লিনাক্স ব্যবহারকারীদের কথা মাথায় রেখেই ।

আজ মূলত লিনাক্স এর মাল্টি ইউজার কনসেপ্ট, ফাইল সিস্টেম, সিমলিংকস, ফাইল সার্চিং ইত্যাদি নিয়ে আলোচনা করব।

মাল্টি ইউজার বা একাধিক ব্যবহারকারী ভিত্তিক

অন্যান্য সার্ভার অপারেটিং সিস্টেম এর মত লিনাক্স এবং ইউনিক্স ও একাধিক ব্যবহারকারী ভিত্তিক অপারেটিং সিস্টেম। তবে আজকাল কিছু কিছু ডিস্ট্রোতে সিঙ্গেল ইউজার মোড সিলেক্ট করার অপশন বুট এর সময় দেয়া হয়ে থাকে । উদাহরনস্বরূপ- একটি লিনাক্স সিস্টেমকে নেটওয়ার্কে স্থাপন করা হলে একই সময়ে একাধিক ব্যবহারকারী তাদের উইন্ডোজ পিসি এর সাহায্যে লিনাক্স সার্ভার এ টেলনেট সেশন চালু করতে পারে। ফলে প্রত্যেক ব্যবহারকারীই তাদের নিজস্ব টার্মিনাল সেশন পাবেন অর্থাৎ প্রত্যেকেরই নিজস্ব শেল প্রম্পট থাকবে যেখানে ইচ্ছামত যেকোন শেল কমান্ড দিতে পারবেন।

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

আগেই বলা হয়েছে, সিস্টেমে যদি রুট ইউজার হিসেবে লগইন করা হয় তবে যেকোন ফাইলে প্রবেশ করা, পরিবর্তন করা বা মোছা যায় কারন লিনাক্স বা ইউনিক্সে রুট হচ্ছে সর্বময় ক্ষমতার অধিকারী। অপারেটিং সিস্টেম ইনস্টল হওয়ার সময়ই রুট ইউজার তৈরী হয়ে থাকে। ডেবিয়ান বা উবুন্তু ইনস্টলের সময় রুট ব্যবহারকারীর জন্য একটি পাসওয়ার্ড দিতে হয় এবং ঐ সময় আরো অতিরিক্ত ব্যবহারকারীর একাউন্ট তৈরী করবেন কিনা তা জিজ্ঞাসা করা হয়। ইনস্টলেশন হওয়ার পর ও রুট একাউন্ট এর সাহায্যে অতিরিক্ত একাউন্ট তৈরী করতে পারেন। এ রুট একাউন্টটি সাধারনত সফটওয়্যার বা প্রোগ্রাম ইনস্টল করা এবং এ্যাপ্লিকেশনের কনফিগারেশন ফাইলসমূহ পরিবর্তন করতে ব্যবহার করা হয়-যেটি মূলত একটি টেক্সট ফাইল যা একটি সাধারন টেক্সট এডিটর দিয়েই পরিবর্তন করা হয়।

এমনকি আপনার যদি স্ট্যান্ড এলোন লিনাক্স সিস্টেম ও থাকে আপনি সেটিকে মাল্টি ইউজার সিস্টেম হিসেবে কাজে লাগাতে পারবেন। যখন মেশিন একটি লগইন প্রম্পটসহ প্রথমে বুট হয় তখন আসলে আপনি বেশ কয়েকটি টার্মিনাল সেশনের প্রথমটিই দেখতে পান। বাকিগুলি দেখতে হলে লগইন করার পর কি-বোর্ডের Alt Key চেপে রেখে F2 চাপুন। আপনি আর ও একটি লগইন প্রম্পট দেখতে পাবেন এবং এটি হচ্ছে দ্বিতীয় টার্মিনাল সেশন। এভাবে আপনি F3 থেকে F6 পর্যন্ত চাপলে পরপর লগইন প্রম্পটগুলি একের পর এক পেতে থাকবেন। F7 হচ্ছে বর্তমানে লগইন করা আপনার গ্রাফিক্যাল ইন্টারফেস। মেশিন যদি প্রথমে গ্রাফিক্যাল মোডে বুট হয় তবে Altএবং F7চাপলে এটি আবার পূনরায় আপনাকে গ্রাফিক্যাল মোডে নিয়ে আসবে। প্রতিটি টার্মিনাল সেশনেই আপনি ভিন্ন ভিন্ন নামে লগইন করতে পারবেন। এ ধরনের টার্মিনাল সেশনকে 'কনসোল' অথবা 'ভার্চুয়াল টার্মিনাল' বলা হয়ে থাকে। এ ধরনের একাধিক টার্মিনাল ব্যবহার বেশ সুবিধা জনক যখন আপনি কোন নির্দিষ্ট ফাইল বা ডিরেক্টরীর পারমিশন লেভেল সমন্বয় এর মত কাজ করবেন। এ ধরনের কাজে একটি টার্মিনাল এ রুট হিসেবে লগইন করে যাবতীয় পারমিশন সেট এর কাজ করতে পারেন এবং সেই সাথে অন্য আরেকটি কনসোলে সাধারন ব্যবহারকারী হিসেবে লগইন করে সেটিংসগুলি পরীক্ষা করে দেখতে পারেন।

এই একাধিক কনসোলগুলি শুধুমাত্র ভার্চুয়াল টার্মিনাল ব্যবহারের মধ্যেই সীমাবদ্ধ নয়। চাইলে আপনি একটি ডাম্ব টার্মিনাল (dumb terminal) এর সাহায্যে লিনাক্স পিসির সাথে সিরিয়াল পোর্টের মাধ্যমে কানেক্ট হতে পারেন এবং /etc/inittab ফাইলের কয়েকটি লাইন আনকমেন্ট করার মাধ্যমেই তাদের নিজস্ব টার্মিনাল সেশন ব্যবহারের সুযোগ করে দিতে পারেন। ডাম্ব টার্মিনাল ব্যবহারের বদলে আপনি সাধারন পিসি ও ব্যবহার করতে পারেন যেটি HyperTerm নামক প্রোগ্রামের সাহায্যে লিনাক্স মেশিনের সিরিয়াল পোর্টের মাধ্যমে কানেক্ট হবে। একটি পিসি টু পিসি কানেকশনের জন্য নাল-মডেম কেবল প্রয়োজন হয়ে থাকে। ডাম্ব টার্মিনাল এর ক্ষেত্রে এ ধরনের কেবল লাগতেও পারে আবার নাও লাগতে পারে যেটি মূলত ইন্টারফেস এর উপর নির্ভর করে থাকে। যেহেতু বেশিরভাগ পিসি-তেই দুটি সিরিয়াল পোর্ট থাকে তাই একই লিনাক্স সিস্টেম কমপক্ষে ৩ জন লোক একসাথে ব্যবহার করতে পারবে।

নির্দিষ্ট সার্ভিস প্রদানের জন্য কিছু ইউজার একাউন্ট স্বয়ংক্রিয়ভাবে সেট আপ/তৈরী হয়ে থাকে। উদাহরনস্বরূপ, আপনার লিনাক্স সিস্টেমকে যদি এফটিপি সার্ভার হিসেবে ব্যবহার করতে চান তবে ftp নামে একটি ইউজার একাউন্ট তৈরী হবে। এই ftp একাউন্ট এর সাহায্যে সাধারন যে কেউ সার্ভার এর সাথে যুক্ত হয়ে যাবতীয় কাজ করতে পারবে।

লিনাক্সের ফাইল সিস্টেম

লিনাক্স/ইউনিক্সে ফাইল নিয়ে কাজ করার আগে যেটি জানা সবচেয়ে গুরুত্বপূর্ন তা হচ্ছে -

লিনাক্স/ইউনিক্স সর্বদা কেস সেনসিটিভ!

অর্থাৎ বড় হাতের অক্ষর এবং ছোট হাতের অক্ষরকে সে আলাদা বিবেচনা করে থাকে।

নিচের প্রত্যেকটি ফাইল-ই লিনাক্সে ভিন্ন ভিন্ন ফাইল হিসেবে বিবেচিত হয়ঃ

README
readme
Readme
ReadMe

লিনাক্সে সবকিছুই ফাইল হিসেবে ধরা হয়। যখন স্ক্রিনে কোন কিছু লিখে আপনাকে দেখায় তখন এটি আসলে একটি ফাইলেই তা লিখে দেখায়। যখন এটি মডেম এর সাহায্যে কোন ডাটা পাঠায় তখন আসলে সে মনে করে যে, একটি ফাইলে সে লিখছে মাত্র – এর বেশী কিছু নয়। তাই আপনার মেশিনের যাবতীয় হার্ডওয়্যার সেই সাথে পোর্ট সমূহ, হার্ড ড্রাইভ, ভিডিও কার্ড ইত্যাদি যাই থাকুক না কেন সেগুলি লিনাক্সের ফাইল সিস্টেমের কোথা ও না কোথাও অবশ্যই ফাইল হিসেবে দেখানো হয়ে থাকে। ফাইল সিস্টেমের রুট পাথে ডিভাইসসমূহের জন্য একটি /dev নামে ডিরেক্টরী/ফোল্ডার আছে। এ ফোল্ডারে হার্ডওয়্যার এর সাথে সম্পর্কযুক্ত অসংখ্য ফাইল পাবেন। উইন্ডোজে যেমন ডিভাইস ড্রাইভার আছে ঠিক তেমনই লিনাক্সে ফাইলগুলি ডিভাইস ড্রাইভারের কাজ করে থাকে। এ ডিভাইস ড্রাইভার গুলিই প্রোগ্রামের সাথে সত্যিকারের হার্ডওয়্যার এর সাথে যোগাযোগ এবং ডাটা ট্রান্সফারের কাজ করে থাকে।

লিনাক্স কিভাবে আইডিই হার্ডডিস্কগুলিকে চিহ্নিত করে তা জেনে নেয়া ভাল। যদি জানা না থাকে সেজন্য আগেই বলছি, অধিকাংশ সিস্টেম এর জন্য দু'টি আইডিই চ্যানেল থাকে যাদের একটিকে বলে প্রাইমারি এবং অপরটি সেকেন্ডারী। প্রতিটি চ্যানেলে আপনি দুটি হার্ডড্রাইভ সংযুক্ত করতে পারবেন যাদের একটিকে বলে মাস্টার এবং অপরটিকে স্লেভ। এজন্যই আপনাকে হার্ডড্রাইভ লাগানোর সময় জাম্পার সেটিংস এর দিকে নজর দিতে হয়। লিনাক্স এ ড্রাইভগুলিকে নিচের মত করে চিহ্নিত করে থাকে-

Primary Master- hda
Primary Slave- hdb
Secondary Master-hdc
Secondary Slave- hdd


বর্তমানে নতুন হার্ডড্রাইভসমূহ সাটা নির্ভর হওয়ার এগুলিকে hda, hdb, hdc ইত্যাদির বদলে sda, sdb, sdc ইত্যাদি হিসেবে দেখিয়ে থাকে। যদি হার্ডডিস্কে একাধিক পার্টিশন থাকে তবে প্রতিটি পার্টিশনকেই উপরে বর্নিত ড্রাইভের নামের শেষে একটি নম্বর দিয়ে চিহ্নিত করা হয়। উদাহরনস্বরূপঃ আপনার যদি একটি হার্ডডিস্ক থাকে এবং সেই সাথে তার তিনটি পার্টিশন থাকে তবে প্রথম ড্রাইভটি(c:) হবে hda1 অথবা sda1। তারপর প্রাইমারি পার্টিশন এর জন্য আরো তিনটি ড্রাইভ লেটার সংরক্ষিত থাকে বিধায় পরবর্তী ড্রাইভগুলি দেখাবে 5 নম্বর সিরিয়াল হতে। অর্থাৎ বাকি দুটি পার্টিশনকে দেখাবে hda5/sda5, hda6/sda6 হিসেবে। এ পার্টিশনগুলি একসেস করতে হলে অবশ্যই সেগুলি মাউন্ট করে নিতে হবে যদিও বর্তমানে বেশ কিছু ডিস্ট্রোতে এগুলি অটো মাউন্ট হয়ে থাকে। ইনস্টলেশনের সময় যে পার্টিশনগুলি তৈরী করবেন তা লিনাক্স বুটের সময় নিজে থেকেই মাউন্ট করে নিবে।

হার্ডডিস্কের পার্টিশনসমূহ দেখতে কমান্ড দিনঃ

fdisk -l

যেহেতু ডিভিডি-রম একটি রিমুভেবল ডিভাইস তাই এটি প্রবেশ করানোর সাথে সাথেই এটিকে নাও পেতে পারেন। ডিভিডি দেখার জন্য mount কমান্ড দিয়ে প্রথমেই মাউন্ট করার প্রয়োজন হতে পারে। আমার সিস্টেমে যেহেতু সাটা ড্রাইভে হার্ডড্রাইভ লাগানো তাই এটি প্রথম ড্রাইভের প্রথম আইডিই চ্যানেলে লাগানো। ফলে এজন্য মাউন্ট করার কমান্ড হবে নিচের মতঃ

mount -t iso9660 /dev/hda /cdrom

উপরের কমান্ডটি প্রথমেই একটু অপরিচিত মনে হতে পারে কিন্তু এটি আসলে খুবই সহজ। আসুন এর অপশনগুলি এক নজরে দেখে নেই।

  • mount একটি ডিভাইসকে ফাইল সিস্টেম এর অংশে পরিনত করে
  • -t iso9660 মাউন্টকৃত ফাইল সিস্টেম এর ফরম্যাট কে নির্দেশ করে। (ডাটা সিডি এবং অধিকাংশ ডিভিডির জন্য স্ট্যান্ডার্ড ফরম্যাট হচ্ছে iso9660 কিন্তু যদি আমরা ফ্লপি ড্রাইভ মাউন্ট করি সেক্ষেত্রে এটি হবে msdos)
  • /dev/hda ডিভিডি/সিডিরম ড্রাইভের ডিভাইস ফাইলের পাথ। hda এর a দ্বারা এটি প্রথম হার্ডড্রাইভের প্রথম আইডিই চ্যানেল কে নির্দেশ করে। SCSI হার্ডড্রাইভের ক্ষেত্রে আমার মেশিনে ডিভিডি রম কে দেখায় scd.
  • /cdrom দ্বারা সিস্টেম এর একটি ডিরেক্টরী বা ফোল্ডারকে বোঝায় যেখানে এটি মাউন্ট করা হবে এবং একসেস করা হবে। এটি আগে থেকেই তৈরী করা থাকতে হবে কিন্তু এটি যেকোন নামে যেকোন জায়গাতেই তৈরী করতে পারেন। এ জন্য mkdir কমান্ডের মাধ্যমে একটি ফোল্ডার তৈরী করুন যেমনঃ yourname এবং উপরের কমান্ড এ /cdrom এর বদলে দিন /yourname - যেমনটি আপনি চান।

উপরে মাউন্ট কমান্ডের সাহায্যে /cdrom ডিরেক্টরীতে (যেটি মূলত ইনস্টলেশনের সময়ই তৈরী) ডিভিডি রম ড্রাইভটি ম্যাপ করা হবে। যে ডিরেক্টরীতে একটি ডিভাইসকে ম্যাপ করা হয় প্রবেশ করার জন্য তাকে মাউন্ট পয়েন্ট বলে। তাই একটি ডিভিডি রম মাউন্ট করা হলে যে মাউন্ট পয়েন্টে একে ম্যাপ করা হয় সেখানে প্রবেশের জন্য শুধুমাত্র নিচের কমান্ডটি দিনঃ

cd /cdrom

এবং ফাইলসমূহ প্রদর্শনের জন্য ls কমান্ডটি ব্যবহার করুন। যদি আপনি নিচের লাইনের মত বার্তা পানঃ

kernel does not recognize /dev/hda

তাহলে আপনার ডিভিডি-রমটি সম্ভবত স্লেভ হিসেবে প্রাইমারি আইডিই চ্যানেল এ যুক্ত আছে।(অর্থাৎ /dev/hdb)।
ডেবিয়ান সাধারনতঃ ইনস্টলেশনের সময়ই /cdrom ডিরেক্টরীটি তৈরী করে থাকে। অন্যান্য ডিস্ট্রিবিউশনে এটি সাধারনত /mnt ডিরেক্টরীর অধীনে থাকে। এ সব সিস্টেমে মাউন্ট করার জন্য টার্গেট ডিরেক্টরীটি পরিবর্তন করে দিলেই হল যা হবে নিম্নরূপঃ

mount -t iso9660 /dev/hda /mnt/cdrom

যেভাবে আপনি রিমুভেবল ড্রাইভগুলি প্রবেশের জন্য মাউন্ট করেন ঠিক একইভাবে কাজ শেষে এগুলিকে আনমাউন্ট করা হয। ইজেক্ট বাটন প্রেস করলে অনেক সময় ডিভিডি রম বের নাও হতে পারে সেজন্য আনমাউন্ট কমান্ড ব্যবহার করতে হবে। এজন্য টাইপ করুন umount এবং লিখুন ফাইল সিস্টেমের মাউন্ট পয়েন্টঃ

umount /mnt/cdrom

লিনাক্সের ফাইল সিস্টেমের একটি গুরুত্বপূর্ন বিষয় হলো যে, ফাইল এক্সটেনশন এখানে অপারেটিং সিস্টেম এর জন্য কিছুই নির্দেশ করে না। উইন্ডোজে সাধারনত ফাইলের নামের শেষে একটি পিরিয়ড(.) চিহ্ন দিয়ে যে তিনটি ক্যারেক্টর এর এক্সটেনশন থাকে সেটিই সাধারনত তার কাজকে নির্দেশ করে থাকে- উদাহরনস্বরূপ এটি কি একটি প্রোগ্রাম (.exe) নাকি একটি সাধারন এমএস ওয়ার্ড এর ফাইল(.doc)। লিনাক্স এ ধরনের কোন এক্সটেনশন এর ব্যবহার-ই নেই। ফাইল এর নামে পিরিয়ড (.) থাকতে পারে তবে সেটি লিনাক্সের কাছে কোন এক্সটেনশন হিসেবে বিবেচিত হয় না।
অবশ্য লিনাক্সের কিছু কিছু এপ্লিকেশনে তাদের ডাটা ফাইলকে এক্সটেনশন দিয়ে চিহ্নিত করতে পারে যেমন এ্যাপাচি ওয়েব সার্ভার .htm, .html, এবং .shtmlযুক্ত ফাইলগুলিকে খুঁজে থাকে এবং এগুলিকে মনে হতে পারে যে এক্সটেনশন। টেকনিক্যালি কিন্তু তারা তা মোটেও নয় এবং লিনাক্স/ইউনিক্স অপারেটিং সিস্টেমের কাছে তাদের কোন অর্থই নেই।

আপনার একটি ফাইলের নাম হতে পারে this.is.a.file-এ রকম যদি আপনি চান। অপারেটিং সিস্টেম এর কাছে সবই এক। সুতরাং কিভাবে লিনাক্স বুঝতে পারে যে, এ ফাইলটি একটি প্রোগ্রাম/এ্যাপ্লিকেশন? লিনাক্সের আছে প্রত্যেকটি ফাইলের জন্য একসেট পারমিশন যেগুলি হচ্ছে যথাক্রমে-read, writeএবং execute। আপনাকে শুধুমাত্র একটি ফাইল/স্ক্রিপ্টকে execute পারমিশন সেট করে দিলেই হবে তাহলে এটি যে একটি এক্সিকিউটেবল প্রোগ্রাম তা অপারেটিং সিস্টেম বুঝে নেবে। আপনি এক্ষেত্রে প্রোগ্রাম বা স্ক্রিপ্ট নয় এমন ফাইলকে ও execute পারমিশন দিতে পারেন কিন্তু সেক্ষেত্রে অপারেটিং সিস্টেম এটিকে শেল স্ক্রিপ্ট কমান্ড হিসেবে রান করার চেষ্টা করবে। তাই ফলস্বরূপ আপনি অনেকগুলি এরর মেসেজ পেতে পারেন -এমনকি ফাইলের ভিতরে লেখাগুলির কারনে মারাত্মক কোন ফলাফল হিসেবে একটি খালি হার্ডডিস্ক ও পেতে পারেন!!!

আমি এখানে ফাইল পারমিশন নিয়ে ব্যাপক আলোচনা টানতে চাই না। শুধুমাত্র কিছু বেসিক নিয়ে আলোচনা করতে চাই।

আপনি যদি ডসে কাজ করে থাকেন তাহলে নিচের কমান্ডটি শেল প্রম্পটে টাইপ করে লিনাক্সে কাজ করাকে আরেকটু সহজ করতে পারেনঃ

alias dir="ls -laF"

এটি ফাইল লিস্ট দেখার জন্য ডসে ব্যবহৃত dirকমান্ডকে লিনাক্সের ls কমান্ড এর বদলে ব্যবহারের সুযোগ করে দেয়। আমি অবশ্য লিনাক্সের ভার্সনটিতে বেশী অভ্যস্ত এজন্য মাঝে মাঝে উইন্ডোজেও ভুল করে ls কমান্ড দিয়ে বসি। কোন প্যারামিটার বাদে শুধুমাত্র ls কমান্ডটি একটি সাধারন লিস্ট প্রদান করে থাকে যেখানে এমনকি কোনটি ফাইল আর কোনটি ডিরেক্টরী তাও বোঝা যায় না। একটি ভাল লিস্ট দেখার জন্য তাই কমান্ড দিতে হবে ls -laF কিন্তু প্রতিবারই আপনাকে তা টাইপ করতে হবে। তাই উপরের কমান্ডটি দেয়ার পর আপনাকে শুধুমাত্র dir টাইপ করলেই চলবে।

drwxrwxrwx 3 keith web 4096 Aug 8 03:59 ./
dr-xr-sr-x 3 keith web 4096 Aug 6 13:56 ../
-rw-r--r-- 1 keith web 17181 Aug 6 16:04 bdl21dlx.zip
-rwxr-xr-x 1 keith web 15818 Aug 6 16:04 bdlogger.cgi*
-rw-r--r-- 1 keith web 1 Aug 6 16:04 history.log
-rw-r--r-- 1 keith web 1 Aug 6 16:04 pagehits.cnt
-rw-r--r-- 1 keith web 1 Aug 6 16:04 period.log
-rw-r--r-- 1 keith web 30586 Aug 6 16:04 readme.txt
-rw-r--r-- 1 keith web 1 Aug 6 16:04 trigger.dat
drwxrwxr-x 2 keith web 4096 Aug 8 03:59 zips/

“zips/” এর পর '/' দিয়ে এটি যে একটি ডিরেক্টরী তা নির্দেশ করে (ঠিক যেমনটি লাইনের শুরুতে পারমিশন ব্লকের বামেরd দিয়ে বোঝানো হয়)। bdlogger.cgi ফাইল এর পর * দিয়ে এটি যে একটি এক্সিকিউটেবল ফাইল তা নির্দেশিত হয়। bdlogger.cgi ফাইলের পারমিশন ব্লকে -rwxr-xr-x (যা মূলত অক্টেট হিসেবে 755) (x) ফ্লাগের সাহায্যে ও বোঝা যায় যে এটি একটি এক্সিকিউটেবল ফাইল।

এখানে একটি বিষয় লক্ষ্যনীয় যে, ফাইলের নামের ক্ষেত্রে লিনাক্স শুধুমাত্র একটি বিশেষ উদ্দেশ্যেই পিরিয়ড ব্যবহার করে থাকে। যে ফাইলগুলির নাম পিরিয়ড দিয়ে শুরু হয় সেটি সাধারনত কনফিগারেশন ফাইল হয়ে থাকে। লিনাক্স/ইউনিক্সে প্রত্যেক ব্যবহারকারীর হোম ফোল্ডারেই .profile নামে একটি ফাইল থাকে। একজন ব্যবহারকারীর এনভারোনমেন্ট সেটআপ করার জন্য এ ফাইলটি ব্যবহার হয়ে থাকে (যেমন ডিফল্ট শেল কোনটি, এনভারোনমেন্ট ভেরিয়েবলস সমূহ ইত্যাদি)। এটি খানিকটা ডসের config.sys ফাইলের মত কাজ করে থাকে। vi টেক্সট এডিরের নিজস্ব কনফিগারেশন ফাইল (.vimrc) আছে। এ রকম আরো আছে ক্যারেক্টার নির্ভর প্রোগ্রাম telnet এবং ftp এর জন্য এবং তাদের কনফিগারেশন ফাইলসমূহ ব্যবহারের মাধ্যমে এ প্রোগ্রামগুলিকে অটোমেট করা যায়। উদাহরনস্বরূপ, আপনি একটি এফটিপি এর প্রোফাইল সেট আপ করে cron শিডিউলার প্রোগ্রাম এর সাহায্যে প্রতি রাত্রে আপনার ওয়েব সাইট হতে একটি লগ ফাইল ডাউনলোড করার জন্য নির্দেশ দিয়ে রাখতে পারেন। যদি শুধুমাত্র ls কমান্ড দেয়া হয় তাহলে যে ফাইলগুলি পিরিয়ড(.)দিয়ে শুরু তাদের তালিকা দেখা যাবে না এজন্যই আমরা উপরের কমান্ডে ls -laF কমান্ড ব্যবহার করেছি।

হোম ডিরেক্টরী প্রসঙ্গে বলা যায় যে, প্রতিবার যখন একজন নতুন ব্যবহারকারী তৈরী করা হয় তার জন্য একটি ব্যক্তিগত হোম ডিরেক্টরী/ফোল্ডার ও একই সাথে তৈরী হয়ে থাকে। এ ফোল্ডারটির নাম ব্যবহারকারীর নামেই তৈরী হয়ে থাকে যা /home ডিরেক্টরী পাথে অবস্থিত। লিনাক্স ফাইল সিস্টেম এর যেকোন অবস্থান থেকে যদি হোম ডিরেক্টরীতে ফিরতে চান সরাসরি তবে টাইপ করুন cd এবং এন্টার কি প্রেস করুন।

এ প্রসঙ্গে বলা যায়, একটি এফটিপি সার্ভারে pub (public download files) নামে যে বিশেষ ফোল্ডারটি দেখা যায় সেটির অবস্থান আসলে /home/ftp ফোল্ডারে।

লিনাক্সের ফাইল সিস্টেম স্ট্রাকচার শিখতে একটু সময় লাগতে পারে এবং একটি নির্দিষ্ট ফাইল কোথায় আছে তা খুজে বের করা প্রথম প্রথম একটু কঠিন মনে হয়। তবে আপনাকে সাহায্য করার জন্য দুটি কমান্ডও আছে। তাই এগুলি শিখে নিলে আর তেমন বেগ পেতে হবে না আশা করি।

ডস অপারেটিং সিস্টেমে কাজ করার অভিজ্ঞতা থাকলে অবশ্যই পাথ সম্পর্কে ধারনা থাকবে আপনার। পাথ (PATH) হচ্ছে শুধুমাত্র কিছু ডিরেক্টরীর তালিকা যাকে উইন্ডোজে ফোল্ডার ও বলা হয়ে থাকে। যদি ডসে একটি প্রোগ্রাম চালানোর কমান্ড দেন তাহলে সে প্রথমে সেটি বর্তমান ফোল্ডারে খুজতে চেষ্টা করে। যদি প্রোগ্রামটি খুজে না পায় তখন সে এটি পূর্বনির্ধারিত পাথে খুজতে থাকে এবং পাথে উল্লেখিত ডিরেক্টরী গুলির প্রত্যেকটিতে .exe এক্সটেনশনের কোন ফাইল আছে কিনা তা খুজতে থাকে। যদি পেয়ে যায় তাহলে প্রোগ্রামটি উক্ত স্থান থেকে রান করে থাকে। যদি ডস এটিকে মোটেই খুজে না পায় তাহলে সেই বিখ্যাত পরিচিত মেসেজ প্রদর্শন করবে আমাদের সামনে যার সাথে আমরা কমবেশী পরিচিত-

Bad command or file name

এর অর্থ হচ্ছে, ফাইলটি হয়তো ড্রাইভের অন্য কোথাও থাকতে পারে তবে এটি বর্তমান ডিরেক্টরীতে নেই অথবা পাথে যে ডিরেক্টরীর তালিকা আছে সেখানে কোথাও নেই তাই আপনি উপরের মেসেজটি পেয়েছেন।

লিনাক্স/ইউনিক্স এর ও নিজস্ব পাথ আছে। সত্যি বলতে কি, প্রত্যেক ব্যবহারকারীরই নিজস্ব পাথ থাকে যেটি সে নিজের প্রয়োজনমত কাস্টমাইজ করে নিতে পারে। এই পাথে যে ডিরেক্টরীর তালিকা থাকে সেগুলি মূলত প্রোগ্রামফাইল সমূহ সংরক্ষন করার জন্য স্ট্যান্ডার্ড লোকেশনসমূহ এর সমষ্টি মাত্র। এক্সিকিউটেবল বাইনারী ফাইলসমূহ সংরক্ষিত হবার স্ট্যান্ডার্ড ডিরেক্টরী/ফোল্ডারগুলি হচ্ছে যথাক্রমেঃ
• /bin
• /usr/bin
• /usr/sbin
whereis কমান্ডের সাহায্যে পাথে উল্লেখিত ডিরেক্টরীসমূহে কোন ফাইল আছে কিনা খুজে বের করা যায়।

whereis ls
উপরের কমান্ডটি দিলে তার ফলাফল হবেঃ

ls: /bin/ls

যার অর্থ ls ফাইলটি /bin ডিরেক্টরীতে অবস্থিত। যদি এটি কোন কিছু খুজে না পায় তবে নিচের ফলাফল প্রদান করবেঃ

ls:

whereis দিয়ে শুধুমাত্র পাথে উল্লেখিত ডিরেক্টরীতে কোন ফাইল (সাধারনত প্রোগ্রাম ফাইল সমূহ) আছে কিনা তা খুজে বের করা যায়। এটি ইউনিক্স মেশিনগুলিতে কাজ নাও করতে পারে (এর বদলে আপনি which ব্যবহার করুন)।

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

echo $PATH

প্রোগ্রাম ফাইলসহ যেকোন ধরনের ফাইল তা হার্ডডিস্কের যে কোন জায়গায়ই থাক না কেন(পাথ ছাড়া ও সব জায়গাতে) তা খোঁজার জন্য find কমান্ডটি ব্যবহার করুন। এ কমান্ডটিতে একটি শুরুর স্থান এবং যে ফাইলটি খুজবেন তার আংশিক বা পূর্ন নাম দিতে হয়। উদাহরনস্বরূপ, আপনি যদি পুরো হার্ডডিস্কে খুজতে চান সেক্ষেত্রে শুরুর স্থান দিতে হবে রুট(/) ডিরেক্টরী- ঠিক নিচের মতঃ

find / -name 'ls'

যে ডিরেক্টরীতে আছেন সেই ডিরেক্টরী এবং শুধুমাত্র তার সাবডিরেক্টরীতে যদি খুজতে চান তাহলে কমান্ড হবে নিম্নরূপঃ

find . -name 'ls'

. (একটি পিরিয়ড) দিয়ে লিনাক্স/ইউনিক্সে বর্তমান ডিরেক্টরীকে সংক্ষেপে বোঝানো হয়ে থাকে এবং এটি কমান্ড দেয়ার সময়ও ব্যবহার করা যেতে পারে। দুটি পিরিয়ড (..) দিয়ে এক লেভেল উপরের প্যারেন্ট ডিরেক্টরীকে বোঝানো হয়ে থাকে এবং এটিকেও কমান্ড দেয়ার সময় পুরো পাথ টাইপ না করে ব্যবহার করা যেতে পারে - ফলে আপনার মূল্যবান সময় কিছুটা সাশ্রয় হবে নিঃসন্দেহে।

আপনার ফাইলসমূহ হার্ডডিস্কে কতটুকু জায়গা দখল করে আছে তা জানতে কমান্ড দিনঃ

df

Use% কলামটিতে এ তথ্য পাবেন। গিগাবাইট বা এ রকম পরিচিত ইউনিটে ব্যবহৃত ও অব্যবহৃত জায়গার পরিমান দেখতে কমান্ড দিন df -h।

cat কমান্ডটি ডসের type কমান্ডের মতই কাজ করে থাকে। এটি দিয়ে একটি ফাইলের লেখাসমূহকে পর্দায় দেখা যায়। বাইনারি কোন ফাইলে এই cat কমান্ডটি নিশ্চয়ই ব্যবহার করতে চাইবেন না কারন এটি বাইনারি ফাইলকে ওপেন করতে গিয়ে অনেকগুলো গার্বেজ দেখাবে বিপ কমান্ডসহ। শুধুমাত্র টেক্সট ফাইলকে দেখার জন্যই এটি ব্যবহার করুন। যদি কোন ফাইল ২৫ লাইনের বেশী লম্বা হয় তবে আপনি শুধুমাত্র নিচের ২৫ লাইন দেখতে পাবেন এ কমান্ডের সাহায্যে। বাকি লাইনগুলি স্ক্রল হয়ে পর্দার উপর দিকে চলে যাবে। এজন্য more কমান্ড ব্যবহার করাই সব থেকে ভাল কারন এটি একই কাজ করে শুধুমাত্র প্রতি ২৫ লাইন করে পর্দায় দেখায় যাতে আপনি ফাইলে কি আছে তার সবটাই দেখতে পান। স্পেসবার চাপলে এক স্ক্রিন করে নিচের দিকে যাবে এবং এন্টার-কি চাপলে এক লাইন করে সামনের দিকে অগ্রসর হবে।

প্রোগ্রামগুলিকে চেইন করে এক্সিকিউট করা হচ্ছে অটোমোশন এর অন্যতম একটি সুবিধা। একটি প্রোগ্রাম এর আউটপুট অন্য আরেকটি প্রোগ্রামের ইনপুট হিসেবে প্রদানের জন্য পাইপিং করা হয়ে থাকে। একটি সাধারন উদাহরন দেইঃ

ls | more

যদি একটি ডিরেক্টরীতে অসংখ্য ফাইল থাকে তবে ls কমান্ড দিলে বেশীরভাগ ফাইল এর নামই দেখতে পাবেন না কিন্তু যদি পাইপিং করে উপরের মত করে কমান্ড দেন তাহলে এক স্ক্রিন দেখানোর পর থেমে যাবে এবং পরবর্তী তালিকা দেখানোর জন্য অপেক্ষা করবে। পাইপ ক্যারেক্টারটি(|) বেশীর ভাগ কি-বোর্ডের \ চিহ্নের উপরে অবস্থিত।

এটি খুব সাধারন একটি উদাহরন দিলাম। আপনি লিনাক্স কমান্ডে পারদর্শী হওয়ার পর এগুলির সাহায্যে অনেক বড়সড় অটোমোশনের কাজ করতে পারবেন । এজন্য grep এবং sort কমান্ড এর ম্যানুয়াল দেখতে পারেন যা দিয়ে আরো কিছু অটোমোশন এর ট্রিকস প্রয়োগ করা সম্ভব।

অটোমোশনের আরো একটি গুরুত্বপূর্ন টুলস হচ্ছে "রিডাইরেক্ট"। স্ক্রিনে সাধারনত যা দেখা যায় তার সবকিছুই কোন টেক্সট ফাইল অথবা প্রিন্টার ও মডেম এর মত ডিভাইসে রিডাইরেক্ট করা যায় যেখানে লিনাক্স সবকিছুকেই ফাইল হিসেবে বিবেচনা করে থাকে। এজন্য গ্রেটার (>) সাইন ব্যবহার করা হয়। উদাহরনস্বরূপ আপনি যদি কোন ফাইল তালিকা দেখার কমান্ডকে প্রিন্টার এ প্রিন্ট করতে চান তবে কমান্ড হবেঃ

ls > lp0

যদি কোন টেক্সট ফাইলে সেভ করতে চান এর আউটপুট তবে কমান্ড দিনঃ

ls /etc > output

এখানে output হচ্ছে ফাইলের নাম। ব্যস আপনার হোম ফোল্ডারে output নামে একটি ফাইল তৈরী হবে যেখানে /etc ফোল্ডারে যা আছে তা যেকোন টেক্সট এডিটরে ওপেন করে দেখতে পারেন।

পাইপিং ও রিডাইরেকশন এবং সেই সাথে লিনাক্সে ব্যবহৃত সমৃদ্ধ কমান্ডসমূহ এর সাহায্যে এমন একটি সিস্টেম দাড় করানো সম্ভব যা আপনার কফি খাওয়ার সময়েই সবকিছু নিজে নিজেই করতে থাকবে।

লিনাক্স/ইউনিক্স ফাইল সিস্টেম সিমবোলিক লিংকস নামের আরেক ধরনের ফাইল সাপোর্ট করে যাকে সাধারনভাবে সিমলিংকস বলা হয়। এটি উইন্ডোজে শর্টকার্টস এর মত কাজ করে থাকে। বাইনারী এক্সিকিউটেবল ফাইল এবং ডাটা ফাইলসমূহের জন্য সিমলিংক তৈরী করতে এটি ব্যবহার করা হয় যাতে এগুলিকে একইসাথে হার্ডডিস্কের অনেক জায়গায় আছে বলে মনে হয়। তবে আপনি একটি ডিরেক্টরীর জন্যও সিমলিঙ্ক তৈরী করতে পারেন যাতে ঐ ডিরেক্টরীটি ফাইল সিস্টেমের বিভিন্ন জায়গা থেকে একসেস করা যায়। এর সবচেয়ে বড় সুবিধা হচ্ছে যখন আপনি কোন একটি ফাইল অথবা ডিরেক্টরীতে পরিবর্তন করবেন তখন তার সাথে সম্পর্কযুক্ত সকল সিমলিঙ্কে সেই পরিবর্তনটি অটোমেটিকভাবেই আপডেট হয়ে যাবে। সব জায়গাতেই এক ফাইলের সব কপিতে পরিবর্তন করার প্রয়োজন পড়ে না।

আপনার হোম ফোল্ডার এর ভিতর ডকুমেন্ট ফোল্ডারের একটি সফট সিমলিংক তৈরি করি ডেস্কটপে নিচের কমান্ড দিয়েঃ

ln -s /home/zahid/Documents/ /home/zahid/Desktop/


এখন ডেস্কটপ থেকেই আপনি সরাসরি এ লিংকে ক্লিক করে ডকুমেন্ট ফোল্ডারে একসেস করতে পারবেন।

দুধরনের সিমবোলিক লিংক দেখতে পাওয়া যায় যথা- হার্ড এবং সফট – সফট সিমবোলিক লিংকই আমাদের সব থেকে পরিচিত ও বহুল ব্যবহৃত। উইন্ডোজের শর্টকার্টই হচ্ছে লিনাক্সের এই সফট সিমলিংকের সমতূল্য। অন্যদিকে হার্ড সিমলিংক একটি ফাইল/ডিরেক্টরীর সত্যিকারের একটি কপি তৈরী করে থাকে। যখন আপনি ls কমান্ড ব্যবহার করেন তখন -> চিহ্ন দেখে সহজেই বলে দেয়া যায় যে এটি একটি সিমলিংক কারন এ চিহ্নের মাধ্যমে অরিজিনাল ফাইলকে পয়েন্ট করে থাকে। সিমলিংক স্টার্টআপ ডিরেক্টরীতে বেশী ব্যবহৃত হয়ে থাকে। যখন সিস্টেম একটি নির্দিষ্ট রানলেভেলে চালু হয় তখন এটি স্টার্টআপ ডিরেক্টরীতে অবস্থিত বুট আপ শেল স্ক্রিপ্ট গুলো রান করে থাকে। প্রত্যেকটি রানলেভেলের জন্যই আলাদা ডিরেক্টরী আছে। অনেক স্ক্রিপ্ট রান লেভেল ছাড়াই চালু হয়ে থাকে। প্রত্যেকটি রান লেভেল স্টার্টআপ ডিরেক্টরীতে (যেমন, /etc/rc0.d, /etc/rc1.d, /etc/rc2.d ইত্যাদি) স্ক্রিপ্টগুলি আলাদাভাবে কপি করার বদলে সকল স্ক্রিপ্টগুলিকে একটি ডিরেক্টরীতে রাখা হয় (/etc/init.d) এবং নির্দিষ্ট রানলেভেলের (যেমন rc2.d) চাহিদা অনুযায়ী শুধুমাত্র স্ক্রিপ্টগুলির সিমলিংককে রাখা হয়ে থাকে।

উদাহরনস্বরূপঃ cron ব্যাকগ্রাউন্ড শিডিউলার এর জন্য শেল স্ক্রিপ্টগুলিকে cron বলা হয় এবং এটি সব রান লেভেলেই চালু হয়ে থাকে। এটি /etc/init.d ডিরেক্টরীতে অবস্থিত যেখানে সকল স্টার্টআপ স্ক্রিপ্ট থাকে। "init.d" হচ্ছে গ্রীক শব্দ "স্টার্ট ডেমন" এর সংক্ষিপ্ত রূপ। যদি ls কমান্ডের সাহায্যে রান লেভেল ২ এর স্টার্ট আপ ডিরেক্টরী /etc/rc2.d তে ফাইল লিস্ট দেখার কমান্ড দেন তাহলে cron স্টার্ট আপ এর জন্য সফট সিমলিংকটি দেখতে পাবেন নিচের মতঃ

S89cron -> ../init.d/cron

এখানে যদি cron স্ক্রিপ্টে পরিবর্তন করার দরকার হয় তবে শুধুমাত্র আসল cron স্ক্রিপ্টটিতে পরিবর্তন করলেই চলে । বাকি সব রানলেভেলে উক্ত পরিবর্তন আপডেট হয়ে যাবে। এটি ডিস্ক স্পেস বাচানোর জন্যও একটি ভাল সমাধান। একটি গুরুত্বপূর্ন ব্যাপার হচ্ছে, এ সিমলিংকগুলিতেও ফাইলের মত পারমিশন সেট করে কাজ করতে হয়। তারা মূল ফাইলের পারমিশন কে নিজেদের ক্ষেত্রে কাজে লাগায় না। যদি একটি সিমলিংক কোন এক্সিকিউটেবল স্ক্রিপ্টকে পয়েন্ট করে তবে ঐ সিমলিংকটিকেও একইভাবে এক্সিকিউটেবল পারমিশন সেট করে নিতে হবে।

লিনাক্স অপারেটিং সিস্টেম এর প্রাথমিক ধারনা-২

আজ এ সিরিজের ২য় পর্ব পোস্ট করতে যাচ্ছি। এখানে আমি শুধুমাত্র লিনাক্স অপারেটিং সিস্টেম এর বেসিক ধারনাগুলি নিয়ে আলোচনা করার চেষ্টা করছি যাতে ভবিষ্যতে এটি একটি ভিত্তি হিসেবে নতুন লিনাক্স ব্যবহারকারীদেরকে কিছুটা দিক নির্দেশনা দিতে পারে। কারন আমার অভিজ্ঞতায় দেখেছি- নতুন যারা লিনাক্স শেখা শুরু করেন প্রায়ই বলে থাকেন- কোন লিনাক্স(ডিস্ট্রো) ব্যবহার করব, কোথা থেকে শুরু করব, কি কি শিখব, সব তো দেখি কমান্ড লাইন ইত্যাদি ইত্যাদি। অনেকে আবার কিছু কমান্ড এর লিস্ট ধরিয়ে দেন এবং বলেন যে, প্র্যাকটিস করতে থাকেন। কিন্তু একটি সিস্টেম এর উপর পূর্নাঙ্গ ধারনা থাকলে সহজেই টার্গেট ঠিক করে এগিয়ে যেতে পারবেন যেমন- আমি কোন ডিস্ট্রিবিউশনটি ব্যবহার করব, কি কি শিখব, কেন শিখব- এ রকম আরো প্রশ্নের জবাব এখানে আশা করি পেয়ে যাবেন। তারপরও ভুল ত্রুটি থাকতে পারে, সীমাবদ্ধতা থাকতে পারে- তা আগে থেকেই স্বীকার করে নিচ্ছি।
:-p


লিনাক্স ব্যবহার

লিনাক্স দিয়ে যেমন ডেস্কটপ সিস্টেম তৈরী করা যায় ঠিক তেমনই যেকোন সংখ্যক সার্ভার সিস্টেম ও তৈরী করা সম্ভব। আপনি যদি শুধুমাত্র ডেস্কটপ হিসেবে লিনাক্স ব্যবহার করতে চান তবে ডেস্কটপ অরিয়েন্টেড ডেবিয়ান বেসড কোন ডিস্ট্রো যেমনঃ কোরেল লিনাক্স, উবুন্তু, ড্রিম লিনাক্স, কুবুন্তু ইত্যাদির যেকোন একটি ব্যবহার করতে পারেন। আর ডেবিয়ান দিয়ে খুব শক্তিশালী সার্ভার তৈরী করতে পারেন। অবশ্য এটি দিয়ে আমি ডেবিয়ানকে শুধুমাত্র সার্ভার এর জন্য তৈরী তা বলছি না। আপনি ডেবিয়ানকে ডেস্কটপ ওএস হিসেবে খুব সহজেই ব্যবহার করতে পারেন কোন কাস্টমাইজ ছাড়াই। তার ফলে আপনি কিছুটা এগিয়েই থাকবেন যখন ভবিষ্যতে একে সার্ভার ওএস হিসেবে ব্যবহার করতে চাইবেন।

লিনাক্স দিয়ে আপনি নিচের কাজগুলি করতে পারেনঃ

  • ডেস্কটপ অপারেটিং সিস্টেম হিসেবে সাধারন কাজ যেমনঃ লেখালেখি, হিসাব নিকাশ, ব্রাউজিং, গান শোনা, মুভি দেখা ইত্যাদি
  • এক্সটারনাল(ইন্টারনেট) অথবা ইন্টারনাল (ইন্ট্রানেট) ওয়েব সার্ভার তৈরী করা
  • ইন্টারনাল এবং ইন্টারনেট ইমেইল এর জন্য মেইল সার্ভার তৈরী করা
  • অন্যান্য ইন্টারনেট নির্ভর প্রোগ্রাম সার্ভার যেমনঃ এফটিপি, নিউজ, আইআরসি(চ্যাট) ইত্যাদি স্থাপন
  • দূরবর্তী স্থান থেকে আপনার বাসা অথবা অফিসের কার্যকলাপ পর্যবেক্ষনের জন্য ওয়েব ক্যাম সার্ভার স্থাপন
  • বাসা অথবা অফিসে একটি একক ব্রডব্যান্ড ইন্টারনেট কানেকশনকে সব সিস্টেমে শেয়ারিং এর জন্য প্রক্সি/ন্যাট সার্ভার স্থাপন
  • নেটওয়ার্ক এ ইনকামিং এবং আউটগোয়িং ট্রাফিক কন্ট্রোল এর জন্য প্যাকেট ফিল্টারিং ফায়ারওয়্যাল স্থাপন
  • ফাইল এবং প্রিন্ট শেয়ারিং এর জন্য নোভেল অথবা এনটি/২০০০ এর মত ইন্টারনাল ল্যান সার্ভার তৈরী করা। সাম্বা নামে একটি প্যাকেজ আছে যেটি দিয়ে আপনার লিনাক্স সার্ভারকে নেটওয়ার্কে অবস্থিত উইন্ডোজ ক্লায়েন্টগুলির জন্য এনটি সার্ভার হিসেবে কাজ করানো যায়।
  • ইন্টারনাল ল্যান হোস্ট এবং ইন্টারনেট ডোমেইন নেম বেজড ডিএনএস সার্ভার স্থাপন
  • মাইএসকিউএল, ওরাকল অথবা পোস্টজিআরই নির্ভর ডাটাবেজ সার্ভার স্থাপন
  • ফ্যাক্স সার্ভার স্থাপন এবং নেটওয়ার্ক এ অবস্থিত সকল ব্যবহারকারীকে মেশিন থেকেই ফ্যাক্স পাঠানোর সুযোগ করে দেয়া যাতে ফ্যাক্স পাঠানোর আগে তা প্রিন্ট করতে না হয়।
  • ৫০০০ ডলার মূল্যের সিসকো রাউটার এর বদলে একটি ফ্রি ল্যান এবং ওয়ান রাউটার স্থাপন করা
  • কেন্দ্রীয়ভাবে নেটওয়ার্ক এবং সিস্টেম এর কার্যাবলী পর্যবেক্ষনের জন্য Syslog সার্ভার স্থাপন করা।
  • IDS (Intrusion Detection Systems) স্থাপনের মাধ্যমে ইন্টারনেট থেকে আগত হ্যাকিং ও বিভিন্ন ধরনের আক্রমন প্রতিহত করা।
ডস সদৃশ শেল স্ক্রিপ্টিং/কমান্ড
ডস এ যেখানে মাত্র একটি-ই ক্যারেক্টার নির্ভর ইন্টারফেস আছে সেখানে লিনাক্স(ইউনিক্স) এ আছে বেশ কয়েকটি । এদেরকে ইন্টারপ্রেটার এর বদলে শেল বলা হয়ে থাকে যদিও তারা ইন্টারপ্রেটার এর কাজই করে থাকে। ইউনিক্স এর মোট ৩টি শেল আছে যথাঃ C, Korn, এবং Bourne।

লিনাক্স এ উপরোক্ত তিনটি শেল এর নিজস্ব ভার্সন ছাড়াও আরো কয়েকটি শেল রয়েছে। "Bash", বা Bourne-Again Shell হচ্ছে বেশীরভাগ লিনাক্সের ডিফল্ট শেল কারন এটিতে Bourne এবং Korn শেলের বেশীর ভাগ ফিচারই রয়েছে।

লিনাক্স/ইউনিক্স শেলগুলির নিজস্ব প্রম্পট রয়েছে। যখন আপনি একটি শেল ওপেন করবেন তখন % অথবা $ এর যেকোন একটি দেখতে পাবেন যেটি শেল এর প্রকারভেদ কে নির্দেশ করে। যখন রুট হিসেবে লগইন করবেন তখন আরো একটি প্রম্পট পাবেন যেটিতে # চিহ্ন দেখা যায়। "root" হচ্ছে লিনাক্স/ইউনিক্স এর সবচেয়ে শক্তিশালী ব্যবহারকারী যেটি খানিকটা উইন্ডোজ এর এ্যাডমিনিস্ট্রেটর একাউন্ট অথবা নোভেল এর সুপারভাইজার এর মত।

ডসে যেভাবে dir এবং copy কমান্ড দেয়া হয় ঠিক একইভাবে লিনাক্সের শেল প্রম্পটে ls এবং cp কমান্ড দেয়া যায়।

উইন্ডোজ ৩.১ অপারেটিং সিস্টেমে যেভাবে ডস বেজড গ্রাফিক্যাল ইউজার ইন্টারফেস(GUI) ছিল একইভাবে লিনাক্সে বেশ কয়েকটি গ্রাফিক্যাল ইন্টারফেস পাওয়া যায়। সবচেয়ে বেশী ব্যবহৃত GUI হচ্ছে নোম/জিনোম (Gnome)। কেডিই(KDE) হচ্ছে আরেকটি জনপ্রিয় গ্রাফিক্যাল ইন্টারফেস। আপনি ব্যবহারের জন্য যেকোন একটি ইনস্টল করতে পারেন আপনার নিজস্ব পছন্দ অনুযায়ী। ইন্টারনেটে লিনাক্সের জন্য কোন প্রোগ্রাম খুজতে গেলে দেখবেন যে, প্রায় প্রোগ্রাম এর নামটি G অথবা K অক্ষর দিয়ে শুরু করা হয়েছে যেমন Gpad - যার অর্থ প্রোগ্রামটি জিনোম ইন্টারফেস এর জন্য তৈরী।

আবার কিছু প্রোগ্রাম দেখতে পাবেন যেগুলির নাম শুরু হয়েছে X দিয়ে যেটি মূলত X11, এক্স উইন্ডোজ অথবা এক্স প্রোগ্রামকে নির্দেশ করে। এর কারন হল লিনাক্স/ইউনিক্স এ গ্রাফিক্যাল ইন্টারফেসটি কিছুটা জটিল প্রসেস এ কাজ করে থাকে। এক্স সার্ভার নামে একটি সফটওয়্যারই মূলত গ্রাফিকস সমূহ তৈরী করে থাকে এবং আরেকটি ভিন্ন ডেস্কটপ ম্যানেজার-(কেডিই/জিনোম)- গ্রাফিক্স কে কিভাবে পর্দায় প্রদর্শন করা হবে তার ব্যবস্থা করে থাকে। এটি এমনভাবে করা হয় যাতে কেন্দ্রীয়ভাবে সার্ভার গ্রাফিক্স তৈরী করতে পারে এবং ভিন্ন ভিন্ন ওয়ার্কস্টেশন তাদের ডেস্কটপ ম্যানেজার সেটিংস কাস্টমাইজ করার মাধ্যমে গ্রাফিক্স কে প্রদর্শন করতে পারে। একটি সাধারন পিসিতে সার্ভার এবং ডেস্কটপ একই মেশিনে রান করে থাকে। যে সমস্ত প্রোগ্রাম গ্রাফিক্যাল ইন্টারফেসের বদলে ক্যারেক্টার নির্ভর শেল ইন্টারফেস এর জন্য তৈরী করা হয় তাদেরকে ‘কনসোল প্রোগ্রাম’ বলা হয়।


কেন শেল কমান্ড জানা জরুরী?

লিনাক্স এ সত্যিকারের দক্ষতা আনতে হলে আপনাকে অবশ্যই জানতে হবে শেল প্রম্পটে কিভাবে কমান্ডের সাহায্যে কাজ করতে হয় এবং টেক্সট নির্ভর কনফিগারেশন ফাইলসমূহ কিভাবে কাজে লাগাতে হয়। গ্রাফিক্যাল মোডে অনেক কিছুই করা সম্ভব নয় এবং শেল স্ক্রিপ্টের মাধ্যমে লিনাক্স এ বিভিন্ন কাজ অটোমেটেড করা যায় যেটি মূলত একটি টেক্সট ফাইল যেটি মূলত কিছু ধারাবাহিক কমান্ড এর সমষ্টিমাত্র। গ্রাফিক্যাল ইন্টারফেস মোড অবশ্যই ব্রাউজিং এর মত কাজের জন্য আদর্শ কিন্তু আপনি গ্রাফিক্যাল মোডে থাকলেও টার্মিনাল উইন্ডো ওপেন করার মাধ্যমে শেল কমান্ড দিতে পারেন।

এছাড়া যদি মেশিনের মেমোরী সেভ করতে চান সেক্ষেত্রে গ্রাফিক্যাল ইন্টারফেস বন্ধ রেখে কাজ করতে পারেন কারন এটি প্রায় ৩২ মেগাবাইট মেমোরী ব্যবহার করে থাকে। খুব কম মেমোরীতে একাধিক সার্ভার প্রোগ্রাম চালিয়ে গ্রাফিক্যাল ইন্টারফেসে কাজ করতে থাকলে তা মেশিনকে অনেকসময় স্লো করে ফেলতে পারে।

গ্রাফিক্যাল ইন্টারফেসে কাজ করলে তা সিকিউরিটির জন্য ও কিছুটা থ্রেট হিসেবে কাজ করে তাই মূল সার্ভার সিস্টেমে এটি না চালানোই ভাল। কারন এটি রিমোট কানেকশনকে অনুমোদন দেয়ার জন্য অপ্রয়োজনীয় কিছু পোর্ট ওপেন করে রাখে যেটি হ্যাকার, ক্রাকারদের জন্য সুযোগ করে দিতে পারে।


শেল স্ক্রিপ্টিং কি?

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

শেল স্ক্রিপ্টিং ডস এর ব্যাচ ফাইলের মতই কাজ করে থাকে। অর্থাৎ শেল স্ক্রিপ্টিং একটা সাধারন টেক্সট ফাইল যা একটি সাধারন টেক্সট এডিটর এ লেখা হয় এবং যেখানে কিছু ধারাবাহিক কমান্ড পরিচালনার নির্দেশ থাকে। এ কমান্ডগুলি লিনাক্স এর কমান্ড হতে পারে, কোন প্রোগ্রাম চালানোর কমান্ড হতে পারে, অন্য স্ক্রিপ্ট কে কল করার কমান্ড হতে পারে অথবা এর সবগুলির সমন্বয়ে যেকোন কমান্ড হতে পারে। প্রতিবার হাতে লিখে কমান্ড দেয়ার বদলে একটি কাজ সম্পাদনের ধারাবাহিক কমান্ডগুলি এখানে লিখে রেখে শুধুমাত্র ফাইলটিকে চালিয়ে দিলেই হল- সবগুলি কাজ নিজে থেকেই একের পর এক করতে থাকবে।

শেল প্রম্পটে যেসব কমান্ড দেয়া যায় সেগুলিকেই একটি শেল স্ক্রিপ্ট ফাইলে লেখা যায় এবং এছাড়া বিভিন্ন কন্ডিশন টেস্ট এবং লজিক ফ্লো কন্ট্রোল এর জন্য কিছু স্ক্রিপ্ট নির্ভর কমান্ড আছে। যখন অন্যান্য অটোমোশন টুলস এর সাথে এগুলি ব্যবহার করবেন তখন অসাধারন কিছু কাজ করা যায় এই শেল স্ক্রিপ্ট ফাইলের মাধ্যমে। আসুন এরকম কয়েকটি কাজ এর বর্ননা দেখে নেয়া যাকঃ
  • cron - একটি নির্দিষ্ট সময় অথবা দিনে কোন শেল স্ক্রিপ্ট এর কমান্ড সমূহ স্বয়ংক্রিয়ভাবে চালানোর জন্য cron শিডিউলার ব্যবহার করা হয়ে থাকে।
  • Perl scripts - একটি শেল স্ক্রিপ্ট এর সাহায্যে কোন পার্ল স্ক্রিপ্ট কে কল করা যায়। পার্ল যদি ও একটি রিপোর্টিং ল্যাঙ্গুয়েজ হিসেবে যাত্রা শুরু করে কিন্তু এটি এখন টেক্সট ফাইলের স্ট্রিং এবং নিউমেরিক্যাল ডাটা নিয়ে কাজ করার জন্য ব্যাপক ক্ষমতাসম্পন্ন।
  • Regular expressions - ব্যবহারকারীর ইনপুট, ইমেইল বার্তা অথবা অন্যান্য কমান্ড এর আউটপুট, স্ক্রিপ্ট অথবা প্রোগ্রাম সমূহের টেক্সট স্ট্রিং নিয়ে কাজ করার (মিল খোজা এবং বদল করা) জন্য রেগুলার এক্সপ্রেশন কমান্ড ব্যবহার করা হয়ে থাকে।
  • Redirection - অন্য কোন ডিভাইস অথবা প্রসেস এ কমান্ড, স্ক্রিপ্ট অথবা প্রোগ্রামের ইনপুট/আউটপুট গুলিকে পাঠানো।
  • Piping - একটি কমান্ড, স্ক্রিপ্ট অথবা প্রোগ্রামের আউটপুটকে অন্য কোন প্রোগ্রামের ইনপুট হিসেবে ব্যবহার করা।
  • Custom programs - কাস্টমাইজ করা কোন কম্পাইলড প্রোগ্রামকে শেল প্রম্পট এর সাহায্যে চালিয়ে কোন সুনির্দিষ্ট কাজ করা। উদাহরনস্বরূপঃ কোন ডাটা ফাইল অথবা হার্ডওয়্যার যেগুলির স্বত্ব সংরক্ষিত তাদের জন্য কোন কমান্ড পরিচালনা করা।

বেশীরভাগ লিনাক্স শেল কমান্ড, ইউটিলিটি এবং প্রোগ্রাম এর জন্য বেশ কিছু অপশন/সুইচ থাকে যেগুলি ঐ প্রোগ্রাম/ কমান্ড এর বিহেভিয়ারকে নিয়ন্ত্রন করে থাকে। এ অপশনগুলিকে যখন স্বয়ংক্রিয়ভাবে ব্যবহার করা যায় কেবল তখনই এগুলি থেকে কাজ আদায় করে নেয়া যায়। এটিকে রিডাইরেকশন এবং পাইপিং এর সাথে যুক্ত করে ব্যবহার করতে পারলে অনেক কাজ সম্পাদনের জন্য এক লাইন কমান্ডই যথেষ্ট।

বেশীরভাগ প্রোগ্রামসমূহের জন্য অতিরিক্ত কিছু কনফিগারেশন ফাইল থাকে যেগুলি তৈরী করে/কাস্টমাইজ করে ঐ প্রোগ্রাম/কমান্ড এর অটোমোশন ক্ষমতা বাড়ানো যায়। উদাহরনস্বরূপ, আপনি এফটিপি শেল কমান্ড এর জন্য .netrc নামক একটি কনফিগারেশন ফাইল তৈরী করলেন যেখানে এফটিপি সার্ভার এ লগইন করা, সার্ভার এবং ফাইল লোকেশনগুলির অবস্থানের তথ্য এবং সেই সাথে কিছু এফটিপি প্রোগ্রাম এর কমান্ড (যেমন get, put, lcd ইত্যাদি) দেয়া আছে যার সাহায্যে স্বয়ংক্রিয়ভাবে ফাইল ট্রান্সফার করতে পারবেন। এই .netrc ফাইলটি ব্যবহারকারীর হোম ডিরেক্টরীতে ডিফল্টভাবে সংরক্ষিত হয় তাই ফাইলটিতে অবশ্যই রিড একসেস বন্ধ করে দিতে হবে কারন তাতে আপনার লগইন করার পাসওয়ার্ড সংরক্ষিত থাকতে পারে।

একটি শেল স্ক্রিপ্টে iptables এর কমান্ড ব্যবহার করে আপনার লিনাক্স সিস্টেমকে একটি প্রক্সি সার্ভার/ফায়ারওয়াল মেশিন এ পরিনত করতে পারেন। এখানে মাত্র কয়েকটি উদাহরন দিয়েছি - এরকম অসংখ্য কাজ স্ক্রিপ্ট এর মাধ্যমে করা সম্ভব।

লিনাক্স অপারেটিং সিস্টেম এর প্রাথমিক ধারনা-১

অনেকে লিনাক্সকে জটিল মনে করে এড়িয়ে চলেন কিন্তু এ জটিলতাই অপারেটিং সিস্টেমটিকে দারুন একটি সিস্টেমে পরিনত করেছে। তারপরও কোন জটিল বিষয়কে যদি ছোট ছোট অংশে বিভক্ত করে বিশ্লেষন করা যায় তাহলে সেটি সহজ একটি বিষয়ে পরিনত হয়।

মাইক্রোসফটের উইন্ডোজ মার্কেটে আবির্ভূত হওয়ার ও আগে ম্যাকিন্টোশ কম্পিউটার ব্যাপক জনপ্রিয় ছিল। একজন নতুন কম্পিউটার ব্যবহারকারীর জন্য একটি ছোট ছবিতে মাউস দিয়ে ক্লিক করে কাজ করার অভিজ্ঞতা অবশ্যই ডসের কমান্ড মোডে মুখস্থ করে কমান্ড দেয়ার থেকে অনেক বেশী আবেদনময় ছিল নিঃসন্দেহে। তবে ম্যাকে ব্যাচ ফাইল তৈরী করা যেত না, কোন পোর্টে টেক্সট অথবা ফাইলসমূহ রিডাইরেক্ট করা যেত না, কমান্ড এ ইনপুটকে পাইপিং করা বা কোন কমান্ড এর আউপুটকে ভিত্তি করে কোন কাজ পরিচালনা করা ইত্যাদি ইত্যাদি অনেক কথা উদাহরনস্বরূপ বলা যায়- যা ম্যাকের গ্রাফিক্যাল পরিবেশে করা সম্ভব ছিল না। যদিও ম্যাকের গ্র্যাফিকাল পরিবেশে অনেক সহজে কাজ করা যায় কিন্তু এটি হার্ডওয়্যার এবং অপারেটিং সিস্টেম এর কার্নেল থেকে ব্যবহারকারীকে বিচ্ছিন্ন করে রাখে ফলে কাজ অটোমোশন করা এবং বিবিধ নির্দেশনা দেয়ার কার্যক্ষমতা হ্রাস পায়। অটোমোশন বা স্বয়ংক্রিয়তাই কি কম্পিউটার ব্যবহারের অন্যতম উদ্দেশ্য নয়? কিন্তু ম্যাকের এই গ্রাফিক্যাল ইন্টারফেস এর কাজ ছিল সম্পূর্ন ভিন্ন। এটিতে প্রতিটি কাজের জন্যই ব্যবহারকারীর নির্দেশনার প্রয়োজন হত। উইন্ডোজ এবং লিনাক্স এর সার্ভারের মধ্যে তুলনা করে যদি সমীকরন আকারে দেখানো যায় তা হবে অনেকটা এরকমঃ

সাধারনতা = সীমাবদ্ধতা
জটিলতা = সক্ষমতা

এটি প্রায় সকল ক্ষেত্রেই প্রযোজ্য। একটি সাধারন অডিও সিস্টেম তা যতই সহজভাবে পরিচালনা করা যাক না কেন একটি ১৫-ব্যান্ড ইকুয়ালাইজার এর মত মানসম্পন্ন কোয়ালিটি আউটপুট দিতে সক্ষম হবে না। উইন্ডোজ সার্ভার ওএস শেখা অনেক সহজ মনে হতে পারে তবে আপনাকে প্রতিটি কাজ নিজ হাতে ইনপুট প্রদানের মাধ্যমেই সম্পন্ন করতে হবে এবং স্বয়ংক্রিয় সিস্টেম তৈরী করার ক্ষমতা হ্রাস করেই তা করতে হবে। অটোমেশন যা কম্পিউটারকে নিজে নিজেই কাজ করতে সক্ষম করে তোলে সেটিই সত্যিকারের প্রোডাক্টিভিটি আনতে সক্ষম এবং একটি প্রতিষ্ঠানের তুলনামুলক সুবিধাকে বাড়িয়ে খরচ কমাতে ভূমিকা রাখে।

লিনাক্স অনেক বেশী হার্ডওয়্যার প্লাটফরম সাপোর্ট করে থাকে এবং ডেবিয়ান লিনাক্স তার মধ্যে অন্যতম যেটি বিভিন্ন প্লাটফর্ম সাপোর্ট এর জন্য ভিন্ন ভিন্ন ডিস্ক সেট অফার করে থাকে। এজন্যই ডেবিয়ান এর সিডি/ডিভিডি-তে ভিন্ন ভিন্ন প্লাটফরমের জন্য ভিন্ন ভিন্ন প্রতীক ব্যবহার করে থাকে যেমন - ইন্টেল প্রসেসর এর জন্য 'i386' , পুরাতন ম্যাক কম্পিউটারের জন্য 'PPC' , সান সিস্টেমের জন্য 'Sparc' এবং এমন কি আইবিএম মেইনফ্রেম কম্পিউটারের জন্য ও রয়েছে 's390' । এছাড়া পুরো অপারেটিং সিস্টেম এবং এর সাথে যত প্রোগ্রাম ও ব্যবহারিক প্রোগ্রাম রয়েছে সেগুলির সোর্স কোড সম্বলিত সোর্স ডিস্ক ও পাওয়া যায় আলাদাভাবে। যদি আপনার সি প্রোগ্রামিং জানা থাকে (অথবা যদি সি তে প্রোগ্রামিং শিখতে চান) তাহলে এগুলি আপনার-ই জন্য এবং ডেবিয়ান অপারেটিং সিস্টেম ও এর সাথে যত ধরনের প্রোগ্রাম পাওয়া যায় সবকিছুর সোর্স কোড দেখতে চাইলে দেখতে পারবেন। যদি ডেবিয়ানকে স্ট্যান্ডার্ড ইন্টেল/এএমডি/সাইরিক্স এর পিসিতে ইনস্টল করেন তবে 'i386' ডিস্ক সেট প্রয়োজন হবে।

লিনাক্স একটি বিখ্যাত অপারেটিং সিস্টেম। তবে এটি বিভিন্ন কোম্পানি কর্তৃক বের হয়ে থাকে যেটি উইন্ডোজ এর কনসেপ্ট থেকে একটু ভিন্ন প্রকৃতির। এ সমস্ত কোম্পানিগুলি তাদের নিজস্ব কিছু স্ট্যান্ডার্ড এর সাথে যোগ করেই মার্কেটে ছাড়ে যেমনঃ গ্রাফিক্যাল ইনস্টলেশন টুলস, কিন্তু তারা সবাই লিনাক্স কার্নেলের যেকোন একটি ভার্সন ব্যবহার করে থাকে যেটি অপারেটিং সিস্টেমের মূল অংশ। বিভিন্ন কোম্পানি কর্তৃক যে লিনাক্স বের হয় এগুলিকে ডিস্ট্রিবিউশন বলা হয়ে থাকে (অথবা সংক্ষেপে ডিস্ট্রো)। রেডহ্যাট বর্তমানে সবচেয়ে জনপ্রিয় ডিস্ট্রো এবং সুসি, ম্যানড্রেক/ম্যানড্রিভা এর কথাও উল্লেখযোগ্য। বানিজ্যিক ডিস্ট্রিবিউশনগুলি থেকে কোম্পানিসমূহ বিক্রয় এবং সাপোর্ট এর মাধ্যমে আয় করে থাকে। ডেবিয়ান এদের থেকে কিছুটা ভিন্ন প্রকৃতির। এটি একটি নেতৃত্বদানকারী অবানিজ্যিক ডিস্ট্রিবিউশন যেটি পৃথিবীর বিভিন্ন প্রান্তে ছড়িয়ে থাকা ডেভেলপারদের স্বেচ্ছাশ্রমের ভিত্তিতে পরিচালিত হয় শুধুমাত্র ফ্রি এবং ওপেন সফটওয়্যার এর ধারনাকে উৎসাহিত করার জন্য- যার উপর ভিত্তি করেই সর্বপ্রথম লিনাক্স তৈরী করা হয়েছিল।

যদিও অনেকে লিনাক্স বলতে পুরো অপারেটিং সিস্টেমকেই বুঝে থাকেন কিন্তু কারিগরি দিক থেকে দেখলে লিনাক্স হচ্ছে মূল কার্নেল যার উপর ভিত্তি করে অন্যান্য ফ্রি জিএনইউ প্রোগ্রামসমূহ যেমনঃ গ্রাফিক্যাল ইন্টারফেস, কমান্ড লাইন প্রোগ্রাম ইত্যাদি কাজ করে থাকে। এজন্যই ডেবিয়ান কে অফিসিয়ালি “ডেবিয়ান জিএনইউ/লিনাক্স” নামে অভিহিত করা হয়ে থাকে।

যদি কোন কোম্পানি সাধারন কোন জিএনইউ প্রোগ্রামকে কাস্টমাইজ করে তার নিজস্ব কোন ভার্সনকে ব্যবহার করা শুরু করে তখন এটি আর ফ্রি থাকে না বরং স্বত্বাধিকার স্বত্ব আরোপিত হয়ে যায়। এখানেই ডিস্ট্রিবিউশন নির্ভর সমস্যার উৎপত্তি যার ফলস্বরূপ আপগ্রেড/সাপোর্ট পাওয়ার জন্য অন্যের উপর নির্ভর করতে হয়।

রেড হ্যাট কোম্পানি এ ধরনের বিভিন্ন স্ট্যান্ডার্ড জিএনইউ ইউনিক্স লিনাক্স কমান্ডগুলোর বদলে তাদের নিজস্ব স্বত্বাধিকার নির্ভর নন-স্ট্যান্ডার্ড টুলস/কমান্ড ব্যবহার করার জন্য প্রসিদ্ধ(!)। ফলস্বরূপ ওয়েব এবং অন্যান্য জায়গায় লিনাক্স এর যে সমস্ত বই/রেফারেন্স ফ্রি পাওয়া যায় সেগুলির সাহায্য নিয়ে রেডহ্যাট লিনাক্স সিস্টেমে কাজ করা যায় না। এমনকি রেডহ্যাট এর আগের ভার্সনগুলির উপরে লেখা বই ও কোন কোন ক্ষেত্রে বর্তমান ভার্সনে কাজে লাগে না কারন প্রতি নতুন ভার্সনে তাদের কমান্ড প্রায়ই পরির্বতিত হয়। এ রকম চলতে থাকলে আগামী কয়েক বছর পর রেড হ্যাট কে আদৌ লিনাক্স বলে মনে হবে কিনা তা বলা সত্যিই কঠিন।

ডিস্ট্রিবিউশনগুলিতে কনফিগারেশন ফাইলগুলি কিছুটা ভিন্ন জায়গায় এবং ভিন্ন নামে থাকতে পারে। উদাহরনস্বরূপ, নেটওয়ার্ক ইন্টারফেস কনফিগারেশন (NIC)-

Debian - /etc/network/interfaces
Red Hat - /etc/sysconfig/network-scripts/ifcfg-eth0
(A separate file for each interface)
Suse - For versions >= 8.0
/etc/sysconfig/network/ifcfg-eth0
(A separate file for each interface)
For versions < 8.0
/etc/rc.config

আয়ান মারডক ১৯৯৩ সালে পারদিউ ইউনিভার্সিটিতে কম্পিউটার সায়েন্স এর ছাত্র থাকা অবস্থায় ডেবিয়ান ডিস্ট্রিবিউশনটি তৈরী করেন। তিনি এমন একটি লিনাক্স ডিস্ট্রিবিউশন চেয়েছিলেন যা সম্পূর্ন ফ্রি এবং উম্মুক্ত পদ্ধতিতে পরিচালিত হবে - ঠিক যে উদ্দেশ্যকে সামনে রেখে লিনাক্স এবং জিএনইউ সফটওয়্যার এর যাত্রা শুরু হয়েছিল। নামটি নেয়া হয়েছিল তার নাম এর প্রথম অংশ এবং তার বর্তমান স্ত্রী ডেবরা এর নামে সমন্বয়ে। সফটওয়্যার তৈরী করা ছাড়াও তিনি ডেবিয়ান মেনিফেস্টো এর ও প্রনেতা যেখানে উম্মুক্ত এবং ফ্রি লিনাক্স ডিস্ট্রিবিউশন কেমন হবে তার গাইডলাইন দেয়া আছে।

ডেবিয়ান জিএনইউ লিনাক্সের এক সফল উত্তরাধিকার হওয়ায় এবং জিএনইউ এর স্ট্যান্ডার্ড কঠোরভাবে মেনে চলায় অনেকেই একে তাদের পছন্দের ডিস্ট্রিবিউশন হিসেবে ব্যবহার করছেন। ডেবিয়ান এর সাম্প্রতিক ভার্সনে (৫.০, কোড নেম - লেনি) প্রায় ২৫ হাজার সফটওয়্যার প্যাকেজ অন্তর্ভুক্ত হয়েছেহচ্ছে যেগুলি সবই ফ্রি (এ কারনেই এটি ৩১ টি সিডি /৫ টি ডিভিডি তে এসেছে)। একটি মাত্র কমান্ড এর সাহায্যে ডেস্কটপ প্রোগ্রাম, সার্ভার প্রোগ্রাম, ইউলিটিজ, ডেভেলপার টুলস এবং আরো অনেক কিছু ইনস্টল করা সম্ভব।

অবানিজ্যিক ডিস্ট্রিবিউশন হওয়ায় ডেবিয়ানকে তাড়াহুড়ো করে লাভ করার জন্য ঘন ঘন নতুন ভার্সন বের করতে হয় না যে কারনে অন্যান্য ডিস্ট্রিবিউশন থেকে এর ভার্সন নম্বরটি একটু পিছনের দিকেই থাকে। কেউ কেউ এজন্য ডেবিয়ানকে সমালোচনা করতেই পারেন কিন্তু আমি নিশ্চয়তার সাথেই বলতে পারি যে তারা অবশ্যই কোন নেটওয়ার্ক এ্যাডমিনিস্ট্রেটর নয় (বড়জোর ডেবিয়ান কে ডেস্কটপ হিসেবে একটু টেস্ট করেছেন মাত্র)। নেটওয়ার্ক এ্যাডমিনরা ঘন ঘন সার্ভার আপগ্রেড বা বদলানো পছন্দ করবেন না নিঃসন্দেহে। এজন্যই মাইক্রোসফট উইন্ডোজ এনটি এর সাপোর্ট বন্ধ করার নীতি বদলাতে বাধ্য হয়েছে কারন বহু সার্ভার এখনও এনটি নির্ভর সিস্টেমে পরিচালিত হচ্ছে। নেটওয়ার্ক এ্যাডমিনরা তাই অন্য সবকিছুর চেয়ে স্ট্যাবিলিটকেই প্রাধান্য দিয়ে থাকেন যেখানে একটি সার্ভার বছরের পর বছর সামান্য কিছু সমস্যা বাদে চলতে সক্ষম। আপনি যদি আনস্টেবল সার্ভার পছন্দ না করেন তবে অবশ্যই ডেবিয়ান পছন্দ করবেন। এজন্যই একে রক-সলিড অপারেটিং সিস্টেম বলা হয়ে থাকে কারন ঘন ঘন ভার্সন বের করে অতিরিক্ত বোঝা আরোপ করে না নেট এ্যাডমিনদের উপর।

মাইক্রোসফট শুধুমাত্র একটি খুব সাধারন কারনে লিনাক্সকে তার সবচেয়ে বড় হুমকি হিসেবে মনে করে থাকে। আর সেটি হচ্ছে, লিনাক্স এর যেহেতু কোন মালিক নেই তাই ধ্বংস করার জন্য মাইক্রোসফট এটিকে কিনতে পারবে না (যে কৌশলটি মাইক্রোসফট প্রায়ই তার প্রতিদ্বন্ধীদের ক্ষেত্রে ব্যবহার করে থাকে)। তারা সততার সাথে প্রতিযোগিতার বদলে তাই একে আঘাত করার নীতি অবলম্বন করেছে। তারপরও নির্মম সত্য এই যে, মাইক্রোসফট অনুধাবন করা শুরু করেছে - লিনাক্সের মত স্ট্যাবল, স্কেলেবল এবং সিকিউরড সার্ভার সিস্টেম সরবরাহ করাই হচ্ছে লিনাক্স এর সাথে প্রতিযোগিতার একমাত্র পথ।

লিনাক্স - সাহসী এক অপারেটিং সিস্টেম

ছবি

সারাবিশ্ব যেভাবে লিনাক্স নামের একটি শক্তিশালী এবং সাহসী অপারেটিং সিস্টেমটিকে আলিঙ্গন করে নিয়েছে সেখান থেকে আমরা অনেকটা পিছিয়ে। লিনাক্স যে অপারেটিং সিস্টেম থেকে তৈরী তথা ইউনিক্স, সেটিও সারা বিশ্বজুড়ে দারুন গুরুত্বপূর্ণ একটি সিস্টেমে পরিনত হয়েছে। বলা যায় এখন ইন্টারনেট থেকে শুরু করে বড় বড় কোম্পানির নেটওয়ার্ক সার্ভার সবই ইউনিক্স ও লিনাক্সের উপর এতটাই নির্ভরশীল হয়ে পড়েছে যে মাইক্রোসফট উইন্ডোজ ছাড়া পৃথিবী যদিও চলে কিন্তু লিনাক্স ও ইউনিক্স ছাড়া পুরো বিশ্বই এখন অচল...

কম্পিউটার টুমরোতে মার্চ, ২০০১ এ লিনাক্স নিয়ে একটি গুরুত্বপূর্ন প্রচ্ছদ রচনা বের হয়। আপনারা যারা এ সংখ্যাটি পড়েছেন তারা নিশ্চয়ই উপরের কয়েকটি লাইন দেখে এতক্ষনে বুঝে গেছেন।

বাংলা ভাষাতে লিনাক্স এর উপর যত লেখা বের হয়েছে আমার দেখা এটি তার মধ্যে অসাধারন।

একজন সাধারন ব্যবহারকারী যিনি শুধুমাত্র উইন্ডোজ সম্পর্কেই জানেন এবং লিনাক্স এ কিছুটা আগ্রহ আছে তিনি এটি পড়লে নিঃসন্দেহে একটি সাবলীল ধারনা পাবেন লিনাক্স সম্পর্কে। লিনাক্স যেহেতু একটি অপরিচিত সিস্টেম তাই এটি সম্পর্কে একটি ক্লিয়ার ধারনা না থাকলে অনেকেই ব্যবহার করতে উৎসাহী হন না। দেখা যায় কিছুদিন ব্যবহার করলেন শখের বশে তারপর ব্যবহার করা ছেড়ে দিলেন। কারন তার হাতে এত শক্তিশালী একটি অপারেটিং সিস্টেম থাকলেও এর শক্তিমত্তা সম্পর্কে সঠিক ধারনা না থাকার কারনে এটির গুরুত্ব কতখানি তা বুঝতে পারেন না।

তাই উইন্ডোজের সাথে তুলনা করতে যেয়ে খানিকটা ভুল পথে হাটতে থাকেন। বিরূপ ধারনা পোষন করতে থাকেন এর সম্পর্কে। যেমনঃ এতে তো কোন ড্রাইভ খুজে পাওয়া যায় না, গান শোনা বা মুভি দেখা যায় না, হোম ফোল্ডার ছাড়া অন্য কোন ফোল্ডারে পরিবর্তন করা যায় না ইত্যাদি ইত্যাদি।

এটি বেশ বড় একটি রচনা। প্রায় ১৪ পৃষ্ঠা এর ব্যাপ্তি। তাই আমি এটি পিডিএফ আকারে দিয়ে দিলাম। আপনাদের যাদের আগ্রহ আছে তারা এটি ডাউনলোড করে পড়তে পারেন। আর হ্যা যাদের লিনাক্স সম্পর্কে ধারনা আছে তারাও এটি পড়তে পারেন। কারন অন্যকে এই নতুন সিস্টেম সম্পর্কে ধারনা দিতে হলে রচনাটি বেশ সহায়ক হবে । এটিকে রেফারেন্স হিসেবে দিতে পারেন নতুনদেরকে। ফলে আপনার শ্রম ও সময় দুটোই বেচে যাবে।

এটির সাইজ (৮.০২ মেঃবাইট) একটু বড় হয়ে গেছে সরাসরি স্ক্যান করে পিডিএফ করার জন্য তাই আন্তরিকভাবে দুঃখিত।

পরিশেষে বলতে চাই, এটি কিছুটা আগের রচনা হওয়ায় বর্তমানে প্রচলিত বেশ কয়েকটি ডিস্ট্রো নিয়ে এখানে কোন তথ্য পাবেন না - যেমন- উবুন্তু লিনাক্স, ফেডোরা, ম্যানড্রিভা ইত্যাদি। তারপরও এটির গুরুত্ব বিন্দুমাত্র কমেনি। বরং সেসময় লিনাক্স এর অবস্থান সম্পর্কে একটি ধারনাও পাবেন।

ডাউনলোড করুন এখান থেকেঃ Linux-Computer Tomorrow

কেন লিনাক্স ব্যবহার করবেন?

উবুন্টু বনাম উইন্ডোজ - কেন লিনাক্স ব্যবহার করবেন?

লিখেছেন আলোকিত রবিবার, মার্চ ২৩, ২০০৮ ২:১৬ অপরাহ্ন

উইন্ডোজ ব্যবহারকারীদের অনেকেই লিনাক্স ব্যবহার করতে ভয় পান একে জটিল এবং অভিজ্ঞ ব্যবহারকারীদের জন্য তৈরি অপারেটিং সিস্টেম ভেবে। তাদের ধারণা পুরোপুরি ভুল নয়... একসময় সত্যিই তাই ছিল। কিন্তু এখন সাধারণ ব্যবহারকারীদের জন্য তৈরি হয়েছে উবুন্টু লিনাক্স যা উইন্ডোজের চেয়েও অনেক সহজ এবং ব্যবহারবান্ধব। এখানে উবুন্টু লিনাক্সের কিছু সুবিধা তুলে ধরছি, এবং একই সাথে উইন্ডোজের দূর্বলতাগুলো উল্লেখ করছি....

১। নিরাপত্তা: লিনাক্সের নিরাপত্তা ব্যবস্থা উইন্ডোজের চেয়ে অনেক উন্নত এবং নিশ্ছিদ্র। উইন্ডোজ অপারেটিং সিস্টেমে এন্টিভাইরাস এবং ফায়ারওয়াল ইন্সটল করা না থাকলে ভাইরাস/হ্যাকারের আক্রমণ প্রায় নিশ্চিত। কিন্তু লিনাক্সের সিস্টেম কার্নেল ভাইরাস এবং হ্যাকারদের আক্রমণ থেকে পুরোপুরি মুক্ত। কাজেই কোন ধরণের সিকিউরিটি সফ্টওয়্যার(এন্টিভাইরাস/ফায়ারওয়াল ইত্যাদি) ছাড়াই নিশ্চিন্তে ব্যবহার করতে পারেন উবুন্টু লিনাক্স।

২। স্বয়ংসম্পূর্ণ: অনেকেই মনে করেন উইন্ডোজ লিনাক্সের চেয়ে অধিক স্বয়ংসম্পূর্ণ, কিন্তু এ ধারণা পুরোপুরি ভুল। উইন্ডোজের কোন সিস্টেম ফাইল মুছে গেলে বা ভাইরাসের আক্রমণে সিস্টেম কার্ণেলের কোন অংশের ক্ষতি হলে উইন্ডোজ নিজে থেকে ঠিক করতে পারে না, ব্যবহারকারীকে ট্রাবলশুট করে ঠিক করতে হয়। আর পর্যাপ্ত অভিজ্ঞতা ছাড়া উইন্ডোজের অনেক ত্রুটি ঠিক করা সম্ভব নয়। ফলে একমাত্র সমাধান- উইন্ডোজ রি-ইন্সটল। এছাড়াও বিদ্যুৎ সংযোগ বিচ্ছিন্ন হওয়ার পর এনটিএফএস ফাইল সিস্টেমের ক্ষতি হলেও উইন্ডোজ অনেক সময় স্বয়ংক্রিয়ভাবে autochk কমান্ড ব্যবহার করে না। এর ফলে প্রয়োজনীয় ফাইল ও ডকুমেন্ট সবসময় ঝুঁকিপূর্ণ অবস্থায় থেকে যায়।
অপরদিকে উবুন্টু লিনাক্সে কোন সমস্যা সৃষ্টি হওয়া প্রায় অসম্ভব। কোন কারণে সমস্যা হলেও উবুন্টুর বুট মেনু থেকে রিকভারি মোড চালু করলে উবুন্টু নিজে থেকে সম্ভাব্য সবধরণের সমস্যা খতিয়ে দেখে এবং নিজে থেকেই সবকিছু ঠিক করে নেয়, ব্যবহারকারীকে কিছুই করতে হয় না। ফাইল সিস্টেমের সমস্যা হলে উবুন্টু সেটিও ঠিক করে নেয়।
এছাড়াও উইন্ডোজে সব ধরণের হার্ডওয়্যারের ড্রাইভার ডিফল্ট দেয়া থাকে না... খুঁজে নিয়ে ইন্সটল করতে হয়। আর লিনাক্সে বহু ড্রাইভার ডিফল্টভাবেই দেয়া থাকে।

৩। ব্যবহারবান্ধব: উবুন্টু লিনাক্স উইন্ডোজ অপারেটিং সিস্টেমের চাইতে অনেক সহজ এবং ব্যবহারবান্ধব। উবুন্টুতে সব কাজের জন্য আলাদা-আলাদা বিভাগে বিভক্ত করা সফ্টওয়্যার ইন্টারনেটে রিপোজিটরিতে জমা থাকে এবং উবুন্টুর এ্যাপ্লিকেশন ম্যানেজার ব্যবহার করে ব্যবহারকারী পছন্দমত সফ্টওয়্যার ডাউনলোড করে ইন্সটল করে নিতে পারেন। স্ক্রিণশট দেখুন...
ছবি
চিত্র: উবুন্টু এ্যপ্লিকেশন ম্যানেজার

উবুন্টুর সফ্টওয়্যারগুলো ইন্সটল করতে কোন ধরণের প্রোগ্রামিং দক্ষতার প্রয়োজন নেই।

উবুন্টুর ডেস্কটপ উইন্ডোজের চাইতেও অনেক কার্যকরী, সহজে পরিবর্তনযোগ্য(Customizable) এবং ব্যবহারবান্ধব। উইন্ডোজের টাস্কবারের বিকল্প হিসাবে উবুন্টুতে আছে প্যানেল নামে উইন্ডোজ টাস্কবারের চাইতেও অধিক ক্ষমতাসমন্ন ডেস্কটপ বার। এগুলোতে আপনি ইচ্ছামত সফ্টওয়্যারের শর্টকাট তৈরি করে নিতে পারেন, বিভিন্ন এ্যাপলেটের সাহায্যে ডেস্টপকে আকর্ষণীয় করে তুলতে পারেন, আর সেই সাথে উইন্ডোজ টাস্কবারের মত উইন্ডো লিস্ট এবং নোটিফিকেশন এড়িয়া তো থাকছেই!
নিচের ছবিটি দেখুন....
ছবি
চিত্র: উবুন্টু ডেস্কটপ

ডেস্কটপ যে এমনই হতে হবে এরকম কোন বাধ্যবাধকতা নেই। এটা আমার নিজের ডেস্কটপ... উবুন্টুতে ডিফল্টভাবেও এরকম দেয়া থাকে না। আপনি পছন্দমত ডেস্কটপে বিভিন্ন আইকন, এ্যাপলেট, নোটিফিকেশন এড়িয়া সংযোগ/অপসারণ করতে পারবেন। নিচের ছবিটি দেখলে এ সম্পর্কে আরও পরিষ্কার ধারণা পাবেন...
ছবি
চিত্র: প্যানেলের জন্য আইকন তালিকা

এছাড়াও উবুন্টুতে একই সাথে দুটি ডেস্কটপ/ওয়ার্কস্পেস ব্যবহার করতে পারবেন।

৪। দ্রুততা: কিছু ত্রুটির কারণে উইন্ডোজ ধীরে ধীরে মন্থর হয়ে পরে। এ ত্রুটিগুলোর মধ্যে হার্ড ডিস্কের এলোমেলো ফাইলসজ্জা(ফ্র্যাগমেন্টেশন), রেজিস্ট্রির অব্যবহৃত অংশ(Obsolete Registry Entries) ইত্যাদি উল্লেখযোগ্য। এছাড়াও বিভিন্ন ভাইরাস ও স্পাইওয়্যারের আক্রমণের কারণেও উইন্ডোজের গতি হ্রাস পায়।
অপরদিকে লিনাক্সের ext3 ফাইল সিস্টেমে বিশেষ পদ্ধতেতে ফাইলগুলো সজ্জিত করে... ফলে ফ্র্যাগমেন্টেশনের কোন সম্ভাবনা নেই। আর উবুন্টু উইন্ডোজের মত অব্যবহৃত রেজিস্ট্রি এন্ট্রি জমা করে রাখে না। উবুন্টুতে ভাইরাস/স্পাইওয়্যার কোনটিই আক্রমণ করতে পারে না। ফলে বহুদিন ব্যবহারের পরও উবুন্টুর স্বাভাবিক গতি ও কর্মক্ষমতা বজায় থাকে। যেখানে উইন্ডোজ ধীরে ধীরে মন্থর হয়ে পরে।

৫। গ্রাফিক্যাল ইফেক্ট: উবুন্টু লিনাক্সে রয়েছে অসাধারণ কম্পিজ ফিউশন ইফেক্ট। যার দ্বারা দৃষ্টিনন্দন উইন্ডো এনিমেশনের পাশাপাশি অত্যন্ত কার্যকরী কিছু ইফেক্ট পাওয়া যায়। এর মধ্যে ট্যাব গ্রুপিং, উইন্ডো ট্রান্সপারেন্সি ইত্যাদি উল্লেখযোগ্য। ট্যাব গ্রুপিং এর সাহায্যে আপনি কয়েকটি উইন্ডোকে ট্যাব আকারে একত্র করে রাখতে পারবেন এবং উইন্ডো ট্রান্সপারেন্সি ইফেক্টের সাহায্যে যেকোন উইন্ডোকে স্বচ্ছ(ট্রান্সপারেন্ট) করে ফেলতে পারবেন। এগুলো ছাড়াও আরও বহু ইফেক্ট ডিফল্টভাবে দেয়া আছে এবং প্রতিদিন নিত্যনতুন ইফেক্ট ইন্টারনেটে বিনামূল্যে ডাউনলোডের জন্য দেয়া হচ্ছে।
অপরদিকে উইন্ডোজের নতুন সংস্করণ উইন্ডোজ ভিস্তাতে কিছু গ্রাফিক্যাল ইফেক্ট আনা হলেও সেগুলোর বেশিরভাগই কোন কাজের নয়। এছাড়াও ভিস্তার ইফেক্টগুলো সক্রিয় রাখলে প্রচুর সিস্টেম রিসোর্স(Ram, প্রসেসর) ব্যবহার করে যেখানে উবুন্টুর ইফেক্টগুলো সক্রিয় রাখলেও উইন্ডোজ এক্সপির চাইতেও অনেক কম সিস্টেম রিসোর্স ব্যবহার করে।

৬। সকল কাজের জন্য পর্যাপ্ত সফ্টওয়্যার: উবুন্টুতে সকল কাজের জন্যই পর্যাপ্ত সফ্টওয়্যার আছে। উইন্ডোজের মত লক্ষ-কোটি নামী বেনামী সফ্টওয়্যার না থাকলেও এ সফ্টওয়্যারগুলো অত্যন্ত সহজ, সাবলীল এবং উইন্ডোজের সফ্টওয়্যারগুলোর মতই বিভিন্ন ধরণের কাজের উপযোগী।
যেমন: মাইক্রোসফ্ট অফিসের বিকল্প হিসাবে আছে ওপেন অফিস অর্গ, ফটোশপের বিকল্প হিসাবে আছে অসাধারণ একটি গ্রাফিক্স ডিজাইন এবং ফটো এডিটিং সফ্টওয়্যার গিম্প, ডিভিডি/ভিসিডি মুভি দেখার জন্য টটেম, ভিএলসি মিডিয়া প্লেয়ার, গান শোনার জন্য রিদমবক্স, বংশি, লিসেন(Listen Music Player... বংশী এবং রিদমবক্সের মত তেমন জনপ্রিয় না হলেও এটা আমার সবচেয়ে প্রিয়), এডোবি রিডারের বিকল্প হিসাবে আছে কেপিডিএফ, এক্সপিডিএফ, ডকুমেন্ট ভিউয়ার ইত্যাদি। এরকম সব ধরণের সফ্টওয়্যারের-ই অসংখ্য বিকল্প আছে উবুন্টুতে... এবং সবগুলোই পুরোপুরি বিনামূল্যে!

৭। বাংলা ভাষার ব্যবহার: উবুন্টু লিনাক্সের জন্য রয়েছে বাংলা ল্যাঙ্গুয়েজ প্যাক, যেটি শুধুমাত্র অপারেটিং সিস্টেমকেই বাংলা করে না বরং বিভিন্ন সফ্টওয়্যারকেও অনেকাংশে বাংলায় অনুবাদ করে। বাংলা লেখার জন্য উবুন্টুতে আছে অত্যন্ত চমৎকার প্রভাত ফোনেটিক লে-আউট। অভ্রে অভ্যস্থতার কারণে প্রথমদিকে প্রভাতে লিখতে সমস্যা হলেও এখন সে সমস্যা কাটিয়ে উঠেছি এমনকি এই আর্টিকেল পুরোটাই প্রভাত দিয়ে লিখছি। :C

এগুলো ছাড়াও উবুন্টু লিনাক্সে আরও অনেক সুবিধা রয়েছে যেগুলো সম্পর্কে ফোরামের অভিজ্ঞ লিনাক্স ব্যবহারকারীরা(স্বপ্নচারী, শিপলু) আরও ভাল বলতে পারবেন। আর সবচেয়ে বড় কথা হল লিনাক্স পুরোপুরি ফ্রি এবং ওপেন সোর্স এবং এতে ব্যবহৃত সফটওয়্যারগুলোও বিনামূল্যে পাওয়া যায়। আর উইন্ডোজ টাকা দিয়ে কিনতে হয় এবং এর সব সফটওয়্যারও ফ্রি নয়।
এবার আপনিই সিদ্ধান্ত নিন... টাকা দিয়ে কিনে বা চুরি করে ত্রুটিসম্পন্ন উইন্ডোজ অপারেটিং সিস্টেম ব্যবহার করবেন নাকি বিনামূল্যে বিশ্বের সবচাইতে নিরাপদ অপারেটিং সিস্টেম লিনাক্স এর ব্যবহারবান্ধব সংস্করণ উবুন্টু লিনাক্স ব্যবহার করবেন?
আলোকিত