Как разработать операционную систему для компьютера
wikiHow работает по принципу вики, а это значит, что многие наши статьи написаны несколькими авторами. При создании этой статьи над ее редактированием и улучшением работали, в том числе анонимно, 90 человек(а).
Количество просмотров этой статьи: 78 405.
В этой статье:
Операционные системы, составленные из сотен тысяч строк кода, позволяют пользователям взаимодействовать с компьютерной техникой. Они обычно пишутся на языках программирования C, C++ и ассемблер.
![]()
Для начала обучитесь программированию. Знание ассемблера необходимо; настоятельно рекомендуется также иметь понятие о других дополнительных языках программирования более низкого уровня, например, С.
![]()
Определитесь, на какое устройство вы хотите загрузить операционную систему. Это может быть CD-диск, DVD-диск, устройство флэш-памяти, жесткий диск или другой компьютер.
![]()
Решите, какой вы хотите видеть вашу операционную систему. Должна ли это быть полная версия ОС с графическим интерфейсом пользователя (GUI) или, может быть, что-нибудь более минималистичное? Вам необходимо знать, в каком направлении двигаться, еще перед началом процесса.
![]()
Уточните, какую платформу процессора будет поддерживать ваша операционная система. AI-32 и x86_64 являются двумя наиболее распространенными версиями для персональных компьютеров, так что их можно считать наилучшим выбором.
![]()
Определитесь, предпочитаете ли делать все самостоятельно с нуля, или же имеются ядра, на основе которых вы бы хотели надстроить систему. Linux с нуля – проект для тех, кто желает, к примеру, создать свой собственный дистрибутив Linux.
![]()
Выберите, собираетесь вы использовать свой собственный загрузчик или предварительно созданный унифицированный системный загрузчик Grand Unified Bootloader (GRUB). Поскольку кодирование своей собственной программы загрузки требует обширных знаний в области компьютерного обеспечения и BIOS, это может отодвинуть график программирования действующего ядра.
![]()
- Чтобы собрать ОС с помощью кодов C или C++, вы, конечно, будете использовать то один компилятор, то другой. Это означает, что вы должны прочесть руководство/инструкции/документацию для выбранного компилятора C/C++, что поставляется в комплекте с программным обеспечением или доступно на веб-сайте дистрибьютора. Вам придется узнать множество сложных вещей о компиляторе, кроме того, для совершенствования C++ предстоит изучить его схему и ABI. Вы, как ожидается, поймете различные форматы исполнительных задач (ELF, PE, COFF, обычные бинарные и т.д.) и заметите, что собственный формат Windows, PE (.exe) защищен авторским правом.
![]()
Выберите интерфейс программирования приложений (API). Одной из подборок хорошего API является POSIX, так как она хорошо документирован. Все системы Unix имеют, по крайней мере, частичную поддержку POSIX, так что было бы тривиально пристраивать программы Unix на вашу операционную систему.
![]()
Определитесь с дизайном. Существуют монолитные ядра и микроядра. Монолитные ядра выполняют все службы в ядре, в то время как микроядра имеют маленькое ядро в сочетании с пользовательской реализацией сервисов. В общем, монолитные ядра быстрее, но микроядра имеют лучшую изоляцию и защиту от возможных неисправностей.
![]()
Рассмотрите вопрос о разработке и работе в команде. Таким образом, вам потребуется меньше времени на разрешение больших проблем, что позволит создать операционную систему лучшего качества за более короткие сроки.
![]()
Не стирайте ваш жесткий диск полностью. Помните, форматирование диска необратимо очистит все ваши данные! Используйте GRUB или другой менеджер для дублированной загрузки вашего компьютера с другой ОС, пока ваша версия не будет полностью готова функционально.
![]()
Начните с малого. Обратите внимание в первую очередь на мелочи, такие как отображение текста и прерывания, прежде чем переходить к сложным элементам, к примеру, к управлению памятью и многозадачности.
![]()
Сохраняйте резервную копию последней рабочей версии. Это дает определенное спокойствие в случае, если что-то пойдет абсолютно неправильно в текущей версии вашей ОС или последующих дополнениях. В случае поломки вашего компьютера и невозможности загрузки, как вы и сами понимаете, отличной возможностью станет наличие второй копии для работы, так что вы сможете устранить имеющиеся неисправности.
![]()
Протестируйте вашу новую операционную систему на виртуальной машине. Вместо перезагрузки компьютера каждый раз после внесения изменений или передачи файлов с рабочего компьютера тестовой машине вы можете использовать приложение для запуска ОС на виртуальной машине, в то время как ваша текущая ОС продолжает работать. Приложения VM включают в себя VMWare (которая также имеет сервер в свободном доступе), альтернативный открытый исходный код, Bochs, Microsoft Virtual PC (не совместим с Linux), а также XVM VirtualBox.
![]()
Выпустите релиз-версию. Это позволит пользователям рассказать вам о возможных недостатках в вашей операционной системе.
![]()
Операционная система также должна быть удобной для пользователя, так что не забудьте добавить полезные функции, которые станут неотъемлемой частью вашего дизайна.
- Когда разработка будет закончена, подумайте, хотите ли вы представить код в свободном доступе либо же установить частные права на него.
- Обязательно сделайте функции безопасности вашим основным приоритетом, если хотите, чтобы ваша система была жизнеспособной.
- Не начинайте проект разработки операционной системы с целью обучения программированию. Если вы не знаете C, C++, Pascal или какие-нибудь другие подходящие языки и свойства, в том числе типы указателя, операции с битами низкого уровня, переключение битов, встроенный ассемблер и т.д., – значит, еще не готовы для создания ОС.
- Просматривайте такие порталы, как OSDev и OSDever, которые помогут вам улучшить собственную операционную систему. Обратите особое внимание на то, что по большинству вопросов сообщество OSDev.org предпочитает, чтобы вы самостоятельно обращались к содержанию сайта, а не присоединялись к форуму. Если вы все же решили примкнуть к рядам форумчан, для этого должны быть определенные предпосылки. Вы обязаны досконально знать C или C++ и язык x86 ассамблер. Вы также должны понимать общие и комплексные понятия в программировании, такие как Linked Lists, Queues и т.д. Сообщество OSDev в своих правилах прямо говорит о том, что никто не собирается нянчить новых программистов. Если вы пытаетесь разработать ОС, само собой разумеется, что вы «бог» в области программирования. От вас также требуется прочесть руководство по работе с процессором касательно его архитектуры, выбранной вами; например, x86 (Intel), ARM, MIPS, PPC и т.д. Такой справочник по структуре процессора можно легко найти с помощью поиска в Google («Intel Manuals», «ARM manuals» и т.д.). Не регистрируйтесь на форуме OSDev.org, чтобы задавать очевидные вопросы. Это просто приведет к ответам вроде «Read the f*** ing Manual». Для начала вы должны попробовать почитать Википедию, пособия для различных инструментов, которые собираетесь использовать.
- Проверьте наличие потенциальных мертвых точек и других ошибок. Недочеты, тупики и другие проблемы могут повлиять на проект вашей операционной системы.
- Если вы хотите способ попроще, представьте дистрибутивы Linux — типа Fedora Revisor, Custom Nimble X, Puppy Remaster, PCLinuxOS mklivecd или SUSE Studio и SUSE KIWI. Тем не менее, создаваемая ОС принадлежит компании, которая первой представила этот сервис (хотя у вас есть права на ее свободное распространение, изменение и запуск, как вам нравится, под GPL).
- Хорошим решением будет создание совершенно нового раздела для разрабатываемой операционной системы.
Предупреждения
- Небрежное переписывание ОС на жесткий диск может повредить его полностью. Будьте осторожны
- У вас не получится полностью готовая система за две недели. Начните с загружаемой операционной системы, а затем переходите на более интересный материал.
- Если вы сделаете что-то опрометчивое, как, например, напишите беспорядочные байты в произвольных портах I/O, то уничтожите вашу ОС и можете (в теории) спалить ваше оборудование.
- Не ожидайте, что будет легко построить качественную операционную систему. Существует множество сложных взаимозависимостей. Например, для того, чтобы ОС была способна работать с несколькими процессорами, ваш диспетчер памяти должен иметь «блокирующие» механизмы для предотвращения доступа лишних процессоров в один и тот же ресурс одновременно. Используемые «блоки» предполагают наличие планировщика, чтобы убедиться, что только один процессор обращается к критическому ресурсу в любой момент времени, а все остальные находятся в режиме ожидания. Тем не менее, работа планировщика зависит от присутствия диспетчера памяти. Это пример зависимости от взаимоблокировки. Нет стандартного способа разрешить подобные проблемы; каждый создатель операционной системы, как ожидается, достаточно квалифицирован, чтобы найти свой собственный вариант их решения.
Как создать свою операционную систему с нуля
Книга «Операционная система с 0 до 1» опубликована на GitHub и имеет более 2 000 звездочек и 100 форков. Как понятно из названия, прочитав её, вы сможете создать свою собственную операционную систему — и, пожалуй, мало что в мире программистов может быть круче.
Благодаря этой книге вы научитесь следующему:
- Узнаете, как создать операционную систему на основе технической документации железа. В реальном мире это так и работает, вы не сможете использовать Google для быстрых ответов.
- Поймёте, как компьютерные компоненты взаимодействуют друг с другом, от софта к железу.
- Научитесь писать код самостоятельно. Слепое копирование кода не есть обучение, вы действительно научитесь решать проблемы. Кстати, слепое копирование может быть еще и опасно.
- Освоите всем привычные инструменты для низкоуровневой разработки.
- Познакомитесь с языком ассемблера.
- Выясните, из чего состоят программы и как операционная система запускает их. Небольшой обзор этой темы для любознательных мы давали в одном из наших материалов.
- Разберётесь, как проводить отладку программы прямо на железе с GDB и QEMU.
Если читать целую книгу у вас нет времени, но вы хотите получить краткий экскурс, прочтите две наших статьи, посвященных созданию ядра для собственной ОС: часть 1 и часть 2.
Что рекомендуется знать перед прочтением книги:
- Язык программирования C. Быстро освоить его можно, следуя нашему руководству.
- Базовые знания Linux. Достаточно изучить соответствующую рубрику на нашем сайте.
- Базовые знания в физике: атомы, электроны, протоны, нейтроны, напряжение.
- Закон Ома о соотношении напряжения, силы тока и сопротивления.
Книга совершенствуется и редактируется почти каждый день: вы и сами можете внести изменения или исправить опечатку. Операционная система, разработка которой послужила “сюжетом” для этой книги, опубликована на GitHub и также со временем улучшается.
как создать свою операционную систему на базе ядра linux или windows
На базе ядра Windows вы не создадите, нету же исходников.
На linux Linux From Scratch в помощь
ТС, ты Денис Попов? http://lurkmore.to/Денис_Попов
Не стесняйся, заходи под своим именем — Денис.
Никак. Ядро — это, собственно, и есть ОС. На базе чужого ядра свою собственную систему не сделаешь.
Уже попытки были!
На базе ядра Linux точно можно но на ядре Windows не знаю. Но ядро Linux можно скачать на оф. сайте найти его легко. И как-бы ядро Linux был разработан специально (по-моему если есть ошибки говорите) для создания операционных систем. Но минус в том что врятли заработаешь на этом ведь если ты один собираешься то из-за этого много проблем возникнет хотя они возникнули-бы даже если в команде работал но легче решить было-бы. И ещё не заработаешь потому-что нужна компания для продаж хотя если хочешь можешь диски которые стоят 50 руб. продавать со своей ОС за 100-600 руб всё зависит от самой ОС и самое главное в этом не спалиться перед сотрудниками Полиции ведь нужна лицензия для продажи ) лучше не нарушать законы в не сельских районах ) ну такой район где деревянные дома (частные и не дачи) и мало сотрудников полицейских. Лучше сначала просто выучи программирование а потом делай ОС. ) А чуть не забыл большинство ОС Linux бесплатны.
На ядре windows NT нельзя создать операционную систему так как оно закрытое, а на ядре Linux вполне можно потому что оно открытое (Open Source)
Как создать ос на базе Windows?
Здравствуйте!
В последнее время читаю новости вижу заголовки: «Гугл и эпл объединились для сознания новой ос на Unix», «Nokia и Intel объединились для создания ос Meego OS на базе ядра Linux», «андроид одна из лучших мобильных ос на ядре Linux», «дистрибутив linux». А почему нет фраз: «дистрибутив Windows», «»многие производители ноутбуков пытаются кастомизировать Windows», хотя «многие производители телефонов пытаются кастомизировать android для уникального внешнего вида»»?! Как можно написать свою ос на базе ядра DOS, Windows или на ОС Windows?! Как установить другую графическую оболочку на Windows?
Помогите, пожалуйста, без игнора!
Всем спасибо за ваши ответы заранее.
- Вопрос задан более трёх лет назад
- 1113 просмотров
4 комментария
Простой 4 комментария

