আমার লিনাক্স কার্নেলটি 32 বিট বা bit৪ বিবিটে চলছে কিনা আমি কীভাবে জানতে পারি?


উত্তর:


15
uname -a

আপনাকে কার্নেলটি বলবে - শেষ বিট আপনাকে আর্কিটেকচারটি বলে।

দুটি উদাহরণ:

আমার ম্যাক:

Darwin Mac.local 9.8.0 Darwin Kernel Version 9.8.0: Wed Jul 15 16:55:01 PDT 2009; root:xnu-1228.15.4~1/RELEASE_I386 i386

আমার ড্রিমহোস্ট হোস্টিং:

Linux ecco 2.6.24.5-serf-xeon-c6.1-grsec #1 SMP Tue Oct 7 06:18:04 PDT 2008 x86_64 GNU/Linux

i386 = 32 বিট

x86_64 = 64 বিট


3
এই উত্তরটি ভুল। শেষ বিট আপনাকে কার্নেল আর্কিটেকচারটি নয়, প্রক্রিয়াটির সংস্পর্শে আসা আর্কিটেকচারটি বলে। এই লিঙ্কটি দেখুন ।
ডেভিড শোয়ার্টজ

12

uname -mআপনি কার্নেলটি তৈরি করেছেন এমন আর্কিটেকচার আপনাকে দেবে। যদি এটি মুদ্রণ করে থাকে i686তবে আপনার কার্নেলটি 32 বিট, যদি x86_64এটি 64 বিট হয় তবে ধরে নিবেন আপনার কোনও ইন্টেল / এএমডি চিপ রয়েছে।


এটাও হতে পারে i386পুরোনো 32 বিট প্ল্যাটফর্মের উপর (এবং আমি এমনকি কম্পাইল কিছু প্যাকেজ দেখেছি i586- নিশ্চিত যে কি কখনো দ্বারা আউটপুট হবে না uname, যদিও)
a_m0d

3
এই উত্তরটি ভুল। uname -mআপনাকে আর্কিটেকচারটি দেয় কার্নেল এই নির্দিষ্ট প্রক্রিয়াটি প্রকাশ করতে পছন্দ করে, কার্নেলের আর্কিটেকচার নয়। এই লিঙ্কটি দেখুন ।
ডেভিড শোয়ার্টজ

@ ডেভিড শোয়ার্টজ: আপনার কোনও মন্তব্য সঠিক কারণ ছাড়াই অত্যন্ত কঠোর এবং আপনি কোনও বিকল্প পোস্ট করেছেন না বলে এটিকে আরও খারাপ দেখায়। যাই হোক লক্ষ করুন যে, ডিফল্টরূপে uname -m নেই বাস্তব স্থাপত্য রিপোর্ট। যদি এটি না হয় তবে সম্ভবত অ্যাডমিনটি সত্যিই-সত্যিই আপনাকে বিশ্বাস করতে চায় যে আপনি সেই অন্য আর্কিটেকচারে আছেন এবং আপনার সেরা বেটটি হ'ল তিনি জানেন যে তিনি কী করছেন। আপনি যদি প্রশাসক হন এবং আপনার সাথে ঝামেলা হয় setarchতবে আপনি ইতিমধ্যে যেকোনভাবে আরও ভাল জানেন।
nddou

উত্তরটি ভুল যে সত্য ঘটনাবহুল বক্তব্যটি সম্পর্কে কঠোরতা আমি জানি না। "এটিকে আরও খারাপ দেখাচ্ছে" এর অর্থ কী? হয়তো উপায় নেই। সম্ভবত একটি ভাল উপায় আছে। আমার জানা নেই, তাই আমি এই প্রশ্নের উত্তর দিলাম না। আপনার মন্তব্যগুলির শেষ হিসাবে, আমি কেবল তাতে একমত নই। স্ক্রিপ্টগুলি ব্যবহার করতে setarchএবং করতে পারে , এবং আপনি কোনও ভিন্ন ধারণা uname -mফিরে আসার কারণ সম্পর্কে কোনও ধারণা ছাড়াই আপনি এই জাতীয় স্ক্রিপ্টটি চালু করতে পারেন। এটি সম্ভব, এমনকি সম্ভবত: ওপিও জিজ্ঞাসা করছে কেন এই ধরণের সমস্যা।
ডেভিড শোয়ার্জ 23

