Как сделать программу системной windows
Переменная среды (environment variable) — текстовая короткая ссылка на элемент операционной системы Windows, предназначенная для получения быстрого доступа к объекту системы, или к данным о каталогах и конфигурации компьютера. Переменная среды (переменная окружения) позволяет быстро перейти к нужному месту на компьютере, без использования имени пользователя или полного пути к объекту.
Переменные окружения Windows используются в командной строке, в диалоговом окне «Выполнить» и адресной строке Проводника. Переменная среды может содержать информацию о настройках системы или данные о текущем пользователе компьютера.
Переменные среды Windows делятся на два вида:
- Пользовательские переменные среды — содержат указания пути к пользовательским каталогам.
- Системные переменные среды — содержат информацию о каталогах ОС и конфигурации ПК.
Чаще всего переменные среды используются как путь к дискам, файлам или параметрам системы. Использование переменной среды позволяет быстро перейти к нужной директории операционной системы, без ввода полного пути, например, без ввода имени пользователя.
Переменные окружения часто используются при написании скриптов, или при работе в командной строке. Короткие переменные можно использовать вместо полного пути до файла или папки, например, при создании ярлыков, при вводе пути к объекту.
Пример использования переменной среды Windows
Рассмотрим следующий пример: пользователю нужно открыть системную папку «AppData», в которой находятся различные данные программ, установленных в операционную систему Windows. Скрытая папка «AppData» находится в профиле пользователя, обычно на диске «C:». Данные приложений расположены по пути:
Чтобы получить доступ к этой папке нужно выполнить несколько последовательных действий: открыть Проводник, включить в Windows отображение скрытых папок и файлов, а затем пройти по всему пути до нужной папки.
При помощи переменной «%APPDATA%» (переменная используется без кавычек) можно сразу открыть нужную директорию в системе, без ввода имени пользователя, включения отображения скрытых папок, ввода полного пути. Это экономит много времени.
Чтобы открыть нужный каталог достаточно лишь ввести «%APPDATA%» в поле поиска Windows, в адресную строку Проводника или в диалоговое окно «Выполнить», а затем нажать на клавишу «Enter».
Переменные среды Виндовс заключены в специальный оператор «%», который находится с двух сторон названия переменной. Это необходимо, чтобы система могла обработать запрос.
Пользователь может самостоятельно создавать переменные среды или изменять существующие. В статье мы рассмотрим несколько способов просмотра переменных среды и самостоятельное создание переменной. В руководстве вы найдете таблицу со списком переменных, применяемых в операционных системах Windows 10, Windows 8.1, Windows 8, Windows 7.
Как посмотреть переменные среды Windows 10
Сейчас мы посмотрим, как получить доступ к переменным средам в операционной системе Windows 10. В других версиях Windows необходимо выполнить аналогичные действия.
Чтобы посмотреть переменные окружения Windows 10, выполните следующее:
- Нажмите на клавиши» «Win» + «R».
- В окне «Выполнить» введите команду: «systempropertiesadvanced» (без кавычек), а затем нажмите на кнопку «ОК».
- В окне «Свойства системы», во вкладке «Дополнительно» нажмите на кнопку «Переменные среды…».
- В окне «Переменные среды» отображаются пользовательские переменные среды и системные переменные среды.
Доступ к переменным средам из реестра Windows
Есть возможность получить доступ к переменным средам из системного реестра Windows. Пользователю нужно будет открыть редактор реестра, а затем пройти по пути до определенной ветки.
Системные переменные среды находятся по следующему пути:
Переменные среды локального пользователя расположены в следующей ветке реестра:
Вы можете создать в редакторе реестра новые переменные или изменить существующие.
Как посмотреть все переменные среды в командной строке
Пользователь может получить список переменных среды при помощи системного инструмента — командной строки Windows.
В cmd переменные среды открываются следующим образом:
- Запустите командную строку от имени администратора.
- Выполните команду:
Для получения списка переменных в виде текстового файла, выполните в командной строке команду:
После выполнения этой команды, на Локальном диске «C:» появится текстовый файл с именем «Variables» (имя можно использовать любое), в котором находится список переменных среды Windows.
На моем компьютере файл имеет следующее содержание:
Открытие списка переменных среды в Windows PowerShell
Открытие списка переменных среды возможно при помощи системного средства Windows PowerShell.
Выполните следующие действия:
- Запустите Windows PowerShell от имени администратора.
- Введите команду, а затем нажмите на клавишу «Enter»:
- В окне PowerShell откроется список переменных среды Windows.
Создание переменной среды в Windows
Пользователь может самостоятельно создать новую переменную для открытия директорий на компьютере, или для запуска программ.
Перед внесением изменений в переменные окружения, обратите внимание на то, что бездумное изменение значений переменных среды Windows может привести к сбоям или неполадкам в работе операционной системы.
- В окне «Переменные среды» выберите одну из групп переменных: пользовательские или системные переменные.
- Нажмите на кнопку «Создать…».
На этом примере я создам отдельную переменную среды для запуска программы TeamViewer.
- В окне «Изменение пользовательской переменной» добавьте имя переменной, а в поле «Значение переменной:» введите полный путь к исполняемому файлу.
- В окне переменных сред добавилась новая переменная. Нажмите на кнопку «ОК» для применения изменений.
- В диалоговом окне «Выполнить» введите «%Имя_переменной%», в нашем случае, «%TeamViewer%», нажмите на кнопку «ОК».
- На Рабочем столе компьютера откроется окно запущенной программы.
Подобным способом, после ввода переменной в адресную строку Проводника, выполняется запуск программы или открытие директории на ПК.
Переменная среды пути «Path» содержит список директорий на компьютере, в которых система должна искать исполняемые файлы. Переменная среды пути «PATH» не добавляется к исполняемым файлам, а только к директориям, где находятся данные файлы.
Если добавить в переменную среды Path Windows путь к директории с исполняемым файлом, например, для браузера Google Chrome: C:\Program Files (x86)\Google\Chrome\Application , то программа запустится из командной строки, после выполнения команды «chrome», без ввода полного пути к исполняемому файлу.
При необходимости, пользователь может удалить ненужную переменную из операционной системы Windows.
Список переменных среды Windows в таблице
Для удобства посетителей сайта я собрал в общую таблицу переменные, их описание и значения в операционной системе Windows. В подавляющем большинстве случаев, системная папка расположена на диске «C:», поэтому пути в значениях даны для этого диска.
Выводы статьи
Переменные окружения Windows позволяют пользователю экономить время во время работы на компьютере. Переменными средами Windows могут пользоваться обычные пользователи или системные администраторы для быстрого доступа к объектам операционной системы, чтобы открыть нужную директорию на компьютере, или запустить программу.
Службы Windows - запущенные в фоне приложения, которые работают независимо от пользователя компьютера, и управляются непосредственно самой операционной системой. По умолчанию, службами являются строго определенные приложения, однако, ничто не мешает пользователю создать их самому. Выполнить данную задачу можно несколькими способами - с использованием стандартных средств Windows, либо с использованием сторонней программы NSSM.
Удаляется же служба еще проще:
Однако, у данного метода есть один большой существенный недостаток - с помощью данной утилиты создать службу можно только из программы, которая поддерживает работу службой. По этому, запустить какое попало приложение как службу данным способом не получится - но, можно воспользоваться сторонней утилитой NSSM, о которой речь пойдет ниже.
NSSM - программа, предназначенная для создания служб из исполняемых файлов Windows, в том числе и из графических утилит, что ставит её на уровень выше средств от Microsoft. С её помощью можно запускать большинство приложений, даже которые рассчитаны на взаимодействие с пользователем.
В архиве для скачивания можно найти версию для 64-битной версии Windows (папка win64), для 32-битной (папка win32) и исходные коды приложения (папка src). Выбираем нужное приложение под разрядность своей системы, копируем его в удобное для вас место на жестком диске. Никакая установка приложения не требуется.
- Предположим, нужно создать службу для веб-сервера nginx под Windows. Для этого, запускаем командную строку с правами администратора, и переходим в директорию с распакованным исполняемым файлом nssm.exe.
- Затем выполняем команду, начинающую установку службы:
- Откроется окно с настройками создаваемой службы.
На самой первой вкладке "Application", в строке "Path" задается путь к исполняемому файлу, "Startup Directory" - рабочая директория, а "Arguments" - параметры запуска. В самом низу расположена строка "Service Name", где задается имя создаваемого сервиса.
На вкладке "Details" можно задать имя, под которым будет отображаться создаваемая служба в списке служб, а так же описание службы, которое будет отображаться там же. В выпадающем списке "Startup Type" можно выбрать тип запуска службы.
Вкладка "Log on" позволяет указать пользователя, под которым будет запускаться служба.Заполним все нужные поля и выбрав нужные настройки, остается только нажать кнопку "Install service", для установки службы. - После нажатия кнопки "Install service", служба будет создана, но при этом запустить её нужно будет вручную (либо перезагрузить компьютер, чтобы служба с параметром запуска "Auto" запустилась при его запуске).
Однажды вы задумаетесь, как превратить скрипт или приложение в Windows-службу. Скорее всего, задача окажется не такой уж тривиальной – приложению как минимум потребуется специальный интерфейс для получения команд от системы. А раз есть требования и ограничения, то есть и скрипты, и милые сердцу костылики для преодоления.
Статья будет полезна тем, кто, как и я — «программист не настоящий».
В отличие от назначенных заданий служба работает постоянно, запускается при старте ПК и может управляться средствами Windows. А еще регулярно запускаемому скрипту могут понадобиться данные с предыдущего запуска, и может быть полезно получение данных из внешних источников — например, в случае TCP или Web сервера.
Лично мне за последние пять лет приходилось создавать службу три с половиной раза:
- Потребовалось создать сервис на fail2ban для Windows 2003., который работал с логами FileZilla и Apache, а при подозрении на брутфорс блокировал IP штатными средствами Windows — ipsec.
- Аналог телнет-сервера для домашних версий Windows. Понадобилось выполнять команды на удаленных рабочих станциях, которые были под управлением Windows 7 Home. По сути, вторая попытка поиграть в службы.
- Музыкальный проигрыватель для торгового зала под Windows. Задачу по ТЗ можно было решить при помощи mpd и пачки скриптов, но я решил — если уж делать скрипты, то почему бы и не «сваять» проигрыватель самому. За основу взял библиотеку BASS.dll.
- Когда выбирали веб-сервер с поддержкой загрузки файлов под Windows, одним из вариантов был HFS. Сам по себе работать он не может, поэтому пришлось «запихивать» его в службу. В результате решение не понравилось, и просто установили «тему» Apaxy на web-сервере Apache.
Для создания службы можно использовать взрослые языки программирования вроде C. Но если вы не хотите связываться с Visual Studio, то возьмите готовые утилиты. Существуют платные решения вроде FireDaemon Pro или AlwaysUp, но мы традиционно сосредоточимся на бесплатных.
Этот уже немолодой механизм состоит из двух компонентов: утилиты instsrv.exe для установки сервиса и srvany.exe — процесса для запуска любых исполняемых файлов. Предположим, что мы создали веб-сервер на PowerShell при помощи модуля Polaris. Скрипт будет предельно прост:
Работа так называемого «сервера».
Теперь попробуем превратить скрипт в службу. Для этого скачаем Windows Resource Kit Tools, где будут наши утилиты. Начнем с того, что установим пустой сервис командой:
Где WebServ — имя нашего нового сервиса. При необходимости через оснастку services.msc можно задать пользователя, под которым будет запускаться служба, и разрешить взаимодействие с рабочим столом.
Теперь пропишем путь к нашему скрипту при помощи магии реестра. Параметры службы есть в разделе реестра HKLM\SYSTEM\CurrentControlSet\Services\WebServ. В нем нам нужно добавить новый раздел Parameters и создать там строковый параметр Application, указав в нем путь к исполняемому файлу. В случае скрипта PowerShell он будет выглядеть так:
Настроенная служба.
Можно запустить и радоваться.
Работающая служба.
Однако у этого способа есть недостатки:
- Утилиты старые, разработаны до изобретения PowerShell, UAC и прочих вещей.
- Srvany не контролирует работу приложения. Даже если оно выпадет в ошибку, служба продолжит свое дело как ни в чем не бывало.
- Придется донастраивать и копаться в реестре. Вы же помните, что копаться в реестре небезопасно?
Поэтому перейдем к методу, частично лишенному этих проблем.
Существует утилита под названием NSSM — Non-Sucking Service Manager, что можно перевести как не-плохой менеджер служб. В отличие от предыдущей, она поддерживается разработчиком, и исходный код опубликован на сайте. Помимо обычного способа, доступна и установка через пакетный менеджер Chocolately.
Создать сервис можно из обычной командной строки, вооружившись документацией на сайте разработчика. Но мы воспользуемся PowerShell. Потому что можем, разумеется.
Установка через PowerShell.
Для разнообразия проверим работу службы не браузером, а тоже через PowerShell командой Invoke-RestMethod.
И вправду работает.
В отличие от srvany, этот метод позволяет перезапускать приложение на старте, перенаправлять stdin и stdout и многое другое. В частности, если не хочется писать команды в командную строку, то достаточно запустить GUI и ввести необходимые параметры через удобный интерфейс.
GUI запускается командой:
Настроить можно даже приоритет и использование ядер процессора.
Действительно, возможностей куда больше, чем у srvany и ряда других аналогов. Из минусов бросается в глаза недостаточный контроль над всем процессом.
Налицо нехватка «жести». Поэтому я перейду к самому хардкорному методу из всех опробованных.
Поскольку я давний любитель этого скриптового языка, то не смог пройти мимо библиотеки под названием _Services_UDF v4. Она снабжена богатой документацией и примерами, поэтому под спойлером сразу приведу полный текст получившегося скрипта.
Итак, попробуем «завернуть» в нее наш веб-сервис:
Разберу подробнее момент запуска приложения. Он начинается после операции $bServiceRunning = True и превращается в, казалось бы, бесконечный цикл. На самом деле этот процесс прервется, как только служба получит сигнал о завершении — будь то выход из системы или остановка вручную.
Поскольку программа для скрипта является внешней (powershell.exe), то после выхода из цикла нам нужно закончить ее работу с помощью ProcessClose.
Для этого скрипт необходимо скомпилировать в .exe, а затем установить службу, запустив exe с ключом -i.
Оно работает!
Разумеется, этот способ не самый удобный, и все дополнительные возможности придется реализовывать самостоятельно, будь то повторный запуск приложения при сбое или ротация логов. Но зато он дает полный контроль над происходящим. Да и сделать в итоге можно куда больше — от уведомления в Telegram о сбое службы до IPC-взаимодействия с другими программами. И вдобавок — на скриптовом языке, без установки и изучения Visual Studio.
Так вышло, что в нашей статье, описывающей механизм опроса PCI шины, не было достаточно подробно описано самого главного: как же запустить этот код на реальном железе? Как создать собственный загрузочный диск? В этой статье мы подробно ответим на все эти вопросы (частично данные вопросы разбирались в предыдущей статье, но для удобства чтения позволим себе небольшое дублирование материала).
Итак, цель: затратив как можно меньше усилий, создать собственную загрузочную флешку, которая всего-навсего печатает на экране компьютера классический “Hello World”.
Если быть более точным, то нам нужно “попасть” в защищенный режим с отключенной страничной адресацией и прерываниями – самый простой режим работы процессора с привычным поведением для простой консольной программы. Самый разумный способ достичь такой цели – собрать ядро поддерживающее формат multiboot и загрузить его с помощью популярного загрузчика Grub. Альтернативой такого решения является написание собственного volume boot record (VBR), который бы загружал написанный собственный загрузчик (loader). Приличный загрузчик, как минимум, должен уметь работать с диском, с файловой системой, и разбирать elf образы. Это означает необходимость написания множества ассемблерного кода, и немало кода на С. Одним словом, проще использовать Grub, который уже умеет делать все необходимое.
Начнем с того, что для дальнейших действий необходим определенный набор компиляторов и утилит. Проще всего воспользоваться каким-нибудь Linux (например, Ubuntu), поскольку он уже будет содержать все что нужно для создания загрузочной флэшки. Если вы привыкли работать в Windows, то можно настроить виртуальную машину с Linux (при помощи Virtual Box или VMware Workstation).
Если вы используете Linux Ubuntu, то прежде всего необходимо установить несколько утилит:
1. Grub. Для этого воспользуемся командой:
2. Qemu. Он нужен, чтобы все быстро протестировать и отладить, для этого аналогично команда:
Теперь наш план выглядит так:
1. создать программу на C, печатающую строку на экране.
2. собрать из нее образ (kernel.bin) в формате miniboot, чтобы он был доступен для загрузки с помощью GRUB.
3. создать файл образа загрузочного диска и отформатировать его.
4. установить на этот образ Grub.
5. скопировать на диск созданную программу (kernel.bin).
6. записать образ на физический носитель или запустить его в qemu.
а процесс загрузки системы:
Makefile, скрипт, выполняющий всю сборку программы и создание загрузочного образа.
Скрипт компановщика для ядра.
Код на ассемблере, который вызывается Grub’ом и передает управление функции main из программы на С.
Папка с заголовочными файлами.
Папка с файлами Grub’а.
Папка с функциями общего назначения. В том числе реализация printf.
Шаг 1. Создание кода целевой программы (ядра):
Сигнатура формата Multiboot
Флаги, которые содержат дополнительные требования к загрузке ядра и параметрам, передаваемым загрузчиком ядру (нашей программе). В данном случае все флаги сброшены.
0xE4524FFE= -(MAGIC + FLAGS)
Если все указанные условия выполнены, то Grub через регистры %eax и %ebx передает указатель на структуру multiboot Information и значение 0x1BADB002 соответственно. Структура multiboot Information содержит различную информацию, в том числе список загруженных модулей и их расположение, что может понадобиться для дальнейшей загрузки системы.
Для того, чтобы файл с программой содержал необходимые сигнатуры создадим файл loader.s, со следующим содержимым:
Весь последующий код попадет в исполняемую секцию .text.
Объявляем символ loader видимым для линковщика. Это требуется, так как линковщик будет использовать loader как точку входа.
Этот код формирует сигнатуру формата Multiboot. Директива .set устанавливает значение символа в выражение справа от запятой. Директива .align 4 выравнивает последующее содержимое по 4 байта. Директива .long сохраняет значение в четырех последующих байтах.
И теперь последняя часть:
Первой инструкцией происходит сохранение значения верхушки стека в регистре %esp. Так как стек растет вниз, то в %esp записывается адрес конца диапазона отведенного под стек. Две последующие инструкции сохраняют в ранее зарезервированных диапазонах по 4 байта значения, которые Grub передает в регистрах %eax, %ebx. Затем происходит вызов функции main, которая уже написана на Си. В случае возврата из этой процедуры процессор зациклится.
Шаг 2. Подготовка дополнительного кода для программы (системная библиотека):
Поскольку вся программа пишется с нуля, то функцию printf нужно написать с нуля. Для этого нужно подготовить несколько файлов.
Создадим папку common и include:
Потом, удалить функцию printf_init_global и все ее упоминания в этом файле:
Затем удалить переменную printf_lock и все ее упоминания в этом файле:
Функция printf использует функцию putchar, которую так же нужно написать. Для этого создадим файл common\screen.с, со следующим содержимым:
Указанный код, содержит простую логику печати символов на экран в текстовом режиме. В этом режиме для записи символа используется два байта (один с кодом символа, другой с его атрибутами), записываемые прямо в видео память отображаемую сразу на экране и начинающуюся с адреса 0xB8000. Разрешение экрана при этом 80x25 символов. Непосредственно печать символа осуществляется при помощи макроса PUT.
Теперь не хватает всего несколько заголовочных файлов:
1. Файл include\screen.h. Объявляет функцию putchar, которая используется в функции printf. Содержимое файла:
2. Файл include\printf.h. Объявляет функцию printf, которая используется в main. Содержимое файла:
Таким образом папки include и common содержат минимальный код системной библиотеки, которая необходима любой программе.
Шаг 3. Создание скрипта для компоновщика:
Создаем файл linker.ld, который будет использоваться компоновщиком для формирования файла целевой программы (kernel.bin). Файл должен содержать следующее:
Встроенная функция ENTRY() позволяет задать входную точку для нашего ядра. Именно по этому адресу передаст управление grub после загрузки ядра. Компоновщик при помощи этого скрипта создаст бинарный файл в формате ELF. ELF-файл состоит из набора сегментов и секций. Список сегментов содержится в Program header table, список секций в Section header table. Линковщик оперирует с секциями, загрузчик образа (в нашем случае это GRUB) с сегментами.
Как видно на рисунке, сегменты состоят из секций. Одним из полей, описывающих секцию, является виртуальный адрес, по которому секция должна находиться на момент выполнения. На самом деле, у сегмента есть 2 поля, описывающих его расположение: виртуальный адрес сегмента и физический адрес сегмента. Виртуальный адрес сегмента это виртуальный адрес первого байта сегмента в момент выполнения кода, физический адрес сегмента это физический адрес по которому должен быть загружен сегмент. Для прикладных программ эти адреса всегда совпадают. Grub загружает сегменты образа, по их физическому адресу. Так как Grub не настраивает страничную адресацию, то виртуальный адрес сегмента должен совпадать с его физическим адресом, поскольку в нашей программе виртуальная память так же не настраивается.
Говорит о том, что далее описываются секции.
Это выражение указывает линковщику, что все последующие секции находятся после адреса LMA.
Директива выше, означает, что секция выровнена по 0x1000 байт.
Отдельная секция multiboot, которая включает в себя секцию .text из файла loader.o, сделана для того, что бы гарантировать попадание сигнатуры формата multiboot в первые 8кб образа ядра.
Теперь скомпилируем код в бинарный файл следующими командами:
С помощью objdump’а рассмотрим, как выглядит образ ядра после линковки:
Как можно видеть, секции в образе совпадают с теми, что мы описали в скрипте линковщика. Линковщик сформировал 3 сегмента из описанных секций. Первый сегмент включает в себя секции .multiboot, .text, .rodata и имеет виртуальный и физический адрес 0x00100000. Второй сегмент содержит секции .data и .bss и располагается по адресу 0x00104000. Значит все готово для загрузки этого файла при помощи Grub.
Шаг 4. Подготовка загрузчика Grub:
Создать папку grub:
Скопировать в эту папку несколько файлов Grub, которые необходимы для его установки на образ (указанные далее файлы существуют, если в системе установлен Grub). Для этого нужно выполнить следующие команды:
Создать файл grub/menu.lst, со следующим содержимым:
Шаг 5. Автоматизация и создание загрузочного образа:
Для автоматизации процесса сборки будем использовать утилиту make. Для этого создадим файл makefile, который будет собирать компилировать исходный код, собирать ядро и создавать загрузочный образ. Makefile должен иметь следующее содержимое:
В файле объявлены две основные цели: all – компилирует ядро, и image – которая создает загрузочный диск. Цель all подобно привычным makefile содержит подцели .s.o и .c.o, которые компилируют *.s и *.c файлы в объектные файлы (*.o), а так же цель для формирования kernel.bin, которая вызывает компоновщик с созданным ранее скриптом. Эти цели выполняют ровно те же команды, которые указаны в шаге 3.
Наибольший интерес здесь представляет создание загрузочного образа hdd.img (цель image). Рассмотрим поэтапно, как это происходит.
Эта команда создает образ, с которым будет происходить дальнейшая работа. Количество секторов выбрано не случайно: 16065 = 255 * 63. По умолчанию fdsik работает с диском так, как будто он имеет CHS геометрию, в которой Headers (H) = 255, Sectors (S) = 63, а Cylinders( С ) зависит от размера диска. Таким образом, минимальный размер диска, с которым может работать утилита fdsik, без изменения геометрии по умолчанию, равен 512 * 255 * 63 * 1 = 8225280 байт, где 512 – размер сектора, а 1 – количество цилиндров.
Далее создается таблица разделов:
Первая команда монтирует файл hdd.img к блочному устройству /dev/loop1, позволяя работать с файлом как с устройством. Вторая команда создает на устройстве /dev/loop1 таблицу разделов, в которой находится 1 первичный загрузочный раздел диска, занимающий весь диск, с меткой файловой системы FAT32.
Затем форматируем созданный раздел. Для этого нужно примонтировать его как блочное устройство и выполнить форматирование.
Первая команда монтирует ранее созданный раздел к устройству /dev/loop2. Опция –offset указывает адрес начала раздела, а –sizelimit адрес конца раздела. Оба параметра получаются с помощью команды fdisk.
Утилита mkdosfs форматирует раздел в файловую систему FAT32.
Для непосредственной сборки ядра используются рассмотренные ранее команды в классическом синтаксисе makefile.
Теперь рассмотрим как установить GRUB на раздел:
После выполнения вышеприведенных команд, образ будет готов к установке GRUB’а. Следующая команда устанавливает GRUB в MBR образа диска hdd.img.
Все готово к тестированию!
Шаг 6. Запуск:
Для компиляции, воспользуемся командой:
После которой должен появиться файл kernel.bin.
Для создания загрузочного образа диска, воспользуемся командой:
В результате чего должен появиться файл hdd.img.
Теперь с образа диска hdd.img можно загрузиться. Проверить это можно с помощью следующей команды:
Для проверки на реальной машине нужно сделать dd этого образа на флэшку и загрузиться с нее. Например такой командой:
Подводя итоги, можно сказать, что в результате проделанных действий получается набор исходников и скриптов, которые позволяют проводить различные эксперименты в области системного программирования. Сделан первый шаг на пути создания системного программного обеспечения, такого как гипервизоры и операционные системы.
Ссылки на следующие статьи цикла:
"Как запустить программу без операционной системы: часть 2"
"Как запустить программу без операционной системы: часть 3: Графика"
"Как запустить программу без операционной системы: часть 4. Параллельные вычисления"
"Как запустить программу без операционной системы: часть 5. Обращение к BIOS из ОС"
"Как запустить программу без операционной системы: часть 6. Поддержка работы с дисками с файловой системой FAT"
В Windows имеется диалоговое окно «Выполнить», в котором выполняется команда для быстрого и прямого доступа к настройкам, инструментам, функциям операционной системы без использования других способов. Запуск команды «Выполнить» позволит сразу приступить к выполнению необходимых операций в приложении или компоненте операционной системы, не затрачивая время на открытие различных окон, при помощи других способов в Windows.
К некоторым средствам системы нет прямого доступа из Панели управления, Параметров или из меню «Пуск», поэтому команды «Выполнить» Windows помогут быстро получить доступ к скрытым параметрам системы. Команды «Выполнить» Виндовс можно использовать в качестве дополнительного способа для запуска приложений или инструментов операционной системы.
В таблицах этой статьи вы найдете список команд «Выполнить» (Windows Run), которые я распределил по нескольким блокам для более удобного поиска. Представленный список команд работают в разных версиях операционной системы Windows: в Windows 10, Windows 8.1, Windows 8, Windows 7.
В статье вы найдете более 130 команд, подходящих для всевозможных случаев, с которыми может столкнуться пользователь при работе на компьютере.
Открытие диалогового окна «Выполнить» в Windows
Сначала прочтите инструкцию о том, как вызвать команду «Выполнить» в системе Windows. В Windows 7 это не составит большого труда, диалоговое окно находится в меню «Пуск», в папке «Стандартных» программ. В Windows 10 и в Windows 8.1 потребуется кликнуть правой кнопкой мыши по меню «Пуск», а в открывшемся меню выбрать пункт «Выполнить». В меню «Пуск» операционной системы Windows 10 команда «Выполнить» находится в папке «Служебные — Windows».
Давайте посмотрим, как открыть команду «Выполнить» другим универсальным способом, работающим во всех современных версиях операционной системы Windows.
Выполните следующие шаги:
- Нажмите одновременно на клавиши клавиатуры «Win» + «R».
- Откроется диалоговое окно «Выполнить», в котором нужно ввести имя программы, папки, документа или ресурса Интернета, который требуется открыть.
- Введите в поле «Открыть» соответствующую команду, а затем нажмите на кнопку «ОК», или нажмите на клавишу «Enter».
После этого, откроется окно приложения или средства системы, вызванное командой пользователя.
Запуск браузеров при помощи команд из «Выполнить»
В первой таблице представлены команды меню «Выполнить», необходимые для запуска обозревателей интернета — браузеров. Для запуска основных, самых популярных браузеров, следует воспользоваться командами из таблицы ниже.
Команда | Выполняемое действие |
---|---|
iexplore | запуск браузера Internet Explorer |
inetcpl.cpl | свойства браузера Internet Explorer |
msedge | запуск браузера Microsoft Edge |
chrome | запуск браузера Google Chrome |
firefox | запуск браузера Mozilla Firefox |
opera | запуск браузера Opera |
vivaldi | запуск браузера Vivaldi |
Запуск системных приложений из окна «Выполнить»
В операционную систему Windows встроены приложения для выполнения определенных функций с помощью средств системы. Программы запускаются с помощью соответствующей команды через «Выполнить». В таблице собраны стандартные приложения, входящие в состав Windows.
Команда | Выполняемое действие |
---|---|
notepad | запуск программы Блокнот |
mspaint | открытие графического редактора Paint |
write | запуск тестового редактора WordPad |
calc | запуск приложения Калькулятор |
snippingtool | открытие программы Ножницы для создания снимка экрана |
osk | запуск приложения Экранная клавиатура |
magnify | открытие программы Экранная лупа |
wmplayer | запуск Проигрывателя Windows (Windows Media Player) |
xpsrchvw | запуск приложения Средство просмотра XPS файлов |
narrator | запуск Экранного диктора |
charmap | открытие Таблицы символов |
cttune | средство настройки текста для более удобного чтения |
mip | панель ввода математических выражений |
dialer | приложение Телефон |
dvdmaker | программа DVD-студия Windows (присутствует не во всех версиях Windows) |
isoburn | средство записи образов дисков Windows |
Запуск программ Microsoft
Из диалогового окна Выполнить можно запускать программы. созданные компанией Майкрософт, производителя ОС Windows.
Открытие отдельных папок, дисков
Следующий набор команд «Выполнить» будет полезен для входа, при помощи диалогового окна, в различные папки в операционной системе Windows.
Команда | Выполняемое действие |
---|---|
. | команда, состоящая из одной точки для открытия папки профиля текущего пользователя («User», «Masha», «Иван» и т. п.) компьютера |
.. | команда, состоящая из двух точек для открытия общей папки профиля всех пользователей («Пользователи», «Users») компьютера |
\ | открытие системного диска «C:» с помощью символа обратного слэша (косая черта) |
control folders | настройка параметров папок в Проводнике |
fsmgmt.ms | управление общими папками |
recent | просмотр недавних открытых папок и файлов |
appdata | папка «AppData» |
documents | папка «Документы» («Мои документы») текущего пользователя |
downloads | папка «Загрузки» (Downloads) |
favorites | папка «Избранное» |
pictures | папка «Изображения» |
videos | папка «Видео» |
music | папка «Музыка» |
3d object | папка «Объемные объекты» в Windows 10 |
Запуск системных функций Windows, администрирование
В этой таблице представлены команды из строки «Выполнить», касающиеся работы с параметрами и средствами операционной системы Windows.
Настройка, проверка оборудования, устройства и сети
Для настройки устройств, аппаратной части компьютера, сети, требуется получить доступ к параметрам устройств или системы.
В заключение, ознакомьтесь с командами, предназначенными для настройки, проверки оборудования компьютера, настройке устройств и сети.
Команда | Выполняемое действие |
---|---|
hdwwiz | мастер установки оборудования |
dxdiag | запуск диагностики DirectX средством DxDiag |
verifier | Диспетчер проверки драйверов |
mdsched | проверка оперативной памяти на ошибки средствами Windows |
chkdsk | проверка диска на ошибки средствами Windows |
systempropertiesadvanced | дополнительные параметры системы |
systempropertiesperformance | управление параметрами быстродействия |
systempropertiesdataexecutionprevention | предотвращение выполнение данных в параметрах быстродействия |
inetcpl.cpl | настройка параметров Интернет |
ncpa.cpl | настройка параметров сетевых подключений |
control netconnections | параметры сетевых подключений |
control keyboard | настройка клавиатуры |
control mouse | настройка параметров манипулятора «мышь» |
main.cpl | параметры мыши |
control printers | управление устройствами и принтерами |
printui | пользовательский интерфейс принтера |
colorcpl | управление цветом принтеров |
timedate.cpl | настройка параметров даты и времени |
mmsys.cpl | настройка звука |
sndvol | микшер громкости |
desk.cpl | настройка экрана, настройка разрешения дисплея |
dpiscaling | настройка параметров дисплея |
dccw | калибровка цветов экрана |
displayswitch | настройка проецирования дисплея |
joy.cpl | настройка игровых устройств |
irprops.cpl | настройка параметров инфракрасной связи |
powercfg.cpl | управление настройками электропитания |
devicepairingwizard | добавление нового устройства |
fsquirt | передача файлов по Bluetooth |
msdt | средство диагностики службы поддержки |
tabletpc.cpl | параметры пера и планшета |
fxscover | редактор титульных страниц факсов |
Если я что-то упустил, можете добавить новые команды для меню «Выполнить» в комментариях к этой статье. Некоторые команды я не включил в таблицы из-за того, что они не работали у меня в операционной системе Windows 10.
Выводы статьи
Для запуска системных средств и приложений, на ПК используются команды «Выполнить», с помощью которых пользователь получает быстрый доступ к системным инструментам. В статье представлено большое количество команд для выполнения необходимых действий в операционной системе Windows.
Читайте также: