Как поменять архитектуру на windows 10

Обновлено: 03.07.2024

Пакеты приложений настроены для запуска на компьютерах с определенной архитектурой процессора. Выбрав тип архитектуры, вы указываете устройства, для которых предназначено ваше приложение. Приложения универсальной платформы Windows (UWP) можно настроить для работы на следующих типах архитектуры.

Настоятельно рекомендуется выполнять сборку пакета приложения для всех типов архитектуры. Отказываясь от какой-то архитектуры устройств, вы ограничиваете количество устройств, на которых может работать ваше приложение, что в свою очередь ограничивает количество людей, которые могут использовать ваше приложение!

Типы архитектуры и устройства Windows 10

Архитектура UWP Классическая (x86) Классическая (x64) Классическая (ARM) Мобильные службы Windows Mixed Reality и HoloLens Xbox IoT Core (зависит от устройства) Surface Hub
x86 ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
X64 ✔️ ✔️ ✔️ ✔️
ARM ✔️ ✔️ ✔️
ARM64 ✔️ ✔️ ✔️ ✔️

Рассмотрим эти типы архитектуры более подробно.

Выбор архитектуры x86 обычно является самой надежной конфигурацией для пакета приложения, поскольку в таком случае оно будет работать почти на всех устройствах. На некоторых устройствах пакет приложения с конфигурацией x86 не будет работать, например на Xbox и некоторых устройствах IoT Core. Тем не менее, для компьютеров пакет x86 представляет собой наиболее надежный вариант и обеспечивает наибольший охват для развертывания на различных устройствах. Значительная часть устройств под управлением Windows 10 продолжает работать с Windows версии x86.

Эта конфигурация используется реже, чем конфигурация x86. Следует отметить, что эта конфигурация зарезервирована для настольных ПК с 64-разрядными версиями Windows 10, приложений UWP на Xbox и Windows 10 IoT Базовая на платформе Intel Joule.

ARM и ARM64

Windows 10 на архитектуре ARM включает в себя настольные компьютеры, мобильные устройства и некоторые устройства IoT Core (Raspberry Pi 2, Raspberry Pi 3 и DragonBoard). Windows 10 на настольных компьютерах с архитектурой ARM — это новое пополнение в семействе Windows, поэтому если вы разрабатываете приложения UWP, вам потребуется отправлять пакеты для ARM в Магазин, чтобы обеспечить оптимальную работу на таких компьютерах.

чтобы создать приложение UWP, предназначенное для платформы ARM64, необходимо иметь версию Visual Studio 2017 версии 15,9 или более позднюю. Дополнительные сведения см. в этой записи блога.

дополнительные сведения см. в разделе Windows 10 на ARM. Посмотрите это обсуждение //Build, чтобы ознакомиться с демонстрацией Windows 10 на ARM и узнать больше о том, как это работает.

Дополнительные сведения о разделах, относящихся к IoT, см. в разделе развертывание приложения с помощью Visual Studio.

Как обновить ОС Windows 10 с 32-бит на Windows 64-бита

Перейти с 32-битной на 64-битную Windows 10 легко! При этом, Вы не теряете лицензию и прочие преимущества приобретенной версии. Узнайте как обновить ОС Windows 10 Home/Professional/Enterprise с 32 бит на 64 бита.

Можно ли обновить Windows с 32-бит на 64 бита

Операционная система Windows 10 может работать с двумя типами архитектур: 32-бита и 64-бит. Основная используемая разрядность любой ОС — x64. Тем не менее, особенно на старых машинах, зачастую можно увидеть и старенькие форматы x32.

Хорошая новость в том, что если Вы используете 32-битную версию операционной системы Windows, она с легкостью может быть обновлена. При этом, не теряется ни лицензия, ни возможности установленного пакета (Home/Professional/Enterprise). Главное предостережение — вам в любом случае придется выполнить переустановку системы. К нашему сожалению, не существует программы, которую можно было бы запустить с рабочего стола и обновить Windows как другие привычные нам приложения.

Преимущества 64-битной Windows 10

