What is linux ia32

Национальная библиотека им. Н. Э. Баумана
Bauman National Library

Персональные инструменты

Intel IA-32

Intel IA-32
Дизайнер Intel Corporation
Биты 32-bit
Представлен 1985 год
Версия i386
Расширения MMX
Открыто Нет
Регистры
32 бита
Общее назначение 32 бита
FPU (Floating Point Unit) 32 бита

Intel IA-32 (сокращение от «Intel Architecture, 32-bit», иногда также называемое i386) – это 32-разрядная версия архитектуры набора инструкций x86, разработанная Intel и впервые реализованная в Intel 80386 в 1985 году, показанный на рисунке 1. IA-32 является первым воплощением x86, поддерживающим 32-разрядные вычисления, в результате термин «IA-32» может использоваться в качестве метонима для обозначения всех версий x86, поддерживающих 32-битные вычисления.

Рисунок 1 – Intel 80386

Содержание

Альтернативные названия

В различных директивах языка программирования IA-32 по-прежнему иногда называют архитектурой «i386». В некоторых других контекстах некоторые итерации ISA IA-32 иногда обозначаются как i486, i586 и i686, ссылаясь на наборы инструкций, предлагаемые Intel 80386, микроархитектурами P5 и P6 соответственно. Эти обновления предлагали множество дополнений наряду с базовым набором IA-32, то есть с плавающей запятой и расширениями MMX. [Источник 1]

Истоки появления

Intel была исторически крупнейшим производителем процессоров IA-32, причем вторым по величине поставщиком был AMD. В 1990-х годах VIA, Transmeta и другие производители чипов также выпускали совместимые с IA-32 процессоры (например, WinChip). В современную эпоху Intel по-прежнему выпускает процессоры IA-32 под платформой микроконтроллеров Intel Quark, однако с 2000-х годов большинство производителей (включая Intel) почти полностью перешли на реализацию процессоров на основе 64-битного варианта x86, x86-64. x86-64 по спецификации предлагает устаревшие режимы работы, которые работают на ISA IA-32 для обратной совместимости.

Даже учитывая современную распространенность x86-64, по состоянию на 2018 год версии IA-32 с защищенным режимом многих современных операционных систем все еще сохраняются, например Microsoft Windows и дистрибутив Ubuntu Linux. Несмотря на то, что имя IA-32 (и вызывает некоторую потенциальную путаницу), 64-разрядная эволюция x86, которая возникла из AMD, не будет известна как «IA-64», которое вместо этого принадлежит архитектуре Intel Itanium. [Источник 2]

Архитектурные особенности

Первичной определяющей характеристикой IA-32 является наличие 32-разрядных регистров процессора общего назначения (например, EAX и EBX), 32-разрядных целочисленных арифметических и логических операций, 32-разрядных смещений в сегменте в защищенном режиме и перевод сегментированных адресов на 32-битные линейные адреса. Дизайнеры воспользовались возможностью, чтобы сделать другие улучшения. Ниже приводятся некоторые из наиболее значительных изменений.

Рисунок 2 – Intel Pentium

Читайте также:  Как apache настройка windows

32-битная целая функция

Все регистры общего назначения (GPR) расширяются от 16 бит до 32 бит, а все арифметические и логические операции, операции с памятью и регистром и памятью и т.д. Могут работать непосредственно с 32-битными целыми числами. Толкает и поставляет по стеку по умолчанию 4-байтные шаги, а несегментированные указатели имеют ширину 4 байта.

Более общие режимы адресации

Любой GPR может использоваться как базовый регистр, и любой GPR, отличный от ESP, может использоваться в качестве индексного регистра в ссылке на память. Значение регистра индекса может быть умножено на 1, 2, 4 или 8 перед добавлением к значению базового регистра и смещению.

Дополнительные сегментные регистры

Предусмотрены два дополнительных сегментарных регистра, FS и GS.

Большее виртуальное адресное пространство

Архитектура IA-32 определяет 48-битный сегментированный формат адреса с 16-разрядным номером сегмента и 32-битным смещением внутри сегмента. Сегментированные адреса сопоставляются с 32-битными линейными адресами.

Пейджинг спроса

