Как разработать свой windows

Содержание
  1. Что нужно знать, чтобы написать операционную систему
  2. Что нужно знать, чтобы написать операционную систему
  3. Что такое ОС
  4. Кратко об истории операционных систем
  5. Составляющие операционной системы
  6. Ядро (англ. kernel)
  7. Системные программы
  8. Пользовательские программы
  9. Что необходимо знать
  10. Изучение информатики
  11. Изучение программирования
  12. Изучение языков программирования
  13. Язык ассемблера для x86
  14. Язык Cи
  15. Разработка ОС
  16. Сообщества, посвященные разработке ОС
  17. Заключение
  18. Как создать свою сборку Windows 10
  19. Как создать свою сборку Windows 10
  20. Виджеты на рабочий стол
  21. В Экселе не двигается курсор по ячейкам: в чем может быть проблема?
  22. Не работает правая кнопка мыши в Excel: где кроется проблема?
  23. Не работает фильтр в Excel: загвоздка, на которую мы часто не обращаем внимания
  24. Не отображаются листы в Excel: как вернуть вкладки без танцев с бубнами
  25. 1. Плюсы и минусы собственных сборок Windows
  26. 2. Алгоритм действий
  27. 3. Эталонный образ Windows 10
  28. 4. Нюансы с активацией
  29. 5. Создание виртуальной машины Hyper-V
  30. 6. Установка и настройка Windows 10 в режиме аудита
  31. 7. Удаление привязки к комплектующим (Sysprep)
  32. 8. Создание файла install.esd
  33. 9. Монтирование диска виртуальной машины в основной системе
  34. 10. Перепаковка ISO-образа дистрибутива Windows 10

Что нужно знать, чтобы написать операционную систему

Что нужно знать, чтобы написать операционную систему

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

Что такое ОС

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

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

По мере того как компьютеры становились более разнообразными и сложными, писать программы, которые работали и как ОС, и как приложение, стало попросту неудобно. Поэтому, чтобы программы было легче писать, владельцы компьютеров начали разрабатывать программное обеспечение. Так и появились операционные системы.

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

Кратко об истории операционных систем

Первая операционная система была создана в 1956 году компанией General Motors для единственного компьютера IBM. Остальные владельцы этих компьютеров последовали примеру и начали создавать собственные ОС.

Как можно догадаться, первые ОС сильно отличались друг от друга. Почти на каждом компьютере стояла своя система. Хоть они и облегчали написание программ, использовать такие программы можно было только на одном компьютере.

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

В эти же годы компании Control Data Corporation, Computer Sciences Corporation, Burroughs Corporation, GE, Digital Equipment Corporation и Xerox тоже начали реализовывать свои ОС.

В конце 60-х была разработана первая версия ОС Unix. Написанная на Си, свободно доступная первые годы, Unix привлекала всё больше внимания и аудитории. Она легко портировалась на новые системы и начала набирать обороты.

Многие современные ОС, включая Apple OS X и все разновидности Linux-систем, являются дальними потомками Unix.

Microsoft Windows, в свою очередь, была написана для ряда персональных компьютеров IBM.

Первая ОС от Microsoft называлась не Windows, а MS-DOS. Эта система была создана в 1981 году, когда систему 86-DOS купили у компании Seattle Computer Products и модифицировали её под требования IBM.

Всем привычное название Windows появилось в 1985, когда MS-DOS обзавелась графическим интерфейсом.

Apple OS X, Microsoft Windows и ряд Linux-систем (включая Android) сейчас контролируют большую часть рынка операционных систем.

Составляющие операционной системы

ОС состоит из двух основных частей:

  • ядро системы;
  • системные программы.

Ядро (англ. kernel)

Сердце операционной системы. Именно оно запускается первым при включении компьютера (не считая BIOS и загрузчик). Ядро контролирует ресурсы компьютера и обрабатывает запросы от системных программ.

Системные программы

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

Пользовательские программы

Не являются частью операционной системы. Именно эти программы уже имеют конкретное назначение. Текстовые редакторы, браузеры, медиа-плееры — всё это пользовательские программы. Они контролируются ядром и используют системные программы для доступа к периферии.

Что необходимо знать