С первого взгляда может показаться, что две версии операционной системы отличаются только лишь в коэффициента 2 к 1. На самом деле, все куда более серьезно. Несмотря на то, что обе архитектуры Windows поддерживают одинаковые возможности, при подключении к разрядности x64 устройство может работать с гораздо большим объемом оперативной памяти.

  • Архитектура 32 бита (также x86) поддерживает максимум 4 Гб оперативной памяти.
  • Архитектура 64 бита может работать с объемом оперативной памяти вплоть до 2 Тб.

Да, величина ОЗУ 64-битной системы может показаться космической, и такие объемы никто в жизни не поставит на свой ПК, но теоретический предел производительности уже заметен.

Доступ к оперативной памяти размером, например, 32 Гб позволяет одновременно запускать большее количество приложений, не оказывая негативного эффекта на их работу. То есть, вы можете запустить браузер, любимую игру, включить музыку через стриминговый сервис и даже поставить новый торрент на загрузку. Хотя с ОЗУ 4 Гб даже браузер с определенного количества вкладок может начать глючить.

Еще одно преимущество 64-битной операционной системы Windows в том, что вы можете одновременно работать как с архитектурой x32 (x86), так и с архитектурой x64. Никаких ограничений. К сожалению, это правило недействительно в обратном направлении. Windows с разрядностью x32 не сможет запустить программу, рассчитанную под Windows x64.

В данном руководстве мы расскажем вам о том как обновить операционную систему с версии x32 на версию x64, используя уже существующую лицензию.


Как известно, сегодня и операционные системы, и устанавливаемые в их среде программы выпускаются с использованием архитектуры 32 и 64 bit. В связи с этим достаточно часто возникает масса вопросов по поводу использования той или иной разрядности для ОС и приложений, поскольку многие пользователи не до конца понимают разницу между ними, а также не учитывают плюсы и минусы их использования на каждом конкретном компьютере, не говоря уже о множестве других факторов, главным из которых является поддержка выбранной архитектуры процессором. Ниже предлагается рассмотреть, как поменять 32 бита на 64 в плане предпочитаемой модификации Windows, а попутно узнать некоторые нюансы использования соответствующих версий некоторых типов программного обеспечения.

ОС и программы с архитектурой 32 или 64 бита: что предпочесть?

Что же касается выбора в пользу разрядности 64 или 32 bit, считается, что и 64-битные операционные системы, и устанавливаемые в их среде приложения работают намного быстрее с использованием именно такой архитектуры, поскольку, если сравнивать их с аналогами, имеющими архитектуру 32 бита, на обработку одного и того же объема данных затрачивают меньше времени.

Если говорить исключительно о самих операционных системах, отдельно можно отметить, что 32-битные ОС не видят планки ОЗУ сверх лимита в 4 Гб и используют всю оперативную память по максимуму. Зато в 64-битных ОС можно запросто инсталлировать программы и с разрядностью 32 бита (для этого обычно используется каталог Program Files (х86)), и с архитектурой 64 бита в стандартной директории Program Files. Однако при попытке инсталляции и системы, и необходимого вам для работы ПО сразу нужно выяснить, какую именно разрядность имеет установленная у вас модификация Windows, а при ее замене на архитектуру 64 бита убедиться в том, что и процессор соответствует всем критериям.

Как узнать разрядность системы Windows и поддержку требуемой архитектуры процессором?

Получить краткие сведения об уже имеющейся на компьютере системе можно достаточно просто, воспользовавшись для этого свойствами компьютера, сведениями о системе (msinfo32), диалогом DirectX (dxdiag), апплетом определения текущей версии (winver) и т. д.

Разрядность системы и процессора

Узнать, поддерживает ли 64-битную архитектуру процессор, можно либо в тех же сведениях о системе, либо с помощью специальных информационных приложений (программы AIDA64, Speecy, CPU-Z и др.).

Разрядность процессора в сведениях о системе

Это необходимо только для тех случаев, когда вы соберетесь заменить существующую 32-битную систему на ОС 64-битной модификации.

Можно ли изменить разрядность установленной ОС без потери данных?

