adblock check

Бобылёвщина #15 или все про 86-битные системы лол

Привет, ребята. Кто-то на форуме спрашивал, какую систему ставить на компьютер – 32-битную, или 64-битную, и выяснилось, что многие находятся в заблуждении относительно всего этого, а некоторые еще и воинственно отстаивают свое невежество. Я думаю, будет здорово, если я напишу пару строк и поясню, что к чему.

Начнем с простого. Бит — мельчайшая единица информации, принимает очень простое значение — либо 0, либо 1. Обычно «0» это «нет», а «1» это «да». Все современные компьютеры устроены исходя из этих соображений, хотя раньше, в том числе в СССР, были попытки создания компьютеров не с двоичной, а с троичной системой исчисления, где вместо битов были триты, которые могли принимать три состояния — 0, 1 и 2. На данный момент всевозможные троичные системы обсуждаются лишь в контексте квантовых компьютеров, там есть нечто подобное — кутриты и кубиты, но мы не будем об этом говорить, ведь абсолютно вся современная компьютерная техника, которая доступна потребителю, работает с двоичной системой.

Бобылёвщина #15 или все про 86-битные системы лол

Очевидно, что битом можно закодировать лишь два состояния, и даже для передачи человеческого алфавита нужны несколько большие единицы. Без малого 50 лет назад компания IBM представила компьютер IBM/360, который был довольно революционным для своего времени, и заслуживает упоминания в сегодняшней статье хотя бы потому, что в нем появился восьмибитный байт, который состоит из восьми (sic!) битов. Такой байт может принимать 28 значений в диапазоне от 0 до 255. На IBM/360 были внедрены так же однобайтовые кодировки, когда на машине было 256 символов. Чуть позже придумали следующую хохму: стандартизировали первую половину — 128 символов, и объявили их общими для всех возможных кодировок, а вторую половину составляли по необходимости. Так, русские буквы содержались в русской кодировке, которая наполовину состояла из общего набора, а наполовину — из своих букв. Таким образом, для правильного отображения файла нужно было знать его кодировку, и если, скажем, открыть текст, написанный русскими буквами в западноевропейской кодировке, то вместо русских букв можно было видеть что-то наподобие этого: «Ñàñàé ëàëêà». Таким образом, разные страны сделали себе национальные кодировки, внутри страны пользовались ею, но если, скажем, текст, набранный в России на русском попадал в Бразилию, там возникали нешуточные непонятки с его отображением. Поэтому человечество придумало универсальную кодировку — Юникод. В ней, по задумке, вместо одного байта на символ приходилось целых два байта, то есть 65536 вариантов. Это открыло широкий простор и дало возможность в одной кодировке разместить не только все национальные алфавиты, но и разные экзотические символы, от мастей карт до свастики и воздушного шара. Такая кодировка получила название UTF-16, где 16 — число бит на символ. Однако, тексты в такой кодировке плохо читались в старых программах, которые были рассчитаны на однобайтовые кодировки, поэтому придумали формат UTF-8, суть которого вот в чем: первые 128 символов — однобайтовые, это латиница, цифры и кое-какие базовые символы, и если программа видит байт, в котором значение от 0 до 127, она интерпретирует его как один символ, а если видит байт больше 127, то воспринимает его как двухбайтовый (или больше) символ вместе со следующими байтами. Таким образом, в старых программах латинские слова в UTF-8 читаются нормально, а слова из символов верхней части отображаются кракозябрами побайтово. Трешбокс, кстати, целиком работает на кодировке UTF-8. 

Бобылёвщина #15 или все про 86-битные системы лол

