5 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Что такое реестр Windows

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

Проще говоря, реестр – это то место, куда сохраняется большинство индивидуальных настроек компьютера пользователя. Например, при смене цветовой схемы системы или обоев на рабочем столе, информация об этом будет записана в реестр Windows для обеспечения сохранности выбора. Т.е. при каждой перезагрузки компьютера пользователь будет видеть именно ту цветовую схему или обои, что он установил.

Еще один пример – это работа с устройствами. При установке Windows производится конфигурирование системы под имеющиеся устройства. Далее, когда подключается новое оборудование на уже установленную систему, происходит установка драйверов для него и Windows записывает в системный реестр данные об этом устройстве. Благодаря чему обеспечивается его корректная работа или быстрое опознание устройства при его повторном подключении к порту. Например, при подключении принтера.

Другой пример – установка и удаление программ. При установке или удалении программ пользователем, а также в процессе их работы операционная система также записывает все изменения в реестр.

Windows постоянно обращается к реестру для записи и считывания данных на всех этапах: загрузке, работе и завершении работы. Реестр появился в Windows начиная с версии 98: Windows 98, 2000, ME, XP, Vista, 7, 8, 10.

Как устроен реестр Windows

Структуру реестра можно увидеть в специальной программе «Редактор реестра» (подробные инструкции по его запуску можно найти здесь).

Самый простой вариант запуска: нажмите сочетание клавиш Win+R, введите команду regedit и нажмите ОК.

Редактор реестра очень похож на проводник, а структура реестра похожа на файловую систему вашего компьютера:

— слева отображаются разделы, похожие на папки, внутри них есть подразделы (совсем как подпапки);

— справа отображаются параметры (очень похожи на файлы) и их значения.

Устройство реестра Windows 10

Структура реестра и Regedit

Чтобы открыть редактор реестра в Windows, просто нажмите Win + R , затем введите regedit и нажмите Enter .

Вы окажетесь перед окном, разделенным на две части: слева некоторые основные элементы, представленные в виде папок, а справа пустая панель.

При двойном щелчке по одной из отображаемых папок её содержимое сразу же отображается с их «подветвями».

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

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

Значения, сохраненные в выбранном ключе, перечислены на правой панели Regedit: они могут быть в основном трех типов: String, Binary или DWORD, в зависимости от типа данных, которые они содержат.

Основные ключи или ветви:

  • HKEY_CLASSES_ROOT. Содержит ссылки на раздел HKEY_LOCAL_MACHINE. Информация, включенная в этот ключ, относится к типам используемых файлов, а также информации о компонентах, используемых различными приложениями.
  • HKEY_CURRENT_USER. Этот ключ содержит информацию об учетной записи пользователя, в данный момент «залогиненного» в Windows.
  • HKEY_LOCAL_MACHINE. Содержит информацию о настройках аппаратного и программного обеспечения, которая влияет на всех пользователей компьютера.
  • HKEY_USERS. Содержит информацию о каждом профиле пользователя, используемом на ПК. Когда пользователь вводит своё имя при запуске Windows, система сразу же выбирает конфигурацию, связанную с этим пользователем (внешний вид рабочего стола, настройки различных приложений и т.д.).
  • HKEY_CURRENT_CONFIG. Управляет информацией, связанной с подключенными аппаратными устройствами.

regedit — смотрим на реестр Windows своими глазами

Чтобы войти в Windows -средство для правки реестра откройте «Выполнить» — внешняя ссылка» target=»_blank» >« Пуск » -> «Выполнить», затем в появившемся окне напишите regedit и нажмите Enter .

Перед Вам появится штука (она и есть встроенный Windows -редактор реестра), в которой Вы сможете посмотреть, что же представляет собой сие чудо, о котором я веду речь в этой статье.

Хранящиеся значения разделены на категории и размещены в папках, наподобие тех, которые Вы так привыкли видеть в » Мой компьютер «. Чтобы раскрыть папку нажмите по ней пару раз мышкой или воспользуйтесь небольшим плюсиком рядом с её названием.

Папки раздела называются ключами, а содержимое папок, которое отобразится справа, – значениями.

Ассоциации файлов: системный реестр