Теперь о наболевшем. Большинство пользователей Windows совершенно естественно задается вопросами по поводу того, как поменять 32 бита на 64, если речь идет исключительно об архитектуре самой операционной системы, с сохранением пользовательских программ. Увы, для ОС одного поколения без переустановки с использованием так называемой чистой инсталляции сделать этого не получится (разве что создать бэкап всех программ и файлов, что помогает не всегда). Имеется в виду, что если у вас установлена 32-битная Windows 7, инсталлировать поверх нее 64-битную модификацию не получится никак. Но единственная лазейка все же есть. Довольно просто сменить архитектуру можно за счет апгрейда имеющейся модификации до более высокой (например, при переходе с Windows 7 или 8 на десятую версию).

ОС Windows: как поменять 32 бита на 64?

Описывать процесс апгрейда не будем, а остановимся только на самых важных моментах. Как поменять 32 бита на 64 для самой Windows при повышении ее версии?

Апгрейд Windows

Проще всего выполнить такие действия за счет использования фирменной программы от Microsoft под названием Media Creation Tool.

Варианты сохранения программ и файлов

После ее старта нужно выбрать обновление компьютера, а на одной из стадий указать, что в процессе установки требуется сохранить ваши файлы и уже инсталлированные программы. Как правило, особых сложностей тут не возникает, а приложения, ранее работавшие в среде той же «семерки», прекрасной ведут себя и в десятой модификации.

Примечание: единственная трудность может иногда заключаться в том, что может потребоваться изменить стиль раздела с MBR на GPT. Об этом лучше позаботиться заранее, выполнив необходимые действия, например, в программе AOMEI Partition Assistant даже без обязательного форматирования раздела, который подвергается преобразованию.

Нюансы использования некоторых программ

Как поменять 32 бита на 64 для Windows, в общих чертах, думается, понятно. Что же касается программного обеспечения, которое может использоваться в 64-битных системах, нередко можно встретить ситуации, когда при установке приложения в систему интегрируется и основная 64-битная модификация, и ее аналог с разрядностью 32 бита. Обе установленные версии будут работать без вопросов. А вот в 32-битную ОС 64-разрядная программа не установится вообще.

Еще один интересный аспект можно рассмотреть на примере известного и популярного музыкального секвенсора FL Studio.

Версии FL Studio 32 и 64 бита

Даже при запуске основной программной оболочки с разрядностью 32 бита в редакторе все равно можно использовать дополнительные плагины (VST, RTAS, AAX), имеющие архитектуру 64 бита. Но операционная система должна быть исключительно 64-битной.

Эпилог

Подходя к финальной черте, можно сделать несколько основных выводов:

  • 64-битные системы и программы при полном соответствии требованиям аппаратной части ПК работают быстрее;
  • в 64-разрядных ОС имеется поддержка большего объема ОЗУ;
  • сменить разрядность систем одного ранга без переустановки и поддержки со стороны аппаратных компонентов невозможно;
  • повысить разрядность ОС можно только путем апгрейда (неприменимо к Windows 10).

Примечание: если вы все же задумались о переходе на более новую модификацию Windows, для начала убедитесь, что конфигурация вашего ПК или ноутбука соответствует хотя бы минимальным системным требованиям со стороны самой ОС. Учтите также, что на некоторые компьютеры и лэптопы только при минимальном соответствии инсталлировать «десятку» не рекомендуется, поскольку работать она будет совершенно не так, как предполагается (будет постоянно тормозить, выдавать ошибки, зависать и т. д.).

image

Меня зовут Андрей Артемьев, я работаю в Microsoft над ядром ОС Windows 10, ранее я работал над Windows 10x (WCOS), XBox, Windows Phone и Microsoft Edge. Я хочу популярно в образовательных целях рассказать о том как работает компьютер на примере клавиатурного ввода и Windows 10. Данный цикл статей рассчитан в первую очередь на студентов технических специальностей. Мы рассмотрим какой путь проходит информация о нажатой клавише от клавиатуры до отображения в Notepad.exe. В виду обширности и междисциплинарности темы в статьях могут быть неточности, о которых сообщайте в комментариях. Какая-то информация может быть устаревшей в виду скорости с которой развивается Windows.