Очевидно же, что байты и биты применяются не только для кодирования символов, а и для работы с числами и передачи цветов. К числам вернемся в конце, а пока поговорим о передаче цветов. Первые компьютеры были монохромными — умели рисовать только белые пиксели на черном фоне, однако со временем инженеры стали внедрять цвета, сперва 4 цвета, затем 16, затем целых 256, затем 65 тысяч, и так далее. Для передачи цветов так же использовали байты, один байт мог передать 256 цветов, таким образом, если речь идет о восьмибитной графике, знайте, что имеется в виду, что в ней существует 256 разных цветов, если о 16-битной — 65536 цветов, и так далее. Например, у формата PNG есть три варианта — PNG8 — однобайтовый формат, PNG24 — трехбайтовый, где нужный цвет смешивается из трех — красного, синего и зеленого, на каждый из которых отводится 256 градаций и наконец PNG32, где кроме трех байтов цветов существует и четвертый байт, который сообщает о степени прозрачности пикселя.

Поэтому, 16-битная графика никакого отношения не имеет к архитектуре процессора системы, это лишь характеристика цветовой палитры.

Кстати, об архитектуре. Так сложилось, что компьютеры хранят в памяти числа и успешно работают с ними. Числа так же хранятся в многобайтовых переменных, целых и вещественных. В целых переменных все биты отводятся непосредственно под значение числа, а в вещественных, часть — под основание числа, так называемую мантиссу, и часть — под показатель степени десятки. Итоговое вещественное число получается умножением мантиссы на десять в степени показателя. Так вышло, что компьютеры умеют работать с достаточно богатым диапазоном размерностей чисел, это могут быть как однобайтовые переменные, так и четырехбайтовые, восьмибайтовые и даже 16-байтовые.

Так что же такое разрядность архитектуры процессора? Мы обсудили битность кодировок символов, цветов и чисел. Возникает вопрос, что же такое, 32-битная архитектура и что такое 64-битная и какая между ними разница. Сейчас расскажу.

Бобылёвщина #15 или все про 86-битные системы лол Бобылёвщина #15 или все про 86-битные системы лол

Дело в том, что компьютеру для своей работы необходимо сохранять в оперативную память информацию и читать ее, логично же, да. И для этого у каждой ячейки памяти, у каждого бита должен быть свой адрес, чтобы процессор мог записать в него значение и считать его. Для ссылок на конкретные участки в оперативной памяти применяются так называемые указатели, которые содержат в себе адрес ячеек памяти. Собственно, размерность этих вот указателей и определяет разрядность архитектуры процессора. Так, 32-битный процессор может адресовать максимум 232 бит, то есть ровно четыре гигабайта, а 64-битный — максимум 264 бит, что равняется 16 эксабайтам. Один эксабайт примерно равен миллиону терабайт, такие дела. Разумеется, сейчас таких объемов оперативной памяти еще нет, и реальные платформы адресуют, скажем, до 32 гигабайт, но это вызвано не особенностями архитектуры, а лишь локальными техническими особенностями реализации конкретных процессоров и чипсетов.

Разумеется, даже в 32-битном процессоре могут применяться не-32-битные вещи. Например, разрядность внешних шин адреса и данных может быть больше, кроме того, в процессоре могут быть сопроцессоры, например, для свободной работы с 80-битными числами и т. п., но основная характеристика архитектуры — именно разрядность адресов памяти.

На данный момент в компьютерах есть две популярные архитектуры, это x86, она же Intel Architecture 32 и x86_64, она же amd64 и Intel 64. Некоторые темные люди считают, что 86 означает 86-битную архитектуру, или что-то наподобие этого, но спешу вам сообщить, это не более чем обычное число, которое стало популярным по простому совпадению. Компания Intel выпускала различные процессоры, начиная с 4-битного Intel 4004, за которым последовали восьмибитные 8008 и 8080, на смену которым, в свою очередь, пришел 16-битный процессор 8086. Именно его архитектура легла в основу первого IBM PC и стала стандартом для компьютерной техники более чем на тридцать лет. Поэтому когда речь идет об архитектуре x86, подразумевается, что процессор принадлежит к семейству процессоров, совместимых с Intel 8086 и является его потомком. Кстати, если первый 8086 был 16-битным, то уже 80386, так называемый 386-й процессор уже стал 32-битным, то есть мог адресовать напрямую больше 640 килобайт памяти. Что же касается x86_64, это расширение старой 32-битной архитектуры, которое имеет обратную совместимость с обычной x86, поэтому старые программы, как правило, без проблем работают и на машинах с x86_64. Основная цель, которую преследовали при создании этой архитектуры — расширение максимального адресуемого напрямую объема памяти.

