Run ancient UNIX on modern hardware
Проект run-ancient-unix позволяет легко запускать старые версии UNIX для PDP-11 на современном оборудовании. Он предоставляет готовые образы операционных систем Sixth Edition UNIX (1975) и Seventh Edition UNIX (1979), которые можно запустить с помощью эмулятора SIMH. Проект включает подробные инструкции по установке и использованию, а также скрипты для автоматизации процесса. Это отличный инструмент для изучения истории компьютерных систем и понимания основ Unix.
Особенность проекта в том, что он не требует глубоких технических знаний для запуска - достаточно следовать пошаговым инструкциям. Образы занимают всего около 10 МБ и могут работать на большинстве современных операционных систем. Автор проекта подчеркивает, что это не просто музейный экспонат, а рабочая среда, где можно писать программы и изучать историю Unix в интерактивном режиме.
Комментарии (26)
- Robert Nordier's port of Unix v7 to x86 is noted as historically significant and underappreciated, leveraging v7's inherent portability and architectural similarities to the PDP-11.
- xv6, a MIT-developed "spiritual port" of Unix v6, is highlighted as a valuable modern educational resource for studying Unix fundamentals.
- Historical context includes running SCO Unix on early 386 hardware (1993) with surprisingly usable performance despite compilation challenges.
- The term "ancient UNIX" is discussed as a recognized term of art for Research Unix versions up to v7 and its derivatives.
- Resources like SIMH (for emulation) and video walkthroughs of xv6 source code are mentioned for practical exploration.
Writing a RISC-V Emulator in Rust
Создание эмулятора RISC-V на Rust — это активно развивающийся проект, позволяющий собрать 64-битный эмулятор с нуля. После завершения курса вы сможете запускать в нем xv6 — простую Unix-подобную операционную систему. Проект охватывает основы компьютерной архитектуры: ISA, привилегированный режим, исключения, прерывания, периферийные устройства и системы виртуальной памяти. Исходный код доступен на GitHub в репозитории d0iasm/rvemu-for-book.
Проект разделен на два основных раздела: в первом рассматриваются аппаратные компоненты, необходимые для работы xv6, включая процессор с двумя инструкциями, память, системную шину, регистры управления и состояния, а также контроллеры прерываний и UART. Второй раздел посвящен наборам инструкций, начиная с базового RV64I Integer и включая расширения "M" для умножения и деления, и "A" для атомарных операций.
Комментарии (39)
- Доступны только первые три главы из десяти.
- Рекомендация использовать ассемблер для реализации.
- Наличие rv64-интерпретатора на x86_64 ассемблере.
How to create an OS from scratch
Этот репозиторий содержит пошаговое руководство по созданию операционной системы с нуля на языке C и ассемблере. Он охватывает основы загрузки, управления памятью, прерываний и файловых систем, предлагая практический опыт низкоуровневого программирования.
Проект структурирован как серия уроков, каждый из которых добавляет новую функциональность, начиная с простого загрузчика и заканчивая многозадачностью. Это отличный ресурс для понимания внутреннего устройства ОС и работы с аппаратным обеспечением напрямую.
Комментарии (69)
- Создание ОС с нуля на базе устаревшего BIOS и x86 рассматривается как учебный, но непрактичный путь, погружающий в исторические детали архитектуры вместо современных концепций.
- Многие проекты ОС остаются незавершенными из-за сложности поддержки железа и драйверов, что является рутинной и нетривиальной задачей.
- В качестве более актуальных альтернатив предлагаются подходы с использованием микрокернелов, современных архитектур (RISC-V, ARM) или существующих педагогических ОС (xv6).
- Рекомендуется начинать с изучения авторитетных источников (например, wiki.osdev.org) и современных туториалов, избегая устаревших материалов с пробелами и ошибками.
- Разработка ОС углубляет понимание распределенных систем, планирования и кэширования, что полезно для инженеров, даже если они не планируют писать ядро.
Show HN: I integrated my from-scratch TCP/IP stack into the xv6-riscv OS
xv6-riscv-net
Форк MIT xv6 для RISC-V с добавлением стека TCP/IP.
Поддерживаются драйвер RTL8139, DHCP, DNS, ping, telnet-сервер, HTTP-клиент.
Сборка и запуск
make qemu
Внутри QEMU:
$ dhcp
$ ping 8.8.8.8
$ telnetd &
$ http google.com
Сетевые утилиты
dhcp– получить адресping– проверка связиtelnetd– сервер на порту 23http– простой HTTP-клиент
Код
kernel/net*– стек TCP/IPkernel/rtl8139.c– драйвер сетевой картыuser/{dhcp.c,ping.c,telnetd.c,http.c}– сетевые утилиты
Комментарии (5)
- @Tony_Delco и @dancek восхищаются сложностью и качеством реализации TCP/IP-стека для xv6 с virtio-net и сокетами, подчеркивая, что это «золото» для любителей low-level.
- @AbbeFaria сообщает, что проходит лабораторные xv6 и сейчас занят mmap и fork.
- @lesser-shadow интересуется, используются ли RISC-V-расширения и возможностью запуска на bare metal.
- Все участники благодарят автора за открытость и делятся вдохновением.