Щелкните на кнопке Пуск и введите в поле поиска команду regedit, после чего нажмите клавишу . Откроется окно Редактор реестра. В нем перейдите в раздел HKEY_CLASSES_ROOT. В этой папке найдите ветку с названием требуемого расширения файла и удалите ее нафик. Затем достаточно открыть файл нужной программой.

Наконец, финальный способ – с помощью программы Unassociate File Types.

И что со всем этим теперь делать?

Сразу огорчу: запросто пошаманить напрямую с реестром в юзермоде не получится, система не даст этого сделать, как это обычно бывает с файлами, занятыми другими процессами. Если попытаться извернуться, то можно только прочесть такой «занятый» файл, и то если угадать с флагами, с которыми он был открыт. К сожалению, записать в интересующий нас «файл реестра» информацию не выйдет. Кстати, фича с записью нужной информации в реестр может прокатить, если писать в реестровские *.BAK-файлы, они точно доступны под запись.

Читать еще:  Как восстановить СМС на телефоне Андроид после удаления

А вот из ядра не то что прочитать, но и записать нужную информацию в файлы реестра очень даже можно.

Итак, следи за рукой :).

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

Теоретически так сделать можно, для этого нужно, во-первых, уметь работать с «занятыми» файлами (способы ищи в Сети) и, во-вторых, как я уже говорил выше, надо знать внутреннюю структуру файлов реестра. Метод этот довольно топорный, но, несмотря на свою бредовость, он вполне жизнеспособен, хотя его и трудно реализовать на практике (попробуй поэкспериментировать с ним самостоятельно).

Здесь же я предложу два способа, которые помогут тебе распилить реестр на мелкие кусочки.

Первый способ заключается в том, что для конфигурационного менеджера (Configuration Manager, часть операционной системы, если ты не в курсе) реестр есть не более чем набор строго определенных структур в операционной памяти, с которыми, как оказывается, очень даже легко работать. Какие это структуры, спросишь ты? HBASE_BLOCK, HHIVE, HBIN, HCELL, HMAP_ENTRY, HMAP_DIRECTORY, куча CM_* структур, используемых конфиг-менеджером для управления реестром. С точки зрения операционной системы, реестр — это просто набор регламентированных структур в оперативной памяти. К примеру, сигнатура «regf», определяющая «файл реестра», есть заранее определенная константа:

А вот и сигнатура «regf».

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

Если у нас будет доступ к файлам реестра на уровне ядра, то чем мы хуже самой ОС, чтобы установить свой порядок?

И тут на сцене появляется наиболее интересный вопрос — как найти эти самые структуры в памяти? Верно, штатных средств системы для решения этого вопроса нет, поэтому придется выкручиваться по-хитрому.

Зная, как выглядят структуры, нужно вспомнить, что каждый файл, улей реестра, имеет свою константную сигнатуру. Например, «regf» — это 0x66676572. Для улья сигнатура будет равна 0xBEE0BEE0. Имея доступ к памяти из ядра, мы можем довольно легко найти эти сигнатуры в памяти, просто просканив ее. Еще можно просканить память в поисках сигнатуры «CM10» — именно она присваивается конфиг-менеджером блоку подкачиваемой памяти, который выделяется под структуру CMHIVE. Полагаю, найдя в памяти интересующий нас элемент, ты придумаешь, что делать с ним дальше :).

Как, к примеру, изменить значение ячейки реестра? Значение хранится в поле CM_KEY_VALUE->Data, поэтому, если у тебя возникнет задача изменить какое-либо поле в конкретном ключе реестра, ищи значение именно там:

Второй вариант является своеобразной модификацией первого. Если знаешь, существует одна особенность при работе с реестром — все изменения, то есть «создание новых ключей / запись / удаление ключей», как правило, вступают в силу после перезагрузки системы (ну или после перезагрузки эксплорера, это такой хак-метод). До этого все изменения находятся словно в подвешенном, «dirty»-состоянии. Мало того, система при обращении с реестром общается с ним через кеш файловой системы. Это понятно — обращений к реестру может быть сотни в секунду, соответственно, полагаться при этом на быстродействие файловой системы неразумно, тут никакое быстродействие не спасет. Поэтому система и работает с реестром, что называется, виртуально, через кеш файловой системы. И тут, чтобы вытащить кишки реестра на свет, надо залезть в кеш! Как это делается, уже описывалось в тырнетах, в том числе и в www.xakep.ru.