Насколько глубоко мы погрузимся в тему?

Давайте для начала в общих чертах поговорим об уровнях на которых можно рассматривать компьютер. Каждый уровень основывается на предыдущем. Начнём с самого верха.

Уровень операционной системы. ОС можно рассматривать как:

  • Менеджер ресурсов — память, жёсткие диски, принтеры, экран, клавиатура ограниченные ресурсы которые совместно используются запущенными на компьютере программами.
  • Виртуальная машина — файл это наглядный пример виртуального объекта. Он представляет абстракцию данных на диске, API для работы с ним и так же добавляет концепцию прав доступа. Вместо файла могла быть концепция контейнера данных и совершенно другого API. Таких виртуальных объектов в ОС много.
  • Платформа — ОС предоставляет программные модели и примитивы для построения программ. К примеру Windows Drivers Framework позволяет быстро разрабатывать драйвера, окна в Windows используются для построения сложных пользовательских интерфейсов. Dll — предоставляет модель расширения функционала программы через плагины, а так же механизм для реализации читалки экрана через ловушки клавиатуры (см. LowLevelKeyboard hook).

image

Уровень архитектуры компьютера. Он представлен материнской платой, которая имеет определённый форм-фактор, встроенные функции закодированные в микросхемах называемых чип-сетом и порты, через которые можно расширять функционал компьютера подключив графическую карту, сетевую карту, дополнительную оперативную память (RAM), жёсткие диски, клавиатуру и пр. Порты влияют на скорость работы и возможности компьютера, что и будет определять его назначение будь то сервер для обработки тысяч запросов в секунду, планшет для пользования Интернетом или игровой ПК с несколькими видеокартами. ОС абстрагирует особенности материнской платы.

Микросхемы выглядят как на картинке ниже и представляют собой мини-компьютер выполняющий простые программы для низкоуровневых задач, к примеру прочитать данные от клавиатуры и передать их дальше чтобы они достигли в конечном счёте процессора. Как правило реализованы в виде аналоговой непрограммируемой микросхемы или микроконтроллера, программируемого на языке С.

image

Материнскую плату можно рассматривать как колонию микросхем которые общаются между собой через шины и через них циркулируют данные от подключенных устройств к процессору и обратно. Чип-сет — это своего рода нервная система компьютера. Все чипы на материнской плате были изначально созданы чтобы работать друг с другом. Некоторые из них могут иметь особые функции, к примеру таймер или хранение настроек BIOS. Пожалуй самый важный из них тот что имеет встроенную программу (прошивку, BIOS, UEFI) которая начинает выполняться как только появляется электричество. Она находит жёсткий диск с загрузчиком Windows и передаёт тому управление который в свою очередь запускает исполняемый файл ОС, который можно назвать Windows10.exe, на самом деле NtOsKrnl.exe. BIOS знает что искать благодаря соглашению между производителями железа и операционных систем.

Вокруг материнской платы можно собрать мобильный телефон, игровую приставку, серверную станцию или умное устройство. На картинке ниже распространённые форм-факторы материнских плат.

image

Уровень микроархитектуры представлен процессором (CPU), это сердце материнки и весь чип-сет нужен для обслуживания CPU. Процессор это компьютер в компьютере, более мощный и продвинутый микроконтроллер которому не нужна прошивка, потому как поток команд подаётся на лету, когда планировщик потоков поменял контекст процессора. Функционал процессора делится на подсистемы, к примеру компонент занимающийся математическими и логическими операциями, математический сопроцессор, кэш. Какие-то из них раньше были отдельным чипом на материнской плате, но сейчас их сделали частью ЦПУ, например контроллер прерывания и микросхема под названием “Северный мост” что увеличило скорость работы.

Микроархитектура это не то же самое что архитектура. Весь функционал CPU разделён на компоненты, которые работают сообща. Эти компоненты и их взаимодействие и есть микроархитектура. На блок-схеме ниже они представлены цветными прямоугольниками и квадратиками.

image