Список вещей, которые необходимо знать для создания собственной ОС, очень длинный. Но в нём есть три основных пункта, на которые нужно обратить внимание в первую очередь:

  • базовое понимание компьютерной науки (информатики);
  • теория и опыт в программировании;
  • знание высоко- и низкоуровневых языков программирования.

Изучение информатики

Разработка ОС — это не тоже самое, что, скажем, веб-разработка. Тут нельзя будет просто и быстро разобраться в базовых вещах. Для начала нужно получить крепкий базис информатики и только потом переходить к другим темам.

Coursera: Computer Science 101 — это курс, который подойдёт для тех, кто только начал осваиваться в информатике и программировании. Если у вас уже имеются элементарные знания в в этой области, то пропустите этот курс и переходите к следующему.

Читайте также:  Действие всех кнопок windows

Udacity: Intro to Computer Science использует веб-разработку в качестве подхода к обучению компьютерной науке. Хоть курс и не направлен на непосредственную разработку ОС, он даёт мощный базис в области программирования.

edX: Introduction to Computer Science — этот курс является самым исчерпывающим и углублённым в этом списке. Несмотря на это, он полностью бесплатен. Курс был разработан в Гарвардском Университете. В нём вас научат алгоритмам, структурам данных, управлению ресурсами, разработке ПО, а так же познакомят с такими языками программирования, как C, PHP и JavaScript.

Подборка книг для самостоятельного изучения Computer Science.

Изучение программирования

С крепкими знаниями в области информатики и хотя бы базовым пониманием программирования вам нужно набраться опыта в разработке проектов.

Udacity: Software Development Process — отличный курс для тех, кто ещё не принимал участие в крупных проектах. Тут вас ознакомят с подробностями рабочего процесса и работой с инструментарием (например Git), а также расскажут о настройке интегрированной среды разработки.

Изучение языков программирования

Для разработки операционной системы вам понадобится освоить минимум два языка программирования:

  • низкоуровневый язык ассемблера;
  • высокоуровневый язык программирования.

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

Высокоуровневые языки программирования, в свою очередь, работают сразу на нескольких архитектурах. Самый популярный из таких языков — Cи. Чаще всего именно на нём и пишутся операционные системы. Но это не означает, что этот язык единственный. Для написания ОС можно использовать и более высокоуровневые языки, например C++ или Python.

Прим. перев. Есть пример написания «игрушечных» операционных систем на C#. Cosmos — некий конструктор ОС. В этой статье на практическом примере показывают написание системы всего в нескольких десятках строк.

Язык ассемблера для x86

«x86 Assembly Guide» — неплохо подойдёт для начального изучения ассемблера. Несмотря на то, что эта статья коротка для полного курса, в ней содержится всё необходимое для дальнейшего углубления.

Книга «Programming from the Ground Up» Джонатана Бартлетта является одной из основных по изучению ассемблера. В ней основами языка программирования подкрепляются базисы информатики.

Для изучения ассемблера есть ещё одна показательная книга — «The Art of Assembly Language», написанная Рэнди Гайдом. Изначально книга писалась специально для курсов, которые вёл автор в Калифорнийском университете Cal Poly и UC Riverside. В середине 90-х годов книга была признана определяющей в этой сфере.

Если вдруг вышеописанные материалы вам не подошли, вот ещё пара отличных книг:

Язык Cи

Как уже упоминалось выше, для написания ОС есть несколько высокоуровневых языков программирования. Однако самый популярный из них — Си.

Начать изучать этот язык можно отсюда. Этот ресурс ознакомит вас с базовыми понятиями и подготовит к более сложным задачам.

«Learn C the Hard Way» — название ещё одной книги. Кроме привычной теории в ней собрано много практических решений. Этот учебник расскажет обо всех аспектах языка.

Либо же можете выбрать одну из этих книг:

Разработка ОС

После освоения всего необходимого, что касается информатики, языка ассемблера и Cи, вам стоит прочесть хотя бы одну или две книги про непосредственную разработку ОС. Вот несколько ресурсов для этого:

«Linux From Scratch». Здесь рассматривается процесс сборки операционной системы Linux (учебник переведён на много языков, в том числе и на русский). Тут, как и в остальных учебниках, вам предоставят все необходимые базовые знания. Полагаясь на них можно попробовать себя в создании ОС. Чтобы сделать программную часть ОС более профессиональной, присутствуют дополнения к учебнику: «Beyond Linux from Scratch», «Automated Linux from Scratch», «Cross Linux from Scratch» или «Hardened Linux from Scratch».

