#Xv6

NerdNextDoor :Blobhaj:mrmasterkeyboard
2025-11-01

Sorry for inactivity recently, been working on this with a friend of mine on .

codeberg.org/xv7/xv7

We're picking up the from MIT. We've done things like add a directory structure in the filesystem, properly organize the source code, rewrite Perl scripts to Bash, remove old code/scripts as we see fit and much more.

Our goal is to have a usable system with .

Next step: (hopefully) fixing SMP on newer QEMU machines.

Michael Engelme_@sueden.social
2025-10-27

Frans Kaashoek's talk in UNSW's John Lions Distinguished Lecture Series is online now.
This talk is about the xv6 educational Unix-clone that was developed in his group, which is used in OS courses around the world.

youtube.com/watch?v=uY7CNx-P9ao

#unix #xv6 #unsw #johnlions #MIT

Michael Engelme_@sueden.social
2025-09-09

New semester, new version of the xv6 educational OS for RISC-V from MIT! This is accompanied by a new revision 5 of the xv6 book and–for the first time, I think–a Lions' Commentary-style code reader booklet!

A previous version switched to using the stimecmp extension instead of the regular CLINT timer, that was a bit of a surprise. So let's see what the changes in this new version are...

pdos.csail.mit.edu/6.1810/2025
pdos.csail.mit.edu/6.1810/2025
github.com/mit-pdos/xv6-riscv

#xv6 #MIT #riscv #unix #johnlions

2024-12-13

not sure if i shared this before on here, but im rewatching it so here you go! this series explores the #xv6 #kernel source code, and i feel like this approach to teaching suits me better than theory sometimes.

youtube.com/playlist?list=PLP2

andie :oh_no_bubble:bugwhisperer@tech.lgbt
2024-10-26

Just received and debugged my first kernel panic (for xv6 lab projects). Feeling proud and accomplished. A great start to the weekend! :nekoyoriYes:
#xv6 #PanicAtTheKernel

2024-07-22

Xv6: увеличим размер страниц виртуальной памяти с 4Кб до 2Мб

Научим xv6 работать с виртуальными страницами размера 2 Мб, узнаем, как компоновщик создает образ памяти программы и научим файловую систему xv6 справляться с большими файлами. Пример: Пусть программа занимает 4 Мб памяти. Размер страницы - 4 Кб. Программа займет (1024 * 1024 * 4) / (1024 * 4) = 1024 страницы памяти. ОС избавит процессор от лишней работы, если увеличит размер страницы до 2 Мб - тогда программа займет 2 страницы.

habr.com/ru/articles/830662/

#xv6 #riscv #виртуальная_память #таблицы_страниц #файловая_система #ld #объектный_файл #исполняемый_файл #компоновка #сценарий_компоновщика

2024-07-03

Драйвер Ethernet для xv6

Xv6 - учебная ОС - рассказывает об идеях, что лежат в основе операционных систем. Научим xv6 работать в сети, познакомимся со стандартом виртуальных устройств VirtIO, деревом устройств DeviceTree, технологией Ethernet, сетевыми протоколами, возведем сетевой мост между виртуальными машинами.

habr.com/ru/articles/826500/

#xv6 #ethernet #virtio #devicetree #qemu #dhcp #ipv4 #ipv6 #arp #icmp

2024-04-23

[Перевод] Xv6: учебная Unix-подобная ОС. Заключение

Книга рассказала об идеях, что лежат в основе операционных систем, на примере xv6. Одна часть кода xv6 выражает основные идеи и каждая строка кода важна - переключение потоков, пространства пользователя и ядра, блокировки и т.д. Другая часть кода воплощает алгоритмы и структуры данных, которые легко заменить на другие - политика планирования процессов, структуры файлов на диске, устройство журнала файловой системы и т.д. Книга полагается на интерфейс системных вызовов Unix, который оказался успешным настолько, что идеи легли в основу и других современных ОС. Книга на русском языке в формате PDF. Книга в формате HTML, EPUB появится чуть позже.

habr.com/ru/articles/809707/

#xv6 #pdf #html #epub #download #скачать #книга

2024-04-09

[Перевод] Xv6: учебная Unix-подобная ОС. Глава 9. Еще раз о параллельных потоках

Трудно добиться быстродействия ядра, организовать параллельную работу потоков и при этом писать ясный код. Блокировки помогают параллельным потокам работать корректно, но иногда блокировки использовать трудно. Глава расскажет о хитрых сценариях с блокировками в xv6 и о сценариях без блокировок.

habr.com/ru/articles/806449/

#xv6 #параллелизм #счетчик_ссылок #блокировки #барьеры_памяти #кеширование #атомарные_операции #прерывания

2024-04-04

[Перевод] Xv6: учебная Unix-подобная ОС. Глава 8. Файловая система

Файловая система организует и хранит данные. Пользователи и программы работают с данными, а файловая система сохранит данные даже после перезагрузки компьютера. Файловая система xv6 предлагает Unix-подобные файлы, директории и пути и хранит данные на virtio-диске . Глава расскажет, какие задачи решает файловая система xv6.

habr.com/ru/articles/805243/

#xv6 #файловая_система #inode #журнал #директории #каналы #файловые_дескрипторы #пути_к_файлам #сбои #восстановление

2024-03-20

[Перевод] Xv6: учебная Unix-подобная ОС. Глава 7. Планирование процессов

Глава расскажет, что такое мультиплексирование процессов, как xv6 переключает процессы, как xv6 синхронизирует процессы с помощью sleep и wakeup, как работает семафор, как работает канал (pipe), как случаются инверсии приоритетов и образуются конвои процессов, как правильно убить процесс и укротить грохочущее стадо процессов.