Архитектура процессора это по сути документ который описывает какой функциональностью он должен обладать для того чтобы соответствовать к примеру архитектуре x86, x64 или ARM применяемой на мобильных устройствах. В этом документе описано какие должны поддерживаться команды, назначения регистров и логика работы. Создатели процессоров Intel, AMD, Эльбрус могут реализовывать эту функциональность как угодно и добавлять к ней новые возможности в виде команд, регистров, флагов, прерываний и если ОС знает о них то может использовать. В терминах ООП архитектура ЦПУ — это интерфейс, а микроархитектура — его реализация.

Логические схемы. Цветные прямоугольники с блок-схемы CPU состоят из логических схем, которые производят свои операции на последовательностях нулей и единиц. Процессор видит все данные и команды в виде битов (0 и 1), по формуле любое десятичное число можно представить в виде последовательности 0 и 1, а вот что значит конкретное число зависит от контекста. Это может быть код, цифра, буква. Арифметическое и логическое устройство (ALU) умеет производить сложение двух чисел через побитовые операции. Побитовые алгоритмы сложения, вычитания, умножения и деления давно известны, разработчикам логической схемы их только надо эффективно реализовать.

image

image


Уровень радиоэлементов. Физически аналоговые схемы полагаются на радиоэлементы, которые собственно и эксплуатируют законы физики. Преимущественно это полупроводники, т.е. в определённых условиях они могут проводить электричество, а могут и нет. Диод проводит ток только в одном направлении, если его выпаять, развернуть на 180 и впаять обратно, то ток через него проходить не будет. Транзистор пропускает ток только если есть напряжение на управляющей ножке. Человечество научилось делать транзисторы микроскопическими и потому их можно размещать на маленькой плате миллионами. На картинках ниже полупроводниковые радиоэлементы и обычный транзистор рядом с нано транзистором под электронным микроскопом.

image

Уровень законов физики. И наконец самый нижний уровень — это уровень законов физики которые заключены в полупроводниковые радиоэлементы.

image

Мы будем много говорить про уровень ОС и чуть меньше про архитектуру компьютера, микроархитектуру, аналоговые схемы и радиоэлементы. К последней части у вас должно быть понимание как это всё работает вместе.

Основы Операционной Системы

Когда мы проходили в универе программирование на ассемблере у многих студентов был ступор от таких умных слов как “режимы ядра и пользователя”, под которыми на самом деле скрывается хорошо всем известная ролевая система аутентификации, на всех сайтах есть как минимум “Админ” имеющий доступ ко всем страницам и “Пользователь” имеющий ограниченный доступ. Точно так же роль “Ядро” имеет доступ ко всем возможностям CPU, а роль “Пользователь” может вызывать не все команды процессора и не со всеми аргументами. Поверх этой ролевой модели по принципу клиент-серверной архитектуры построена операционная система, где сервер это ядро, которое и реализовывает функционал ОС, а клиент — это пользовательские программы. В мире Web клиент и сервер разделены физически — это два разных компьютера общающихся по сети. В ОС клиент и сервер живут на одной машине и на одном железе. У сервера есть некий API который позволяет клиентам изменять его состояние, к примеру Twitter API позволяет создавать посты, логиниться и загружать ленту твитов в мобильный клиент. У Windows есть Win API, только более громоздкий в виду более широкого круга задач, на сегодняшний день у винды примерно 330 000 API плюс API для UWP apps. Если концепции Твитера более менее всем понятны — пост, пользователь, фид — то концепции ОС могут потребовать некоторого углубления в её внутренности. Поэтому API Windows могут быть трудно понятными без понимания внутреннего устройства ОС.

На самом деле под ядром понимают три разные вещи. Ядро как весь код ОС. Ядро как подсистема которая отвечает за механизмы ОС, такие как планировщик потоков, переключение контекста, обработка прерываний, свап виртуальный памяти на физическую (Kernel) и ядро подсистемы для поддержки других ОС — CSRSS.exe (Windows), PSXSS.exe (POSIX), OS2SS.exe (OS/2) или WSL (Windows SubSystem for Linux). В данном контексте понимается первый смысл — весь код ОС.