«The little book about OS development» Эрика Хэйлина и Адама Ренберга. Этот учебник разработан в рамках продвинутого курса информатики и на момент его написания авторы являлись студентами Королевского Института Технологий в Стокгольме. В этой книге рассматривается разработка ОС для архитектуры x86 (причём с самого начала — с установки среды разработки). В этом курсе рассказывается о многих интересных темах, включая многозадачность, управление памятью и разработку файловой системы.

«Operation System Development Series» Broken Thorn Entertainment — серия из 25 уроков, посвящённых разработке ОС с нуля.

Примечание Эти уроки рассчитаны на то, что вы уже знакомы с IDE и владеете как языком ассемблера, так и Cи.

Вот ещё три книги, которые помогут вам ознакомиться с дисциплиной разработки ОС:

Сообщества, посвященные разработке ОС

Заниматься разработкой ОС в одиночку смело, но сложно. Гораздо проще найти единомышленников, которые, как и вы, решили попытать удачу в этом нелёгком деле. Существует пара подходящих мест:

  • OSDev.org — это Вики с исчерпывающей информацией о разработке ОС и отличным форумом, где вы можете попросить о помощи или же наоборот сами кого-нибудь выручить.
  • OS Development Channel на Реддите. Канал, также посвящённый разработке ОС.
  • Computer Science, Programmers, StackOverflow от StackExchange — площадки, где вы можете задавать различные технические вопросы.

Заключение

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

Читайте также:  Проверить порты kali linux

Как создать свою сборку Windows 10

Как создать свою сборку Windows 10

Виджеты на рабочий стол

В Экселе не двигается курсор по ячейкам: в чем может быть проблема?

Не работает правая кнопка мыши в Excel: где кроется проблема?

Не работает фильтр в Excel: загвоздка, на которую мы часто не обращаем внимания

Не отображаются листы в Excel: как вернуть вкладки без танцев с бубнами

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

1. Плюсы и минусы собственных сборок Windows

Какие плюсы у собственных сборок Windows? Своя сборка системы — это экономия времени и усилий при установке системы. Например, можно подготовить дистрибутив Windows 10 со стандартным набором программ для круга близких: браузер, архиватор, торрент-качалка, чистильщик, деинсталлятор и подобного рода софт для широкой аудитории будет устанавливаться вместе с системой. Выгоды по сравнению с обычным дистрибутивом Windows очевидны, а что получим в противовес прочим способам развертывания системы? Своя сборка Windows, эталонный образ которой создавался на GPT-диске, в дальнейшем может быть развернута на MBR-диске и наоборот. Тогда как перенос системы с помощью программ-бэкаперов или менеджеров дискового пространства не поможет при смене стиля разделов диска. В отличие от последних, собственная сборка на установочном носителе не будет привязана к файлу резервной копии на несистемном разделе диска или съемном устройстве, как и не нужно будет подключать жесткий диск назначения для клонирования Windows.

У собственных сборок Windows три минуса. Первый – дистрибутив своей сборки будет занимать больше места, чем чистый дистрибутив Microsoft. Но эта проблема решается использованием флешки с объемом как минимум 8 Гб. Второй минус – процесс установки Windows продлится немного дольше, чем обычно, что связано с развертыванием добавленного софта. Третий минус – это волокита с созданием сборки. Затраченные усилия вряд ли будут оправданы, если система переустанавливается редко.

2. Алгоритм действий

Процесс создания своей сборки Windows 10 будет проходить в несколько основных этапов:

  • Создание эталонного образа системы – подготовленного к развертыванию идеального состояния системы (с проведенными настройками и внедренным ПО, без привязки к комплектующим компьютера);
  • Захват эталонного образа в файл install.esd;
  • Перепаковка оригинального установочного ISO-образа системы с подменой файла install.esd.

3. Эталонный образ Windows 10

Эталонный образ Windows 10 можно подготовить разными способами, это может быть:

  • Наработанная система с удаленной привязкой к комплектующим при помощи утилиты Sysprep (см. п. 7 статьи);
  • Новая Windows 10, установленная на другом разделе диска;
  • Новая Windows 10 на борту виртуальной машины.

