Если Вы не должны использовать опцию цикла смонтировать регулярный файл, это потому что mount
обнаруживает это и активирует его для Вас автоматически. Вы раньше указывали его вручную.
64-битное ядро можно установить на 32-битный Debian. Вы можете увидеть, что ядро amd64 доступно для 32-битного Debian на странице пакета . Это можно использовать в качестве альтернативы использованию ядра с поддержкой PAE для поддержки более 4G общей оперативной памяти. Обратите внимание, что 32-битные двоичные файлы по-прежнему не могут получить доступ к более чем примерно 3 Г ОЗУ на процесс.
Все процессоры, поддерживающие набор инструкций x64 (также известный как x86_64 или amd64), также поддерживают x86 набор команд (также известный как i386 или i686, которые, строго говоря, являются конкретными версиями x86). То же самое касается ARM A64 (новый 64-битный набор команд, появляющийся в ARMv8) и A32 (название «классического» 32-битного набора команд), для SPARC64 и SPARC , и я полагаю, для MIPS64 и MIPS . Таким образом, во всех этих архитектурных семействах, если процессор может выполнять 64-битный код, он также может выполнять 32-битный код.
Ядро Linux поддерживает выполнение 32-битного пользовательского кода с 64-битным ядром (я думаю, для всех архитектурных семейств, упомянутых выше). Ядро должно быть однородным (все 64-битное или все 32-битное), и каждый процесс должен быть однородным, но вы можете иметь смесь 32-битных и 64-битных процессов в 64-битном ядре. Обратное невозможно: с 32-битным ядром нельзя запускать 64-битные процессы.
Это выбор дизайна в Linux, мотивированный желанием запускать существующие 32-разрядные двоичные файлы на 64-разрядных установках.Другие варианты Unix сделали другой выбор: Solaris может запускать 64-битные программы на 32-битном ядре, а также наоборот, в то время как OpenBSD не может запускать 32-битные программы на 64-битном ядре.
Вы можете получить информацию о ЦП в / proc / cpuinfo
. Если ваш процессор x86 имеет флаг lm
, это 64-разрядный процессор.
По умолчанию uname -m
или arch
показывает архитектуру, для которой было скомпилировано ядро. Linux может установить «индивидуальность» процесса (с помощью системного вызова индивидуальность
). Вы можете запустить подпроцесс в другой личности с помощью команды 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, которая сообщает вам, для какой архитектуры была скомпилирована программа bash
.
getconf LONG_BIT
позволяет узнать, установлен ли компилятор C по умолчанию для компиляции 32-битных или 64-битных программ.Более точный тест - это скомпилировать и запустить программу, которая печатает sizeof (void *)
или sizeof (size_t)
- вызов getconf
может дать информацию только о что getconf
считает компилятором по умолчанию.