32-битные линейные адреса — это виртуальные адреса, а не физические адреса; они переводятся на физические адреса через таблицу страниц. В Intel 80386, Intel 80486 и исходных процессорах Intel Pentium (представлен на рисунке 2) физический адрес составлял 32 бита; в процессорах Intel Pentium Pro и более поздних версиях расширение физического адреса допускало 36-битные физические адреса, хотя размер линейного адреса был еще 32 бита. [Источник 3]

Процессоры данной архитектуры

Ниже представлен список процессоров Intel, в которых использовалась данная архитектура.

Источник

What are the pros and cons of ia32-libs?

On my working install of Linux (Mint 17), I’ve been trying to avoid installing the ia32-libs package. When I’ve used it in the past, I recall a number of issues arising, most prominently significantly slower boot times and some Cinnamon settings being broken.

I note that the Linux Mint 17.1 upgrade requires ia32-libs for Skype (which I would like to keep using). This is one major reason that I’m not yet upgrading.

What are the actual pros and cons of the ia32-libs package? Is it «deprecated» in the sense that new applications are probably going to be 64-bit native, so I might be able to avoid downloading ever? Or am I just delaying the inevitable?

3 Answers 3

ia32-libs allows you to install common 32-bit programs, no more, no less. It’s a collection of 32-bit libraries. It has no impact on 64-bit programs. It doesn’t hurt performance, all it does is take up a bit of disk space.

Newer versions of Debian and Ubuntu have made ia32-libs obsolete by allowing 32-bit packages to be installed on a 64-bit system, so you can pick exactly the libraries that you need. This is called multiarch. Mint 17 is multiarch, so you can install individual 32-bit libraries by installing the i386 version of the same package name as the 64-bit library, e.g. apt-get install libc6:i386 . You may need to enable multiarch (I don’t know if the installer does it for you) by running sudo dpkg —add-architecture i386 once and for all (then update the package list with apt-get update before you can start installing 32-bit packages).

Читайте также:  Кнопка переключения экранов windows

The ia32-libs package is still provided for backward compatibility in case you have third-party deb packages that declare a dependency on that package name, and to facilitate the installation of a large selection of common libraries in case you have a manually installed binary and don’t want to spend time selecting the exact set of packages you need to get the libraries it requires.

Источник

How to install the ia32-libs in a 64-bit Linux? [closed]

Want to improve this question? Update the question so it’s on-topic for Stack Overflow.

Closed 6 years ago .

I wanna to install the ia32-libs in my linux mint, but when i use apt-get ,it told me sth like this:

is the locales package broken? then i use apt-get -f install :

is there any method to solve this problem ?

3 Answers 3

Please try this in your terminal:

Please note this worked for me at that time. May not be working now as it’s been 5 years now I posted this answer.

If anyone is going install ia32-libs in ubuntu versions later to raring, here is the process:

For latest Linux Mint’s there’s no need to install this, it’s preinstalled there.

You can install them with this command:

sudo apt install bluez-alsa:i386 gstreamer0.10-plugins-base:i386 gstreamer0.10-plugins-good:i386 gtk2-engines:i386 gtk2-engines-murrine:i386 gtk2-engines-oxygen:i386 gtk2-engines-pixbuf:i386 gvfs:i386 ibus-gtk:i386 libacl1:i386 libaio1:i386 libao4:i386 libasound2:i386 libasound2-plugins:i386 libasyncns0:i386 libattr1:i386 libaudio2:i386 libcanberra-gtk-module:i386 libcap2:i386 libcapi20-3:i386 libcups2:i386 libcupsimage2:i386 libcurl3:i386 libdbus-glib-1-2:i386 libesd0:i386 libfontconfig1:i386 libfreetype6:i386 libgail-common:i386 libgconf-2-4:i386 libgdbm3:i386 libgettextpo0:i386 libglapi-mesa:i386 libglu1-mesa:i386 libgphoto2-6:i386 libgphoto2-port10:i386 libgtk2.0-0:i386 libmpg123-0:i386 libncursesw5:i386 libnspr4:i386 libnss3:i386 libodbc1:i386 libopenal1:i386 libpulse-mainloop-glib0:i386 libpulsedsp:i386 libqt4-dbus:i386 libqt4-network:i386 libqt4-opengl:i386 libqt4-qt3support:i386 libqt4-script:i386 libqt4-scripttools:i386 libqt4-sql:i386 libqt4-svg:i386 libqt4-test:i386 libqt4-xml:i386 libqt4-xmlpatterns:i386 libqtcore4:i386 libqtgui4:i386 libqtwebkit4:i386 librsvg2-common:i386 libsane:i386 libsdl-image1.2:i386 libsdl-mixer1.2:i386 libsdl-net1.2:i386 libsdl-ttf2.0-0:i386 libsdl1.2debian:i386 libsqlite3-0:i386 libssl0.9.8:i386 libssl1.0.0:i386 libstdc++5:i386 libstdc++6:i386 libxaw7:i386 libxml2:i386 libxp6:i386 libxslt1.1:i386 libxss1:i386 libxtst6:i386 odbcinst1debian2:i386 xaw3dg:i386 libgl1-mesa-dri:i386 libgl1-mesa-glx:i386 libpam-winbind:i386