Заключение

Итак, мы сегодня ответили на вопрос «Что такое реестр в компьютере». То есть узнали, что такое системный реестр Windows (10, 8, 7, XP), познакомились с программой «Редактор реестра» и научились его открывать (помните самый простой способ с помощью сочетания клавиш Win+R?), даже кратко познакомились с устройством реестра и рассмотрели примеры полезного его использования.

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

Хотите продолжения? Пишите в комментариях!

Конечно же, жду ваших вопросов, предложений и отзывов.

Следующая заметка посвящена способам запуска редактора реестра во всех актуальных версиях Windows (начиная с Windows XP и заканчивая Windows 10).

Копирование запрещено, но можно делиться ссылками:

Поиск в реестре Windows через Registry Finder

Registry Finder позволяет просматривать локальный реестр; создавать, удалять, переименовывать ключи и значения; изменить значения как естественный тип данных (строка, многострочный, DWORD) или как двоичные данные. Разрешено открывать несколько окон реестра. В следующий раз, когда вы запустите Registry Finder, эти окна будут открыты с теми же ключами, что и раньше.

Операция поиска эффективна и быстра. Все найденные предметы отображаются в отдельном окне в виде списка. Каждая строка представляет одно совпадение с критериями поиска. Значок показывает, где произошло совпадение: имя ключа, имя значения или данные значения. Совпадающий текст выделяется красным. Вы можете перейти к любому найденному элементу в окне реестра или редактировать/удалять элементы прямо в окне результатов поиска. Элементы в окне «Результаты поиска» можно сохранить в файл в формате .reg или .txt. В последнем случае элементы разделяются табулятором. Это позволяет легко импортировать и анализировать данные в других программах, таких как Microsoft Excel.

  • Нажимаем значок лупы или нажимаем CTRL+F, чтобы вызвать окно поиска. В поле «Find what» пишем то, что хотим искать. В «Top-level-keys» выбираем разделы реестра для поиска.
Читать еще:  Проблема кодеков Window

  • Нажав кнопку «Data Types» вы сможет выбрать нужный вам тип записей реестра, тем самым сузив фронт поиска.

  • Registry Finder поддерживает поиск так называемых скрытых ключей реестра. Это ключи с нулевым символом в имени. Такие ключи не могут быть созданы, удалены, изменены или просмотрены стандартным Windows API, поэтому они не доступны для regedit и большинства других редакторов реестра. Чтобы включить поиск по ним. выставите галку «Search only hidden keys«

  • Так же Registry Finder позволяет задать размер ключей и период последнего изменения. если вы точно уверены, что ключ был создан за этот промежуток времени.

  • Обратите внимание, что результаты поиска вы можете открыть в новом оке. Все приступаем к сканированию реестра на нужную нам запись, нажимаем «Find».

На выходе я получил подробную таблицу со всеми искомыми значениями. Красным подсвечивается точное вхождение. Данная утилита меня выручала много раз, когда мне нужно было искать значение в разных местах, например, когда у меня был черный экран Windows 10.

Командная строка Registry Finder

Registry Finder имеет ряд параметров командной строки, которые можно использовать для настройки его поведения.

  • —help — Печатает справочное сообщение.
  • —computerName arg — Указывает имя или IP-адрес компьютера для подключения.
  • —navigate arg — Определяет раздел реестра для навигации. Если для этого параметра установлено значение «буфер обмена», то путь берется из буфера обмена.
  • —reopenLocal arg — Восстановить или не открывать ранние локальные окна реестра при запуске Registry Finder (arg: true или false, по умолчанию true).
  • —reopenRemote arg — Восстановить или не открывать ранее удаленные окна реестра (arg: true или false, по умолчанию true).
  • —dataFolder arg — Определяет папку для хранения настроек и отмены истории.
  • —import arg — Импортирует указанный файл .reg в реестр.
  • Работа всегда выполняется в отдельном экземпляре (то есть подразумевается —multiInst).
  • —importSilent Не отображать подтверждение импорта.
  • —multiInst Когда экземпляр Registry Finder уже запущен, запускается новый экземпляр. По умолчанию запущенный экземпляр активируется вместо запуска другого.

