Многие, прочитав заглавие, улыбнутся: ну что же здесь сложного? Однако вдумайтесь: что же происходит с ПК после нажатия кнопки Power (включение питания)? Этот вопрос редко задают себе как начинающие, так и опытные пользователи. Автору приходилось задавать его и специалистам в области компьютерной техники, но исчерпывающих ответов было мало. Тем не менее при сбоях или отказе компьютера знание основ процесса начальной загрузки во многих случаях помогает обнаружить или быстро локализовать неисправность.
Для конкретизации изложения рассмотрим процесс загрузки компьютера, оснащённого материнской платой, на которой установлен BIOS AWARD и Intel-совместимый микропроцессор, а в качестве ОС — Windows 98.
После нажатия кнопки Power источник питания выполняет самотестирование. Если все напряжения соответствуют номинальным, источник питания спустя 0,1. 0,5 с выдаёт на материнскую плату сигнал PowerGood, а специальный триггер, вырабатывающий сигнал RESET, получив его, снимает сигнал сброса с соответствующего входа микропроцессора.
Как включить выбор операционной системы при загрузке Windows
Следует помнить, что сигнал RESET устанавливает сегментные регистры и указатель команд в следующие состояния (не используемые в реальном режиме биты не указываются): CS = FFFFh; IP = 0; DS = SS = ES = 0 и сбрасывает все биты управляющих регистров, а также обнуляет регистры арифметическо-логического устройства. Во время действия сигнала RESET все тристабильные буферные схемы переходят в высокоимпендансное состояние.
С момента снятия этого сигнала микропроцессор начинает работу в реальном режиме и в течение примерно 7 циклов синхронизации приступает к выполнению инструкции, считываемой из ROM BIOS по адресу FFFF:0000. Размер области ROM BIOS от этого адреса до конца равен 16 байт, и в ней по указанному адресу записана команда перехода на реально исполняемый код BIOS.
В этот момент процессор не может выполнять никакую другую последовательность команд, поскольку нигде в любой из областей памяти, кроме BIOS, её просто не существует. Последовательно выполняя команды этого кода, процессор реализует функцию начального самотестирования POST (Power-On Self Test).
На данном этапе тестируются процессор, память и системные средства ввода/вывода, а также производится конфигурирование программно-управляемых аппаратных средств материнской платы. Часть конфигурирования выполняется однозначно, другая часть может определяться положением джамперов (перемычек или переключателей) системной платы, но ряд параметров возможно (а иногда и необходимо) устанавливать пользователю.
Для этих целей служит утилита Setup, встроенная в код BIOS. Параметры конфигурирования, установленные с помощью этой утилиты, запоминаются в энергонезависимой памяти, питаемой от миниатюрной батарейки, размещённой на материнской плате. Часть из них всегда хранится в традиционной CMOS Memory, объединённой с часами и календарём RTC (Real Time Clock). Другая часть (в зависимости от фирмы-производителя) может помещаться и в энергонезависимую (например, флэш) память (NVRAM). Кроме этой части статически определяемых параметров, имеется область энергонезависимой памяти ESCD для поддержки динамического конфигурирования системы Plug and Play, которая может автоматически обновляться при каждой перезагрузке компьютера.
Linux — худшая операционная система
Утилита BIOS Setup имеет интерфейс в виде меню или отдельных окон, иногда даже с поддержкой мыши. Для входа в Setup во время выполнения POST появляется предложение нажать клавишу DEL.
В других типах BIOS (в отличие от указанного выше) для этого может использоваться сочетание клавиш Ctrl+Alt+Esc, Ctrl+Esc, клавиша Esc, бывают и другие варианты (например, нажать клавишу F12 в те секунды, когда в правом верхнем углу экрана виден прямоугольник). В последнее время появились версии BIOS, в которых вход в Setup осуществляется нажатием клавиши F2, однако чаще клавиши F1 или F2 используются для вызова меню Setup, если POST обнаружит ошибку оборудования, которая может быть устранена сменой начальных установок. Для некоторых BIOS удержание клавиши INS во время POST позволяет установить настройки по умолчанию, отменяя все «ускорители». Это бывает удобно для восстановления работоспособности компьютера после попыток его неудачного «разгона». Выбранные установки сохраняются при выходе из Setup (по желанию пользователя) и начинают действовать с момента следующего выполнения POST.
При выполнении каждой подпрограммы POST записывает её сигнатуру (код) в диагностический регистр. Этот регистр физически должен располагаться на специальной плате диагностики (сигнатурном анализаторе, или так называемой POST-карте), устанавливаемой в слот системной шины при анализе неисправности. Такие POST-карты бывают в двух исполнениях: для шин ISA и PCI.
На данной плате обязательно устанавливается двухразрядный семисегментный индикатор, высвечивающий содержимое регистра диагностики. Возможно также наличие двоичного индикатора адреса. В пространстве ввода/вывода регистр занимает один адрес, зависящий от архитектуры РС (версии BIOS). Например, для ISA, EISA — 80h; ISA Compaq — 84h; ISA-PS/2 — 90h; для некоторых моделей EISA — 300h; MCA-PS/2 — 680h.
Имея в наличии подобный сигнатурный анализатор по индицируемым кодам, можно определить, на каком этапе остановился POST. Зная специфическую таблицу сигнатур для каждой версии BIOS, легко определить неисправность системной платы.
Перечислим в порядке выполнения основные тесты POST для BIOS AWARD V4.51 и их сигнатуры, высвечиваемые POST-картой на индикаторе регистра диагностики. Следует отметить, что далеко не все перечисленные ниже коды видны на индикаторе в процессе нормальной загрузки компьютера: некоторые высвечиваются лишь в том случае, если POST останавливается. Происходит это потому, что многие подпрограммы POST исполняются настолько быстро, что человеческий глаз не в состоянии уследить за индицируемым состоянием регистра диагностики, а некоторые коды появляются только при обнаружении неисправности. Для указанной версии BIOS первой исполняемой сигнатурой в последовательности POST является C0:
- C0- осуществляется программирование регистров микросхемы Host Bridge для установки следующих режимов:
- запрещается Internal и External Cache, а также операции с кэш-памятью;
- перед запретом Internal Cache очищается;
- Shadow RAM запрещается, вследствие чего происходит направление непосредственно к ROM циклов обращения к адресам расположения System BIOS. Эта процедура должна соответствовать конкретному чипсету;
- далее программируются РIIХ ресурсы: контроллер DMA, контроллер прерываний, таймер, блок RTC. При этом контроллер DMA переводится в пассивный режим.
- C1- с помощью последовательных циклов запись/чтение определяется тип памяти, суммарный объём и размещение по строкам. И в соответствии с полученной информацией настраивается DRAM-контроллер. На этом же этапе процессор должен быть переключён в Protected Mode (защищённый режим).
- C3- проверяются первые 256 кб памяти, которые в дальнейшем будут использованы как транзитный буфер, а также осуществляется распаковка и копирование System BIOS в DRAM.
- C6- по специальному алгоритму определяется наличие, тип и параметры External Cache.
- CF- определяется тип процессора, а результат помещается в CMOS. Если по каким-либо причинам определение типа процессора закончилось неудачно, такая ошибка становится фатальной и система, а соответственно и выполнение POST, останавливается.
- 05- осуществляется проверка и инициализация контроллера клавиатуры, однако на данный момент приём кодов нажатых клавиш ещё не возможен.
- 07- проверяется функционирование CMOS и напряжение питания её батареи. Если фиксируется ошибка питания, выполнение POST не останавливается, однако BIOS запоминает этот факт. Ошибка при контрольной записи/чтении CMOS считается фатальной и POST останавливается на коде О7.
- BE- программируются конфигурационные регистры Host Bridge и PIIX значениями, взятыми из BIOS.
- 0A- генерируется таблица векторов прерываний, а также производится первичная настройка подсистемы управления питанием.
- 0B- проверяется контрольная сумма блока ячеек CMOS, а также, если BIOS поддерживает PnP, выполняется сканирование устройств ISA PnP и инициализация их параметров. Для PCI-устройств устанавливаются основные (стандартные) поля в блоке конфигурационных регистров.
- 0C- инициализируется блок переменных BIOS.
- 0D/0E- определяется наличие видеоадаптера путём проверки наличия сигнатуры 55АА по адресу начала Video BIOS (C0000:0000h). Если Video BIOS обнаружен и его контрольная сумма правильная, включается процедура инициализации видеоадаптера. С этого момента появляется изображение на экране монитора, высвечивается заставка видеоадаптера, инициализируется клавиатура. Далее по ходу POST тестируется контроллер DMA и контроллер прерываний.
- 30/31- определяется объём Base Memory и External Memory, и с этого момента начинается отображаемый на экране тест оперативной памяти.
- 3D- инициализируется PS/2 mouse.
- 41- производится инициализация подсистемы гибких дисков.
- 42- выполняется программный сброс контроллера жёстких дисков. Если в Setup указан режим AUTO, производится детектирование устройств IDE, в противном случае параметры устройств берутся из CMOS. В соответствии с конфигурацией системы размаскируются прерывания IRQ14 и IRQ15.
- 45- инициализируется сопроцессор FPU.
- 4E- настраивается клавиатура USB. На данном этапе становится возможен вход в CMOS Setup по нажатию клавиши DEL.
- 4F- осуществляется запрос на ввод пароля, если это предусмотрено установками CMOS Setup.
- 52- производится поиск и инициализация ПЗУ дополнительных BIOS, а также картируется каждая из линий запросов прерывания PCI.
- 60- если в Setup включён данный режим, устанавливается антивирусная защита BOOT Sector.
- 62- осуществляется автоматический переход на зимнее или летнее время, для клавиатуры настраиваются состояние NumLock и режим автоповтора.
- 63- корректируются блоки ESCD (только для PNP BIOS) и производится очистка ОЗУ.
- B0- это состояние записывается в регистр сигнатурного анализатора только в случае наличия ошибок, например, при тесте Extended Memory. Если при работе в Protected Mode сбои отсутствуют, то POST не включает эту ветвь. При наличии страничных нарушений и других исключительных ситуаций управление будет передано на эту процедуру, она выведет код B0 в порт 80(84)h и остановится.
- FF- последний этап, на котором подводится итог тестирования — успешная инициализация аппаратных средств компьютера сопровождается одиночным звуковым сигналом, после чего осуществляется передача управления загрузчику BOOT-сектора.
Порядок поиска загрузочного диска на компьютерах x86 (FDD, жёсткие диски IDE и SCSI, устройства CD-ROM) задаёт BIOS. Современные BIOS позволяют переконфигурировать этот порядок, называемый последовательностью загрузки (boot sequence). Если при этом дисковод A: включён в последовательность загрузки первым и в нём находится дискета, BIOS попытается использовать эту дискету в качестве загрузочной.
Если дискеты в дисководе нет, BIOS проверяет первый жёсткий диск, который к этому времени уже инициализировался, и выполняет команду INT19h. Процедура обработки прерывания INT19h для загрузки BOOT-сектора должна прочитать сектор с координатами Cylinder:0 Head:0 Sector:1 и поместить его по адресу 0000:7С00h, после чего осуществляется проверка, является ли диск загрузочным. Сектор MBR (Master Boot Record — главная загрузочная запись) на жёстком диске находится по тому же физическому адресу, что и BOOT-сектор на дискете (цилиндр 0, сторона 0, сектор 1).
Если при проверке загрузочный сектор не обнаружен, т.е. два последних байта этого сектора (его сигнатура) не равны 55ААh, вызывается прерывание INT18h. При этом на экране появляется предупреждающее сообщение, зависящее от производителя BIOS компьютера.
Сектор MBR записывается на жёсткий диск программой FDISK, поэтому если HDD был отформатирован на низком уровне, во всех его секторах находятся нули и, естественно, первый сектор не может содержать необходимой сигнатуры. Отсюда следует, что сообщения об ошибке будут выдаваться, если диск не разбивался на разделы (логические диски). Главная загрузочная запись обычно не зависит от операционной системы (на платформах Intel она используется для запуска любой из операционных систем). Код, содержащийся в главной загрузочной записи, сканирует таблицу разделов (partition table) в поисках активного системного раздела. Если в таблице разделов активный раздел не обнаружен или хотя бы один раздел содержит неправильную метку, а также если несколько разделов помечены как активные, выдаётся соответствующее сообщение об ошибке.
Код главной загрузочной записи определяет расположение загрузочного (активного) раздела, считывая таблицу разделов, расположенную в конце MBR. Если активный раздел найден, производится чтение его загрузочного сектора и определяется, является ли он действительно загрузочным.
Попытка чтения может осуществляться до пяти раз, в противном случае выдаётся сообщение об ошибке, и система останавливается. Если загрузочный сектор найден, Master Boot Record передаёт управление коду загрузочного сектора в активном (загрузочном) разделе, который содержит загрузочную программу и таблицу параметров диска.
Загрузочный сектор раздела просматривает блок параметров BIOS в поисках расположения корневого каталога, а затем копирует из него в память системный файл IO.SYS (который, по сути, является частью DOS и включает в себя функции файла MSDOS.SYS из предыдущей версии DOS) и передаёт ему управление. IO.SYS загружает драйверы некоторых устройств и выполняет ряд операций, связанных с загрузкой.
Сначала IO.SYS считывает файл MSDOS.SYS. Нужно помнить, что этот файл не похож на одноимённые файлы из предыдущих версий DOS. В Windows 98 MSDOS.SYS является текстовым файлом, содержащим опции процедуры запуска. Затем загружается и отображается файл LOGO.SYS (стартовая заставка).
На следующем этапе IO.SYS считывает информацию из системного реестра, а также исполняет файлы CONFIG.SYS и AUTOEXEC.BAT (при их наличии в корневом каталоге). При этом загружаются драйверы устройств, работающих в реальном режиме работы процессора, выполняются некоторые системные установки. Ниже приводится неполный список возможных драйверов и программ, загружаемых на данном этапе.
DBLSPACE.BIN или DRVSPACE.BIN. Драйвер сжатия дисков.
HIMEM.SYS. Администратор верхней памяти в реальном режиме работы процессора.
IFSHLP.SYS. Оказывает содействие при загрузке VFAT и прочих файловых систем, поддерживающих Windows 98.
SETVER.EXE. Утилита, подменяющая номер версии операционной системы. Существуют программы, ориентированные на более ранние версии операционных систем и отказывающиеся функционировать под Windows 98. Благодаря SETVER.EXE подобной программе возвращается именно тот номер версии DOS, который её устраивает.
DOS=HIGH. Загружает DOS в область памяти HMA. Если в файле конфигурации CONFIG.SYS содержится инструкция для загрузки администратора отображаемой памяти EMM386.EXE, в эту строку добавляется параметр UMB, позволяющий EMM386.EXE использовать верхнюю память. Нужно помнить, что IO.SYS не загружает администратор EMM386.EXE автоматически. Поэтому, если планируется его использование, в файл CONFIG.SYS необходимо вставлять строку DEVICE=EMM386.EXE.
FILES=30. В этой строке определяется число создаваемых дескрипторов файла. Windows 98 не использует это параметр; он включён для совместимости с предыдущими версиями программ.
LASTDRIVE=Z. Здесь определяется последняя буква для логических дисков. Эта опция также введена для обратной совместимости и не используется Windows 98.
BUFFER=30. Определяет число создаваемых файловых буферов. Буферы файлов используются приложениями при вызовах подпрограмм ввода/вывода из файла IO.SYS.
STACKS=9,256. Этой записью определяется число кадров стека и размер каждого кадра.
FCBS=4. Данная команда задает число блоков управления файлом. Оба последних параметра применяются только для обратной совместимости.
На последнем этапе загружается и запускается файл WIN.COM. Он обращается к файлу VMM32.VXD. Если в компьютере установлен достаточный объём ОЗУ, то этот файл загружается в память, в противном случае организуется доступ к этому файлу на жёстком диске, что, естественно, увеличивает время загрузки.
Загрузчик драйверов реального режима сравнивает копии виртуальных драйверов устройств (VxD) в папке Windows/System/VMM32 и файле VMM32.VXD. Если виртуальный драйвер устройства существует и в папке и в файле, копия виртуального драйвера «помечается» в файле VMM32.VXD как незагружаемая.
Виртуальные драйверы устройств, не загруженные с помощью файла VMM32.VXD, загружаются из раздела [386 Enh] файла SYSTEM.INI папки Windows. Во время описанного процесса загрузчик драйверов виртуальных устройств реального режима постоянно проверяет правильность загрузки всех необходимых виртуальных драйверов устройств, а при появлении ошибки при загрузке нужного драйвера он пытается выполнить эту операцию ещё раз.
После загрузки виртуальные драйверы устройств реального режима инициализируются, затем файл VMM32.VXD переключает процессор в защищённый режим, и начинается процесс инициализации виртуальных драйверов устройств согласно их параметру InitDevice. Процедура загрузки ОС заканчивается загрузкой файлов KRNL32.DLL, GDI.EXE, USER.EXE и EXPLORER.EXE.
Если компьютер подключён к сети, то загружается сетевое окружение. Пользователю предлагается ввести имя и пароль для входа в сеть. Затем из системного реестра загружается конфигурация с параметрами, установленными по умолчанию. На последней фазе загрузке операционной системы производится обработка содержимого папки Startup (Автозагрузка) и запускаются указанные в ней программы. После этого ОС готова к работе.
Существует несколько стандартных способов, позволяющих видоизменить описанную выше процедуру запуска:
- при исполнении POST на этапе проверки памяти и инициализации загрузочных устройств нажать кнопку клавиатуры DEL для входа в программу Setup;
- вставить перед окончанием теста оборудования загрузочный диск (например, аварийный диск Windows 98);
- внести исправления в файл CONFIG.SYS;
- отредактировать файл AUTOEXEC.BAT.
Помимо них, Windows 98 предоставляет ряд менее очевидных методов для выполнения этой же задачи:
- после завершения теста оборудования клавишей F8 вызвать меню Startup;
- отредактировать инструкции запуска системы в файле MSDOS.SYS;
- использовать один из перечисленных методов для «остановки» в режиме DOS, после чего запустить Windows из командной строки с набором необходимых ключей;
- изменить содержимое папки Startup.
Источник: rus-linux.net
2.2. Общий принцип работы ос
Когда ОС запускается, прежде всего, стартует ядро, которое копируется в оперативную память (ОЗУ,RAM). Оно инициализирует все оборудование и загружает остальные модули ОС, которые затем перехватывают управление. Эти составляющие также являются системными программами, которые и выполняют основные функции ОС, перечисленные выше.
Таким образом, основная часть двоичного системного кода находится в оперативной памяти. Все остальные сервисы вызываются по мере необходимости пользователем или другими системными сервисами, например, по расписанию. Пользователь своими действиями может порождать события, воспринимаемые ОС как системный вызов. Системный вызовобращается к ядру, запрашивая у него тот или иной сервис, например, сервис ввода-вывода, то есть доступ к подсистеме ввода-вывода. Так, например, происходит при открытии любого файла.
Общий принцип взаимодействия подсистем:
При работе с периферийными устройствами(к ним относятся и устройства ввода-вывода [input/output], УВВ) ОС в оперативной памяти создает соответствующие буферы, в которые временно помещается обрабатываемый код и данные. Так происходит, например, при обращении к файлам, которые считываются с внешнего запоминающего устройства (ВЗУ) и помещаются в файловый буфер в ОЗУ. Кроме этого, файл помещается в таблицу открытых файлов и ему присевается дескриптор, по которому к нему может обращаться пользовательская программа.
При этом работает часть ядра, называемая подсистемой ввода-вывода. Также происходит и при печати.
Источник: studfile.net
Тема: «Запуск приложения в качестве службы ОС Windows»
Современный мир невозможно представить без новых технологий и компьютеров, они составляют неотъемлемую часть нашей жизни.
Каждый день мы выполняем различные задачи на персональных компьютерах, ноутбуках и прочей технике, и у нас может возникнуть желание запустить приложение как системную службу, учитывая, что в некоторые программы такая возможность встроена по умолчанию. у пользователя может возникнуть вопрос для чего нужно создание приложения в виде службы и какие преимущества оно дает? Клиентские приложения привязаны к сеансу пользователя.
Пользователь запускает приложение и останавливает его, а при завершении сеанса и выходе пользователя все приложения, запущенные от его имени, завершаются. Служба же управляется операционной системой и не зависит от наличия пользователя. Подобный принцип работы используется в серверных приложениях. Однако не каждое консольное приложение сможет запуститься как служба, а программы с графическим интерфейсом в принципе не умеют работать подобным образом. Но возможность запустить приложение как службу все же есть.
В данном курсовом проекте я рассматриваю как можно создать службу, управлять ей и удалять. Так же рассмотрим запуск службы в интерактивном режиме.
Выбранная мной тема является актуальной для многих пользователей операционной системы Windows.
Целью настоящей работы является закрепление знаний, получаемых в процессе изучения дисциплины, приобретение необходимых практических навыков самостоятельной работы с операционной системой Windows.
Запускать приложение в качестве службы мы будем с помощью программы NSSM (Non-Sucking Service Manager). NSSM представляет из себя свободное программное обеспечение с открытым кодом и поддерживает все операционные системы Microsoft, начиная с Windows 2000 и заканчивая Windows 10.
Изучение предметной области
Microsoft Windows (англ. windows — окна) — семейство операционных систем корпорации Майкрософт (Microsoft), ориентированных на применение графического интерфейса при управлении. Изначально были представлены многофункциональными надстройками для MS-DOS.
Операционная система Windows обеспечивает значительные удобства для программистов и пользователей [2]. Большинство пользователей компьютеров используют Windows в своей работе. Широчайшее распространение ОС Microsoft Windows сделало ее фактическим стандартом для компьютеров класса IBM.
К концу 2017 года Windows 10 не смогла опередить Windows 7 и стать самой популярной компьютерной операционной системой в мире. Об этом свидетельствуют данные сервиса NetMarketShare, который берет в рассмотрение данные 160 млн уникальных пользователей, просматривающих более 40 тыс. веб-ресурсов по всему миру.
По итогам декабря 2018 года Windows 10 оказалась установлена почти на 45% десктопов и ноутбуков в глобальном масштабе против 23% годом ранее. Доля Windows 7 хотя и сократилась за год — с 47,7% до 43,1%, но все равно осталась выше, чем у более свежей платформы [7].
В ОС Windows гораздо лучше, чем в других операционных системах:
— налажено взаимодействие между пользователем и компьютером;
— большинство повседневных задач выполняются с меньшими, чем когда-либо, затратами времени;
— решена значительная часть проблем с распределением памяти;
— встроенная сетевая поддержка значительно упрощает задачу надежного обмена информацией по компьютерным сетям;
— предусмотрена возможность присваивать папкам и файлам длинные и даже русские имена, что значительно облегчает работу пользователя;
— поддержка в Windows стандарта «plug-and-play» упрощает модернизацию оборудования;
— система ярлыков помогает быстро обращаться к часто используемым файлам, программам и папкам;
Большая часть всего этого доступна без ущерба для производительности ПК. А многие процессы, например печати, идут теперь гораздо быстрее благодаря 32-битному режиму и другим усовершенствованиям.
В отличие от DOS, Windows не только обеспечивает пользователям удобный и наглядный интерфейс для операций с файлами, дисками и пр., но и предоставляет новые возможности для запускаемых в «родной» среде программ.
Одними из основных целей разработчиков Windows являются:
— создание документированного интерфейса;
— резкое снижение требований к подготовке пользователя;
— упрощение работы на компьютере.
Следует также признать, что интерфейс Windows обладает массой достоинств. Предусмотрено все или почти все для удобной и безопасной работы. Почти любую операцию можно выполнить множеством способов, а продуманная система подсказок, сообщений и предупреждений поддерживает пользователя в течение всего сеанса работы.
Управление службами
Служба (Service) – это программа, работающая в фоновом режиме и обеспечивающая функционирование системы. Например, служба Удаленный реестр позволяет получить доступ к реестру компьютера по сети.
Для управления службами служит оснастка mmc «Службы». Чтобы ее найти, воспользуйтесь поиском по слову Службы в меню Пуск или на Панели управления. Другой способ запуска оснастки управления службами – ввести команду services. msc в строке поиска меню Пуск.
После запуска оснастки Службы вы можете просматривать список установленных служб, запускать и останавливать их, а также изменять параметры работы выбранной службы. Все описанные действия можно выполнить в окне свойств конкретной службы, которое вызывается двойным щелчком на ее имени.
Окно свойств службы содержит несколько вкладок. На вкладке Общие вы можете узнать основные сведения о выбранной службе: имя, описание, исполняемый файл службы и ее текущее состояние. Для изменения состояния службы предназначены кнопки Запустить, Остановить, Приостановить и Продолжить.
Для управления службами в Windows существует графическая утилита — службы (services.msc), для ее запуска необходимо перейти:
Панель управления (Control Panel) —> Администрирование (Administrative Tools) —> Службы (Services) или в строке поиска меню Пуск (Start) ввести services.msc.
Из этой консоли можно просматривать, запускать, останавливать, изменять параметры и тип запуска служб.
Различные варианты запуска служб.
1) Автоматически (отложенный запуск) — служба будет запущена спустя некоторое время после старта операционной системы, используется для служб, ненужных при загрузке операционной системы, позволяет оптимизировать процесс загрузки.
2) Автоматически — служба будет запущена при старте операционной системы.
3) Вручную — служба запускается пользователем, приложениями или другими службами.
4) Отключена – службу нельзя запустить.
Примечание: Существует еще один вариант (обязательная служба) — автоматически запускается и пользователь не может остановить эту службу).
Службами window можно управлять не только используя графическую утилиту, но и из командной строки windows cmd. Для запуска переходим в пункт меню: Пуск —> Выполнить —> В строку вводим команду cmd.exe. Ниже приведу команды для управления службами [5].
sc stop [имя_службы]
sc start [имя_службы]
sc delete [имя_службы]
· Запрос данных конфигурации для службы:
sc qc [имя_службы]
· Просмотр всех служб:
Особенностью служб является то, что они запускаются от имени пользователя LocalSystem — обладающего полными правами в системе.
Список всех служб расположен в ветке реестра:
Создание службы Windows
Запуск приложения блокнот Windows в качестве службы на Windows 8.1. осуществим с помощью программы NSSM.
Для создания службы с именем notepadнеобходимо запустить командную консоль (строку), перейти в папку с распакованным NSSM (для 64-разрядной Windows) и ввести команду nssm install notepad, которая открывает окно графического инсталлятора NSSM. Чтобы создать службу, достаточно в поле Path указать путь к исполняемому файлу и нажать кнопку «Install service». Дополнительно в поле Options можно указать ключи, необходимые для запуска службы (рис 1).
Рисунок 1 — Окно запуска графического инсталлятора NSSM.
Также на этапе создания новой службы можно указать некоторые дополнительные параметры.
На вкладке «Shutdown» перечислены методы остановки и таймауты, используемые при штатном завершении работы или аварийной остановке приложения (рис 2). Когда NSSM получает команду остановки (напр. при завершении работы приложения), то он пытается остановить контролируемое приложение штатным образом. Если же приложение не отвечает, то NSSM может принудительно завершить все процессы и подпроцессы этого приложения.
Всего есть четыре этапа завершения работы приложения, и по умолчанию они будет использоваться в таком порядке [4]:
· На первом этапе NSSM пытается сгенерировать и отправить событие Ctrl+C.Этот способ хорошо работает для консольных приложений или скриптов, но не применим для графических приложений;
· Затем NSSM определяет все окна, созданные приложением, и посылает им сообщение WM_CLOSE, инициирующее выход из приложения;
· Третьим этапом NSSM вычисляет все потоки, созданные приложением, и отправляет им сообщение WM_QUIT, которое будет получено если приложение имеет очередь сообщений потока;
· И в качестве последнего средства NSSM может вызвать метод TerminateProcess(), принудительно завершив работу приложения.
Рисунок 2 — Настройки выключения службы в NSSM.
Возможно отключить некоторые или даже все методы, однако для разных приложений срабатывают разные методы и для корректного завершения работы приложения рекомендуется оставить все как есть.
По умолчанию при падении службы NSSM пытается перезапустить ее. На вкладке «Exit actions» можно изменить автоматическое действие при нештатном завершении работы приложения, а также выставить задержку перед автоматическим перезапуском приложения (рис 3).
Рисунок 3 — Настройки выходя для службы NSSM
На вкладке «Input/Output (I/O)» можно задать перенаправление вводавывода приложения в указанный файл (рис 4).
Рисунок 5 — Вкладка I/O в NSSM
На вкладке «Environment» можно задать для службы новые переменные окружения, или переопределить существующие (рис 6).
Рисунок 6 — Вкладка Environment в NSSM
Также можно не пользоваться графической оболочкой и сразу создать службу в консоли такой командой: nssm install notepad ″C:Windowssystem32notepad.exe″
Управление службой Windows
После создания службы с помощью NSSM зайдем в оснастку Службы и найдем notepad. Как мы видим, с виду она ничем не отличается от остальных служб, мы также можем ее запустить, остановить или изменить режим запуска. Однако стоит обратить внимание, что в качестве исполняемого файла указан nssm.exe (рис 7).
Рисунок 7 — Свойства службы
А если зайти в Диспетчер задач, то мы увидим следующее: в качестве основного (родительского) процесса запущен NSSM, служба notepad запущена как его дочерний процесс, и уже в этом дочернем процессе запущено приложение Блокнот (рис 8).
Рисунок 8 — Служба NSSM в диспетчере задач
Для удаления службы вводим команду nssm remove notepad в командной строке и подтверждаем ее удаление (рис 9).
Рисунок 9 — Удаление службы в NSSM
Так же есть способ удаления службы без подтверждения, для этого необходимо ввести команду nssm remove notepad confirm.
ЗАКЛЮЧЕНИЕ
В заключении хочется отметить, что запуск приложения в качестве службы Windows в отличие от назначенных заданий работает постоянно, запускается при старте ПК и может контролироваться диспетчером служб Windows. Также сервис работает быстрее и занимает меньше памяти.
В данном курсовом проекте я рассмотрела, как можно создать службу, управлять ей и удалять ее. Также рассмотрела запуск службы в интерактивном режиме. И закрепила знания, получаемые в процессе изучения дисциплины, приобрела необходимые практические навыки самостоятельной работы с операционной системой Windows.
Курсовой проект
По дисциплине:Операционные системы
Тема: «Запуск приложения в качестве службы ОС Windows»
Выполнил студент: Юнусов Ы.
Руководитель: СТ.ПР. Маковий К.А.
Защищен «__» __________2019г.
С оценкой _______ _________
1 Изучение предметной области. 5
1.1 Понятие операционной системы.. 7
1.2 Операционная система Windows. 9
1.3 Управление службами. 11
2 Реализация запуска приложения в качестве службы Windows. 13
2.1 Создание службы Windows. 14
2.2 Управление службой Windows. 18
2.3 Запуск службы в интерактивном режиме. 20
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ.. 25
ВВЕДЕНИЕ
Современный мир невозможно представить без новых технологий и компьютеров, они составляют неотъемлемую часть нашей жизни.
Каждый день мы выполняем различные задачи на персональных компьютерах, ноутбуках и прочей технике, и у нас может возникнуть желание запустить приложение как системную службу, учитывая, что в некоторые программы такая возможность встроена по умолчанию. у пользователя может возникнуть вопрос для чего нужно создание приложения в виде службы и какие преимущества оно дает? Клиентские приложения привязаны к сеансу пользователя.
Пользователь запускает приложение и останавливает его, а при завершении сеанса и выходе пользователя все приложения, запущенные от его имени, завершаются. Служба же управляется операционной системой и не зависит от наличия пользователя. Подобный принцип работы используется в серверных приложениях. Однако не каждое консольное приложение сможет запуститься как служба, а программы с графическим интерфейсом в принципе не умеют работать подобным образом. Но возможность запустить приложение как службу все же есть.
В данном курсовом проекте я рассматриваю как можно создать службу, управлять ей и удалять. Так же рассмотрим запуск службы в интерактивном режиме.
Выбранная мной тема является актуальной для многих пользователей операционной системы Windows.
Целью настоящей работы является закрепление знаний, получаемых в процессе изучения дисциплины, приобретение необходимых практических навыков самостоятельной работы с операционной системой Windows.
Запускать приложение в качестве службы мы будем с помощью программы NSSM (Non-Sucking Service Manager). NSSM представляет из себя свободное программное обеспечение с открытым кодом и поддерживает все операционные системы Microsoft, начиная с Windows 2000 и заканчивая Windows 10.
Изучение предметной области
Microsoft Windows (англ. windows — окна) — семейство операционных систем корпорации Майкрософт (Microsoft), ориентированных на применение графического интерфейса при управлении. Изначально были представлены многофункциональными надстройками для MS-DOS.
Операционная система Windows обеспечивает значительные удобства для программистов и пользователей [2]. Большинство пользователей компьютеров используют Windows в своей работе. Широчайшее распространение ОС Microsoft Windows сделало ее фактическим стандартом для компьютеров класса IBM.
К концу 2017 года Windows 10 не смогла опередить Windows 7 и стать самой популярной компьютерной операционной системой в мире. Об этом свидетельствуют данные сервиса NetMarketShare, который берет в рассмотрение данные 160 млн уникальных пользователей, просматривающих более 40 тыс. веб-ресурсов по всему миру.
По итогам декабря 2018 года Windows 10 оказалась установлена почти на 45% десктопов и ноутбуков в глобальном масштабе против 23% годом ранее. Доля Windows 7 хотя и сократилась за год — с 47,7% до 43,1%, но все равно осталась выше, чем у более свежей платформы [7].
В ОС Windows гораздо лучше, чем в других операционных системах:
— налажено взаимодействие между пользователем и компьютером;
— большинство повседневных задач выполняются с меньшими, чем когда-либо, затратами времени;
— решена значительная часть проблем с распределением памяти;
— встроенная сетевая поддержка значительно упрощает задачу надежного обмена информацией по компьютерным сетям;
— предусмотрена возможность присваивать папкам и файлам длинные и даже русские имена, что значительно облегчает работу пользователя;
— поддержка в Windows стандарта «plug-and-play» упрощает модернизацию оборудования;
— система ярлыков помогает быстро обращаться к часто используемым файлам, программам и папкам;
Большая часть всего этого доступна без ущерба для производительности ПК. А многие процессы, например печати, идут теперь гораздо быстрее благодаря 32-битному режиму и другим усовершенствованиям.
В отличие от DOS, Windows не только обеспечивает пользователям удобный и наглядный интерфейс для операций с файлами, дисками и пр., но и предоставляет новые возможности для запускаемых в «родной» среде программ.
Одними из основных целей разработчиков Windows являются:
— создание документированного интерфейса;
— резкое снижение требований к подготовке пользователя;
— упрощение работы на компьютере.
Следует также признать, что интерфейс Windows обладает массой достоинств. Предусмотрено все или почти все для удобной и безопасной работы. Почти любую операцию можно выполнить множеством способов, а продуманная система подсказок, сообщений и предупреждений поддерживает пользователя в течение всего сеанса работы.
Источник: cyberpedia.su