Package:arch is the apt format.However arch is optional.

Not the answer you’re looking for? Browse other questions tagged linux linux-mint or ask your own question.

Linked

Hot Network Questions

site design / logo © 2021 Stack Exchange Inc; user contributions licensed under cc by-sa. rev 2021.10.8.40416

By clicking “Accept all cookies”, you agree Stack Exchange can store cookies on your device and disclose information in accordance with our Cookie Policy.

Источник

How to install ia32-libs in Ubuntu 14.04 LTS (Trusty Tahr)

I installed Ubuntu 14.04 (Trusty Tahr) yesterday. Everything seems OK. But when I tried to compile some C code, I encounter the following error. The error seems to be due to the OS lacking the 32-bit architecture support. The error output is as following:

I used to apt-get install ia32-libs when I was using Ubuntu 12.04 (Precise Pangolin). But what I know is that Ubuntu has removed the ia32-libs since Ubuntu 13.10 (Saucy Salamander). How can I fix this problem?

11 Answers 11

You can try this to install the 32-bit library (not all in ia32-libs):

Читайте также:  Куда уходит память linux

sudo dpkg —add-architecture i386 may be required (if you haven’t ever run that).

Or if you want to install the whole ia32-lib instead, try the following order:

PS: In this way, you can install ia32-libs . However, we add the source of 13.04 instead, so, there may be some unknown problem. After installing ia32-libs , I recommend you to remove the ia32-libs-raring.list in /etc/apt/sources.list.d , and do sudo apt-get update .

If you want to fix the dependency of Android SDK, you can try this bellow:

sudo apt-get install -y libc6-i386 lib32stdc++6 lib32gcc1 lib32ncurses5 lib32z1

Install gcc multiple library.

I got it finally! Here is my way, and I hope it can help you 🙂

I don’t know the reason why I need to install these, but it works on my computer. When you finish installing these packages, it’s time to try. Oh yes, I need to tell you. This time when you want to compile your code, you should add -m32 after gcc , for example: gcc -m32 -o hello helloworld.c . Just make clean and make again. Good luck friends.

PS: my environment is: Ubuntu 14.04 64-bit (Trusty Tahr) and GCC version 4.8.4. I have written the solution in my blog, but it is in Chinese 🙂 — How to compass 32bit programm under ubuntu14.04.

These alternative libraries worked for me:

I had the same problem as above and Eclipse suggested installing:

When I tried to install ia32-libs, Ubuntu prompted to install three other packages:

With Android Studio and intellij, I also had to install the 32bit version of libstdc++6:

For me, I have to run

before running Mike Tang’s answer. Otherwise, I can’t install ia32-libs.

Simply install the 32-bit version of the program, instead of the 64-bit version.

This is much safer than installing packages that are not intended for the distribution at hand.

I got this suggestion from the Google Earth installation instructions for Ubuntu 14.04. Google Earth used to employ ia32-libs under 64-bit Ubuntu 12.04.

The ia32-libs package is no longer available in Ubuntu, starting with Ubuntu 13.10. The package was superseded by multiarch support so you don’t need it any more, but some 64bit packages (which are actually 32bit applications) still depend on this package and because of this, they can’t be installed in Ubuntu 14.04 or 13.10, 64bit. [. ]

The «fix» or more specifically the correct way of installing these apps which depend on ia32-libs is to simply install the 32bit package on Ubuntu 64bit. Of course, that will install quite a few 32bit packages, but that’s how multiarch works.

The problem with some programs (like Google Earth) is that the 32-bit package does not support multiarch. Consequently, some 32-bit dependencies need to be installed manually to make the 32-bit version of the program run on Ubuntu 64-bit.

Источник

Оцените статью