@ এন্ডমেন অ্যাডমিন সিস্টেমটি এমনভাবে স্থাপন করতে পারেন যাতে যে কোনও অ্যাপ্লিকেশন initমনে করে যে এটি 32-বিট রয়েছে: এটির জন্য পরিস্থিতি 32-বিট ব্যবহারকারী স্থান সহ 64-বিট কার্নেল। অনেক সংকলন সিস্টেমগুলি uname -mসংকলক পতাকা নির্ধারণের উপর নির্ভর করে , যেমন জিডিবি-র, সেগুলি অবশ্যই জাল ব্যক্তিত্ব সহ সরবরাহ করা উচিত। তবে কিছু অন্যান্য ব্যবহারকারীর অ্যাপ্লিকেশন ব্যক্তিত্ব নির্বিশেষে এটি কী ধরণের কার্নেল রয়েছে তা জানতে চাইতে পারে (উদাহরণস্বরূপ কিছু নিম্ন স্তরের প্রয়োজনের জন্য)।
রুসলান

9

আমি মনে করি সবচেয়ে সুনির্দিষ্ট উপায় হ'ল

getconf LONG_BIT

এখানে এটি ঠিক দেখায় 64

এই টিপ পাওয়া

getconf প্যাকেজ লাইবসি-বিন থেকে (উবুন্টুতে)


2

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

32 বিট / 64 বিবিপি সিপিইউ এবং এস / ডাব্লু এর অদ্ভুততা সম্পর্কে যদি আপনি যথেষ্ট জানেন তবে এটি কেবল সহজ simply যদি আপনি বেশি কিছু জানেন না এবং মনে করেন যে আপনার "সিস্টেম "টি 32 বিট বা 64 বিট হয় তবে এটি আপনাকে আবিষ্কার করতে সহায়তা করবে যে সত্যটি আরও জটিল হতে পারে (আপনার সিস্টেমের অংশগুলি 64 বিট এবং অন্যরা 32 বিবিট) অন্যথায় বিভ্রান্ত না করে থাকতে পারে।

আবার এই স্ক্রিপ্ট (এবং উত্তর) আক্ষরিক প্রশ্নের জন্য নয় "আমার লিনাক্স কার্নেলটি 32 বিট বা 64 বিবিটে চলছে কিনা তা আমি কীভাবে জানব ?" তবে যারা তাদের সিপিইউ এবং কোর ওএস এসডাব্লু এর খিলানটি জানতে চান তাদের জন্য।

উদাহরণ রিপোর্ট

এগুলি বরং অস্বাভাবিক মামলার উদাহরণ:

মিনি স্ক্রিপ্ট থেকে রিপোর্ট (অভিজ্ঞ ব্যবহারকারীদের জন্য)

You have a 64 bit CPU
Your kernel reports that the architecture is 32 bit
Your /sbin/init process is 64 bit
Your C compiler is configured to produce 32 bit executables

বৃহত্তর স্ক্রিপ্ট থেকে রিপোর্ট করুন (কম অভিজ্ঞ ব্যবহারকারীদের জন্য)

You have a 64 bit CPU
Your kernel reports that the architecture is 32 bit
    If you are not the admin he can make a 64bit kernel report 32bit (see man setarch)
    In this case he has (because we have 64bit programs)
Your /sbin/init process is 64 bit
    Most other core OS programs will probably be 64 bits also.
    You may use the following command to check a specific program.
      file -L /path/to/program
Your C compiler is configured to produce 32 bit executables
    (Note that a 64bit compiler may be setup to produce 32bit code)

লিপি

মিনি স্ক্রিপ্ট (অভিজ্ঞ প্রশাসকদের জন্য)

এই 4 টি লাইন সমস্ত প্রয়োজনীয় তথ্য দেয়।

grep -w 'lm' /proc/cpuinfo > /dev/null && echo "You have a 64 bit CPU" || echo "You have a 32 bit CPU"
echo "Your kernel reports that the architecture is $(uname -m|sed -e 's/x86_64/64 bit/' -e 's/i.86/32 bit/')"
echo "Your /sbin/init process is $(file /sbin/init|sed -e 's/^.* \(32\|64\) bit.*$/\1bit/')"
echo "Your C compiler is configured to produce $(getconf LONG_BIT) bit executables"

বড় স্ক্রিপ্ট (কম অভিজ্ঞ ব্যবহারকারীদের জন্য)

এই স্ক্রিপ্টটি প্রচুর ব্যাখ্যা মুদ্রণ করে এবং দরকারী যদি আপনি যদি বিষয়টিতে অভিজ্ঞতা না পান এবং একটি মজাদার কেসের মুখোমুখি হন।

#!/bin/bash

