Как создать свою операционную систему с нуля
Книга «Операционная система с 0 до 1» опубликована на GitHub и имеет более 2 000 звездочек и 100 форков. Как понятно из названия, прочитав её, вы сможете создать свою собственную операционную систему — и, пожалуй, мало что в мире программистов может быть круче.
Благодаря этой книге вы научитесь следующему:
- Узнаете, как создать операционную систему на основе технической документации железа. В реальном мире это так и работает, вы не сможете использовать Google для быстрых ответов.
- Поймёте, как компьютерные компоненты взаимодействуют друг с другом, от софта к железу.
- Научитесь писать код самостоятельно. Слепое копирование кода не есть обучение, вы действительно научитесь решать проблемы. Кстати, слепое копирование может быть еще и опасно.
- Освоите всем привычные инструменты для низкоуровневой разработки.
- Познакомитесь с языком ассемблера.
- Выясните, из чего состоят программы и как операционная система запускает их. Небольшой обзор этой темы для любознательных мы давали в одном из наших материалов.
- Разберётесь, как проводить отладку программы прямо на железе с GDB и QEMU.
Если читать целую книгу у вас нет времени, но вы хотите получить краткий экскурс, прочтите две наших статьи, посвященных созданию ядра для собственной ОС: часть 1 и часть 2.
Что рекомендуется знать перед прочтением книги:
- Язык программирования C. Быстро освоить его можно, следуя нашему руководству.
- Базовые знания Linux. Достаточно изучить соответствующую рубрику на нашем сайте.
- Базовые знания в физике: атомы, электроны, протоны, нейтроны, напряжение.
- Закон Ома о соотношении напряжения, силы тока и сопротивления.
Книга совершенствуется и редактируется почти каждый день: вы и сами можете внести изменения или исправить опечатку. Операционная система, разработка которой послужила “сюжетом” для этой книги, опубликована на GitHub и также со временем улучшается.
Как создать свою операционную систему для телефона самостоятельно?
![]()
Чтобы понять, как создать свою операционную систему для телефона, нужно быть основательно подготовленным. Ведь операционная система для смартфона входит в область сложнейших задач по программированию, так как требует довольно обширных знаний, связанных не только с конкретным языком программирования.
Как создать свою операционную систему для телефона
Операционная система для телефона — это комплексное программное обеспечение, работающее непосредственно с системными ресурсами телефона, плю с является связующим звеном между телефоном и его пользователем. ОС полностью контролирует работу устройства, поэтому любая написанная программа пишется не под конкретное устройство, а под конкретную ОС.
Из чего состоит ОС телефона
- Ядро — это «сердечная мышца» любой ОС, которая всегда запускается первой при включении устройства. Именно ядро манипулирует системными ресурсами телефона.
- Системный софт — это программы, которые работают «над ядром». Они очень важны для самого ядра, потому что обеспечивают эффективную связь между ядром и приложениями пользователя. В такой софт входят драйвер, файловая система, программы для работы с сетью, системные утилиты и др.
- браузер ;
- аудиоплеер ;
- блокнот ;
- книга контактов ;
- мессенджеры ;
- и др.
Что необходимо знать, чтобы создать свою операционную систему для телефона
- Основы информатики. Сюда входит понимание таких вещей , как: алгоритмы, структуры данных, сортировка, манипулирование данными, абстрактное программировани е и мн. др.
- Английский язык на хорошем уровне. На русском языке очень мало технической документации по созданию операционных систем для телефонов — в основном все на английском. Это же касается и сообществ, которые могут вам помочь — все это только на английском. Помимо английского для общени я важен технический английский, чтобы вы могли понимать о чем идет речь в документации, а также правильно формулировать свои вопросы в сообществах.
- Язык программирования. Большинство операционных систем используют язык программирования С или С++, поэтому знать эти языки нужно будет в любом случае. Даже если решите создавать свою ОС на другом языке , примеры в документации и большинство готовых фрагментов кода будут именно на этом языке.
- Ассемблер. Даже если вы будете писать свою ОС на языке высокого уровня, то местами вам все равно придется применять Ассемблер, поэтому понимание и основы этого языка обязательны.
- Опыт в программировании. Если создание своей операционной системы для телефона — это первый ваш проект, то это довольно плохая идея. Вам кроме самого языка программирования нужно еще понимать как осуществляется контроль версий, отладка, оптимизация кода и мн. др.
- Много практики на языке, который хотите применять для создания сво е й операционной системы. Язык не должен быть для вас чем-то новым. Необходимо знать его тонкости и особенности, поэтому на этом языке у вас должно быть реализовано несколько успешных проектов.
- Понимание UNIX. Начав работу над свое й операционной системой для телефон а, вы очень быстро осознаете, что основной инструмент создания ОС тянется еще с UNIX-систем, а за основу ОС очень часто берется ядро Linux.
- Концепция операционных систем. Вы должны в общем понимать, как с технической стороны работают операционные системы на телефонах.
- И др.
Разработка операционной системы для телефона
- « Linux From Scratch ». Это полноценный учебник по сборке операционных систем Linux. Да, там описываются компьютерные операционные системы, но с технической стороны и мобильна я, и компьютерная ОС работают практически одинаково.
- «The little book about OS development» . Еще одна книга о разработке операционных систем для компьютера с самого начала — с установки IDE и до самого конца — до запуска ОС.
Заключение
Как разработать свою операционную систему для телефона? Нужно основательно подготовит ь ся и быть готовым к очень продолжительной работе над своим программным продуктом. Разработка собственной ОС для телефона — это очень сложная задача, но даже она посильна, если есть должное желание и упорство для мотивации к работе.
Мы будем очень благодарны
если под понравившемся материалом Вы нажмёте одну из кнопок социальных сетей и поделитесь с друзьями.
Как написать ОС под смартфон с нуля?
Всем привет! Захотелось написать ОС под смартфон, но информации по данной тематике совсем не нашел. Буду признателен, если объясните в чем разница разработки операционных систем под desktop и смартфоны.
Те, кто шарит в этом поделитесь источниками.
P.s. Знаю: Assembler, C, C++, C#, Python.
- Вопрос задан более трёх лет назад
- 11765 просмотров
2 комментария
Средний 2 комментария
Денис Загаевский @zagayevskiy
Какой ассемблера ты знаешь? Сколько ОС ты уже написал?

