Как создать операционную систему для компьютера: 13 шагов (с изображениями)

Оглавление:

Как создать операционную систему для компьютера: 13 шагов (с изображениями)
Как создать операционную систему для компьютера: 13 шагов (с изображениями)

Видео: Как создать операционную систему для компьютера: 13 шагов (с изображениями)

Видео: Как создать операционную систему для компьютера: 13 шагов (с изображениями)
Видео: Как установить новый Linux Ubuntu 23.04 💿 Обзор Linux Ubuntu 23.04 2024, Апрель
Anonim

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

Шаги

Часть 1 из 2: изучение основ

Создайте операционную систему для компьютера Шаг 1
Создайте операционную систему для компьютера Шаг 1

Шаг 1. Пройдите несколько базовых курсов по информатике

В отличие от разработки для Интернета, создание операционной системы требует глубокого понимания алгоритмов, структур данных, компьютерного оборудования и управления ресурсами. Люди получают ученые степени в этой области, поэтому не ожидайте, что они напишут всю операционную систему после прочтения онлайн-руководства! Курс Harvard Intro to Computer Science доступен онлайн через EDX бесплатно.

Создание операционной системы для компьютера Шаг 2
Создание операционной системы для компьютера Шаг 2

Шаг 2. Изучите язык программирования высокого уровня, такой как Python

После того, как вы получите твердое фундаментальное понимание информатики, следующим шагом будет овладение C и / или C ++. Как и изучение информатики, владение языком не является обязательным - вы не сможете программировать операционную систему, если не умеете писать надежные приложения.

Если вы новичок в C, ознакомьтесь с курсом Dartmouth C Programming: Getting Started, который предоставляется бесплатно через EDX. После завершения этого курса вы можете пройти следующий курс из серии: Программирование на C: основы языка. Затем переходите к следующим курсам, таким как Модульное программирование и Управление памятью и Указатели и Управление памятью

Создайте операционную систему для компьютера Шаг 4
Создайте операционную систему для компьютера Шаг 4

Шаг 3. Изучите язык ассемблера

Языки ассемблера - это низкоуровневые языки, предназначенные для взаимодействия с разными процессорами. Поскольку сборка различается для разных типов процессоров (например, язык сборки x86 для процессоров Intel, AMD, VIA и других), вам необходимо узнать версию для типа процессора, для которого вы кодируете.

  • Эта книга с открытым исходным кодом, если ее прочитать полностью, может дать вам достаточно четкое представление о создании операционной системы.
  • «Искусство языка ассемблера» - настоятельно рекомендуемая книга о сборке, доступная как в Интернете, так и в автономном режиме.
  • Вам также следует тщательно изучить тип процессора (ов), на котором должна работать ваша операционная система. Руководства по архитектуре процессоров можно легко найти с помощью поиска в Google («Руководства Intel», «Руководства по ARM» и т. Д.).
Сделайте компьютерную операционную систему Шаг 5
Сделайте компьютерную операционную систему Шаг 5

Шаг 4. Изучите руководство по операционной системе

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

  • Bare Bones - это руководство, которое поможет вам написать ваше первое простое 32-битное ядро. После завершения обучения следующим шагом будет использование Meaty Skeleton для структурирования вашей собственной операционной системы.
  • Linux from Scratch - это онлайн-книга, которая проведет вас через создание вашей собственной операционной системы Linux.
  • Операционные системы от 0 до 1 - это бесплатная книга о создании различных операционных систем от начала до конца.
Сделайте компьютерную операционную систему Шаг 3
Сделайте компьютерную операционную систему Шаг 3

Шаг 5. Определите цели вашей операционной системы

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

  • Рассмотрите возможность разработки с командой других программистов. Наличие команды разработчиков, работающих над проектом, значительно сократит время разработки.
  • Добавьте цели, планы и вопросы своего проекта в общедоступный репозиторий, чтобы другие могли легко помочь вам.

Часть 2 из 2: Сборка вашей операционной системы

Развлекайтесь за компьютером Шаг 16
Развлекайтесь за компьютером Шаг 16

Шаг 1. Выберите среду разработки

Это платформа, которую вы будете использовать для написания кода своей новой операционной системы. Это вопрос личных предпочтений, но большинство людей используют либо Windows, либо разновидность UNIX. Если вы используете Windows, рекомендуется установить среду UNIX, например Cygwin или MinGW. Как правило, вы должны убедиться, что используемая вами среда включает в себя следующее:

  • GCC (компилятор Gnu). Если вы используете Windows, вы можете установить его в Cygwin или MinGW.
  • Binutils - это набор инструментов, используемых для управления объектными файлами. Опять же, если вы используете Windows, вы можете установить его в Cygwin.
  • Хороший текстовый редактор. Vim и emacs обычно используются в средах UNIX. Пользователи Windows могут использовать Блокнот или проверить Notepad ++ для обновления с несколькими вкладками.
  • Perl и / или Python. Один или оба рекомендуются для манипуляций со строками.
