কার্নেল কি? সাধারণত কার্নেলের কথা আমরা RAM সোয়াপ করে বাড়ানোর সময় শুনি।
আসলে কার্নেল যে শুধু এন্ড্রয়েডে থাকে তা নয়, এটি আইফোনের OS (Operating System) , উইন্ডোজ, ম্যাক সব হাই লেভেল OS এই থাকে। আমাদের লাগবে লিনাক্সের কার্নেল যা অ্যান্ড্রয়েড ব্যবহার করে। তাহলেচলেন দেখি এটি কি এবং কি কাজ করে। একজনের মোবাইল থেকে নিয়ে আরেকজনের মোবাইলে ইন্সটলকরে ফেলবো নাকি?কার্নেল হল তা যা সফটওয়ার এবং হার্ডওয়ারের মাঝে ব্রীজ হিসেবে কাজ করে। অর্থাৎ এর মাধ্যমে একটা ইন্সটল করা সফটওয়ার আপনার মোবাইলের হার্ডওয়ারের সাথে যোগাযোগ করে,যা কার্নেল ছাড়া সম্ভব না।অ্যান্ড্রয়েড লিনাক্সের কার্নেল ব্যবহার করলেও ঠিক একই লিনাক্স-বেইসড কার্নেল টা ব্যবহার করে না। এটাতে অ্যান্ড্রয়েডের জন্য নির্দিষ্ট করে কোড লিখতে হয়েছে এবং তা করেছে গুগলের অ্যান্ড্রয়েড কার্নেল মেন্টেইনাররা। এছাড়াও যারা মোবাইল বানায় (তাদের বলে OEM – Original Equipment Manufacturer) তাদেরও একই কাজ করতে হয় কারণ ভিন্ন ভিন্ন কার্নেলের ভার্সনের জন্য তাদের ডিভাইসের হার্ডওয়ারড্রাইভার[১]আপডেট করতে হয়। এজন্যই এন্ড্রয়েডের নতুন ভার্সনগুলো পুরানো ভার্সনের জন্য পোর্ট করতে ডেভেলপার এবং হ্যাকারদের অনেক সময় লাগে, কারণ প্রতিটা জিনিসের ড্রাইভার অনুসারে কার্নেল বানানো অনেক কষ্টসাধ্য ব্যাপার।যেসব ড্রাইভার জিঞ্জারব্রেড কার্নেল ওয়ালা মোবাইলে কাজ করে সেগুলো ICS ওয়ালা মোবাইলে ঠিকমত কাজই করবে না, কিন্তু এটাঅনেক গুরুত্বপূর্ণ। কারণ কার্নেলের মুল ফাংশন হচ্ছে হার্ডওয়ারকে নিয়ন্ত্রন করা যেমনঃ ডিসপ্লে, প্রসেসর, রেম, রম সহ সব হার্ডওয়ার। যাক, কার্নেলের মুল কাজ এতক্ষণে জানা গেল তাহলে।যখন সফটওয়ারকে একটা কাজ হার্ডওয়ার দিয়ে করাতে হয় (যেমনঃ ছবি তুলা) তখন সফটওয়ার টা কার্নেলকে রিকোয়েস্ট পাঠায়,বলে প্লিজ কার্নেল ভাই এইটা ছবি তুলে দাও না। তখন কার্নেল ক্যামেরার হার্ডওয়ারকে বলে যেওই, একটা ছবি তুলে দে তো। ক্যামেরা ছবি তুলে কার্নেলকে দেয়। কার্নেল তখন সফটওয়ারকে বলে এই ল তোর ছবি। তখন ক্যামেরা অ্যাপ(সফটওয়ার) কার্নেল থেকে পাওয়া ছবি আমাদের দেখায়।এভাবে ব্রাইটনেস এডজাস্ট হতে শুরু করে, ভলিউল বাড়ানো কমানো, কাউকেকল করা, এমনকি ডিসপ্লেতে কোন জিনিস কেমনে দেখাবে সেটাও কন্ট্রোল করে কার্নেল। আরেকটুডিটেলেইস উদাহরণ যাক–যখন আমরা সার্চ বাটনে টাচ করি, তখন আপনি আসলে সফটওয়ারটাকে বলেন যে সার্চ এপ্লিকেশনটা ওপেন কর। এখন আপনার মোবাইল সিস্টেমের ডিসপ্লে কিভাবে বুঝলো যে আপনি কিসে টাচ করলেন আর কিইবা ওপেন করতে বললেন আর ডিসপ্লে ই বা কিভাবে এপ্লিকেশন টা ওপেন করলো?কার্নেল ডিসপ্লেকে বলে যে যদি কেউ তোরে টাচ করে (Programming এর ভাষায় একে বলে listen event) তাইলে আমাকে সাথেসাথে বলবি, এক্কেরে নিঁখুতভাবে। ধরেন আপনি সার্চ এপের আইকনে টাচ করলেন, ডিসপ্লে এক দৌঁড় দিয়ে কার্নেলকে বলল যে,স্যার স্যার আমার এই জায়গায় [(x,y) কোঅরডিনেটে (স্থানাক)] টাচ করসে। এবার কার্নেল সিস্টেমকে বলে, হুঁশিয়ার, মালিক অমুক কোঅরডিনেটে টাচ করসে। সিস্টেম তো জানে কোন কোঅরডিনেটে সার্চ এপের আইকনটাআছে এবং কোথায় টাচ করলে কি দেখাতে হবে। দুই কোঅরডিনেট মিলে গেলে সিস্টেম সার্চ এপ্লিকেশন টা ওপেন করে দেয়।এভাবেই কাজ টা হয় আর আপনি এপ্লিকেশনটা ওপেন অবস্থায় দেখেন। অর্থাৎ আমরা বুঝলাম যে, সফটওয়ার হার্ডওয়ার দুইটাই কার্নেলের মাধ্যমে একে অপরের সাথে যোগাযোগ করে এবং এভাবেই আপনার মোবাইল বুঝতে পারে কখন কি করতে হবে।এগুলো যদিও অনেক প্যাঁচ মার্কা কথাবার্তা, আমি তবুও ট্রাই করলাম সহজভাবে বুঝাবার।ভালো করে পড়লে বুঝবেন যে এখানেএকজন ইনফরমেশন দেয় আরেকজন নেয়, মাঝে বার্তাবাহক হিসেবে কাজ করে কার্নেল, এক টাইপ থেকে ইনপুট নিয়ে অন্য টাইপে যোগাযোগ করে ড্যাটা দেয়। এখন যদি কার্নেল না থাকতো তাহলে কিহত?তখন কারো না কারো মাধ্যমে হার্ডওয়ার এর সাথে কানেক্ট হতে হত, এ কাজ করতে হত ডেভেলপারদের। তাদের প্রতিটা হার্ডওয়ারের সাথে কমিউনিকেট করার জন্য একটা একটা event বানিয়ে বানিয়ে কোড লিখতে হত, তখন কেউ আর ডেভেলপার হওয়ার সাহস করতো নাএখন কার্নেলের মাধ্যমে তাদের অনেক কষ্ট কমে গেসে। তাদের কাজহল কার্নেলের সাথে কমিউনিকেট করার কোড ব্যবহার করা (এগুলোকেবলে API – Application Programming Interface)কথা হচ্ছে, কার্নেল ঠিক কিভাবে কাজ করে এটা আপনার জানার দরকারনাই, শুধু এটা বুঝলেই চলবে যে কিভাবে আপনার ইনপুট কোথার ভিতরে প্রসেস হয়ে এসে কাজটা করে দেয়। এবার চিন্তা করেন ডেভেলপারদের কথা যারা আপনার ফোনের জন্য এত কমপ্লিকেটেড জিনিস বানায়, তাদের কষ্ট সম্পর্কে আপনার কোন আইডিয়া ছিলো?————————ড্রাইভার[১] – এটা ছাড়া কম্পিউটার না কোন ডিভাইস বুঝতে পারে না যে আসলে কি কানেক্ট করসেন । মনে করেন, মডেমকানেক্ট করসেন, এখন মডেমের ড্রাইভার ইন্সটল না করলে কম্পিউটার বুঝবে না যে ঐটা মডেম। একেক হার্ডওয়ারের ড্রাইভার ম্যানুফ্যাচারারকে বানাতে হয়।
Fb.com/Reja1.ID