Наработанную систему необходимо тщательно почистить – удалить файлы в папках пользовательского профиля, почистить папки «Temp» и т.п. Иначе дистрибутив получится гигантских размеров. С новыми системами проще: во-первых, дистрибутив на их базе будет занимать меньше места, во-вторых, в процессе их установки эталонный образ Windows 10 можно создать с нуля в режиме аудита — специальном режиме работы системы без участия пользовательской учетной записи. Режим аудита предусмотрен компанией Microsoft для внедрения корпоративных настроек и софта OEM-поставщиками и крупными организациями перед поставкой компьютеров, соответственно, покупателям и наемному персоналу. На выходе получим нужным образом настроенною систему с установленным десктопным ПО, на этапе установки которой можно формировать новые учетные записи, задавать региональные параметры, отключать опции отправки данных компании Microsoft и т.п. При этом нигде не будет болтаться старая учетная запись.

В нашем случае эталонный образ Windows 10 создадим с нуля в режиме аудита при помощи Hyper-V. Этот гипервизор был выбран из-за удобства в работе и простоты переноса больших объемов данных с виртуальной машины в основную систему. Диски VHDX и VHD, используемые в работе виртуальных машин Hyper-V, монтируются в основную систему средствами проводника. Сторонники других гипервизоров — VMware Workstation и VirtualBox – могут использовать их. Чтобы упростить доступ к данным виртуального диска с основной системы и не возиться с дополнениями гостевых ОС, виртуальные машины можно создать на базе VHD-дисков. И VMware Workstation, и VirtualBox работают с дисками VHD.

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

4. Нюансы с активацией

Понятие собственной сборки Windows необходимо отличать от пиратских сборок системы, поставляемых активированными или с активатором на рабочем столе. Цель этой статьи – упростить процесс установки Windows, но не решать вопрос с ее активацией. Эталонный образ Windows 10 будет создан с использованием средств, не противоречащих политике Microsoft — собственно, ее же инструментов. А их использование не гарантирует работоспособность активированных сборок системы. Напомним, требования Microsoft таковы: активация каждой копии Windows, с какого бы дистрибутива она ни устанавливалась, на каждом отдельном компьютере. Если в качестве эталонного образа выступает активированная наработанная Windows, в процессе удаления привязки к комплектующим с помощью утилиты Sysprep необходимо сбросить активацию (см. п. 7 статьи).

Ищущим способ переноса активированной Windows на другие компьютеры сюда.

5. Создание виртуальной машины Hyper-V

Итак, для подготовки эталонного образа Windows 10 создаем виртуальную машину. Условия работы с Hyper-V, активация гипервизора, а также процесс создания виртуальной машины в деталях описываются в статье сайта «Hyper-V в составе Windows 10». Только, в отличие от рассмотренного в п. 5 этой статьи примера, выбор поколения виртуальных машин не принципиален, можно создать и машину 1 поколения. Если не планируется внедрение ресурсоемкого софта типа игр, можем ограничиться объемом создаваемого жесткого диска VHDX в 50-60 Гб. Ну и избитый совет для владельцев SSD – путь хранения файлов виртуальной машины и VHDX-диска нужно указывать на разделе HDD. На последнем этапе создания виртуальной машины указываем ISO-образ со свежим дистрибутивом Windows 10, включаем машину и запускаем процесс установки системы. Последний будет отличаться от того, как это происходит обычно.

Читайте также:  Linux pid open files

6. Установка и настройка Windows 10 в режиме аудита

Проходим процесс установки Windows 10 до этапа выбора типа установки и выбираем второй вариант.

Нам понадобится два раздела – один для Windows, другой несистемный, куда впоследствии будет сохранен файл install.esd. Формируем раздел С из 30-40 Гб.

Оставшееся место отдаем другому разделу.

По завершении этапа копирования файлов установочный ISO-образ не извлекаем из виртуальной машины, он нам еще понадобится. На этапе установки, где необходимо задать первые настройки, ничего не трогаем, просто жмем клавиши Ctrl+Shift+F3.

5

Войдем в режим аудита с подключением скрытой учетной записи администратора.

На входе в систему в режиме аудита нас встречает окно утилиты Sysprep. Утилита будет дожидаться своей участи, чтобы провести удаление привязки настроенной системы от комплектующих. Можно приступать к настройке системы. Один нюанс: в режиме аудита не работает Microsoft Edge, для доступа к Интернету нужно запустить Internet Explorer.