Surface Pro

Сегодня Microsoft поделился некоторыми важными подробностями о том, как работает Windows 10X, включая выпуск эмулятора, чтобы разработчики могли приступить к оптимизации приложений для работы с двумя экранами.

Тем не менее, Windows 10X запускает все приложения в контейнерах. Вот что это означает, почему это хорошо, и какие типы приложений вы сможете использовать на Windows 10X и таких устройствах, как Surface Neo.

Три контейнера, но один опыт


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

В Windows 10X все приложения выполняются в контейнерах, но при этом нет никаких настроек или каких-либо изменений на высоком уровне, необходимых разработчикам для их использования; они просто являются частью архитектуры операционной системы.

В частности, существует три типа контейнеров, одним из которых является новый Win32.

Контейнер Win32: запускает «классические» x86 32- и 64-разрядные приложения Win32, WinForms, WPF, Electron и т. д. Он представляет собой среду, аналогичную обычной операционной системы. Существует только один контейнер для всех приложений Win32 и он «очень совместим» со всем существующим программным обеспечением.

Контейнер MSIX с полным доверием: высокая совместимость с существующими приложениями. Они работают изолированно от других приложений Win32, а также работают в качестве контейнера в контейнере Win32 в Windows 10X.

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

Для потребителей это не принципиально. Большинство приложений Win32 и все приложения UWP должны работать как есть на Windows 10X. Вы нажимаете на приложение, оно открывается и запускается. Также не имеет значения, откуда вы его устанавливаете, будь то Microsoft Store, интернет или USB-накопитель.

Независимо от того, решат ли разработчики продолжить работу с «классическими» настольными приложениями Win32, Progressive Web Apps (PWA) или UWP, это решать только им. По понятным причинам UWP является наиболее оптимизированными для Windows 10X, но Microsoft сделала все возможное, чтобы обычные приложения тоже работали нормально.

Контейнеры оптимизируют время автономной работы и производительность

Приложения UWP по-прежнему остаются наиболее оптимизированной платформой приложений для Windows 10X. Это не должно быть откровением, так как они были изначально разработаны с учетом Windows Phone (Windows Mobile) и созданы для мобильности. Приложения UWP максимально повышают безопасность, сохраняют заряд батареи, улучшают производительность и учитывают события приостановки и возобновления на уровне ОС.

Приложения Win32 были созданы в основном для настольных компьютеров. Им не хватает мобильной оптимизации UWP. В результате, хотя они имеют тенденцию быть более мощными, чем UWP, но вместе с тем быть хуже по скорости и времени автономной работы. Но «классические» приложения Win32 все еще очень важны, даже в 2020 году, для современных мобильных вычислений.

Microsoft «исправляет» эту проблему с приложениями Win32 (и MSIX) через контейнер Win32. Вот как:

Контейнеры Win32 + MSIX сокращают ресурсы приложений, когда окна свернуты.
Приложения полностью приостанавливаются, когда нет открытых окон.
Приложения Win32 и MSIX, когда они свернуты (и закрыты), полностью не работают в фоновом режиме. В результате это экономит системные ресурсы и батарею. И наоборот, когда приложение Win32 активно используется, оно получает больше ресурсов для обеспечения производительности.

Однако есть два последствия этого изменения. С одной стороны, «классические» приложения Win32, скорее всего, не смогут запускать фоновые задачи — по крайней мере, не очень долго — до приостановки работы контейнера. Другое — приложения Win32 не могут автоматически запускаться с Windows 10X. Это в основном связано с тем, что в Windows 10X нет системного трея, поэтому «классические» приложения не могут непрерывно работать в фоновом режиме.

Читать еще:  Как скачать Windows 7 с официального сайта Microsoft

Интересно, что Microsoft может позволить пользователям контролировать это поведение, чтобы контейнер Win32 (и приложения Win32) могли работать в фоновом режиме. Но этот вопрос все еще остается открытым.

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

Все приложения должны поддерживаться

Интересно, что только то, что приложения Win32 контейнеризованы в Windows 10X, не делает их менее мощными. Microsoft заявляет, что эти приложения по-прежнему получают полный доступ к таким функциям, как:

Мышь, клавиатура, ручка, сенсорный дисплей.
DirectX графика, аудио, медиа.
Сеть.
Печать.