habr.com/ru/articles/801567/

#xv6 #семафор #переключение_контекста #мультиплексирование #условные_переменные #планировщик #sleep #wakeup #взаимоблокировки #каналы

2024-03-01

[Перевод] Xv6: учебная Unix-подобная ОС. Глава 6. Блокировки

Ядро ОС выполняет программы параллельно и переключает потоки по таймеру. Каждый процессор выполняет поток независимо от других. Процессоры используют оперативную память совместно, поэтому важно защитить структуры данных от одновременного доступа. Потоки испортят данные, если процессор переключится на другой поток, когда первый поток еще не завершил запись. Потоки конкурируют за доступ к структуре данных. Ядро кишит структурами, которые потоки используют совместно. Блокировки защищают данные при конкурентном доступе. Глава расскажет, зачем нужны блокировки, как xv6 реализует и использует блокировки.

habr.com/ru/articles/797557/

#xv6 #блокировки #прерывания #взаимоблокировки #потоки #параллельное_программирование #многопоточность #pthreads #lockfree

2024-02-22

[Перевод] Xv6: учебная Unix-подобная ОС. Глава 5. Прерывания и драйверы устройств

Драйвер управляет устройством - настраивает, отправляет команды, обрабатывает прерывания и общается с процессами, которые ожидают завершения ввода-вывода. Код драйвера зависит от конкретного устройства, поэтому изучайте документацию на устройство, чтобы понять код драйвера. Устройство прерывает процессор, когда требует внимания. Обработчик прерывания опознает устройство и вызовет процедуру драйвера. В xv6 это делает процедура devintr . Файл kernel/console.c содержит код драйвера терминала. Драйвер обрабатывает символы из последовательного порта UART на RISC-V, которые человек вводит на клавиатуре. QEMU эмулирует микросхему 16550 UART и подключает клавиатуру и экран к UART. На реальном компьютере 16550 управляет портом RS232 , который работает с терминалом или другим компьютером. Драйвер накапливает символы в кольцевом буфере cons.buf . Индекс cons.r указывает на первый символ, который прочтет функция consoleread . Буфер хранит строки символов, а индекс cons.w указывает на начало последней строки, которую еще вводит человек. Индекс cons.e указывает позицию курсора в последней строке для ввода следующего символа.

habr.com/ru/articles/795735/

#xv6 #прерывания #драйвер #операционная_система #асинхронность #вводвывод #uart #riscv #unix #терминал

2024-02-16

[Перевод] Xv6: учебная Unix-подобная ОС. Глава 4: Прерывания и системные вызовы

Глава расскажет, как xv6 обрабатывает прерывания на RISC-V и о хитростях виртуальной памяти: как использовать ошибки доступа к страницам, чтобы оптимизировать работу ОС. Глава расскажет о копировании страниц при записи, ленивой выдаче страниц, выдаче страниц по необходимости и сбросе страниц на диск.

habr.com/ru/articles/794326/

#xv6 #операционная_система #прерывания #исключения #системные_вызовы #ядро #таблицы_страниц #виртуальная_память #copyonwrite #riscv

2024-02-10

[Перевод] Xv6: учебная Unix-подобная ОС. Глава 3. Таблицы страниц

ОС управляет виртуальной памятью с помощью таблиц страниц. Виртуальная память процесса - адресное пространство, защищенное от других процессов. ОС делит память на страницы одинакового размера и отображает страницы виртуальной памяти на страницы физической памяти. Так ОС предоставит процессу непрерывное адресное пространство, даже если страницы физической памяти расположены в другом порядке. Таблица страниц хранит для виртуальной страницы номер соответствующей физической страницы. Каждый процесс владеет личной таблицей страниц. Глава рассказывает, как xv6 работает с виртуальной памятью и об устройстве виртуальной памяти RISC-V.

habr.com/ru/articles/792808/

#виртуальная_память #таблицы_страниц #riscv #xv6 #операционная_система #unix #ядро

2024-02-04

[Перевод] Xv6: учебная Unix-подобная ОС. Инструменты для сборки и запуска xv6 под QEMU

Эта инструкция - приложение к книге об учебной ОС xv6 . Xv6 работает на RISC-V. Для сборки кода xv6 и запуска под QEMU понадобятся RISC-V версии инструментов: QEMU 5.1+, GDB 8.3+, GCC, и Binutils.

habr.com/ru/articles/791286/

#xv6 #riscv #gcc #qemu

2024-02-02

[Перевод] Xv6: учебная Unix-подобная ОС. Глава 2. Устройство операционной системы

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

habr.com/ru/articles/791058/

#xv6 #riscv #операционная_система #процесс #ядро #виртуальная_память #безопасность #монолитное_ядро #микроядро #системные_вызовы

2024-01-27

[Перевод] Xv6 Глава 1: Интерфейсы операционной системы

Эта книга рассказывает о принципах работы операционных систем на примере xv6. Операционная система xv6 реализует базовый интерфейс, который Кен Томпсон и Деннис Ритчи предложили в операционной системе Unix, и подражает внутреннему устройству Unix. Комбинации простейших механизмов Unix дают удивительную свободу действий. Современные операционные системы признали успех Unix и реализуют похожие интерфейсы - BSD, Linux, macOS, Solaris, и даже Microsoft Windows. Изучение xv6 поможет понять работу и других операционных систем.

habr.com/ru/articles/789478/

#xv6 #операционная_система #unix #системные_вызовы #файловая_система #процесс #вводвывод #shell #каналы #ядро

Client Info

Server: https://mastodon.social
Version: 2025.07
Repository: https://github.com/cyevgeniy/lmst