7

Что касается пределов вмешательства в систему, в режиме аудита можем работать со всем, что не относится к пользовательским учетным записям. Можем устанавливать десктопное ПО, менять системные настройки, применять твики, оставлять папки или файлы на рабочем столе. А вот универсальные приложения из Windows Store установить не получится. Как и Microsoft Edge, магазин не работает в режиме аудита. Не получится даже при условии активации системы сменить тему оформления или прочие параметры персонализации. Для установки универсальных приложений и применения настроек персонализации нужна пользовательская учетная запись, а не скрытая администратора.

Если понадобится перезагрузить систему, например, это требуется для доустановки каких-то программ, этот процесс нужно провести с помощью окна Sysprep: необходимо выставить значения «Переход в режим аудита» и «Перезагрузка». Затем нажать «Ок».

Параллельно с настройкой системы необходимо сделать важную вещь – отформатировать несистемный раздел диска.

7. Удаление привязки к комплектующим (Sysprep)

Итак, эталонный образ системы готов. Теперь можем приступать к процессу удаления привязки к комплектующим. Обращаемся к окну открытой утилиты Sysprep или запускаем ее нажатием клавиш Win+R и вводом:

В открывшейся папке будет содержаться EXE-файл запуска утилиты.

В окне Sysprep выставляем действие «Переход в окно приветствия (OOBE)». Ставим галочку «Подготовка к использованию» для сброса активации. В параметрах завершения работы указываем «Завершение работы». И жмем «Ок».

Дожидаемся окончания работы Sysprep и выключения виртуальной машины.

8. Создание файла install.esd

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

На первом этапе установки системы жмем клавиши Shift+F10.

С помощью утилиты DISM осуществим захват эталонного образа системы и сохраним его в файл install.esd. Но прежде посмотрим, под какими буквами значатся два нужных раздела – системный и раздел назначения, куда будет сохранен install.esd. Вводим:

В нашем случае диск системы значится как D, а несистемный – как E. Потому команда захвата образа системы будет такой:

В этой команде, соответственно, в каждом отдельном случае необходимо заменить буквы E и D на свои.

12

По завершении операции выключаем виртуальную машину. Она нам больше не понадобится.

9. Монтирование диска виртуальной машины в основной системе

Чтобы диск виртуальной машины отображался в основной системе, где будут происходить дальнейшие действия, открываем в проводнике файл диска этой машины VHDX (или VHD). В контекстном меню жмем «Подключить».

13

Все разделы виртуального диска отобразятся в проводнике как отдельные диски. В нашем случае выбираем последний диск M, именно там хранится файл install.esd. После перепаковки ISO-образа виртуальный диск нужно будет размонтировать, это делается с помощью опции «Извлечь» в контекстном меню любого из добавленных разделов виртуального диска.

14

Новоиспеченным файлом install.esd заменим оригинал в составе официального дистрибутива Windows 10.

10. Перепаковка ISO-образа дистрибутива Windows 10

Заменять одни файлы на другие в составе загрузочного ISO-образа могут многие программы, в нашем случае для перепаковки выбрана программа UltraISO . Запускаем ее. Жмем меню «Файл», затем – «Открыть» и в проводнике указываем путь к ISO-образу, с которого осуществлялась установка Windows 10 на виртуальную машину.

15

Содержимое ISO-образа отобразится в верхней части окна UltraISO. Здесь открываем папку «sources» и удаляем в ней исходный файл install.esd. В нашем случае он весил 3,7 Гб. Нижняя часть окна UltraISO – это системный проводник, здесь открываем подмонтированный раздел диска (или нужный раздел реального диска), на котором хранится новоиспеченный файл install.esd. В нашем случае он весит 4,09 Гб. Новоиспеченный файл либо перетаскиваем в верхнюю часть окна — туда, где был файл исходный, либо добавляем с помощью контекстного меню.

16

Проверяем: в папке «sources» образа диска должен находится не исходный install.esd с весом в 3,7 Гб, а новоиспеченный install.esd с весом в 4,09 Гб.

17

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

18

Дожидаемся завершения прогресса операции.

Теперь осталось только протестировать свою сборку Windows 10 на новой виртуальной машине.

Оцените статью