Донецкий техникум промышленной автоматики

Поняття 32-біта і 64-біта - докладний тлумачення концепцій

  1. Поняття 32-біта і 64-біта
  2. Поняття 32-біта і 64-біта тлумачення концепцій
  3. Як довго триватиме перехід від 32-розрядної ПО до 64-бітного?
  4. Ваша система складається з трьох частин
  5. Які комбінації 32-біт і 64-біт сумісні і будуть нормально виконуватися?
  6. Апаратна віртуалізація є винятком з цього правила
  7. Емуляція 64-бітного процесора не варіант
  8. Відповіді на типові запитання про 32-бітних і 64-бітних системах
  9. Відповіді на типові запитання про 32- і 64-бітних ОС Windows
  10. Чи можу я запустити Windows 2000 і Windows XP на 64-бітних процесорах, а також використовувати старе...
  11. Як дізнатися, чи є система 64-розрядної?
  12. Чи підходять старі драйвери пристроїв для ОС Windows 64-біт?
  13. Чи можна перенести 32-бітну систему на 64-розрядну Windows?
  14. Як дізнатися, додаток є 32- або 64-бітовим?
  15. Які відмінності між 32- і 64-бітових версіях Windows?
  16. Чи можна виділити більше пам'яті для програми / процесу в 32-розрядному Windows, як показано в таблиці 5?
  17. Чи можна виділити понад 4 Гб оперативної пам'яті в 32-бітної Windows?

- Автор: Ігор (Адміністратор)

Поняття 32-біта і 64-біта

У чому різниця між 32-бітами і 64-розрядами? Чи буде 32-бітове додаток виконуватися на вашій 64-бітної операційної системи? Запуститься 64-бітна програма на вашому комп'ютері? Як вирішуються питання сумісності 32-біт і 64-біт? Якщо ви задавалися цими або схожими питаннями, то даний матеріал допоможе вам детально розібратися в поняттях 32-біта і 64-біта, їх різниці, а так само знайти відповіді на деякі поширені питання.

Все розгляд буде йти з точки зору трьох сторін: апаратного забезпечення, операційної системи і додатків. Тому, ви не тільки знайдете відповіді на свої питання, але і дізнаєтеся чимало тонкощів і особливостей про їх взаємодію і сумісності.

Поняття 32-біта і 64-біта тлумачення концепцій

32-біта або 64-біта?

Збільшення числа бітів позначається на двох важливих переваги:

  • Більше бітів означає, що дані обробляються більш великими шматками, це так само означає, що дробові числа подаються більш точно
  • Більше бітів означає, що система може використовувати більше фізичної пам'яті

32-бітові системи були колись кращими, тому що, в порівнянні з 16-бітними, вони могли використовувати до 4 ГБ оперативної пам'яті. Проте, деяким сучасним додаткам вже мало 4 ГБ для виконання своїх завдань. Тому 64-розрядні системи стають все більш популярними. Адже, потенційно вони дозволяють використовувати до 4 млрд разів більше оперативної пам'яті.

Починаючи з 1995 року, коли в Windows 95 з'явилася підтримка 32-розрядних додатків, було розроблено величезну кількість 32-бітних додатків і створено не мало 32-бітових операційних систем.

Це породжує одну проблему. Сьогодні, практично всі процесори 64-розрядні. Тим не менше, більшість програмного забезпечення 32-розрядний.

Примітка: В даному випадку мова йде про те, що практично вся перевага 64-розрядних систем просто ніяк не може бути використано 32-бітними додатками. Хіба що ... Тепер ... Таких програм ... Можна ... Одночасно ... Запустити більше.

Як довго триватиме перехід від 32-розрядної ПО до 64-бітного?

Головне питання тривалості переходу полягає в порядку переходу системи. Спочатку 64-біта повинні підтримувати апаратні засоби (процесор, материнська плата і т.д.). Потім повинні з'явитися операційні системи, які будуть підтримувати 64-біта. І вже в останню чергу, починають розроблятися програми, що підтримують 64-розрядні ОС.

