В чем смысл «i686» в Ubuntu?

Чтобы проверить, использую ли я 32-битный или 64-битный Ubuntu. Я посмотрел Как проверить, есть ли у меня 32-разрядная или 64-разрядная ОС? и нашел этот ответ uname -a. Если он отображается как i386, он будет 32bit и amd64, он будет 64 бит, но я получил этот результат:

Linux mukund-ThinkPad-Edge-E431 3.8.0-35-generic #50-Ubuntu SMP Tue Dec 3 01:25:33 UTC 2013 i686 i686 i686 GNU/Linux

Что это за i686? Это 32-битный или 64-битный - я думаю, что он 32-битный, потому что все пакеты Debian, которые я установил в нем, имеют 32-битный, так что кто-нибудь может дать подробное объяснение.

49 голосов | спросил Mukund 7 PMpMon, 07 Apr 2014 13:25:25 +040025Monday 2014, 13:25:25

2 ответа


25

Как говорили различные плакаты, ваше ядро ​​32-битное. Однако смысл i686 заслуживает еще большего объяснения.

При компиляции ядра Linux (что-то, что конечным пользователям обычно не нужно делать в эти дни, хорошие люди за Ubuntu поставляют готовое ядро), есть различные варианты, которые вы можете настроить. Одним из важных параметров является поддержка функций ЦП.

Все процессоры x86 совместимы с оригинальным процессором Intel 80386 (сокращенный i386), поэтому, если вы хотите, чтобы ядро ​​было совместимо со всеми процессорами x86, вы должны скомпилировать ядро ​​i386.

Однако современные процессоры имеют много дополнительных функций (интегрированный модуль с плавающей точкой, MMX и т. д.), которые Linux может использовать, если он настроен для этого. В качестве баланса между обратной совместимостью и производительностью ядро ​​Ubuntu скомпилировано с поддержкой функций, которые были доступны на Intel Pentium II (иногда сокращенно i686), поэтому ядро ​​отображается как i686.

Это также отчасти объясняет, почему приложения, скомпилированные для 64-разрядных процессоров, иногда быстрее. I686 впервые появился в 1997 году, а современные процессоры имеют множество функций, которые не были доступны на i686 (SSE, дополнительные регистры и т. Д.), Но приложения должны быть скомпилированы с поддержкой этих функций, что может нарушить совместимость со старыми системами. В отличие от этого, процессоры x86_64 впервые появились в 2003 году, поэтому приложения могут быть скомпилированы с поддержкой некоторых функций, введенных между 1997 и 2003 годами, не опасаясь проблем с совместимостью.

ответил James_pic 7 PMpMon, 07 Apr 2014 16:12:11 +040012Monday 2014, 16:12:11
1

Откройте «Системные настройки», затем нажмите «Подробности». Затем вы увидите, какой тип ОС у вас есть.

У меня Ubuntu 12.04 LTS 64 бит и uname -a показывает это:

Linux ubuntu1 3.2.0-60-generic #91-Ubuntu SMP Wed Feb 19 03:54:44 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

См. https://superuser.com/questions/238112 /что-это-на-разницу-между-i686-и-x86-64

ответил SPRBRN 7 PMpMon, 07 Apr 2014 13:30:54 +040030Monday 2014, 13:30:54

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132