Потребовалось посмотреть начинку для solaris 10.0 под sparc, гугление долго ничего не показывало. И вдруг обнаружилась крайне интересная статейка
Начало бесполезно, а вот дальше шли основные диагностические команды, по которым стало понятно всё о начинке, в частности isainfo -kv, psrinfo -v, prtdiag
Плюсом про HP-UX, AIX есть.
Иногда внезапно бывает нужно определить битность (32 или 64 бита) операционной системы, битность и тип железа на котором она бежит. Это разные вещи, ибо 32-хбитная операционка может бежать на 64-хбитном процессоре. А наоборот — нет. Для определения битности, а так же некоторых прочих маленьких милых деталей читайте нижеследующий гайд.
[дополнение] На самом деле, я фшоке сколько на эту статью набигают по запросам типа «как узнать битность системы» и «определить 32 или 64 бита». Так как в запросе не указана операционная система для которой это спрашивается, то это набигает школота и интересуется она Windows. Специально для них в конце статьи добавлен раздел «
Определение битности Windows». А чотким пацанам интересующимся за юниксы читать ниже.
Linux
Ну, тут легко. «Все красноглазые знают это». По крайней мере, с архитектурой x86, о которой пойдёт речь. Используем uname или arch.
Способ 1
Просто говорим arch. Если ответ i386 — то это 32 бита. Вместо тройки может быть 4, 5 или 6. Если ответ x86_64 — то это 64 бита. Если ответ ia64 — то это тоже 64 бита, процессор Intel Itanium или Intel Itanium 2.
[root@ololo ~]# arch
i686
Способ 2
man от uname как бы говорит нам, что опция:
-a, --all выводит всю подробную информацию
-m, --machine выводит сведения о типе компьютера
-p, --processor выводит тип процессора для данного компьютера
-i, --hardware-platform выводит сведения о платформе компьютера
Поэтому достаточно посмотреть на вывод uname -imp или uname -a:
[root@ololo ~]# uname -imp
i686 i686 i386
[root@ololo ~]# uname -a
Linux ololo.ru 2.6.18-194.26 #1 SMP Fri Dec 17 19:25:15 MSK 2010 i686 i686 i386 GNU/Linux
Способ 3
Тут даже без комментариев.
[root@ololo ~]# getconf LONG_BIT
32
Способ 4
Наконец, можно просто посмотреть на битность бинарника ядра:
[root@ololo32 ~]# file /boot/vmlinuz-`uname -r`
/boot/vmlinuz-2.6.18-194.0.0.0.3.el5PAE: ELF 32-bit LSB shared object, Intel 80386, version 1, stripped
[root@ololo64 ~]# file /boot/vmlinuz-`uname -r`
/boot/vmlinuz-2.6.18-194.0.0.0.3.el5: ELF 64-bit LSB shared object, AMD x86-64, version 1, stripped
Битность процессора
Но 32-хбитная операционка не означает, что процессор не умеет набор 64-хбитных инструкций. Чтобы узнать, поддерживает ли процессор набор инструкций AMD64 или Intel EM64T, смотрим наличие флага lm (long mode) в строке флагов процессора в /proc/cpuinfo. Если флага lm нет — процессор 32-хбитный.
[root@ololo ~]# grep ^flags /proc/cpuinfo | grep lm
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat
pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc
nonstop_tsc pni monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr sse4_1 sse4_2 popcnt lahf_lm
Для процессоров Intel Itanium (ia64) это не работает, у них нет строчки «flags» и они всегда 64-хбитные.
Solaris
Способ 1
Смотрим на бинарник /bin/isainfo или /usr/bin/isainfo. Если его нет — система 32-хбитная. Если есть — запускаем isainfo -kv. Вывод однозначен. Ниже примеры для Solaris 8, 9 и 10.
sol8# uname -a; isainfo -kv
SunOS sol8 5.8 Generic_117350-39 sun4u sparc SUNW,Sun-Fire
64-bit sparcv9 kernel modules
sol9# uname -a; isainfo -kv
SunOS sol9 5.9 Generic_118558-10 sun4u sparc SUNW,Sun-Fire-V490
64-bit sparcv9 kernel modules
sol10# uname -a; isainfo -kv
SunOS sol10 5.10 Generic_142900-02 sun4u sparc SUNW,SPARC-Enterprise
64-bit sparcv9 kernel modules
Битность процессора
Тип процессора определяется из вывода uname -p, sparc — это (сюрприз!) SPARC процессор,i86pc — это Intel x86. На процессор смотрим командой /usr/sbin/psrinfo -v. Наличие sparcv9в выводе как бы говорит нам о 64-хбитности процессора. Ну и на частоту можно посмотреть:
sol10# psrinfo -v
Status of virtual processor 0 as of: 02/17/2011 14:52:08
on-line since 06/23/2010 01:25:47.
The sparcv9 processor operates at 2400 MHz,
and has a sparcv9 floating point processor.
Status of virtual processor 1 as of: 02/17/2011 14:52:08
on-line since 06/23/2010 01:25:48.
The sparcv9 processor operates at 2400 MHz,
and has a sparcv9 floating point processor.
Инфа 100% о железе
Инфа об окружающем железе получается из команд /usr/sbin/prtdiag и /usr/sbin/prtpicl. С опцией «-v» будет еще подробней. Ниже пример с самым интересным из вывода.
sol10# prtdiag
System Configuration: Sun Microsystems sun4u Sun SPARC Enterprise M5000 Server
System clock frequency: 1012 MHz
Memory size: 65536 Megabytes
==================================== CPUs ====================================
... skip ...
============================ Memory Configuration ============================
... skip ...
========================= IO Cards =========================
... skip ...
==================== Hardware Revisions ====================
System PROM revisions: OBP 4.24.10 2008/08/12 19:52
=================== System Processor Mode ===================
SPARC64-VII mode
HP-UX
HP-UX — адовая операционка, есличо. Её просто нужно уметь готовить. Многое в ней неудобно (отсутствие гнушных утилит, например), но многое зач0тно (железная и гипервизорная виртуализация искаропки, допустим).
Способ 1
Тоже без комментариев. getconf KERNEL_BITS и пыщь.
hpux# getconf KERNEL_BITS
64
Способ 2
Аналогично. Смотрим на битность файла с ядром.
hpux64# /usr/bin/file /stand/vmunix
/stand/vmunix: ELF-64 executable object file - PA-RISC 2.0 (LP64)
hpux32# /usr/bin/file /stand/vmunix
/stand/vmunix: PA-RISC1.1 executable -not stripped
Инфа о процессоре и релизе операционки
Несколько слов о том, какие сочетания вообще бывают. Сейчас последняя версия HP-UX — 11i. Её релизы: HP-UX 11.0 (B.11.00 — адское старьё), HP-UX 11i v1 (B.11.11), HP-UX 11i v2 (B.11.23) и HP-UX 11i v3 (B.11.31). Может бежать на двух типах процессоров: если в выводе uname -mнаписано 9000/800 — это PA-RISC 2.0, если написано ia64 — это Intel Itanium 2. Пара примеров с реальных систем:
dev1# uname -a
HP-UX dev1 B.11.11 U 9000/800 651111111 unlimited-user license
prod2# uname -a
HP-UX prod2 B.11.23 U ia64 4271111111 unlimited-user license
Инфа о железе
Наиболее быстрый способ — запустить sam — псевдо-гуёвую (или гуёвую, если в иксах) утилиту, которая есть искаропки во всех HP-UX. sam -> [Enter] -> Performance Monitors -> System Properties и ты-дыщ!
┌───────────┐┌────────┐┌──────────────────┐┌─────────┐┌─────────┐
│ Processor ││ Memory ││ Operating System ││ Network ││ Dynamic │
│ ────────────────────────────────────────────────────────┐
│┌──────────────────────────────────────────────────────────────────┐│
││Processors: ││
││ Active: 6 ││
││ Total: 8 ││
││Clock Frequency: 400 MHz , 1598 MHz(Core Freq.) ││
││Machine Identification: 4211111111 ││
││Hardware Model: ia64 hp server rx8640 ││
││Kernel Width Support: 64 ││
││CPU Version: Intel(R) Itanium(TM) Family Processor ││
││CPU Model No: 1 ││
││CPU Revision: 1 ││
│└──────────────────────────────────────────────────────────────────┘│
└────────────────────────────────────────────────────────────────────┘
AIX
Способ 1 (только от root)
aix64# /usr/sbin/bootinfo -K
64
Способ 2
aix64$ /usr/bin/locale64
LANG=en_US
LC_COLLATE="en_US"
... skip ...
aix32$ /usr/bin/locale64
exec(): 0509-036 Cannot load program /bin/locale64 because of the following errors:
0509-032 Cannot run a 64-bit program on a 32-bit machine.
Способ 3
Файл /unix — симлинка на текущее ядро. Имя ядра доставляет.
aix64$ ls -l /unix
lrwxrwxrwx 1 root system 21 Nov 19 2007 /unix -> /usr/lib/boot/unix_64
aix32$ ls -l /unix
lrwxrwxrwx 1 root system 21 Jan 16 2006 /unix -> /usr/lib/boot/unix_mp # либо просто '/usr/lib/boot/unix'
Способ 4
Опять волшебная команда getconf:
aix64$ getconf KERNEL_BITMODE
64
Способ 5
Смотрим на наличие пакета bos.64bit. В 32-хбитной операционке его не будет наличествовать.
aix64$ lslpp -l bos.64bit
Fileset Level State Description
----------------------------------------------------------------------------
Path: /usr/lib/objrepos
bos.64bit 5.3.12.0 COMMITTED Base Operating System 64 bit
Runtime
Способ 6
Вообще всё разжуют и в рот положат.
aix64$ /usr/sbin/kdb
The specified kernel file is a 64-bit kernel
... skip ...
Способ 7
Опять смотрим на файл с ядром:
aix64$ file /usr/lib/boot/unix*
/usr/lib/boot/unix_64: 64-bit XCOFF executable or object module not stripped
aix32$ file /usr/lib/boot/unix*
/usr/lib/boot/unix_mp: executable (RISC System/6000) or object module not stripped
Способ 8
aix64$ /usr/sbin/prtconf | grep ^Kernel
Kernel Type: 64-bit
Инфа о процессоре и железе
Тот же /usr/sbin/prtconf. Инфы выдаёт доставляющей и много. Пример с живой системы:
aix64$ /usr/sbin/prtconf
System Model: IBM,9116-561
Machine Serial Number: 11111XX
Processor Type: PowerPC_POWER5
Processor Implementation Mode: POWER 5
Processor Version: PV_5_3
Number Of Processors: 10
Processor Clock Speed: 1798 MHz
CPU Type: 64-bit
Kernel Type: 64-bit
LPAR Info: 51 aix64
Memory Size: 20480 MB
Good Memory Size: 20480 MB
Platform Firmware level: SF240_358
Firmware Version: IBM,SF240_358
Network Information
... skip ...
Paging Space Information
... skip ...
Volume Groups Information
... skip ...
INSTALLED RESOURCE LIST
Model Architecture: chrp
Model Implementation: Multiple Processor, PCI bus
+ sys0 System Object
+ sysplanar0 System Planar
* vio0 Virtual I/O Bus
* vsa0 U9116.561.11111XX-V51-C0 LPAR Virtual Serial Adapter
+ ent4 U1111.001.DQQQQQQ-P1-C5-T1 4-Port 10/100/1000 Base-TX PCI-X Adapter
+ fcs0 U1111.001.DQQQQQQ-P1-C3-T1 FC Adapter
* fcnet0 U1111.001.DQQQQQQ-P1-C3-T1 Fibre Channel Network Protocol Device
+ fscsi0 U1111.001.DQQQQQQ-P1-C3-T1 FC SCSI I/O Controller Protocol Device
* hdiskpower4 U1111.001.DQQQQQQ-P1-C3-T1-L8 PowerPath Device
* hdisk21 U1111.001.DQQQQQQ-P1-C3-T1-W8888888888888888-L0 EMC CLARiiON FCP RAID 5 Disk
* hdisk22 U1111.001.DQQQQQQ-P1-C3-T1-W8888888888888888-L0 EMC CLARiiON FCP RAID 5 Disk
... skip ...
+ L2cache0 L2 Cache
+ mem0 Memory
+ proc0 Processor
+ proc2 Processor
+ proc4 Processor
+ proc6 Processor
+ proc8 Processor
+ proc10 Processor
+ proc12 Processor
+ proc14 Processor
+ proc16 Processor
+ proc18 Processor
Windows
Разрядностей у Windows на сегодняшний день две: 32 бита и 64 бита, т.е. дистрибутивы делятся на x32 и x64 соответственно. x86 — это обозначение архитектуры процессоров Intel и является синонимом 32-хбитной версии (т.е. если Вы увидите x86, то знайте что речь идет об x32). То есть, если Вы не устанавливали специально 64-битную операционную систему, то Ваша Windows имеет 32-хбитную разрядность. Посмотреть разрядность в системе можно простейшим способом: «Пуск» —> правый клик на «Мой компьютер» (или сразу правый клик на «Мой компьютер», если этот ярлык есть на рабочем столе) —> «Свойства», и видим картинку на которой всё написано русским по белому.
Вот как это выглядит для Windows Vista или Windows 7:
Вот так выглядит для предыдущих версий Windows, включая XP. Если надписи про 64 бита нет — система 32-хбитная.
Для трушных и олдскульных товарищей есть способ узнать битность Windows, а также точный её тип (например, данная Windows 2008 — она R2 или не R2?) из командной строки. Да, правильно. Только командная строка! Только хардкор!
C:\>wmic os get osarchitecture
OSArchitecture
64-bit
C:\>wmic os get Caption,CSDVersion /value
Caption=Microsoft Windows 7 Домашняя расширенная
CSDVersion=Service Pack 1
C:\>winver
C:\>systeminfo
Предпоследняя команда показывает диалоговое окно с информацией о версии Windows. Последняя команда выводит в текстовом режиме кучу информации о системе.
Комментариев нет:
Отправить комментарий