সমস্ত প্রসেসর যারা x64 নির্দেশিকা সেটকে (x86_64 বা amd64 নামে পরিচিত) সমর্থন করে তারাও x86 নির্দেশিকা সেটকে (i386 বা i686 নামে পরিচিত, যা x86 এর নির্দিষ্ট সংস্করণগুলি কঠোরভাবে বলছে) সমর্থন করে। একই জন্য যায় এআরএম A64 (ARMv8 প্রদর্শনে নতুন 64-বিট নির্দেশ সেট) এবং A32 ( "ধ্রুপদী" 32 বিট নির্দেশ সেট নাম), জন্য SPARC64 এবং SPARC , এবং আমি বিশ্বাস MIPS64 এবং MIPS । সুতরাং এই সমস্ত আর্কিটেকচার পরিবারগুলিতে, যদি কোনও প্রসেসর 64৪-বিট কোড চালাতে পারে তবে এটি ৩২-বিট কোডও চালাতে পারে।
লিনাক্স কার্নেল 32-বিট ব্যবহারকারীল্যান্ড কোডটি 64-বিট কার্নেল দিয়ে চালানো সমর্থন করে (উপরে উল্লিখিত সমস্ত আর্কিটেকচার পরিবারগুলিতে), আমি মনে করি। কার্নেলটি অবশ্যই একজাতীয় (সমস্ত -৪-বিট বা সমস্ত 32-বিট) হতে হবে এবং প্রতিটি প্রক্রিয়া অবশ্যই একজাতীয় হতে পারে তবে আপনার 64-বিট কার্নেলের মধ্যে 32-বিট এবং 64-বিট প্রক্রিয়াগুলির মিশ্রণ থাকতে পারে। কনভার্সটি সম্ভব নয়: 32-বিট কার্নেলের সাহায্যে আপনি 64-বিট প্রক্রিয়া চালাতে পারবেন না।
এটি লিনাক্সের একটি নকশা পছন্দ, যা 32৪-বিট ইনস্টলেশনতে বিদ্যমান 32-বিট বাইনারিগুলি চালনার ইচ্ছা দ্বারা অনুপ্রাণিত হয়। অন্যান্য ইউনিক্স ভেরিয়েন্টগুলি বিভিন্ন পছন্দ করেছে: সোলারিস 32-বিট কার্নেলের পাশাপাশি 64 টি বিট প্রোগ্রাম চালাতে পারে, যখন ওপেনবিএসডি একটি 64-বিট কার্নেলে 32-বিট প্রোগ্রাম পরিচালনা করতে পারে না।
আপনি পেতে পারেন CPU- র তথ্য মধ্যে /proc/cpuinfo
। যদি আপনার x86 সিপিইউতে lm
পতাকা থাকে তবে এটি একটি 64-বিট সিপিইউ।
ডিফল্টরূপে, uname -m
বা arch
কার্নেলটি সংকলিত আর্কিটেকচারটি দেখায়। লিনাক্স একটি প্রক্রিয়াটির "ব্যক্তিত্ব" সেট করতে পারে ( personality
সিস্টেমের সাথে )। setarch
কমান্ডটি দিয়ে আপনি একটি ভিন্ন ব্যক্তিত্বের একটি সাবপ্রসেস চালাতে পারেন ; setarch i686 someprogram
বা linux32 someprogram
একটা পরিবেশে নির্দিষ্ট প্রোগ্রাম রান যেখানে uname -m
আয় i686
যখন setarch amd64 someprogram
বা linux64 someprogram
একটা পরিবেশে নির্দিষ্ট প্রোগ্রাম যেখানে রান uname -m
আয় amd64
।
file /sbin/init
init
প্রোগ্রামটি কী আর্কিটেকচারের জন্য সংকলিত তা আপনাকে জানায় । যদিও কোনও ইনস্টলেশনে 32-বিট এবং 64-বিট এক্সিকিউটেবলের মিশ্রণ সম্ভব, সাধারণত সমস্ত মূল ওএস প্রোগ্রাম একই আর্কিটেকচার থেকে হয়, কারণ এটি পরিচালনা করা অনেক সহজ।
$HOSTYPE
এটি একটি বাশ ভেরিয়েবল এবং আপনাকে জানায় যে bash
প্রোগ্রামটি কী আর্কিটেকচারের জন্য সংকলিত হয়েছিল।
getconf LONG_BIT
আপনাকে ডিফল্ট সি সংকলক 32-বিট বা 64-বিট প্রোগ্রামগুলি সংকলনের জন্য সেট আপ করা হয়েছে তা জানতে দেয়। আরও সুনির্দিষ্ট পরীক্ষাটি হ'ল একটি সংকলন করা এবং একটি প্রোগ্রাম পরিচালনা করা যা প্রিন্ট করে sizeof(void*)
বা sizeof(size_t)
- কলিং getconf
কেবলমাত্র getconf
ডিফল্ট সংকলক বলে মনে করে সে সম্পর্কে তথ্য দিতে পারে ।