Writing an operating system kernel from scratch – RISC-V/OpenSBI/Zig
Разработка ядра операционной системы с нуля
Недавно я реализовал минимальное ядро ОС с разделением времени для RISC-V. В этой статье расскажу о деталях работы прототипа. Материал предназначен для всех, кто интересуется низкоуровневым ПО, драйверами, системными вызовами, и особенно полезен студентам, изучающим системное ПО и архитектуру компьютеров.
Это переработанная версия учебного проекта по операционным системам, но с фокусом на современные инструменты и архитектуру RISC-V. RISC-V — перспективная технология, которая проще для понимания по сравнению с другими архитектурами, оставаясь популярным выбором для новых систем.
Вместо традиционного C я использовал Zig, что упрощает воспроизведение эксперимента благодаря простой настройке и отсутствию необходимости установки дополнительных инструментов для кросс-компиляции под RISC-V.
Репозиторий и рекомендации
Исходный код доступен на GitHub. Перед изучением рекомендуется ознакомиться с основами программирования на RISC-V без ОС, процессом загрузки через SBI и обработкой прерываний.
Архитектура
Мы разрабатываем унике́рнел (unikernel), где приложение и ядро объединены в один исполняемый файл. Это исключает необходимость отдельной загрузки пользовательского кода во время выполнения.
В основе стека лежит слой SBI (OpenSBI), который управляет выводом на консоль и таймером. RISC-V использует уровни привилегий: M-режим (машинный), S-режим (супервизора) и U-режим (пользовательский). Наше ядро работает в S-режиме.
Цели ядра
- Статическое определение потоков (без динамического создания).
- Потоки выполняются в пользовательском режиме и могут делать системные вызовы к ядру.
- Время распределяется между потоками с помощью таймера, который прерывает выполнение каждые несколько миллисекунд.
- Разработка ведётся для одноядерной системы.
Виртуализация и потоки
Перед реализацией важно понять, что такое поток. В среде с разделением времени потоки позволяют эффективно использовать ресурсы системы.
Комментарии (3)
- Автор переписал классическое упражнение по созданию минимального ядра ОС с разделением времени для управления пользовательскими потоками.
- Целью был эксперимент на специфической платформе RISC-V в сочетании с OpenSBI.
- Для реализации был использован язык программирования Zig вместо традиционного C.
- Автор отмечает, что подход можно легко повторить на C или Rust.
- Участник обсуждения предположил, что эта тема уже публиковалась неделей ранее.
- Другой участник уточнил, что оригинальный пост был два дня назад на Hacker News.
- Было отмечено, что текущий пост, хотя и от первоначального автора, изначально не получил отклика и был повторно запущен через «пул второго шанса» с измененными временными метками.
How the restoration of ancient Babylon is drawing tourists back to Iraq
- Вавилон оживает: завершаются два проекта WMF — укрепление северной стены ворот Иштар и реставрация храма богини Нинмах.
- Работы финансировало посольство США в рамках 15-летнего «Future of Babylon»; новый сезон фестиваля и свадьбы в храме планируются уже этой осенью.
- Туризм растёт: 2024 г. — 43,5 тыс. иракцев и 5,4 тыс. иностранцев (+18 % к 2023). Местные жители возвращаются на пикники и свадьбы.
- Город пережил войска США/Польши, ИГИЛ, железную дорогу 1927 г., трассу и дворец Саддама, нефтепроводы; в список ЮНЕСКО внесён лишь в 2019 г.
- Египетский архитектор обучает вавилонян лепке сырцового кирпича, чтобы ремонт соответствовал древней технологии.
Комментарии (53)
- Посетители разочарованы: «восстановленный» Вавилон — голые кирпичные стены, спорное качество, рядом дворец Саддама интереснее.
- Спор реставрация vs реконструкция: критики видят «археологический Диснейленд», сторонники — шанс вернуть облик и деньги в науку.
- Подлинное почти исчезло: умышленно разрушены уникальные слои, гробница Гильгамеша недоступна, 99 % истории ещё не раскопано.
- Туризм vs наука: одни требуют привлечь археологов и возобновить раскопки (Эриду), другие считают реконструкцию допустимой, если она финансирует раскопки.
- Примеры Европы (Ньюгрейндж, французский «классический» замок) показывают, как «восстановление» может стать полезным экспериментом или навсегда исказить памятник.
If my kids excel, will they move away?
Я вырос на ферме в часе от Колумба, Огайо. Из 30 % одноклассников, поступивших в колледж, все уехали — в основном в пригороды Колумба или Цинциннати.
Сейчас я профессор Carnegie Mellon в Питтсбурге — лучшем месте мира для компьютерных наук. Дети часто бывают у дедов на ферме; нам повезло, что центр экспертизы оказался рядом.
Я набираю лучших студентов планеты: из США и из 10 других стран. После PhD они обычно остаются в Штатах — пока не начались аресты за эссе, тюрьма за миграционные мелочи и визовый хаос. Страх реален: таланты выбирают другие страны.
Если центры передового опыта уедут, мои дети — если станут звёздами — уедут вслед за ними. Между «внучата рядом» и «внучата за океаном» стоит лишь пара глупых политических решений.
Комментарии (87)
- Пост вызвал бурное обсуждение: одни хвалят автора за умеренный тон и точную постановку проблемы «утечки мозгов» из США, другие упрекают в узко американском взгляде.
- Многие родители признаются, что из-за политики нынешней администрации сомневаются, стоит ли детям поступать в американские вузы: «атака на образование» пугает и американцев, и дуальных граждан.
- Комментаторы из провинций и сельских районов добавляют: «мы и так живём в могильнике амбиций», поэтому уехать за границу — не привилегия, а спасение.
- Часть споров сводится к тезису: «если США не ценят иностранных студентов и преподавателей, другие страны (Канада, ЕС, Азия) охотно их примут и выиграют».
- Сторонники «ждать до следующих выборов» сталкиваются с аргументом: «это не временное отклонение, а возврат к старой норме»; в итоге совет «записать детей на китайский» звучит всё чаще.
EFF to court: The Supreme Court must rein in secondary copyright liability
Кратко:
EFF просит Верховный суд США ограничить чрезмерную «вторичную» ответственность за нарушение авторских прав. Сейчас правообладатели могут судить не только нарушителей, но и платформы, сервисы или устройства, которые те якобы используют. Это тормозит инновации и свободу слова. EFF настаивает: ответственность должна оставаться персональной, а не перекладываться на посредников.
Комментарии (34)
- Германия уже проходила «ответственность посредника» (Störerhaftung): бабушки и хосты AirBnB платили за чужие торренты — результат массовые иски и движения вроде Freifunk.
- Идея наказывать весь дом/подключение за действия одного пользователя = коллективное наказание, бьёт по бедным и цветным общинам.
- Пиратство — не «халява», а проблема сервиса: контент раздроблен, дорог или вовсе недоступен; где удобно (Spotify, iTunes) пиратство падает.
- Авторы всё равно беднеют: себестоимость записи и дистрибуции → 0, но доля артиста не росла; лейблы теперь требуют от провайдеров быть судьями и штрафовать.
- Активисты предупреждают: если борьба с «пиратством» оправдывает отключение людей из интернета, следующей жертвой станет свобода слова и сама сеть.
Two Slice, a font that's only 2px tall 🔥 Горячее
Two Slice
2-пиксельный шрифт, всё ещё читается.
Заглавные и строчные буквы различаются, цифры и знаки препинания есть.
Мельче — читабельнее.
Скачать (CC BY-SA, коммерция разрешена с указанием авторства).
Комментарии (108)
- Участники обсуждают сверхмелкий 2-пиксельный шрифт: кто-то восхищён, кто-то считает нечитаемым.
- Нужен контекст и тренировка; на случайных строках шрифт «сдаёт».
- Подчёркивают важность пробелов и антиалиасинга, иначе буквы сливаются.
- Вспомнили 8-битные спектрумы, C64, TI-калькуляторы: узкие шрифты были вынужденным хаком.
- Шутят про EULA, шрифт-Морзе и китайские иероглифы в 2 px.
Pass: Unix Password Manager 🔥 Горячее 💬 Длинная дискуссия
pass — менеджер паролей в духе Unix.
Каждый пароль — отдельный gpg-файл в ~/.password-store; можно каталогизировать, копировать, версионировать в git.
Команды:
pass— список;pass site.com— показ;pass -c site.com— 45 с в буфере;pass insert site.com→ ввод;pass generate site.com 15→ создать;pass rm site.com— удалить;pass git push/pull— синхронизация.
Установка: apt/yum/pacman/brew install pass или tar.
Комментарии (157)
- pass — это минималистичный CLI-менеджер паролей на Bash + GPG; кто-то использует 10+ лет и доволен, кто-то уже ушёл.
- Главные претензии: неструктурированные файлы (приходится парсить в каждом скрипте), GPG-ключи сложны, плагинов/нормальных мобильных клиентов почти нет, Android-приложение заархивировано.
- Уязвимость: если агент GPG закешировал ключ, любой скрипт может выполнить
passи выкачать все секреты; спасает только PIN + touch на YubiKey. - Удобные альтернативы: KeePassXC/KeePassDX, Bitwarden (есть CLI), Vaultwarden; синхронизация pass через Git работает, но историю зашифрованных файлов не посмотреть обычным
git diff. - Для shared/корпоративного использования нет аудита доступа и нормального способа перешифровки для новых сотрудников — приходится менять все пароли.
Will AI be the basis of many future industrial fortunes, or a net loser? 💬 Длинная дискуссия
AI не сделает тебя богатым
- Хайп вокруг ИИ ≠ лёгкие деньги.
- Рынок быстро уравнивает преимущества; выигрывают те, кто строит уникальные системы, а не пользуется шаблонами.
- Фокус: глубокая экспертиза, сильные команды, долгосрочное мышление.
Комментарии (295)
- Участники спорят: сделает ли ИИ кого-то богатым или просто снизит барьеры входа.
- Многие считают, что выиграют не стартапы, а пользователи и крупные платформы (OpenAI, Google).
- LLM уже экономят деньги отдельным людям и малым командам, заменяя дизайнеров, копирайтеров, программистов.
- Для серьёзного бизнеса ИИ пока лишь оптимизирует затраты, не создавая новых гигантских рынков.
- AGI и полностью «голливудские» приложения пока фантастика; текущий бум может закончиться пузырём.
Myocardial infarction may be an infectious disease 🔥 Горячее 💬 Длинная дискуссия
Инфаркт может быть инфекционным заболеванием
Финские и британские учёные впервые показали, что инфаркт миокарда может вызываться инфекцией. В атеросклеротических бляшках обнаружены биоплёнки устойчивых бактерий, в том числе из полости рта. При активации (например, вирусом) они вызывают воспаление, разрушение бляшки и тромбоз. Открытие меняет представления о природе инфаркта и открывает пути к вакцинации и новой терапии.
Комментарии (156)
- Исследование показало корреляцию между бактериальными ДНК (в основном viridans-стрептококков) в атеросклеротических бляшках и тяжестью поражения/смертью от ИМ, но не доказало причинности.
- Бактерии образуют защищённые биоплёнки, недоступные иммунитету и антибиотикам; разрушение такой плёнки может запустить тромбоз и инфаркт.
- Выборка — ткани 200 человек, умерших от сердечно-сосудистых заболеваний; контрольной группы без ССЗ нет, поэтому 40 % носительства может быть нормой.
- Участники обсуждают, не станет ли краткий курс антибиотиков или улучшение гигиены полости рта новым способом профилактики ИМ; эпидемиологические данные пока противоречивы.
- Большинство считают заголовок «Инфаркт — инфекционное заболевание» кликбейтом: инфекция, скорее, триггер, а не единственная причина.
AMD’s RDNA4 GPU architecture
- RDNA4 — архитектура для RX 9000: +эффективность в RT, ML и растеризации, новые кодеки и движок вывода.
- Медиа-блок (2 шт. в 9070 XT): быстрее декод, экономия энергии; улучшен кодек H.265/AV1 при минимальной задержке. В режиме low-latency VBR качество (VMAF) выше при меньшем битрейте; скорость кодирования 190 → 200 fps.
- Дисплей — вывод кадров из памяти, композитинг, готов к новым стандартам.
Комментарии (37)
- Обсуждение началось с восхищения MI300A, но быстро перешло к тому, насколько важно снижение энергопотребления GPU в простое.
- Многие пользователи оставляют ПК включёнными ночью для лёгких задач и раздражены 100–150 Вт «вхолостую»; считают, что 4–10 Вт у Radeon 9070 — большой плюс.
- Экономия каждого ватта масштабируется: ×миллионы систем = сотни мегаватт и меньше тепла в комнате; выгода есть и у домашних серверов, и у коммерческих станций.
- Оптимизация одновременно продлевает жизнь карты, увеличивает battery-life ноутбуков/Steam Deck/PS6-портативов и повышает performance-per-watt.
- Архитектура едина для десктопа и мобильники, поэтому «починить глупость» с idle-питанием даёт сразу 3 ч дополнительной автономии на двухэкранных ноутах.
- RDNA4 действительно добавляет native FP8/BF8 (WMMA 16×16), но матричные блоки заметно меньше, чем у NVIDIA Blackwell, что влияет на пропускную способность в AI.
An open-source maintainer's guide to saying “no”
Главное: «нет» — не вред, а забота.
Сохранять душу проекта важнее, чем расти функциями. Чёткая философия (зачем проект живёт) притягивает единомышленников и отпугивает «почти-полезное».
LLM-эра всё усложнила: код теперь дешёв, дискуссия исчезла. PR без issue — почти спам. FastMCP требует issue, но люди открывают односложные заглушки.
Как защищаться:
- Документируй «почему» в README.
- Перекладывай доказательную нагрузку на автора PR.
- Используй
contrib/: полезный, но чуждый духу код живёт там без гарантий.
Личный вывод: раньше отвечал за 15 минут, теперь игнорю стену LLM-текста без MRE. Ручная работа и сообщество всё ещё делают проекты великими, а не «вайб-код».
Комментарии (70)
- Мейнтейнеры устают от «приезжих» PR: люди присылают код, который не вписывается в философию проекта, не покрыт тестами или создан LLM-ом «на коленке».
- Популярный выход — чаще говорить «нет» и требовать предварительного issue; иначе проект превращается в вечный багажник чужих хотелок.
- Контрибьюторы возмущаются: «почему полезная фича отклонена?» Ответ: scope creep, лишняя сложность, поддержка ложится на одного человека, а время — конечный ресурс.
- Сторонники форков: хотите свою фичу — форкните, опубликуйте, сами и поддерживайте; мейнтейнер никому ничего не должен.
- LLM удешевили код, но не уменьшили расходы внимания мейнтейнера; дешёвые PR стали массовыми, обсуждение исчезает, поэтому «no» теперь дефолт.