Сделайте операционную систему для компьютера Шаг 13
Сделайте операционную систему для компьютера Шаг 13

Шаг 2. Настройте вашу систему контроля версий

Написание операционной системы означает, что вы, вероятно, создадите сотни (или тысячи!) Строк кода. Когда вы работаете над исправлениями, это может сбивать с толку. Некоторые варианты для проверки - это CVS, Mercurial и Subversion.

Сделайте операционную систему для компьютера Шаг 6
Сделайте операционную систему для компьютера Шаг 6

Шаг 3. Определитесь с загрузчиком

Если вы не хотите создавать свой собственный, вы можете использовать существующий, например Grand Unified Bootloader (GRUB). Если вы действительно чувствуете себя достаточно смелым, чтобы написать код загрузчика, посмотрите Rolling Your Own Bootloader на OSDev.org.

Сделайте компьютерную операционную систему Шаг 9
Сделайте компьютерную операционную систему Шаг 9

Шаг 4. Выберите дизайн ядра

Ядро - это ядро вашей операционной системы, обеспечивающее интерфейс между пользователем и оборудованием компьютера. Есть монолитные ядра и микроядра. Монолитные ядра реализуют все службы в ядре, в то время как микроядра имеют небольшое ядро в сочетании с пользовательскими демонами, реализующими службы. В целом, монолитные ядра быстрее, но микроядра лучше изолированы от ошибок и надежнее.

Создание операционной системы для компьютера Шаг 12
Создание операционной системы для компьютера Шаг 12

Шаг 5. Начните с малого

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

Через две недели у вас не будет полноценной системы. Начните с загружаемой ОС, а затем переходите к интересным вещам

Создание операционной системы для компьютера Шаг 14
Создание операционной системы для компьютера Шаг 14

Шаг 6. Протестируйте новую операционную систему на виртуальной машине

Вместо того, чтобы перезагружать компьютер каждый раз, когда вы вносите изменения или переносить файлы с компьютера разработки на тестовую машину, используйте приложение виртуальной машины. VMWare - это распространенный вариант, который работает как с Windows, так и с Linux, как и Bochs. Проверьте возможные взаимоблокировки и другие ошибки и при необходимости исправьте их.

Создайте операционную систему для компьютера Шаг 15
Создайте операционную систему для компьютера Шаг 15

Шаг 7. Выпуск «релиз-кандидата»

«Вы можете сделать это, загрузив проверенный код в свой общедоступный репозиторий. Это позволит людям протестировать вашу операционную систему и сообщить о любых проблемах, с которыми они столкнутся.

Развлекайтесь за компьютером Шаг 28
Развлекайтесь за компьютером Шаг 28

Шаг 8. Сеть с другими разработчиками операционной системы

Существует целое сообщество разработчиков операционных систем, которые собираются на различных форумах, включая / r / osdev на Reddit и Software Engineering Stack Exchange. Один вы получили представление о разработке базовой операционной системы, прочитали существующие сообщения, чтобы увидеть, какие вещи возникают в процессе разработки.

Видео - с помощью этой службы некоторая информация может быть передана YouTube

подсказки

  • Не забудьте реализовать функции безопасности в качестве главного приоритета, если вы когда-нибудь захотите, чтобы ваша система была жизнеспособной.
  • После завершения разработки решите, хотите ли вы выпустить код с открытым исходным кодом или проприетарный.
  • Чтобы операционная система могла обрабатывать несколько процессоров, ваш диспетчер памяти должен иметь механизмы «блокировки», чтобы предотвратить одновременный доступ нескольких процессоров к одному и тому же ресурсу. «Блокировки», используемые для этого, потребуют наличия планировщика, чтобы гарантировать, что только один процессор получает доступ к критическому ресурсу в любой момент времени, а все остальные вынуждены ждать. Однако планировщик зависит от наличия диспетчера памяти. Это случай взаимоблокированной зависимости. Не существует стандартного способа решения подобных проблем; Как программист, вы должны быть достаточно опытными, чтобы найти его собственный способ справиться с этим.
  • Операционная система тоже может быть удобной для пользователя. Не забудьте добавить удобные для пользователя функции, сделав их неотъемлемой частью вашего дизайна.
  • Не присоединяйся посетите форумы OSDev.org и начните задавать очевидные вопросы. Это просто приведет к "Прочтите руководство" ответы. Вам следует попробовать прочитать Википедию и руководства для различных инструментов, которые вы хотите использовать.
  • Не начинай проект операционной системы, чтобы начать изучение программирования. Если вы еще не знаете C, C ++, Pascal или какой-либо другой подходящий язык наизнанку, включая манипуляции с указателями, низкоуровневые манипуляции с битами, сдвиг бит, встроенный язык ассемблера и т. Д., Вы не готовы к разработке операционной системы.
  • Если вы сделаете что-то опрометчивое, например, напишете случайные байты в случайные порты ввода-вывода, вы сломаете свою ОС и можете (теоретически) поджарить свое оборудование.

Рекомендуемые: