Что такое i686 в Linux/Unix?
Идентификатор i686 в широком смысле относится к ядру, оптимизированному для работы процессора Intel с использованием микроархитектуры P6, обычно ассоциируемой с процессорами Pentium Pro и Pentium M класса с 1995 года и позже. Дистрибутив Linux для i686 поддерживает большинство реализаций, которые ему предшествовали – например, компьютер i686 обычно отлично работает с дистрибутивами на основе i386.
Стандарт i686 работает под управлением 32-разрядной операционной системы. Конкретные дистрибутивные образы для машин i686 оказываются все более редкими после 2004 года.
Микроархитектура Intel
Процессоры Intel потребительского уровня следовали соглашению о присвоении имен * 86, начиная с чипа 8086, выпущенного в 1978 году. Более поздние итерации включали 16-разрядный i286 в 1983 году, 32-разрядный i386 в 1985 году, 32-разрядный i486 в 1989 году. i586 (оригинальный чип Pentium) в 1993 году, i686 (Pentium Pro) в 1995 году и i786 (Pentium 4 или NetBurst) в 2000 году.
С 2003 года процессоры серии x64, поддерживающие 64-битные операционные системы, стали доминировать на потребительском рынке. Имена классов микроархитектуры не эволюционировали после x64; Нынешняя схема именования Intel направлена на создание процессора.
Другие Архитектуры
Помимо i686, вы, вероятно, столкнетесь с несколькими другими индикаторами, специфичными для процессора:
Когда я должен использовать приложения i686?
Ваш менеджер пакетов определит правильный пакет для вашего ядра. Как правило, вы всегда сможете установить дистрибутивные образы с ядрами, предварительно скомпилированными для архитектуры i386 – вы получите 32-разрядную производительность, но для процессоров Intel она, как правило, всегда Работа. Если вы используете современный компьютер с 64-разрядным процессором Intel, выбор образа x86_64 имеет больше смысла.
Вы найдете прирост стоимости в комплектации i686 (если он доступен!), Если у вас более старый компьютер с процессором Pentium Pro через процессор Pentium 3 или процессор Pentium M. Ядро i686 предлагает некоторые дополнительные функции, встроенные Intel в процессор, которые недоступны базовому ядру i386.
Если вы не можете найти соответствующий дистрибутивный образ, предварительно скомпилированный для стандарта i686, вы всегда можете скомпилировать собственное ядро с нуля.
I686 pae что это
На днях при сборке Chromium столкнулся со странной проблемой: на моей машине с 9Гб оперативной памяти как-то не хватило 3Гб свободных ресурсов для быстрой сборки пакета. После проверки через free мои опасения подтвердились: моя система действительно работает только с третью оперативной памяти. Причина тому нашлась достаточно быстро: дело в том, что при начальной сборке Gentoo я выбрал носитель, который вообще у нас предназначался для VPS. Конечно же, на VPS с 1Гб оперативной памяти это замечательный вариант, но вот для рабочей машины, наверное, все-таки лучшим вариантом был бы x86_64. Так или иначе, новую установку делать было уже некогда, но я вспомнил Debian, где на i686 поддерживается и большее количество памяти, чем 3Гб.
Причиной тому в Debian’е использование PAE. Если кратко, то этот механизм позволяет использовать объемы памяти, свойственные 64-битным системам, на системе 32-битной. Включается PAE на Gentoo достаточно легко и никаких проблем после этого не наблюдается, однако придется пересобирать ядро. Прежде всего, давайте отметим те параметры ядра, которые нужно заменить:
Для начала рассмотрим первый вариант.
1.1. Выгружаем параметры ядра в файл «/root/kernel.config»:
Второй способ немного проще, но для того, чтобы им пользоваться, нужно хорошо ориентироваться в меню.
2.1. Выгружаем параметры ядра в файл «/usr/src/linux/.config»:
После перезагрузки выполняем «free» и любуемся на полностью доступный объем виртуальной памяти. Если после этого ничего не изменилось, посмотрите, с какими параметрами в настоящий момент собрано ядро и убедитесь в том, что настройки были изменены. Если все правильно, то обратите внимание на объем памяти при запуске компьютера. Если там столько же, сколько и в Linux’е, то смотреть нужно уже в аппаратную сторону: быть может, некоторые модули неисправны, а кроме этого некоторые материнские платы сами по себе пе поддерживают крупные объемы оперативной памяти (сверьтесь с руководством к вашей материнской плате).
4GB оперативной памяти
Довольно долго думал, в какой блог это запостить, и так и не придумал.
Описываемая проблема в своё время лишила меня массы нервных клеток, и в будущем (цены на оперативку падают) с ней будет сталкиваться только больше людей, поэтому я решил поделиться всем, что знаю.
Проблема проста: вы поставили в компьютер 4 гигабайта оперативки, но операционка не оценила вашей щедрости.
Немножко подумав, Вы вспоминаете, что ваша операционка 32-битная, следовательно адресуемое пространство — 4ГБ. Беда в том, что занимает его не только оперативка, но и другие устройства. В том числе видеокарта. И вот, от ваших четырёх гигабайт остаётся в лучшем случае три с половиной. Обидно? Обидно.
Хочу сразу расстроить. 32битные XP и Vista ни с каким бубном не захотят видеть ничего кроме своих 32бит. upd: kitich сказал, что в Vista SP1 PAE тоже сделали. Однако, этот факт пока не доказан и в комментариях бытует мнение, что это ошибка: винда всего лишь стала показывать количество физически установленной памяти, используя по-прежнему 3 гига.
Распутье
Что же волшебного в Windows 2003 Server Enterprise? Она может на полную использовать PAE (Physical Address Extension). В XP она тоже есть, но начиная с SP2, она не производит расширения адресного пространства в интересах совместимости и используется лишь для поддержки работы DEP. Эта технология позволяет использовать 36-битную адресацию для доступа к адресам, вылезающим за 4 гигабайта. Поддерживается процессорами начиная с Pentium Pro.
Вкусно? Да. При помощи PAE винда сможет использовать довольно существенный объём памяти, оставаясь 32-битной. Однако приложениям по-прежнему будет выделяться 2ГБ виртуального адресного пространства. Это означает, что используя много ресурсоёмких программ вы почувствуете выигрыш. А если вы хотите «накормить» фотошоп – то ничего не изменится.
PAE добавляет также технологию AWE. Она позволяет программе обойти это ограничение путём передвигания двухгигового «окна» по адресному пространству. Однако, увы, большинство приложений эту технологию не поддерживают, так что можете о ней и не думать. Разьве что MSSQL Server, но на нём фотошопить не выйдет.
upd: fixed (20.07.2009)
Проблемы
Вполне радужно? Рано радуетесь. Не забывайте, это всё-таки виндоуз 2003 сервер. Все отключённые мультимедиа возможности легко включатся, это не проблема. И система будет железно стабильной. Но Вы столкнётесь с массой принципиальных производителей, любящих проверку версий, но не любящих вашу систему. Например HP, Logitech (как раз вот буквально на днях). К счастью, при помощи бубна (режим совместимости и Application Verifier) вы вполне заставите всё работать.
Правда, если какая-то программа полезет в память ядра, то она рискует столкнуться с неожиданностью, видимо не обнаружив половины. Одна из них — движок Source. Портал у меня запускаются раз через раз…
Также, некоторые драйверы в теории могут некорректно работать.
Впрочем, я живу с этим уже третий месяц, и вполне счастлив, не испытывая практически никаких проблем. Синего экрана я не видел ещё ни разу, тьфу-тьфу.
Окей, так как этот PAE применить?
Ребята из Microsoft неплохо всё объяснили: support.microsoft.com/kb/283037
Но на всякий случай добавлю: кроме ключа PAE вам возможно потребуется включить в BIOS опцию ремаппинга памяти. У себя я нашёл её в параметрах чипсета.
Ещё почитать
upd: Внёс некоторые поправки.
Расширение физических адресов
Расширение физических адресов (PAE) — это компонент процессора, который позволяет процессорам x86 получать доступ к более чем 4 ГБ физической памяти в поддерживающих версиях Windows. некоторые 32-разрядные версии Windows Server, работающих на системах на базе x86, могут использовать PAE для доступа до 64 гб или 128 гб физической памяти в зависимости от размера физического адреса процессора. дополнительные сведения см. в разделе ограничения памяти для выпусков Windows.
Архитектуры процессоров Intel Itanium и x64 могут получить доступ к более чем 4 ГБ физической памяти в собственном виде и, следовательно, не предоставляют эквиваленты PAE. PAE используется только в 32-разрядных версиях Windows, работающих в системах на базе x86.
При использовании PAE операционная система перемещается из преобразования линейного адреса из двух уровней в преобразование адресов, сопоставленное с тремя уровнями. Вместо линейного адреса, разбитого на три отдельных поля для индексирования в таблицах памяти, оно делится на четыре отдельных поля: 2-разрядное битовое значение, 2 9-разрядное битовых полей и 12-разрядное битовое значение, соответствующее размеру страницы, реализованному в архитектуре Intel (4 КБ). Размер записей в таблице страниц (PTE) и записей каталога страниц (Пдес) в режиме PAE увеличивается с 32 до 64 бит. Дополнительные биты позволяют операционной системе PTE или ПДЕ ссылаться на физическую память свыше 4 ГБ.
в 32-разрядных Windows, работающих в системах на базе x64, PAE также обеспечивает несколько дополнительных функций системы и процессоров, включая предотвращение выполнения данных с аппаратным обеспечением (DEP), неоднородный доступ к памяти (NUMA)и возможность добавлять память в систему во время ее работы (память с горячим добавлением).
PAE не изменяет объем виртуального адресного пространства, доступного процессу. каждый процесс, выполняемый в 32-разрядном Windows, по-прежнему ограничен виртуальным адресным пространством размером 4 гб.
Системная поддержка PAE
PAE поддерживается только в следующих 32-разрядных версиях Windows, работающих в системах на базе x86:
Включение PAE
Windows автоматически включает PAE, если функция dep включена на компьютере, поддерживающем dep с аппаратной поддержкой, или если компьютер настроен для устройств памяти с горячим добавлением в памяти за пределами 4 гб. Если компьютер не поддерживает DEP, поддерживающий аппаратную поддержку, или не настроен для устройств памяти с горячим добавлением в памяти, превышающих 4 ГБ, PAE необходимо явно включить.
BCDEdit/Set [
Если функция DEP включена, PAE невозможно отключить. Используйте следующие команды BCDEdit/Set для отключения DEP и PAE:
BCDEdit/Set [
BCDEdit/Set [
Сравнение PAE и другой поддержки больших объемов памяти
PAE, 4-Гигабайтная настройка (4GT) и расширения AWE служат для разных целей и могут использоваться независимо друг от друга.
Если не используются ни 4GT, ни AWE, объем физической памяти, который может использовать один 32-разрядный процесс, ограничен размером его адресного пространства (2 ГБ). В этом случае система, поддерживающая PAE, по-прежнему может использовать более 4 ГБ ОЗУ для одновременного выполнения нескольких процессов или кэширования данных файлов в памяти.
4GT можно использовать с PAE или без него. однако некоторые версии Windows ограничивают максимальный объем физической памяти, который может поддерживаться при использовании 4GT. В таких системах Загрузка с помощью 4GT Enabled приводит к тому, что операционная система будет игнорировать любую память, превышающую ограничение.
AWE не требует PAE или 4GT, но часто используется вместе с PAE, чтобы выделить более 4 ГБ физической памяти из одного 32-разрядного процесса.
Десять имён для одной архитектуры

На пятничном семинаре учебного проекта лаборатории МФТИ-Интел один из студентов задал мне примерно такой вопрос: а почему 64-битный вариант архитектуры процессоров Intel называется x64, а 32-битный — x86? Я начал объяснять, что не всё так просто. Захотелось нарисовать более полную картину. Ведь на самом деле это не x64, и даже не x86.
386-ые, Пентиумы и Коры
На самом деле названий для этого феномена, около сорока лет присутствующего на сцене процессорных технологий, было придумано несколько. Даже больше, чем хотелось бы. Они появились из разных источников и используются в разных контекстах, разными компаниями и разными сообществами. Конечно же, это вносит некоторую неразбериху.
Я постарался здесь собрать все известные мне названия. Не хочу пытаться доказать, что одна группа имён лучше другой, — меньше использовать их не станут.
8086 и семейство
В 1978 году был выпущен 16-битный процессор Intel, который имел «имя» 8086. За ним были 8088, 80186, 80286, 80386 (плюс вариации), 80486 (плюс вариации). Легко заметить, что (почти) все эти числовые имена оканчиваются на две цифры 86, что дало название всей серии x86. Оно укрепилось, его продолжили использовать и после того, как процессорам перестали давать цифровые имена, а появились Intel Pentium, Celeron, Xeon, Core, Atom и т.д. Совместимые продукты других вендоров, таких как IBM, AMD, Cyrix, VIA и т.д., также описываются как x86.
По моим наблюдениям, x86 — самый популярный вариант для имени этой архитектуры в Интернете, статьях и прочей литературе, особенно, когда не стоит задачи точно специфицировать разрядность архитектуры или речь явным образом идёт о 32-битном варианте.
Используются также вариации этого названия для 32-битных вариантов, позволяющие более точно указать минимальный набор поддерживаемых инструкций: i386, i486, i586, i686, — например, для различения вариантов сборок бинарных пакетов дистрибутивов Linux.
Пришествие 64 бит
Своими стараниями Intel расширила машинное слово в описанной ранее серии процессоров с 16 до 32 бит. Достигнуть этой архитектуре 64 бит помогла компания AMD, в 2003 году представившая процессор, поддерживающий новые инструкции и регистры и реализующий AMD64.
Для того, чтобы явно указать повышенную битность процессора/кода/пакета, имя x86 стало получать новый суффикс «64». Вот только через какой знак его приписывать не договорились, и иногда видишь x86_64, а порой x86-64. Например, вывод команды uname в Linux использует подчерк. Наконец, у пакетов можно увидеть и суффикс amd64 строчными буквами.
Intel же обозначала это расширение архитектуры сперва IA-32e, затем EM64T. В настоящее время можно встретить оба варианта в различных именах пакетов, документации и прочем. Тем не менее, есть и третье введённое Intel название…
Как это называет Intel
В официальной документации 32-битная архитектура имеет имя IA-32; её 64-битный вариант получил довольно странное с моей точки зрения имя Intel 64. Почему странное — оно создаёт потенциал для путаницы, как мы увидим ближе к концу статьи.
Компании-поставщики софта
Всё вместе
Ложные имена
Как известно, за свою сорокалетнюю историю Intel выпускала (и выпускает сейчас) не только процессоры IA-32. Были и до сих пор присутствуют продукты других архитектур. Они тоже имеют свои имена, иногда несколько созвучные. При этом происходит путаница, от которой хотелось бы предостеречь.
Intel IA-64. Является полным синонимом термина «Intel Itanium». Используется для обозначения 64-битной архитектуры, несовместимой ни с IA-32, ни с 64-битным её вариантом ни по набору команд, ни по принципам работы. Да, существуют аппаратные и программные прослойки для запуска IA-32 приложений на Итаниуме, но это — тема для отдельного и интересного рассказа. Кстати, и для Itanium есть ещё одно обозначение — IPF, используемое изредка как суффикс.
К сожалению, линейки таких семейств процессоров Intel, как i432, i860, i960 или не дожили до наших дней, или же имеют крайне узкую нишу применения. А то глядишь — пришлось бы для каждого из них запоминать ещё по десятку имён.