# collect system info
grep -w 'lm' /proc/cpuinfo > /dev/null && CPU=64 || CPU=32
ARCH=$(uname -m|sed -e 's/x86_64/64/' -e 's/i.86/32/')
INIT=$(file -L /sbin/init|sed -e 's/^.* \(32\|64\)-bit.*$/\1/')
COMPILER=$(getconf LONG_BIT)

# if all values are the same we set UNIFORM="YES"
! echo "$CPU $ARCH $INIT $COMPILER" | grep -q "$CPU $CPU $CPU $CPU" && UNIFORM="NO" || UNIFORM="YES"

# report to the user
echo "You have a $CPU bit CPU"
echo "Your kernel reports that the architecture is $ARCH bit"
if [ "$UNIFORM" = "NO" ] && [ "$ARCH" = "32" ] ; then
       echo "    If you are not the admin he can make a 64bit kernel report 32bit (see man setarch)"
       if  [ "$INIT" = "64" ] ||  [ "$COMPILER" = "64" ] ; then
           echo "    In this case he has (because we have 64bit programs)"
       else
           echo "    We don't see such signs so you most likely run a 32bit kernel"
           echo "    (A 64bit CPU can run 32bit kernels)"
       fi
fi
echo "Your /sbin/init process is $INIT bit"
if [ "$CPU" = "64" ] ; then
     echo "    Most other core OS programs will probably be $INIT bits also."
     echo "    You may use the following command to check a specific program."
     echo "      file -L /path/to/program"
fi
if [ "$UNIFORM" = "NO" ] && [ "$INIT" = "32" ] ; then
     echo "    (Note that a 64bit kernel may start a 32bit init process)"
fi
echo "Your C compiler is configured to produce $COMPILER bit executables"
if [ "$UNIFORM" = "NO" ] && [ "$COMPILER" = "32" ] ; then
        echo "    (Note that a 64bit compiler may be setup to produce 32bit code)"
fi

আপনি যদি আরও জানতে চান তবে এই দুটি পৃষ্ঠাগুলি পড়ুন যেখানে আমি বেশিরভাগ তথ্য পেয়েছি ক) /programming/246007/how-to-determine-whether-a-given-linux-is-32- বিট-বা -৪৪-বিট খ) https://unix.stackexchange.com/a/134394/73271


0

আপনি যে প্ল্যাটফর্মটি চালাচ্ছেন তা যদি আপনি দেখতে চান তবে আপনি ব্যবহার করতে পারেন

uname -i

এর জন্য সমর্থিত অপশনের সম্পূর্ণ তালিকা unameহয়

$ uname --help
Usage: uname [OPTION]...
Print certain system information.  With no OPTION, same as -s.

  -a, --all                print all information, in the following order,
                             except omit -p and -i if unknown:
  -s, --kernel-name        print the kernel name
  -n, --nodename           print the network node hostname
  -r, --kernel-release     print the kernel release
  -v, --kernel-version     print the kernel version
  -m, --machine            print the machine hardware name
  -p, --processor          print the processor type or "unknown"
  -i, --hardware-platform  print the hardware platform or "unknown"
  -o, --operating-system   print the operating system
      --help     display this help and exit
      --version  output version information and exit

uname -iপ্রিন্টস GenuineIntel, যা তিনি যা খুঁজছেন তা আসলে এটি নয়।
drrlvn

এবং Unknownএকটি ম্যাক।
ধনী ব্র্যাডশো

i386আমার মেশিনে প্রিন্ট !
a_m0d

0

CLFLUSHSIZEপ্রসেসরের অপারেটিং মোড সম্পর্কে আপনাকে কিছু বলবে না। এই উত্তর অনুসারে , এটি ক্যাশের ক্ষুদ্রতম প্রবাহযোগ্য ইউনিটকে বোঝায়। আপনার ক্ষেত্রে, ক্যাশে লাইনগুলি 64 বাইটের ইউনিটগুলিতে পড়া / লেখা হয়।

unameউইকিপিডিয়ায় উদাহরণস্বরূপ টেবিলের এক নজরে দেখায় আউটপুট দরকারী হিসাবে অনেক বেশি পরিবর্তিত হয় । সবচেয়ে নির্ভরযোগ্য পদ্ধতিটি অ্যাকোরিয়াস পাওয়ারের উত্তরgetconf LONG_BIT হিসাবে শো । এটি প্রসেসরের আর্কিটেকচার নির্বিশেষে কাজ করে, তাই ঠিক ঠিক x86 হিসাবে এআরএম, পাওয়ার বা এমআইপিএসে বাড়িতে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.