Бобылёвщина #15 или все про 86-битные системы лол

Cтоит отметить, что есть и другие архитектуры, например, Intel долгое время разрабатывала 64-битную архитектуру Itanium для замены x86, однако, пока она это делала, хитрые конкуренты из AMD просто добавили 64-битную адресацию памяти в старую x86, назвали это amd64 и стали клепать 64-битные процессоры на этой архитектуре.

Я не буду продолжать этот рассказ, информации и так достаточно, я уверен, что больше половины читателей умерли от скуки еще на середине, поэтому отмечу лишь кратко несколько моментов.

1. Почему 32-битная Windows видит только около 3-х гигабайт оперативной памяти, а не 4, как сказно в статье?

Потому что некоторые устройства PCI поддерживают только 32-битные адреса, и поэтому система выдает физические адреса до отметки в 4 Гб, что срезает часть адресного пространства под оперативную память.

2. Может ли 32-битная система адресовать больше 4 Гб оперативной памяти? Да, разработана такая штука, как PAE — Physical Address Extension. Суть в том, что на уровне операционной системы применяются 64-битные адреса, и система выделяет 32-битным программам виртуальное адресное пространство, в котором они работают в привычных 32-битных адресах. Таким образом, с помощью PAE операционная система может адресовать больше оперативной памяти, однако каждый процесс может получить не более 4 Гб, потому что в рамках процесса работа с памятью осуществляется с помощью 32-битной адресации. Кстати, эта вся хохма работает в 32-битных операционках только на 64-битных процессорах, на 32-битных, как ни крути, адресовать больше 4 Гб не получится.

Дело в том, что в современных компьютерах применяется страничная адресация. Ведь, если бы применялась прямая адресация, то возникала бы проблема фрагментации, когда по памяти разбросаны переменные, и нет возможности разместить один большой цельный кусок. Чтобы такого не было, операционная система выделяет приложениям виртуальную память, которая состоит на самом деле из небольших страниц фиксированного размера, а для приложения это выглядит как будто ему выделили единый длинный кусок, и оно может пользоваться сквозной адресацией по всей своей памяти. Таким образом, страницы располагаются как попало, ими управляет менеджер памяти операционной системы, и он же обеспечивает виртуальную единую адресацию для каждого приложения по всей его памяти. Именно такой подход позволяет управлять страницами с помощью 64-битных адресов и адресовать всю оперативную память, а приложения при этом спокойно себе используют свою 32-битную адресацию и в ус не дуют. Естественно, на 64-битных системах для 64-битных приложений тоже используется страничная адресация, и приложения так же используют внутренние виртуальные адреса, но уже 64-битные, что позволяет выделять на 64-битной системе одному процессу больше четырех гигабайт. Такие дела.

Бобылёвщина #15 или все про 86-битные системы лол

Нужно сказать, что все современные компьютерные процессоры 64-битные, а в смартфонах и планшетах 64-битные процессоры появились только-только (первый — iPhone 5S), и это вызвано как раз таки постепенным приближением к верхней планке в четыре гигабайта памяти. Уже сейчас есть планшеты с тремя гигами, и очевидно, что для того, чтобы без накладок адресовать четверку, нужно располагать 64-битной архитектурой.

Напоследок, скажу, если вы сомневаетесь, какую систему вам ставить, скажу просто.