играю в «угадай автора по заголовку вопроса», счёт 1:0 в мою пользу.
Nikname_non_name @Nikname_non_name Автор вопроса
vreitech, играю в «угадай автора по ответу», счёт 1:0 в мою пользу.
В последнее время читаю новости. создания ос Meego OS
Ты точно знаешь значение слова «новости»?
почему нет фраз. многие производители ноутбуков пытаются кастомизировать Windows
Может просто об этом нет смысла писать? Ведь производители ноутбуков вовсю кастомизируют винды на своих буках и «с каждым годом всё хуже и хуже»
Прочитав Ваши комментарии под другими ответами, я пришёл к выводу, что Вы не понимаете что такое исходный код. Когда вы установили Windows на компьютер, то никакого исходного кода у вас на компьютере не будет. Исходный код есть только у разработчиков этой операционной системы, они с клавиатуры набирают и модифицируют этот исходный код, а затем скармливают готовый исходный код компилятору (компилятор это программа для перевода исходного кода в машинный), а компилятор выдаёт уже исполняемый код (который Вы получаете при установке Windows), который уже подходит для исполнения процессором компьютера.
Исходный код модифицировать просто. Исполняемый код модифицировать очень трудно, т.к., во-первых, размер исполняемого кода, по сравнению с исходным, возрастает во много раз, во-вторых, исполняемый код читать намного труднее, чем исходный.
Решения вопроса 1