Напуркуа, монами? Их уже столько написано.
Лучше имеющиеся довести до ума.
Решения вопроса 1

В целом разработка ОС под смартфон будет отличаться от разработки ОС для десктопа в том плане, что вам нужно будет пересмотреть подход к работе с железом.
Главное отличие мобильного железа от десктопного в наличии ограничений по количеству потребляемой и рассеиваемой энергии.
Ваша задача будет заключаться в поиске оптимального способа использования аппаратных возможностей смартфона. Например отправлять все, что можно в спячку, когда со смартом ничего не происходит. Реагировать на аппаратные прерывания и т.д.
Плюс от смартфона требуется гарантированное время отклика. Оно не жесткое, к примеру 100мс, но смартфон должен отвечать на нажатие кнопок вне зависимости от того, какое приложение сейчас запущено.
Я бы рекомендовал брать какое-нибудь перспективное семейство устройств с прицелом на 5 лет и пилить под него.
Для вдохновления посмотрите на RTOS, RTX. Остерегайтесь кода Android и Tizen, там за основу взят Linux cо всеми его болячками.
Ответ написан более трёх лет назад
Нравится 4 3 комментария
Stalker_RED @Stalker_RED
Вы так говорите, будто в «десктопных» операционках это все не нужно.
Десктопные операционки иногда работают на ноутбуках, и тоже от батареи.

Что за болячки у линукса?

Stalker_RED, я говорю о том, что на десктопе все работает несколько иначе. Например на десктопе вам не нужен постоянно висящий стек поддерживающий связь с базовой станцией. А на телефоне он нужен. И он должен иметь гарантированное время отклика.
fedor, Linux не имеет гарантированного времени отклика системы, в нем недостаточно хорошо реализованы механизмы взаимодействия с пользовательским вводом и т.д.
Могу вам привести пример — графический редактор, где есть простой тач интерфейс. Просто быстро проведите пальцем и линия будет отставать. Гарантированное время отклика будет означать, что тач будет считан с устройства и отображен на экране за время, меньшее 1/60 секунды.
В таком случае у вас не будет задержки. Если не понимаете о чем я, проведите пальцем по песку, а потом по экрану андроида и все поймете.
Huawei представила собственную операционную систему для смартфонов
Huawei представила первые смартфоны на собственной операционной системе HarmonyOS, которая должна заменить Android на устройствах компании. Также она показала планшет и умные часы на новой платформе. Компания лишилась доступа к сервисам Google, который вместе с Apple доминирует на рынке, из-за санкций США
Huawei представила первые мобильные устройства на своей операционной системе HarmonyOS, говорится в пресс-релизе компании. Huawei запустила платформу на своем флагманском смартфоне Mate 40 и «раскладывающемся» смартфоне Mate X2, а также на планшете MatePad Pro и умных часах Watch 3 Series. Кроме того, на мероприятии в среду компания показала новые беспроводные наушники FreeBuds 4.
Huawei утверждает, что обновление на новую операционную систему получат примерно 100 различных устройств, в том числе более старые модели смартфонов. Компания подчеркивает, что преимущество ее системы — в способности работать на разных гаджетах, подключенных к интернету: от смартфонов до носимых устройств. «HarmonyOS дает общий язык для разных видов устройств, чтобы они подключились и работали совместно, давая пользователям более удобный, гладкий и защищенный опыт [взаимодействия]», — написала компания в пресс-релизе.
Huawei разрабатывала свою операционную систему с 2016 года, а показала ее в 2019-м. Первыми систему получили телевизоры Honor — этим брендом ранее владела Huawei. Компания ускорила переход на свою платформу из-за санкций США, которые запретили американским компаниям предоставлять свои технологии Huawei. В результате китайский производитель лишился возможности использовать на своих устройствах сервисы Google, включая магазин приложений Google Play. Google разрабатывает платформу Android, на которой работает большинство смартфонов в мире. Второй крупный игрок — Apple с системой iOS. Свои операционные системы ранее развивали Nokia, Samsung и Microsoft, но не выдержали конкуренции с Android и iOS.
«Huawei будет надеяться, что сможет последовать по шагам Apple, имея единую операционную платформу, которая распространяется во всех направлениях и обеспечивает бесшовный опыт взаимодействия пользователям, верящим в экосистему продуктов Huawei», — заявил CNBC ведущий аналитик компании CCS Insight Бен Вуд. Huawei смогла создать свой набор приложений, альтернативный программам Google — в том числе картографический сервис и браузер. Кроме того, Huawei запустила свой магазин приложений App Gallery, у которого по всему миру 540 млн активных пользователей в месяц, написал CNBC.
Покорители человечества: названы лучшие гаджеты последнего десятилетия
Покорители человечества: названы лучшие гаджеты последнего десятилетия