Получение архитектуры Linux из файловой системы / proc

Я пишу программу на Java, и мне нужно определить архитектуру, для которой был скомпилирован Linux.

Мне нужно что-то вроде uname -m , но без запуска какой-либо программы, но вместо этого из /proc pseduo-fs.

Что такое надежный источник для чтения?

3 Solutions collect form web for “Получение архитектуры Linux из файловой системы / proc”

Поскольку у вас может быть установлен 32-разрядный Linux на 64-разрядной машине, более безопасный способ, по-видимому, проверяет возможности ЦП. Для Intel и совместимых процессоров:

 grep -o -w 'lm' /proc/cpuinfo 

http://www.unixtutorial.org/2009/05/how-to-confirm-if-your-cpu-is-32bit-or-64bit/

То, что вы ищете, это следующий флаг: lm. Это означает X86_FEATURE_LM, поддержка Long Mode (64 бит). Если вы можете найти флаг «lm» среди ваших флагов CPU, это означает, что вы смотрите на 64-битный процессор.

Все, что я вижу, говорит мне, что двоичный файл uname просто делает syscall для uname() чтобы получить его информацию, поэтому это может быть сложнее, чем вы хотите. Если вы хотите внедрить JNI, я бы рекомендовал сделать это и выдать системный вызов. Самый близкий ценный псевдофайл из /proc я могу найти, это /proc/sys/kernel/osrelease , который в моей системе имеет содержимое 4.2.3-300.fc23.x86_64 . Это изменится с версиями и может резко измениться между вкусами Linux, поэтому оно может быть не столь надежным, как вам нужно.

Попробуйте выполнить команду uname.

$ man uname

или

$ uname -a

До встречи,

  • Неактивная память связана с Commited, но не используется?
  • Почему количество грязных страниц всегда равно 0 на 2.6?
  • Переносимость ссылок файлового дескриптора
  • Dirty in / proc / meminfo для dd
  • Как увидеть переменные времени ядра без использования adjtimex?
  • Процесс Rogue Java останавливает мой компьютер
  • Дескриптор файла, связанный с сокетом или каналом в proc
  • Что такое / proc / <pid> / net / dev?
  • Определите, является ли конкретный процесс 32- или 64-разрядным
  • идентификатор / идентификатор процесса анализа из / proc, идентификаторы потоков
  • Связывание / proc / mnt в / proc / mounts
  • Interesting Posts

    Запуск исполняемого файла из символической ссылки, когда исполняемый файл ожидает, что его конфигурационные файлы будут находиться в его каталоге

    Декодировать двоичный вывод из программы Fortran, созданной в системе Sun Sparc

    Как заставить Linux перестать отправлять IPv6 ICMP-перенаправления?

    Изменение имени сервера

    Как начать вторую сессию X?

    Совместное использование памяти между виртуальной машиной и хостом

    Что означает «Недопустимый аргумент» в Solaris?

    Как скопировать папку рекурсивно идемпотентным способом с помощью cp?

    Сброс сокета сверстниками раз в 2 часа

    Является ли это возможным? Три моста Firewall с OpenBSD 6.0 с одним сервером OpenBSD?

    Есть ли на самом деле состояние гонки с системными единицами, определяющими «After = suspend.target»

    Fedora 15 i686 сообщает только 2.6 ГБ ОЗУ

    ssh через несколько хостов

    почему существует ограничение на размер жесткого диска в разделении MBR?

    Уменьшает ли окно использование свободной памяти?

    Linux и Unix - лучшая ОС в мире.