আপনি যদি প্রযুক্তিপ্রেমী হয়ে থাকেন, তাহলে নিশ্চয়ই জানেন যে অ্যান্ড্রয়েড অপারেটিং সিস্টেম লিনাক্স কার্নেলের ওপর ভিত্তি করে তৈরি। কিন্তু একটি বিষয় কি কখনো ভেবে দেখেছেন? অ্যান্ড্রয়েড লিনাক্সের ওপর তৈরি হওয়ার পরও কেন কম্পিউটারের লিনাক্স সফটওয়্যার সরাসরি অ্যান্ড্রয়েডে চালানো যায় না? একইভাবে, কেন অ্যান্ড্রয়েড অ্যাপ্লিকেশন সাধারণ লিনাক্স কম্পিউটারে সরাসরি কাজ করে না?
এর উত্তর জানতে হলে প্রথমে লিনাক্স কার্নেল, লিনাক্স ডিস্ট্রিবিউশন এবং অ্যান্ড্রয়েডের কাজ করার পদ্ধতি সম্পর্কে ধারণা নিতে হবে। চলুন, সহজ ভাষায় পুরো বিষয়টি বুঝে নেওয়া যাক।
লিনাক্স কার্নেল কী?
অনেকেই লিনাক্সকে একটি সম্পূর্ণ অপারেটিং সিস্টেম হিসেবে বিবেচনা করেন। তবে প্রযুক্তিগতভাবে লিনাক্স হলো একটি কার্নেল, যা অপারেটিং সিস্টেমের মূল অংশ হিসেবে কাজ করে। কার্নেল কম্পিউটারের হার্ডওয়্যার এবং সফটওয়্যারের মধ্যে যোগাযোগ স্থাপন করে। এটি প্রসেসর, মেমোরি, স্টোরেজ ও অন্যান্য হার্ডওয়্যার রিসোর্স পরিচালনা করে এবং অ্যাপ্লিকেশনগুলোকে সিস্টেমের সুবিধা ব্যবহার করতে সাহায্য করে।
একটি সম্পূর্ণ অপারেটিং সিস্টেম তৈরি করতে শুধু কার্নেল থাকলেই হয় না। এর পাশাপাশি প্রয়োজন বিভিন্ন সিস্টেম টুল, লাইব্রেরি, সফটওয়্যার এবং ব্যবহারকারীর কাজের উপযোগী পরিবেশ।
উদাহরণ হিসেবে Ubuntu, Debian, Fedora এবং Linux Mint-এর কথা বলা যায়। এগুলো লিনাক্স ডিস্ট্রিবিউশন বা সংক্ষেপে Linux Distro নামে পরিচিত। প্রতিটি ডিস্ট্রিবিউশনে লিনাক্স কার্নেলের পাশাপাশি বিভিন্ন সফটওয়্যার, সিস্টেম লাইব্রেরি, প্যাকেজ ম্যানেজার এবং প্রয়োজন অনুযায়ী গ্রাফিক্যাল ডেস্কটপ পরিবেশ থাকে।
যেমন, GNOME একটি জনপ্রিয় ডেস্কটপ এনভায়রনমেন্ট, যা ব্যবহারকারীকে উইন্ডো, মেনু, আইকন এবং অন্যান্য গ্রাফিক্যাল উপাদানের মাধ্যমে কম্পিউটার পরিচালনা করতে সাহায্য করে। তবে সব লিনাক্স সিস্টেমে ডেস্কটপ পরিবেশ থাকা বাধ্যতামূলক নয়। সার্ভারের জন্য তৈরি অনেক লিনাক্স সিস্টেমে শুধু কমান্ড লাইন ব্যবহার করেই কাজ করা হয়।
অর্থাৎ, লিনাক্স কার্নেল হলো মূল ভিত্তি, আর এর সঙ্গে প্রয়োজনীয় সফটওয়্যার ও অন্যান্য উপাদান যুক্ত হয়ে একটি ব্যবহারযোগ্য অপারেটিং সিস্টেম তৈরি হয়।
অ্যান্ড্রয়েড কীভাবে লিনাক্সের ওপর কাজ করে?
অ্যান্ড্রয়েডও লিনাক্স কার্নেল ব্যবহার করে। তবে Ubuntu বা Fedora-এর মতো সাধারণ ডেস্কটপ লিনাক্স ডিস্ট্রিবিউশনের সঙ্গে এর সফটওয়্যার পরিবেশ এক নয়।
গুগল অ্যান্ড্রয়েড তৈরির সময় লিনাক্স কার্নেলকে ভিত্তি হিসেবে ব্যবহার করেছে। এর ফলে গুগলকে শুরু থেকে সম্পূর্ণ নতুন একটি কার্নেল তৈরি করতে হয়নি। লিনাক্স কার্নেল হার্ডওয়্যার পরিচালনা, মেমোরি ব্যবস্থাপনা, প্রসেস পরিচালনা এবং নিরাপত্তাসংক্রান্ত বিভিন্ন কাজ করে। এর ওপর অ্যান্ড্রয়েডের নিজস্ব সিস্টেম সার্ভিস, লাইব্রেরি, অ্যাপ্লিকেশন ফ্রেমওয়ার্ক এবং অ্যাপ চালানোর পরিবেশ কাজ করে।
অ্যান্ড্রয়েডে অ্যাপ্লিকেশন পরিচালনার জন্য Android Runtime (ART) ব্যবহার করা হয়। এটি অ্যান্ড্রয়েড অ্যাপ্লিকেশনের কোড চালাতে সাহায্য করে। অনেক অ্যান্ড্রয়েড অ্যাপ Kotlin বা Java ভাষায় তৈরি করা হয়, যদিও অ্যান্ড্রয়েডে C ও C++-এর মতো ভাষায় তৈরি নেটিভ কোডও চালানো সম্ভব।
অন্যদিকে, ডেস্কটপ লিনাক্সে তৈরি অনেক অ্যাপ্লিকেশন নির্দিষ্ট সিস্টেম লাইব্রেরি, রানটাইম, প্যাকেজ এবং ডেস্কটপ পরিবেশের ওপর নির্ভরশীল। অ্যান্ড্রয়েডে সেগুলো একইভাবে উপস্থিত না থাকায় অ্যাপ্লিকেশনগুলো সরাসরি চালানো সম্ভব হয় না।
এখানে মনে রাখতে হবে, অ্যান্ড্রয়েডকে শুধু লিনাক্সের ওপর চলা একটি ভার্চুয়াল মেশিন বলা সঠিক নয়। বরং এটি লিনাক্স কার্নেল ব্যবহার করে তৈরি একটি স্বতন্ত্র অপারেটিং সিস্টেম, যার নিজস্ব অ্যাপ্লিকেশন পরিবেশ রয়েছে।
অ্যান্ড্রয়েড বনাম ডেস্কটপ লিনাক্স: মূল পার্থক্য কোথায়?
অ্যান্ড্রয়েড ও ডেস্কটপ লিনাক্সের মধ্যে কিছু মৌলিক মিল থাকলেও অ্যাপ্লিকেশন চালানোর পদ্ধতিতে গুরুত্বপূর্ণ পার্থক্য রয়েছে।
১. অ্যাপ্লিকেশন চালানোর পরিবেশ
অ্যান্ড্রয়েড অ্যাপ্লিকেশন সাধারণত Android Runtime, Android API এবং সংশ্লিষ্ট সিস্টেম সার্ভিস ব্যবহার করে। অন্যদিকে, ডেস্কটপ লিনাক্সের অ্যাপ্লিকেশন সাধারণত Linux system call, নির্দিষ্ট লাইব্রেরি এবং প্রয়োজনীয় রানটাইমের ওপর নির্ভর করে।
২. সিস্টেম লাইব্রেরির পার্থক্য
অনেক ডেস্কটপ লিনাক্স অ্যাপ্লিকেশন GNU C Library (glibc)-এর মতো লাইব্রেরি ব্যবহার করে। কিন্তু অ্যান্ড্রয়েড মূলত Bionic C Library ব্যবহার করে। ফলে একই প্রসেসর আর্কিটেকচার থাকা সত্ত্বেও একটি লিনাক্স অ্যাপ্লিকেশন অ্যান্ড্রয়েডে সরাসরি কাজ নাও করতে পারে।
৩. গ্রাফিক্যাল পরিবেশের পার্থক্য
ডেস্কটপ লিনাক্সে GNOME, KDE Plasma এবং Xfce-এর মতো ডেস্কটপ পরিবেশ ব্যবহার করা যায়। অ্যান্ড্রয়েডে রয়েছে নিজস্ব গ্রাফিক্যাল সিস্টেম, উইন্ডো ব্যবস্থাপনা এবং অ্যাপ্লিকেশন ইন্টারফেস। তাই ডেস্কটপ লিনাক্সের কোনো গ্রাফিক্যাল অ্যাপ চালাতে হলে তার প্রয়োজনীয় লাইব্রেরি ও গ্রাফিক্যাল পরিবেশের সমর্থনও নিশ্চিত করতে হয়।
৪. নিরাপত্তা ও অনুমতির পার্থক্য
অ্যান্ড্রয়েড অ্যাপগুলো সাধারণত আলাদা স্যান্ডবক্সে চলে এবং নির্দিষ্ট অনুমতির মাধ্যমে বিভিন্ন রিসোর্স ব্যবহার করে। ডেস্কটপ লিনাক্সেও ব্যবহারকারী ও প্রসেসের অনুমতি নিয়ন্ত্রণ করা হয়, তবে দুই প্ল্যাটফর্মের নিরাপত্তা কাঠামো ও অ্যাপ পরিচালনার নিয়ম এক নয়।
এই পার্থক্যগুলোর কারণেই লিনাক্সের জন্য তৈরি একটি সফটওয়্যার অ্যান্ড্রয়েডে এবং অ্যান্ড্রয়েডের জন্য তৈরি একটি অ্যাপ সাধারণ লিনাক্স ডিস্ট্রিবিউশনে সব সময় সরাসরি কাজ করে না।
তাহলে কি অ্যান্ড্রয়েডে লিনাক্স সফটওয়্যার চালানো সম্ভব নয়?
অবশ্যই সম্ভব, তবে এর জন্য উপযুক্ত পরিবেশ বা অতিরিক্ত সফটওয়্যারের প্রয়োজন হতে পারে।
উদাহরণস্বরূপ, Termux ব্যবহার করে অ্যান্ড্রয়েডে বিভিন্ন লিনাক্স কমান্ড, প্রোগ্রামিং টুল এবং কমান্ড-লাইন অ্যাপ্লিকেশন চালানো যায়। এটি অ্যান্ড্রয়েডের জন্য একটি টার্মিনাল ও Linux environment সরবরাহ করে। তবে সব ডেস্কটপ লিনাক্স সফটওয়্যার এতে সরাসরি চলবে, এমন নিশ্চয়তা নেই।
কিছু ক্ষেত্রে proot-ভিত্তিক পরিবেশ ব্যবহার করে Debian বা Ubuntu-এর মতো লিনাক্স ডিস্ট্রিবিউশনের ইউজারস্পেস চালানো যায়। আবার গ্রাফিক্যাল অ্যাপ্লিকেশন চালানোর জন্য অতিরিক্ত ডেস্কটপ বা ডিসপ্লে পরিবেশের প্রয়োজন হতে পারে।
এখানে একটি গুরুত্বপূর্ণ বিষয় হলো, লিনাক্স কমান্ড চালানোর জন্য সব সময় অ্যান্ড্রয়েড ফোন রুট করার প্রয়োজন হয় না। Termux-এর মতো টুল সাধারণ ব্যবহারকারীর অনুমতিতেই অনেক কাজ করতে পারে। তবে কিছু সিস্টেম-লেভেলের কাজের জন্য রুট অনুমতি লাগতে পারে।
লিনাক্স কম্পিউটারে কি অ্যান্ড্রয়েড অ্যাপ চালানো যায়?
হ্যাঁ, উপযুক্ত টুল ব্যবহার করে ডেস্কটপ লিনাক্সেও অ্যান্ড্রয়েড অ্যাপ চালানো সম্ভব।
এ ক্ষেত্রে Waydroid-এর মতো সফটওয়্যার ব্যবহার করা যায়। এটি লিনাক্স সিস্টেমে কনটেইনারভিত্তিক পরিবেশের মাধ্যমে অ্যান্ড্রয়েড চালাতে সাহায্য করে। ফলে অনেক অ্যান্ড্রয়েড অ্যাপ লিনাক্স ডেস্কটপে ব্যবহার করা সম্ভব হয়।
এ ছাড়া Android Emulator ব্যবহার করে অ্যাপ ডেভেলপমেন্ট ও পরীক্ষার কাজ করা যায়। তবে কোন পদ্ধতি আপনার সিস্টেমে কাজ করবে, তা নির্ভর করে হার্ডওয়্যার, লিনাক্স ডিস্ট্রিবিউশন, কার্নেল কনফিগারেশন এবং সফটওয়্যারের সামঞ্জস্যের ওপর।
অর্থাৎ, অ্যান্ড্রয়েড অ্যাপ লিনাক্সে চালানো অসম্ভব নয়। বরং সাধারণ লিনাক্স ইনস্টলেশনে প্রয়োজনীয় অ্যান্ড্রয়েড রানটাইম ও সিস্টেম পরিবেশ আগে থেকে না থাকায় অতিরিক্ত টুলের সাহায্য নিতে হয়।
শেষ কথা
অ্যান্ড্রয়েড ও ডেস্কটপ লিনাক্সের মূল ভিত্তিতে লিনাক্স কার্নেল থাকলেও তাদের সফটওয়্যার পরিবেশ, সিস্টেম লাইব্রেরি, অ্যাপ্লিকেশন রানটাইম এবং নিরাপত্তা ব্যবস্থায় পার্থক্য রয়েছে। তাই একই কার্নেল ব্যবহার করলেই একটি প্ল্যাটফর্মের সব অ্যাপ্লিকেশন অন্য প্ল্যাটফর্মে সরাসরি চালানো সম্ভব হয় না।
সহজভাবে বললে, লিনাক্স কার্নেল একই ভিত্তি তৈরি করলেও অ্যান্ড্রয়েড ও ডেস্কটপ লিনাক্স আলাদা অ্যাপ্লিকেশন পরিবেশ ব্যবহার করে। উপযুক্ত টুল, লাইব্রেরি ও রানটাইমের সাহায্যে অবশ্য দুই প্ল্যাটফর্মের মধ্যে সফটওয়্যার চালানোর সুযোগ তৈরি করা যায়।