yay ✌️ t.me/kshnkvn
Linux — Open Source. Бери исходники и делай своё.
Unix — Open Source. Бери исходники и делай своё.
Windows — закрытый продукт. Исходники есть только у Microsoft, а если вы их где-то и найдете и попытаетесь использовать в своих целях — это будет нарушением авторского права.
Ответ написан более трёх лет назад
Нравится 4 13 комментариев
Nikname_non_name @Nikname_non_name Автор вопроса
а если вы их где-то и найдете и попытаетесь использовать в своих целях — это будет нарушением авторского права.
Во первых я человек свободный смотрю с высокой колокольни на «авторские» права, а во вторых зачем нужно работать с исходниками, если в системе через Linux костыли можно изменять файлы в папке windows, во вторых никто не запрещает редактировать регистр и служебную информацию о системе. Можно написать новую графическую оболочку и вот новая ОС, и никаких нарушений + есть утилита NTLite и режим аудита, которые позволят стать «богом» системы и изменять и сохранять всё данные в системе. Или так тоже нельзя?

Nikname_non_name, как все это связано с вашим вопросом?
Как создать ос на базе Windows?
Как установить другую графическую оболочку на Windows?
Никак.
Других вопросов я не вижу. То, что пишите вы — это внешние изменения, но Windows быть Windows’ом от этих изменений не перестанет, более того — распространять такие изменения так-же является нарушением авторских прав.
Повторяю — вы никак не можете на базе Windows создать свою ОС. И не только вы, а вообще все, кроме Microsoft.
Nikname_non_name @Nikname_non_name Автор вопроса
И не только вы, а вообще все
А как же люди делают Windows 9 Edition на базе Windows 7 и как делают Windows 11 на базе Windows 10 Etherprice LTSB ну и как же знаменитый зверь dvd, который даже в коробках продавался?!

Nikname_non_name, это всего лишь модифицированные сборки. Пара твиков системы + интерфейса и запаковывают в установщик. Но это все еще Windows и это незаконно.
который даже в коробках продавался?!
Вот вам пример, что случается с такими горе-продажниками. Так это он просто устанавливал и отдал почти 170000 рублей штрафов, схватят за руку за распространение незаконно модифицированной Windows — придется отдать значительно больше.
И да, отвечаю вам последний раз — изменить иконки, курсор параметры системы — это модификация ОС. А модификация ОС и создание ОС — это совершенно разные вещи.
Nikname_non_name @Nikname_non_name Автор вопроса
И да, отвечаю вам последний раз — изменить иконки, курсор параметры системы — это модификация ОС. А модификация ОС и создание ОС — это совершенно разные вещи.
Ну а как тогда наиболее простым способом создать свою ОС?

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