Если у вас меньше 4 Гб оперативной памяти — только 32-битную. Более того, поскольку 64-битные операционки используют на указатели и базовые переменные вдвое больше памяти, многие процессы в них жрут порой почти вдвое больше, так что если у вас меньше 4 Гб оперативной памяти, то ставить 64-битную систему не только нет смыла, но и плохо, потому что она потребляет больше памяти.

Если у вас 4 или 6 Гб, советую ставить 32-битную систему с поддержкой PAE. Это все современные операционные системы. Если же у вас 8 Гб и больше, имеет смысл ставить 64-битную систему, потому как все должно работать быстрее, чем на 32-битной системе с PAE. Безусловно, в некоторых приложениях могут быть и исключения, но в общем случае это так.

И да, если у вас на ноутбуке или компьютере есть логотип сатанинской Windows 8 или что-то про UEFI, нужно ставить 64-битный линукс, потому что 32-битный не сможет установиться на такой компьютер без отключения UEFI и уничтожения установленной Windows 8.

Бобылёвщина #15 или все про 86-битные системы лол

Я надеюсь, у вас хватит терпения объяснить что и как людям, которые рассказывают про 86-битные системы, про 64 бита только для ноутбуков и тому подобные небылицы, и вы не будете плевать им в лицо. До новых встреч.

40 комментариев по лайкам по дате
Оставьте комментарий...
Оставьте комментарий...
Bart_Simpson 10 лет
новая колонка «уроки информатики для нубов»
bIgGuN 10 лет
ну тут же не все такие гении сидят, как ты
интересная статья, даже для знающих людей
Bart_Simpson 10 лет
затрален.
Vladis 10 лет
сатанинская win8, бобс красавчик, поржал)
n1ger 10 лет
У бобса наверно лютая изжога начинается, когда слышит слово windows :)
yulikleim0381 10 лет
Ну вот приехали, а в интернете везде пишут что 64-х битную ОС можно ставить при 4 Гб ОЗУ и выше, а если меньше 4-х, то 32-х битную ОС. А здесь написано, что 64-х битную нужно ставить если 8 Гб ОЗУ. У меня была и 32-х битка и 64-х битка и честно вам скажу, что разницы между ними никакой не почувствовала.
ставить-то на 4 гб можно, но реальная разница появляется если 6 и выше.
yulikleim0381 10 лет
да ставить то и на 3Гб можно, у некоторых видела и на 1Гб и на 2Гб стаяла 64 ОС, только не понятно как она вообще у них установилась при столь маленьких гигабайтах (1и 2) ОЗУ?
kirillka280 10 лет
У нее требования не выше, чем у обычной
Просто толку от этого примерно нихрена
JAC 10 лет
Лол? Бобсик, расскажи мне эту историю
Hangry 10 лет
Очень интересно, хотелось бы ещё таких новостей, в интернете даже наверное не найти такого хорошо разжёванного контента — всё написано понятным языком а не научным.
Dmitry9796 10 лет
Отличная статья!
Если можно напиши статью, что нужно знать новичку перешедшему на убунту
JAC 10 лет
Отлично. Бобс, как всегда, лучше всех!
yulikleim0381 10 лет
А вообще для 64-х битки (прежде чем устанавливать такую ОС) нужно чтобы процессор вашего ноутбука или компьютера поддерживал её.
wzrewatel 10 лет
Круть 64бита впот бы самса пичкала в свои планшеты
ramses_01 10 лет
Тру.
Jimmy_Pop 10 лет
Босб, а Бобс.
Почему процесс одной и той же зависшей (не отвечающей) программы 32х семерка спокойно завершала, а 64х не хочет ни в какую? Процесс тупо продолжает висеть вместе с зависшим окном?
Tarik02 9 лет
Это не зависит от архитектуры
Azhykulov 10 лет
Больше пикч, больше угара на колонках
Оставьте комментарий...
Оставьте комментарий...