Это означает, что старая модель «подключи и работай» все еще действует, и компьютер на базе Windows 10X, такой как Surface Neo, должен иметь возможность поддерживать все, что вы подключите к нему, включая внешние мониторы и периферийные устройства.

Также повышена безопасность, поскольку пользователь может запретить доступ всем классическим приложениям Win32 к таким функциям, как камера, микрофон и даже местоположение. Приложения UWP уже делают это в отдельной системе разрешений на уровне приложений, но в Windows 10X пользователи могут отключить все приложения Win32 на уровне контейнера, если они того пожелают.

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

Два файловых менеджера


Слева — опыт современного File Explorer; справа — «классический» инструмент выбора файлов Win32.

Отражение двойственной природы взаимодействия с Windows 10X, когда приложения UWP и Win32 рабоают бок о бок, заключается в использовании двух файловых менеджеров, в том числе, для функции «Сохранить как».

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

Однако при использовании диалогового окна файлов в приложении UWP или Windows 10X («операционной системе хоста») открывается «современный» Проводник файлов, который ограничен необходимыми библиотеками, такими как Видео, Музыка, Избранное, Документы, Изображения и т. д.

Для пользователя это означает, что они получают базовый уровень доступа к основным библиотекам, но не файловую структуру на уровне ОС, как в настольной ОС (Windows 10). Но приложения Win32 по-прежнему работают так, как должны, без какого-либо изменения кода.

Все приложения для Windows 10X развернуты … пока

Кевин Галло, CVP платформы Microsoft Developer говорит, что в настоящее время приложения в Windows 10X работают в полноэкранном режиме (то есть развернуты). Это похоже на то, как приложения запускались в Windows 8 и в текущем режиме Windows 10 Tablet Mode.

Причиной такого выбора является размер экрана: чем меньше дисплей, тем более насыщенной является информация. Запуск пяти приложений с маленькими окнами на одном 9-дюймовом дисплее (с диагональю 13,1 на обоих дисплеях) вряд ли будет популярным сценарием.

Ситуация с постоянно развернутыми окнами очень спорна, и Microsoft не является негибким в ​​этом вопросе. Если разработчики предпочитают использовать в Windows 10X возможность меньших оконных приложений, компания может разрешить это.

Windows 10X сложен, но в тоже время прост

Microsoft спроектировал Windows 10X так, чтобы он был нейтральным для приложений. Electron, UWP, Win32, WinForms, WPF — все это не важно. Все эти приложения работают на Windows 10X, в основном без каких-либо существенных изменений в коде.

Я думаю, что самый простой способ думать об этом — это учитывать разный дизайн и назначение операционных систем:

Windows 10 Home / Pro: Создан для приложений Win32, но также может работать с UWP
Windows 10X: Разработан для запуска UWP приложений, но также может запускать Win32.

Microsoft, вероятно, не классифицирует это так, но Windows 10X построен так, чтобы быть быстрой, гибкой, мобильной и безопасной операционной системой. Действительно, обновление ОС должно занимать не более 90 секунд.

Хорошая новость для потребителей или тех, кто покупает компьютеры с двумя экранами, например Surface Neo, заключается в том, что все это не имеет значения. Вы можете установить любое приложение по вашему желанию, и ожидаемое поведение приложения будет соблюдено. У разработчиков также не должно быть каких-либо существенных изменений в их приложениях — даже более старых — для Win32 — чтобы они могли работать на Windows 10X.

Кроме того, Галло напоминает нам, что эти приложения, оптимизированные для работы с двумя экранами, также должны обеспечивать лучшее взаимодействие с настольными системами Windows 10. Эта функция является ярким примером того, как Windows 10X возвращается к Windows 10.

Конечно, как это все работает, еще неизвестно, но Microsoft говорит, что разница в производительности между приложениями Win32 и UWP в Windows 10X не должна быть заметна для пользователей. Это захватывающая перспектива, поскольку мы вступаем в новую эру мобильных компьютеров, когда пользователям не придется идти на компромиссы.

Добавить комментарий Отменить ответ

Для отправки комментария вам необходимо авторизоваться.

Ссылка на основную публикацию
Статьи c упоминанием слов:
Adblock
detector