Главная » Архив меток: osdev

Архив меток: osdev

ReactOS теперь запускается с BTRFS раздела

Привет, Хабр! В этой серии мы продолжаем усиленно дружить драйвер WinBtrfs с ReactOS. После предыдущего поста, был реализован мини-драйвер для загрузчика FreeLoader, позволяющий в read-only режиме читать файлы с раздела BTRFS. А этот ваш Windows так умеет?Начнем по порядку. Здесь для поиска inode структуры (эта структура содержит базовую информацию о файле) в директории используется хеш имени файла, это позволяет ходить ...

Читать далее »

Операционные системы с нуля; уровень 3 (младшая половина)

Т.е. В этой лабе мы будем реализовывать возможность запуска пользовательских программ. В начале разберёмся как переключаться из привилегированного кода, как переключать контексты процессов. процессы и всю зависимую инфраструктуру. В конце концов выведем наш шелл из пространства ядра в пространство пользователя. Затем реализуем простенький round-robin планировщик, системные вызовы и управление виртуальной памятью. оригинал Нулевая лаба Первая лаба: младшая половина и старшая ...

Читать далее »

[Перевод] Операционные системы с нуля; уровень 3 (старшая половина)

Наконец-то у нас появятся элементы многозадачной операционной системы! В этой части мы допишем обработку прерываний и возьмёмся за планировщик. Одно прерывание таймера, один системный вызов, базовая часть простого планировщика потоков. Разумеется это только начало темы. Однако этим мы подготовим плацдарм для создания полноценной системы, которая будет заниматься самыми настоящими процессами безо всяких "но". Ничего сложного. До конца этого курса осталось ...

Читать далее »

Операционные системы с нуля; уровень 2 (младшая половина)

В этой части мы напишем менеджер памяти для того, чтоб разблокировать использование Vec, String, HashMap и всего этого. Сразу после этого реализуем файловую систему FAT32 и подключим драйвер для EMMC (такая штука для общения с SD-карточками). В конце концов в нашей командной оболочке появятся пара новых команд: cd, pwd, cat, ls. Нулевая лаба Первая лаба: младшая половина и старшая половина ...

Читать далее »

Операционные системы с нуля; Уровень 1 (младшая половина)

Эта часть посвящена улучшению навыков работы с Rust и написанию парочки полезных утилиток и библиотек. Напишем драйверы для GPIO, UART и встроенного таймера. Реализуем протокол XMODEM. Используя это всё, напишем простенький шелл и загрузчик. Перед прочтением настоятельно рекомендуется убедиться в прочтении Книги. По крайней мере от начала и до конца. Для ленивых, но чуть более опытных можно рекомендовать это. На ...

Читать далее »

[Перевод] Операционные системы с нуля; Уровень 0

Добрый день/вечер/ночь/утро! Есть один экспериментальный курс по операционным системам. Есть он в Стэнфордском университете. Но часть материалов доступно всем желающим. Помимо слайдов доступны полные описания практических занятий. Чем этот курс отличается от прочих других? Большая часть кода пишется самостоятельно и выполняется на вполне реальном современном железе. В качестве целевой платформы выбран Raspberry Pi 3 model B. Т.е. достаточно актуальная архитектура ...

Читать далее »

Операционные системы с нуля; уровень 1 (старшая половина)

Настало время следующей части. Это вторая половина перевода лабы №1. В этом выпуске мы будем писать драйверы периферии (таймер, GPIO, UART), реализуем протокол XMODEM и одну утилитку. Используя всё это мы напишем командную оболочку для нашего ядра и загрузчик, который позволит нам не тыкать microSD-карточку туда-сюда. Младшая половина.Начинать чтение стоит с нулевой лабы. Фаза 3: Не раковина (Not a Seashell) ...

Читать далее »

Операционные системы с нуля; уровень 2 (старшая половина)

Пришло время написать файловую систему. Файловая система сама себя не напишет. В этой половинке лабы мы таки реализуем файловую систему FAT32, прикрутим к ней драйвер SD-карты и чуть-чуть повзаимодействуем с ней через нашу интерактивную оболочку. Нулевая лаба Первая лаба: младшая половина и старшая половина Младшая часть. Продолжение под катом. Фаза 2: 32-битные липиды В этой фазе мы будем реализовывать файловую ...

Читать далее »