Якщо озиратися назад, то перехід від 16-бітових до 32-бітних ОС Windows, що підтримують 32-розрядні процесори, зайняв 10 років (з 1985 по 1995 рік). Проте, навіть зараз, через близько 20 років, існує багато людей, які все ще використовують 16-бітові додатки на старих версіях Windows.

Виробники апаратних пристроїв і розробники операційних систем витягли досвід з попереднього переходу. Тому 64-розрядні операційні системи були випущені трохи після появи 64-бітових процесорів. А решта залежить від додатків. Тим не менш, через понад 10 років після появи 64-бітових процесорів і операційних систем на масовому ринку, кількість 64-розрядних програм все ще не перевищує 32-бітове спадщина.

Примітка: Звичайно, все частіше продукти випускаються і з версією для 64-розрядних систем. Але, перехід ще не скоро завершиться.

Ваша система складається з трьох частин

Ваша система складається з трьох частин

Тепер, всі питання розрядності будуть розглядатися з точки зору трьох компонентів вашої системи. Простіше кажучи, уявіть, що ваш комп'ютер умовно складається з:

  • Процесора в якості центральної і найважливішої частини
  • Операційної системи в якості середнього шару
  • Додатків виступаючих в якості зовнішнього шару

Це означає, що:

  • Для запуску 64-розрядної операційної системи вам потрібна підтримка центрального рівня: 64-бітний процесор.
  • Для запуску 64-бітного додатки вам потрібна підтримка від всіх нижчих рівнів: 64-бітна ОС і 64-розрядний процесор.

Цього спрощення цілком достатньо, щоб детально розглянути результат змішування 32-бітних і 64-розрядних частин.

Примітка: Звичайно, для більш докладного розгляду варто було б додати шар апаратних пристроїв, які будуть підтримувати 64-бітний процесор. А так же шар драйверів, які будуть передавати виклики від операційної системи до пристроїв. Проте, навіть цих трьох шарів цілком достатньо, щоб зрозуміти особливості і тонкощі взаємодії 32-біт з 64.

Які комбінації 32-біт і 64-біт сумісні і будуть нормально виконуватися?

Тепер, можна перейти до більш практичних знань і почати відповідати на загальні питання.

Загальне правило полягає в тому, що 32-бітове ПО буде відмінно себе почувати на 64-бітному компоненті нижнього рівня, а 64-біт не запуститься на 32-розрядному компоненті. Це означає, що:

  • 32-розрядна ОС буде запускатися без будь-яких проблем на базі 32-розрядної або 64-розрядного процесора
  • 32-розрядний додаток буде запускатися без особливий проблем на 32- і 64-бітових операційних системах (Виноска: існує ряд нюансів, але про це далі)
  • Але, 64-бітове додаток буде виконуватися тільки на 64-розрядних операційних системах, які запустяться тільки на 64-бітних процесорах

Дві таблиці нижче ілюструють дане правило:

Таблиця 1 - Сумісність при 32-бітному процесоріПроцесор (CPU)

32-біта 32-біта 32-біта 32-біта Операційна система (OS) 32-біта 32-біта 64-біта 64-біта Додаток 32-біта 64-біта 32 -біта 64-біта Так Ні немає немає

Таблиця 2 - Сумісність при 64-бітному процесоріПроцесор (CPU)

64-біта 64-біта 64-біта 64-біта Операційна система (OS) 64-біта 64-біта 32-біта 32-біта Додаток 64-біта 32-біта 32 -біта 64-біта Так Так Так Ні

Основною причиною того, що 32-біта завжди будуть запускатися на 64-бітах, полягає в тому, що 64-бітові компоненти були розроблені з урахуванням цього. В іншому випадку, їх би просто ніхто не став використовувати. Таким чином, 64-бітові системи сумісні з 32-розрядними системами.