Когда на экране появляется окно, то в серверной части ОС (режим ядра) появляется структура данных которая описывает это окно — его положение на экране, размеры, текст заголовка, оконная функция через которую ОС даёт приложению среагировать на события. Поскольку подсистем в ОС много, то и структур данных описывающих один объект может быть несколько, к примеру информация о пользовательском процессе есть в компонентах:

  • Executive — здесь логика работы ОС. В этом слое проверяется что могут и не могут делать процессы. Здесь хранится инфа о родительском процессе, параметры старта процесса (Process Environment Block), привязанный аккаунт пользователя, имя exe файла процесса.
  • Kernel — здесь реализованы механизмы ОС, такие как планировщик потоков. Здесь хранится сколько времени процесс проводит в режиме пользователя и ядра, к каким процессорам привязаны его потоки, базовый приоритет потоков процесса.
  • Windowing subsystem — инфа о GDI объектах которые используются для рисования в окне. Это такие примитивы как кисти, pen и пр.
  • DirectX — всё что имеет отношение к DirectX: шейдеры, поверхности, DX-объекты, счётчики производительности GPU, настройки памяти графической памяти.
  • Подсистема Windows которая представлена процессом CSRSS.exe (Client Server Runtime SubSystem). Windows ранее поддерживал ОС POSIX (процесс PSXSS.exe) и OS/2 (OS2SS.exe). В те времена возникла идея сделать и Windows такой же подсистемой, но эта было медленно и поэтому скоро часть CSRSS.exe перенесли в win32k.sys, который сейчас разбит на несколько файлов — win32k.sys, win32kbase.sys и win32kfull.sys. Здесь хранится информация о Process Group Data, Shutdown level, Session Data и пр.

Что такое компонент? Это логически сгруппированный функционал. Компонентом можно назвать ООП-класс, dll, папку, набор функций с общим префиксом, пространство имён, слой в архитектуре.

Более подробно о разделении на клиент-сервер

Разделение на клиент и сервер реализовано при помощи встроенной функциональности CPU, разделения памяти и программных проверок.

Производители оборудования сотрудничают с разработчиками ОС, поэтому в процессоре есть механизмы созданные с учётом потребностей создателей операционных систем. Во всех современных процессорах реализован механизм ролей пользователя, где под пользователем понимается исполняемый в данный момент код. В веб приложениях роль залогиненого пользователя хранится в какой-то переменной и помимо понятного названия Admin или User имеет Id этой роли который чаще и используется при авторизации, потому как сравнивать числа быстрее и проще чем строки. В процессоре роль текущего пользователя хранится в поле которое называется “кольцо безопасности” (Security Ring), а не “CurrentUser.Role.Id”. В большинстве процессоров это поле принимает четыре значения от 0 до 3. Windows использует 0 для роли которая называется “Режим Ядра”, потому как это самый привилегированный режим и самое большое значение для роли “Режим Пользователя”, потому как это самая ограниченная роль. Остальные роли не используются потому как различие между 0 и 1, 2 и 3 незначительное. Эти роли ограничивают страницы памяти которые могут быть адресованы, нельзя вызывать некоторые инструкции или же нельзя их вызывать с определёнными аргументами. Так же есть ограничения на использование технологии I/O Ports для обмена данными с устройствами такими как клавиатура, но она уже лет 10 не используется. Переключение в режим ядра происходит через команду syscall, которая по индексу находит в массиве указателей на APIs Windows функцию которую надо вызвать. Указатель на этот массив сохраняется в специальном регистре процессора во время загрузки ОС.

image

Прерывания могут генерироваться не только процессором но и внешними устройствами (клавиатура, мышь) или программным кодом. Планировщик потоков устанавливает таймер который с интервалами равными одному кванту (по умолчанию около 15мс, в Windows Server больше) генерирует прерывание чтобы по внутреннему алгоритму назначить другой поток на исполнение. Пошаговое исполнение программы в Visual Studio так же полагается на механизм прерываний — у процессора устанавливается флаг, который после каждой команды вызывает прерывание которое обрабатывает Windows Debugging Engine и уведомляет через API Visual Studio.

