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 бита только для ноутбуков и тому подобные небылицы, и вы не будете плевать им в лицо. До новых встреч.

Bobs
Главный редактор Trashbox.ru
40 комментариев по лайкам по дате
Оставьте комментарий...
Оставьте комментарий...
новая колонка «уроки информатики для нубов»
ну тут же не все такие гении сидят, как ты
интересная статья, даже для знающих людей
затрален.
сатанинская win8, бобс красавчик, поржал)
У бобса наверно лютая изжога начинается, когда слышит слово windows :)
Ну вот приехали, а в интернете везде пишут что 64-х битную ОС можно ставить при 4 Гб ОЗУ и выше, а если меньше 4-х, то 32-х битную ОС. А здесь написано, что 64-х битную нужно ставить если 8 Гб ОЗУ. У меня была и 32-х битка и 64-х битка и честно вам скажу, что разницы между ними никакой не почувствовала.
Автор
ставить-то на 4 гб можно, но реальная разница появляется если 6 и выше.
да ставить то и на 3Гб можно, у некоторых видела и на 1Гб и на 2Гб стаяла 64 ОС, только не понятно как она вообще у них установилась при столь маленьких гигабайтах (1и 2) ОЗУ?
У нее требования не выше, чем у обычной
Просто толку от этого примерно нихрена
Лол? Бобсик, расскажи мне эту историю
Очень интересно, хотелось бы ещё таких новостей, в интернете даже наверное не найти такого хорошо разжёванного контента — всё написано понятным языком а не научным.
Автор
да, Трешбокс это просто-напросто ледокол в океане кала и информационного мусора.
Отличная статья!
Если можно напиши статью, что нужно знать новичку перешедшему на убунту
Отлично. Бобс, как всегда, лучше всех!
А вообще для 64-х битки (прежде чем устанавливать такую ОС) нужно чтобы процессор вашего ноутбука или компьютера поддерживал её.
Круть 64бита впот бы самса пичкала в свои планшеты
Тру.
Босб, а Бобс.
Почему процесс одной и той же зависшей (не отвечающей) программы 32х семерка спокойно завершала, а 64х не хочет ни в какую? Процесс тупо продолжает висеть вместе с зависшим окном?
Это не зависит от архитектуры
Больше пикч, больше угара на колонках
Оставьте комментарий...
Оставьте комментарий...