Как linux может быть одновременно 32-битным и 64-битным?Или это что-то обрабатывается в glibc?

StackOverflow https://stackoverflow.com/questions/1504256

Вопрос

Как Linux может быть одновременно 32-битным и 64-битным?Или это что-то обрабатывается в glibc?

Я запускаю CentOS 5.3, и это "64-разрядная" версия;хотя я создаю вещи для 64-битных и 32-битных версий.Из того, что я, кажется, знаю, в Windows предположительно есть 32-битный эмулятор.Делает ли Linux то же самое?Находится ли это в пользовательском пространстве или в пространстве ядра?

Если libc обрабатывает это, это что-то вроде эмулятора, который говорит: "я свяжусь с 32-разрядными приложениями, но буду использовать 64-разрядную версию для ядра"?

Это было полезно?

Решение

Центральный процессор может выполнять как 64, так и 32-битные инструкции, а ядро может переключаться между режимами.Единственное ограничение заключается в том, что вы не можете связать 32-битные программы с 64-битными библиотеками, поэтому у вас должны быть как 32, так и 64-битные версии libc и т.д.установлен.

Другие советы

Ничто не мешает процессору переключиться с 64-битного на 32-битный.Он просто переключается.

У вас может быть 64-разрядное ядро и запускаться 32-разрядные приложения.У вас даже может быть 32-разрядное ядро и запускаться 64-разрядные приложения (Mac os x).

Однако вам нужно, чтобы библиотеки, которые они используют, также были 32-битными или 64-битными, вот почему вы можете увидеть файлы с именами lib64 или lib32 в linux для 64-битных или 32-битных библиотек.

Поскольку процессоры x86_64 разработаны по сравнению с технологией x86, они все еще могут поддерживать 32-разрядные программы без какого-либо оборудования, например, что вам нужно для запуска программ X86 в среде PowerPC или SPARC. В Linux все, что вам нужно сделать, это установить необходимые программные библиотеки для запуска 32-разрядного программного обеспечения.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top