Прикладом зворотної сумісності є Windows 64-біта. Операційна система включає підсистему Wow64, яка забезпечує сумісність шляхом емуляції 32-бітної системи для додатків. Більш докладно про те, як Wow64 влаштована і які обмеження накладаються на 32-розрядні додатки, ви можете дізнатися в огляді Підтримка 32-бітних додатків в 64-розрядної версії Windows . Одним важливим моментом, якому приділяється увага в цій статті, є те, що не можна встановити 32-бітові драйвера на 64-розрядну операційну систему. Причина криється в тому, що драйвери повинні запускатися на рівні ядра операційної системи, в той час як Wow64 виконується на рівні користувача (для уникнення помилок). Так що якщо у вас є пристрої з 32-бітними драйверами, то необхідно вдаватися до ряду прийомів, які так само докладно описані в статті.

Апаратна віртуалізація є винятком з цього правила

Іншою стороною питання є те, що може чи 32-бітна система якимось чином запустити 64-розрядний програмне забезпечення. Адже, деякі програми випускаються тільки в 64-бітових версіях (не обов'язково через вимоги до ресурсів системи, наприклад, розробник не передбачив 32-розрядну версію). І якщо таке можливо, то які повинні при цьому дотримуватися умови.

Дотримуючись раніше описаного правилу, можна очікувати, що ви не зможете запустити 64-розрядний додаток на 32-бітної системі. Однак, існує один виняток під назвою віртуалізація.

Віртуалізація створює віртуальну систему в рамках поточної операційної системи. Віртуалізація може бути апаратної або програмної. Краще, якщо віртуальна машина створюється на апаратному рівні, так як буде забезпечений прямий доступ до пристроїв. Створена віртуальна система навіть не буде підозрювати про те, що є інша система, на якій вона виконується. Так що, 64-розрядна операційна система зможе використовувати 64-розрядний обладнання, навіть не підозрюючи, що поруч з нею знаходиться 32-бітна система.

Так що, якщо виконується умова, що віртуальна машина створена і ізольована додатками для віртуалізації, то з основного правила можна "виключити" поточну операційну систему (вона буде позначена сірим кольором в таблицях нижче). І застосувати загальне правило трьох шарів.

У таблицях 3 і 4 представлені результати.

Таблиця 3 - Сумісність при 32-бітному процесорі і віртуалізаціїПроцесор (CPU)

32-біта 32-біта 32-біта 32-біта Основна операційна система 32-біта 32-біта 32-біта 32-біта Віртуальна операційна система 32-біта 32- біта 64-біта 64-біта Додаток 32-біта 64-біта 32-біта 64-біта Так Ні немає немає

Таблиця 4 - Сумісність при 64-бітному процесорі і віртуалізаціїПроцесор (CPU)

64-біта 64-біта 64-біта 64-біта Основна операційна система 32/64-біта 32/64-біта 32/64-біта 32/64-біта віртуальне операційне система 64-біта 64-біта 32-біта 32-біта Додаток 64-біта 32-біта 32-біта 64-біта Так Так Так Ні

Примітка: Перш, ніж поспішати намагатися запускати 64-розрядні додатки у віртуальній машині, вам необхідно переконатися, що BIOS вашого комп'ютера підтримує апаратну віртуалізацію. Так як без прямого доступу до апаратних пристроїв, ви не зможете запустити 64-бітну систему на 32-бітної системі, навіть якщо процесор 64-розрядний.

Емуляція 64-бітного процесора не варіант

Раніше розглянуті конфігурації припускали, що все програмне забезпечення використовує тільки рідної набір інструкцій процесора. Але ж, запуск 64-бітних додатків на 32-бітних процесорах неможливий тільки тому, що 64-бітові інструкції не виконаються на 32-бітних процесорах. Так що, якщо б можна було емулювати 64-бітний процесор, використовуючи 32-розрядний ПО?

Теоретично це можливо, але практично неможливо емулювати 64-бітний процесор на 32-розрядному процесорі. Навіть якщо у вас вийде створити і запустити 64-бітний емулятор, то ви зіткнетеся з величезними проблемами продуктивності. Перехоплення і виконання емулятором 64-бітних команд на 32-бітах буде дуже повільним. Ще однією проблемою буде використання оперативної пам'яті. Навіть якщо у вас вийде коректно обробляти покажчики 64-бітного адресного простору в 32-бітному, то при перевищенні ліміту пам'яті, вам доведеться використовувати жорсткий диск, як заміну. Ви коли-небудь спостерігали, що відбувається з Windows, коли фізична пам'ять закінчується і використовується файл підкачки? А тепер уявіть, що буде коли, крім повільної емуляції інструкцій процесора, емулятора доведеться використовувати жорсткий диск. Такою системою буде неможливо користуватися.

Примітка: Крім того, необхідно розуміти, що x86 (32-бітних) процесори, не в змозі повністю підтримувати набір команд x64 (64-біт). Тому такий емулятор буде тільки програмним, а це практично означає побудову процесора заново. Хоч, це і можливо, але не існує таких завдань, які б виправдали витрачений час і сили на створення такого емулятора, а так же серйозне зниження в продуктивності.

Відповіді на типові запитання про 32-бітних і 64-бітних системах

Виноска: даний розділ містить відповіді на найпоширеніші питання. Якщо ви уважно читали попередній розділ, то цілком можете самостійно відповісти на частину з них.

Запуститься 32-розрядна програма на 64-бітному процесорі в 64-бітної системі?

Так, запуститься. 64-бітові системи сумісні з їх 32-розрядними аналогами.

Чи можуть 64-розрядні додатки містити 32-розрядний код?

Так, 64-бітові додатки можуть використовувати 32-бітний код, за винятком випадку "ін'єкцій" (див. Підтримка 32-бітних додатків в 64-розрядної версії Windows ).

Точно так же 32-бітове програмне забезпечення (як правило, дуже старі програми) можуть містити деякий 16-бітний код. Як правило, такі програм будуть виконуватися з помилками на 64-бітної ОС.

Чи можна запустити 16-розрядний додаток або код на 64-бітних системах?

Ні, як це вже говорилося, 16-бітний код не запуститься на 64-бітної ОС тому, що зворотна сумісність передбачена тільки для 32-біт. Це одна з причин, чому деякі 32-розрядні програми не будуть виконуватися на 64-бітових операційних системах.

Чи можна запустити 64-розрядну віртуальну машину на 32-бітної ОС з 64-бітовим процесором?

Так. Все залежить від рівня віртуалізації. З програмної віртуалізації це навряд чи вийде. Навіть якщо у вас вийде запустити систему, то все буде дуже повільним. Єдиний повноцінний спосіб - це апаратна віртуалізація, але її повинен підтримувати BIOS вашого комп'ютера.

Відповіді на типові запитання про 32- і 64-бітних ОС Windows

Виноска: даний розділ містить відповіді на найпоширеніші питання. Якщо ви уважно читали попередній розділ, то цілком можете самостійно відповісти на частину з них.

Чи можу я запустити Windows 2000 і Windows XP на 64-бітних процесорах, а також використовувати старе програмне забезпечення?

Так, 32-розрядна операційна система буде успішно стартувати на 64-бітних процесорах. І ви так само зможете запускати старі програми на 64-бітних ОС.

Як дізнатися, чи є система 64-розрядної?

Для того, щоб дізнатися, яка у вас встановлена ​​операційна система, ви можете використовувати Часті Microsoft , А так само спеціальну програму Gibson Research Corporation (GRC). Остання покаже вам не тільки інформацію про розрядності, а й про підтримки комп'ютером апаратної віртуалізації.

Чи підходять старі драйвери пристроїв для ОС Windows 64-біт?

Ні, 32-розрядні драйвери можна використовувати в Windows 64. Це відбувається тому, що підсистема Wow64, яка дозволяє запускати 32-розрядні додатки в Windows 64, не є частиною ядра системи. Більш детально дивіться в огляді Підтримка 32-бітних додатків в 64-розрядної версії Windows .

Чи можна перенести 32-бітну систему на 64-розрядну Windows?

Як такого, Microsoft не надає ніякого механізму. Тому вам доведеться самостійно переносити дані з однієї системи на іншу, а так само заново встановлювати всі програми.

Як альтернативний варіант, ви можете використовувати мультизагрузка або віртуалізацію.

Як дізнатися, додаток є 32- або 64-бітовим?

Існує кілька базових ознак, за якими можна дізнатися розрядність додатки, але вони не є остаточними.

  • Windows встановлює програми в ці каталоги на системному диску:
    • '\ Program Files' для 64-бітних програм
    • '\ Program Files (x86)' для 32-бітних програм
  • У диспетчері завдань, 32-бітові процеси, як правило, мають приставку "* 32", а 64-розрядні немає

Причиною того, що ці показники не можна використовувати як достовірне джерело, є те, яким чином Windows встановлює 64-бітове додаток. Зазвичай, 64-бітний інсталятор встановлює 64-розрядні додатки або суміш з 32- і 64-бітових компонентів. Але, іноді, інсталятор може встановлювати тільки 32-розрядні компоненти.

Крім того, визначення компонента відбувається з налагодження реєстру, а не з налагодження інсталятора. За замовчуванням, Windows передбачає, що всі компоненти є 32-розрядними, якщо не вказано інше. Це означає, що якщо 64-бітний компонент, під час установки, не був позначений, як 64-розрядний, то він буде встановлений в папку для 32-бітних додатків і буде використовувати ключі реєстру для 32-бітних додатків. Проте, процес буде виконуватися як 64-бітний.

Тому краще всього використовувати одне з таких рішень:

  • Запустіть програму для аудиту системи. Наприклад, з огляду Кращі безкоштовні програми для збору інформації про комп'ютер (системі) .
  • Ви можете використовувати програму PEStudio . Перш за все, це інструмент для аналізу безпеки програми. Але, він так само дозволяє дізнатися досить багато технічної інформації, включаючи розрядність додатків.
  • Якщо вам необхідно більш детально дізнатися про використовувані програмою модулів, то ви можете використовувати Dependency Walker , Який є частиною коштів розробки Microfoft, таких як Visual Studio.
  • Windows Software Development Kit (SDK) містить утиліту під назвою DumpBin, яку так само можна використовувати для визначення розрядності додатки. Для цього необхідно запустити наступну команду в консольної рядку , І після рядка "FILE HEADER VALUES" подивитися назву заголовка: machine (x64) - 64-бітна програма, machine (x86) - 32-бітна програма
    • dumpbin / headers "шлях до програми"
  • Ви так само можете використовувати такі інструменти, як Microsoft Proccess Explorer (див. диспетчери завдань ). Вони надають набагато більше інформації, ніж звичайний диспетчер задач Windows. Дізнатися розрядність програми ви можете з властивостей процесу.


Які відмінності між 32- і 64-бітових версіях Windows?

Всі основні фізичні і логічні відмінності між версіями різних версій Windows представлені в таблиці 5 (знаходиться нижче). Так само таблиця наочно показує той шлях поліпшень, який пройшла Windows, і що Windows ще потрібно пройти довгий шлях перш, ніж вона зможе вичерпати можливості 64-розрядних процесорів.

Багато з обмежень 64-розрядних версій Windows є обмеженням системи, а не обмеженням процесорів. Кількість фізичних процесорів залишається незмінним, в основному через те, що це прерогатива Windows Server.

Проти, Апаратні пристрої так само ма ють обмеження. Например, в тій годину як 64-бітові AMD и Intel процесори Використовують 64-бітові покажчики пам'яті, что підтрімують їх чіпсеті Використовують только 52-бітній фізічну адресою (4 петабайт) и 48-розрядно адреси віртуальної пам'яті (256 терабайт) . В даний час, це більш ніж достатньо. Windows 7 64-біт підтримує тільки 192 ГБ фізичної пам'яті і 16 терабайт (44-біт) віртуальної пам'яті.

Таблиця 5: Фізичні та логічні обмеження версій Windows,
Цифри в дужках вказують додаткові параметри, які не встановлені за замовчуванням і вимагають наявності сумісного обладнання

Версія: XP Vista 7 Розрядність: 32 64 32 64 32 64 Система: Фізичні процесори 2 2 2 2 2 + 2 Логічні процесори 32 64 32 64 32 256 Системний кеш 1 ГБ 1,024 ГБ 1 (2) ГБ 1,024 ГБ 1 (2) ГБ 1,024 ГБ Фізична пам'ять 4 ГБ 128 ГБ 4 ГБ 128 ГБ 4 ГБ 192 ГБ Віртуальна пам'ять 4 ГБ 16,384 ГБ 4 ГБ 16,384 Гб 4 ГБ 16,384 Гб Ядро 1 (2 ) ГБ 8 ГБ 2 ГБ 8 ГБ 2 ГБ 8 ГБ для користувача процеси: Фізична пам'ять 2 (3) ГБ 2 (4) ГБ 2 (3) ГБ 8 ГБ 2 (4) ГБ 8 ГБ Віртуальна пам'ять 2 (3) ГБ 2 ( 8,192) ГБ 2 (3) ГБ 2 (8,192) ГБ 2 (4) ГБ 2 (8,192) ГБ

Примітка: У таблиці навмисне не використовувалася абревіатура 1 ТБ (1024 Гб), що б проілюструвати динаміку.

Примітка: З розгляду так само була виключена перша 64-бітна версія Windows XP (2002), оскільки вона має іншу архітектуру. Система використовувала Intel Itanium (IA-64) процесори, які мали x86 процесор для сумісності. Надалі він був замінений 64-бітної архітектурою AMD (x86-x64), яка розширила набір команд x86 і була така гарна, що була ліцензована Intel і іншими виробниками. Ця архітектура досі є найбільш поширеною.

Чи можна виділити більше пам'яті для програми / процесу в 32-розрядному Windows, як показано в таблиці 5?

Так можна. І ось приклад.

Якщо ви використовуєте MySQL на Windows, то ви можете використовувати Address Windowing Extensions (AWE), яке підтримується MySql. AWE збільшує максимальний розмір пам'яті для користувача процесу від 2 ГБ до 3 ГБ (див. Таблицю 5). Це дозволить MySQL використовувати на 50% більше пам'яті.

Однак пам'ятайте, що це може бути застосовано не на всіх версіях 32-бітної Windows, і що необхідно перекомпілювати MySQL.

Чи можна виділити понад 4 Гб оперативної пам'яті в 32-бітної Windows?

Ви можете використовувати Physical Address Extension (PAE) для розширення підтримуваного обсягу оперативної пам'яті. PAE збільшує розмір адреси з 32 біт до 36 біт, що дозволяє використовувати близько 64 Гб.

PAE налаштовується в BIOS-е вашого комп'ютера, так що його можна застосовувати для будь-яких операційних систем, включаючи Linux і Apple OS X.

32-бітна Windows використовує PAE, але має внутрішнє обмеження на 4 ГБ. Існують утиліти, які дозволяють прибрати цю межу, але їх варто застосовувати з надзвичайною обережністю і тільки в безвихідних ситуаціях.

Тепер, ви знаєте про 32-бітах і 64-бітах, а так само про їх сумісності та особливості використання.

Додати коментар / відгук

Як дізнатися, чи є система 64-розрядної?
Чи підходять старі драйвери пристроїв для ОС Windows 64-біт?
Чи можна перенести 32-бітну систему на 64-розрядну Windows?
Як дізнатися, додаток є 32- або 64-бітовим?
Які відмінності між 32- і 64-бітових версіях Windows?
Чи можна виділити більше пам'яті для програми / процесу в 32-розрядному Windows, як показано в таблиці 5?
Чи можна виділити понад 4 Гб оперативної пам'яті в 32-бітної Windows?
Чи буде 32-бітове додаток виконуватися на вашій 64-бітної операційної системи?
Запуститься 64-бітна програма на вашому комп'ютері?
Як вирішуються питання сумісності 32-біт і 64-біт?