Разделение памятью реализовано благодаря виртуальной памяти. Ранее я говорил что ОС это менеджер ресурсов и виртуальная машина. Даже если у вас 1Гб RAM 32х битный Windows будет работать так как если бы у вас было 4Гб оперативки, т.е. реально у вас 1Гб, а виртуально 4Гб. Современные компьютеры основаны на теоретической модели машины Тьюринга или же архитектуре фон Неймана (с некоторыми изменениями). Согласно этим моделям память в компьютере это лента состоящая из ячеек размером один байт. Эти ячейки сгруппированы в страницы как правило по 4096 байт (4Кб), потому как:

image
image

64 битный адрес позволяет адресовать 16 экзабайт, это 18,446,744,073,709,551,616 ячеек памяти. Современные процессоры пока что не поддерживают так много RAM и поэтому используют только младшие 48 бит адреса, остальные 16 заполняются старшим разрядом. Поэтому Win x64 попросту не использует часть адресов, которые помечены на рисунке выше чёрным. Но это не значит, что 64х битный Windows “видит” 256 Tb оперативки. Максимум 8TB виртуальной памяти на архитектуре IA64 и 7TB на x64. Предел физической памяти поддерживаемой Windows 10 — 2TB, потому как с большим количеством Винда не тестировалась. Объём поддерживаемой RAM в Windows 10 определяется во многом редакцией ОС, чем дороже тем больше.

Почему ячейки памяти пронумерованы шестнадцатиричными (HEX) числами, а не десятичными или двоичными? Адрес ячейки это не просто порядковый номер, в нём закодировано три числа по которым эту ячейку можно отобразить на физическую память. Первые два это индексы по которым находится конкретная страница виртуальной памяти, а третье число — смещение от начала страницы. CPU и ОС здесь работают в связке — ОС предоставляет структуру данных по которой CPU находит страницу виртуальной памяти и копирует её в физическую. По HEX номеру можно сразу увидеть как выровнен в памяти адрес. Формат двоичного числа слишком громоздкий, 32 бита (или 64) трудны для восприятия. Десятичный формат — показывает слишком мало информации, тогда как HEX удобный компромисс между десятичной и двоичной системами, средами людей и машин.

Программный способ разделения на клиент-сервер (режим ядра-режим пользователя) гораздо скучнее перечисленных выше механизмов. Процессы и потоки могут быть помечены специальными аттрибутами или же мы можем хранить список указателей на потоки/процессы и проверять их в коде. Если вы хоть раз делали авторизацию в веб-приложении, то хорошо понимаете о чём я говорю.

Из чего состоит Windows?

Абстракция или же разбиение на компоненты есть во всех сферах программирования и интуитивно понятно что Windows тоже делится на какие-то компоненты. Под компонентом понимается какая-то единица функциональности — ООП класс, файл, dll, папка. Компоненты на диаграмме ниже могут быть как индивидуальными *.sys, *.dll файлами, так и просто набором API сгруппированным логически через добавление префикса к имени функции, старая часть системы написана на C, а он не поддерживает классы. Новые части пишутся нередко на C++. В укрупнённом виде Винда выглядит так:

image

Давайте быстренько пробежимся по её компонентам снизу вверх:

  • Hyper-V Hypervisor — слой виртуализации благодаря которому в Windows можно создать виртуальную машину. Иногда говорят, что Hyper-V это минус первый уровень привилегий, однако реализован он в одном уровне привилегий и адресном пространстве что и ядро ОС, за счёт использования слоёной архитектуры ОС ничего не знает о нём.
  • HAL.dll — Hardware Abtraction Layer — изначально задумывался как абстракция над железом — чипсет, материнская плата, процессор — для того чтобы можно было перенести Windows на новую платформу реализовав новый HAL.dll, который будет выбран и скопирован во время установки. По сути это драйвер к устройствам материнской платы, к примеру таймерам, контроллеру прерываний. Сейчас его роль снижена, потому как многие драйвера материнки и чип-сета реализованы в ACPI.sys.

Читайте также: