Встретил на Хабре очередную статью об написании "простой операционной системы с нуля" и решил поделится своими потугами на эту тему.
Рубрика «OSDev»
Разбор dos-подобной операционной системы. OzonOS
2024-11-09 в 19:15, admin, рубрики: OSDev, ассемблер, операционные системы, ПрограммированиеКак написать свою маленькую ОС
2024-03-11 в 9:00, admin, рубрики: BearSSL, Fomos, Godot Engine, GodotOS, javascript, linux, Oasis, OSDev, Rust, ruvds_статьи, SerenityOS, servo, shadow, UNIX, xv6, браузерный движок, операционная система, статическая связанность, экзоядроБольшое начинается с малого. Например, ядро Linux 0.0.1 состояло всего из 10 239 строк кода, из них 20% комментарии. Такой проект вполне может осилить студент в качестве курсовой или дипломной работы, программируя по вечерам на домашнем ПК (собственно, Линус и написал его во время учёбы в университете, когда вернулся из армии).
Если один студент смог это сделать тогда, то почему нельзя повторить? И действительно, в интернете есть даже специальные обучающие ресурсы для написания новых ОС и целые сообщества энтузиастов, которые помогают друг другу в этом непростом деле.Читать полностью »
Пишем операционную систему. Часть 1. Загрузчик
2020-05-30 в 23:59, admin, рубрики: OSDev, ассемблер, загрузчик, операционные системы, Программирование, с нуля, системное программированиеВсем привет! Сегодня мы напишем загрузчик, который будет выводить «Hello World» и запустим его на VirtualBox. Писать будем на ассемблере FASM. Скачать его можно отсюда. Также нам понадобится собственно VirtualBox и UltraISO. Перед тем как писать код, разберемся как загружаются операционные системы.
Итак, когда мы нажимаем большую кнопку включения на нашем компьютере запускается система, которая есть на любом компьютере — BIOS (Basic Input/Output System или базовая система ввода/вывода). Задача BIOS это:
OpenCV на STM32F7-Discovery
2019-06-26 в 12:40, admin, рубрики: DIY, embox, mcu, opencv, OSDev, stm32, stm32f7discovery, Блог компании Embox, микроконтроллеры, обработка изображений, портирование, портирование приложений, программирование микроконтроллеров, системное программированиеЯ один из разработчиков операционной системы Embox, и в этой статье я расскажу про то, как у меня получилось запустить OpenCV на плате STM32746G.
Если вбить в поисковик что-то вроде "OpenCV on STM32 board", можно найти довольно много тех, кто интересуется использованием этой библиотеки на платах STM32 или других микроконтроллеров.
Есть несколько видео, которые, судя по названию, должны демонстрировать то, что нужно, но обычно (во всех видео, которые я видел) на плате STM32 производилось только получение картинки с камеры и вывод результата на экран, а сама обработка изображения делалась либо на обычном компьютере, либо на платах помощнее (например, Raspberry Pi).
UHCI, или самый первый USB
2018-11-10 в 23:56, admin, рубрики: C, IT-стандарты, OSDev, uchi, usb, Компьютерное железо, периферия, системное программирование, старое железо
Доброго времени суток, дорогой читатель! Меня просили написать про UHCI — хорошо, пишу.
Возможно, вам пригодиться эта статья, если, к примеру, вы не имеете достаточных навыков написания драйверов и чтение документации к хардвейру. Простой пример: хотите написать свою ОС для мини-ПК, дабы какая-нибудь винда или очередной дистрибутив линукса не загружали железо, и вы использовали всю его мощь исключительно в своих целях.
Читать полностью »
Написание ОС: Многозадачность
2018-10-17 в 22:37, admin, рубрики: interrupts, IT-стандарты, multitasking, OSDev, pit, высокая производительность, периферия, системное программирование
Доброго времени суток, дорогой читатель, скорее всего, ты видел мою предыдущую статью о том, что самому можно написать работоспособную ОС за достаточно короткий срок. Что же, сегодня мы поговорим о реализации многозадачности в моей ОС. Читать полностью »
Написание собственной работоспособной ОС за полгода
2018-10-15 в 22:53, admin, рубрики: Brainfuck, C, dhcp, DNS, EHCI, hardware, IPv4, OSDev, SMP, tcp, udp, usb, ненормальное программирование, Процессоры, системное программирование, Совершенный код
Предыстория
Здравствуйте! Всех категорически приветствую, сегодня хотел бы рассказать Вам о своём опыте написание работоспособной ОС под архитектуру x86.
Как-то весенней ночью у меня родилась гениальная идея — попробовать себя в написании собственной ОС, которая может позволить запускать программы, работать с устройствами, да и в общем выжимать всю мощь из Intel'овской архитектуры в своих нуждах: к примеру, для своей фабрики или чего-либо иного. Моей целью было и есть написание такой ОС, которая могла бы позволить максимальную производительность для каких-то конкретных задач, не тратя процессорное время на всяческие излишества. В основном я преследую лишь спортивный интерес, получение опыта для себя в системном программировании и написания драйверов для устройств, которые используются повсеместно. Что из этого вышло — решать вам, сразу говорю, что не надо писать комментарии про создание собственного дистрибутива линукса, и преследовал интерес написать всё «From stratch» — с нуля, дабы хорошо погрузиться в тему ОСдева. Сразу хочу выразить огромную благодарность Бенджамину Лунту и форуму OSDev, так же как их Вики. Бен помог мне разобраться с EHCI, что несомненно внесло огромный вклад в мою ОС — USB устройства, они везде! Так же передо мной стояла задача создать собственную архитектуру, удобную мне, не исключая использование стандартов ELF-файлов.Читать полностью »
Ядра процессора или что такое SMP и с чем его едят
2018-10-15 в 15:42, admin, рубрики: APCI, apic, C, hardware, IT-стандарты, OSDev, pic, pit, SMP, Компьютерное железо, многозадачность, периферия, симметричная мультипроцессорность, системное программированиеВведение
Доброго времени суток, сегодня хотелось бы затронуть достаточно простую тему, которая почти никем из обычных программистов неизвестна, но каждый из вас, скорее всего, ей пользовался.
Речь пойдет о симметричной мультипроцессорности(в народе — SMP) — архитектура, которая встречается во всех многозадачных операционных системах, и конечно же, является неотъемлемой их частью. Каждый знает, что чем больше ядер у процессора — тем мощнее будет процессор, да, это так, но как ОС может использовать несколько ядер одновременно? Некоторые программисты не спускаются до такого уровня абстракции — им это попросту не надо, но думаю, всем будет интересно то, как же SMP работает.
Читать полностью »
ReactOS теперь запускается с BTRFS раздела
2018-08-01 в 14:12, admin, рубрики: btrfs, gsoc, open source, OSDev, reactos, WinAPI, Блог компании Фонд ReactOS, разработка под windows, реактос, реверс-инжиниринг, системное программированиеПривет! В этой серии мы продолжаем усиленно дружить драйвер WinBtrfs с ReactOS.
А этот ваш Windows так умеет?
Читать полностью »
Операционные системы с нуля; уровень 3 (старшая половина)
2018-05-03 в 1:25, admin, рубрики: OSDev, Rust, ассемблер, операционные системы, ОС, Программирование, программирование микроконтроллеров, системное программированиеВ этой части мы допишем обработку прерываний и возьмёмся за планировщик. Наконец-то у нас появятся элементы многозадачной операционной системы! Разумеется это только начало темы. Одно прерывание таймера, один системный вызов, базовая часть простого планировщика потоков. Ничего сложного. Однако этим мы подготовим плацдарм для создания полноценной системы, которая будет заниматься самыми настоящими процессами безо всяких "но". Прямо как в этих ваших линупсах и прочих. До конца этого курса осталось уже чуть менее половины.
Первая лаба: младшая половина и старшая половина
Вторая лаба: младшая половина и старшая половина
Третья лаба: младшая половина