zhub.link is one of the many independent Mastodon servers you can use to participate in the fediverse.

Administered by:

Server stats:

28
active users

#xv6

0 posts0 participants0 posts today
Habr<p>Xv6: увеличим размер страниц виртуальной памяти с 4Кб до 2Мб</p><p>Научим xv6 работать с виртуальными страницами размера 2 Мб, узнаем, как компоновщик создает образ памяти программы и научим файловую систему xv6 справляться с большими файлами. Пример: Пусть программа занимает 4 Мб памяти. Размер страницы - 4 Кб. Программа займет (1024 * 1024 * 4) / (1024 * 4) = 1024 страницы памяти. ОС избавит процессор от лишней работы, если увеличит размер страницы до 2 Мб - тогда программа займет 2 страницы.</p><p><a href="https://habr.com/ru/articles/830662/" target="_blank" rel="nofollow noopener noreferrer" translate="no"><span class="invisible">https://</span><span class="">habr.com/ru/articles/830662/</span><span class="invisible"></span></a></p><p><a href="https://zhub.link/tags/xv6" class="mention hashtag" rel="tag">#<span>xv6</span></a> <a href="https://zhub.link/tags/riscv" class="mention hashtag" rel="tag">#<span>riscv</span></a> <a href="https://zhub.link/tags/%D0%B2%D0%B8%D1%80%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D0%BF%D0%B0%D0%BC%D1%8F%D1%82%D1%8C" class="mention hashtag" rel="tag">#<span>виртуальная_память</span></a> <a href="https://zhub.link/tags/%D1%82%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D1%8B_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86" class="mention hashtag" rel="tag">#<span>таблицы_страниц</span></a> <a href="https://zhub.link/tags/%D1%84%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0" class="mention hashtag" rel="tag">#<span>файловая_система</span></a> <a href="https://zhub.link/tags/ld" class="mention hashtag" rel="tag">#<span>ld</span></a> <a href="https://zhub.link/tags/%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%BD%D1%8B%D0%B9_%D1%84%D0%B0%D0%B9%D0%BB" class="mention hashtag" rel="tag">#<span>объектный_файл</span></a> <a href="https://zhub.link/tags/%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D0%BD%D1%8F%D0%B5%D0%BC%D1%8B%D0%B9_%D1%84%D0%B0%D0%B9%D0%BB" class="mention hashtag" rel="tag">#<span>исполняемый_файл</span></a> <a href="https://zhub.link/tags/%D0%BA%D0%BE%D0%BC%D0%BF%D0%BE%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0" class="mention hashtag" rel="tag">#<span>компоновка</span></a> <a href="https://zhub.link/tags/%D1%81%D1%86%D0%B5%D0%BD%D0%B0%D1%80%D0%B8%D0%B9_%D0%BA%D0%BE%D0%BC%D0%BF%D0%BE%D0%BD%D0%BE%D0%B2%D1%89%D0%B8%D0%BA%D0%B0" class="mention hashtag" rel="tag">#<span>сценарий_компоновщика</span></a></p>
Habr<p>Драйвер Ethernet для xv6</p><p>Xv6 - учебная ОС - рассказывает об идеях, что лежат в основе операционных систем. Научим xv6 работать в сети, познакомимся со стандартом виртуальных устройств VirtIO, деревом устройств DeviceTree, технологией Ethernet, сетевыми протоколами, возведем сетевой мост между виртуальными машинами.</p><p><a href="https://habr.com/ru/articles/826500/" target="_blank" rel="nofollow noopener noreferrer" translate="no"><span class="invisible">https://</span><span class="">habr.com/ru/articles/826500/</span><span class="invisible"></span></a></p><p><a href="https://zhub.link/tags/xv6" class="mention hashtag" rel="tag">#<span>xv6</span></a> <a href="https://zhub.link/tags/ethernet" class="mention hashtag" rel="tag">#<span>ethernet</span></a> <a href="https://zhub.link/tags/virtio" class="mention hashtag" rel="tag">#<span>virtio</span></a> <a href="https://zhub.link/tags/devicetree" class="mention hashtag" rel="tag">#<span>devicetree</span></a> <a href="https://zhub.link/tags/qemu" class="mention hashtag" rel="tag">#<span>qemu</span></a> <a href="https://zhub.link/tags/dhcp" class="mention hashtag" rel="tag">#<span>dhcp</span></a> <a href="https://zhub.link/tags/ipv4" class="mention hashtag" rel="tag">#<span>ipv4</span></a> <a href="https://zhub.link/tags/ipv6" class="mention hashtag" rel="tag">#<span>ipv6</span></a> <a href="https://zhub.link/tags/arp" class="mention hashtag" rel="tag">#<span>arp</span></a> <a href="https://zhub.link/tags/icmp" class="mention hashtag" rel="tag">#<span>icmp</span></a></p>
Habr<p>[Перевод] Xv6: учебная Unix-подобная ОС. Заключение</p><p>Книга рассказала об идеях, что лежат в основе операционных систем, на примере xv6. Одна часть кода xv6 выражает основные идеи и каждая строка кода важна - переключение потоков, пространства пользователя и ядра, блокировки и т.д. Другая часть кода воплощает алгоритмы и структуры данных, которые легко заменить на другие - политика планирования процессов, структуры файлов на диске, устройство журнала файловой системы и т.д. Книга полагается на интерфейс системных вызовов Unix, который оказался успешным настолько, что идеи легли в основу и других современных ОС. Книга на русском языке в формате PDF. Книга в формате HTML, EPUB появится чуть позже.</p><p><a href="https://habr.com/ru/articles/809707/" target="_blank" rel="nofollow noopener noreferrer" translate="no"><span class="invisible">https://</span><span class="">habr.com/ru/articles/809707/</span><span class="invisible"></span></a></p><p><a href="https://zhub.link/tags/xv6" class="mention hashtag" rel="tag">#<span>xv6</span></a> <a href="https://zhub.link/tags/pdf" class="mention hashtag" rel="tag">#<span>pdf</span></a> <a href="https://zhub.link/tags/html" class="mention hashtag" rel="tag">#<span>html</span></a> <a href="https://zhub.link/tags/epub" class="mention hashtag" rel="tag">#<span>epub</span></a> <a href="https://zhub.link/tags/download" class="mention hashtag" rel="tag">#<span>download</span></a> <a href="https://zhub.link/tags/%D1%81%D0%BA%D0%B0%D1%87%D0%B0%D1%82%D1%8C" class="mention hashtag" rel="tag">#<span>скачать</span></a> <a href="https://zhub.link/tags/%D0%BA%D0%BD%D0%B8%D0%B3%D0%B0" class="mention hashtag" rel="tag">#<span>книга</span></a></p>
Habr<p>[Перевод] Xv6: учебная Unix-подобная ОС. Глава 9. Еще раз о параллельных потоках</p><p>Трудно добиться быстродействия ядра, организовать параллельную работу потоков и при этом писать ясный код. Блокировки помогают параллельным потокам работать корректно, но иногда блокировки использовать трудно. Глава расскажет о хитрых сценариях с блокировками в xv6 и о сценариях без блокировок.</p><p><a href="https://habr.com/ru/articles/806449/" target="_blank" rel="nofollow noopener noreferrer" translate="no"><span class="invisible">https://</span><span class="">habr.com/ru/articles/806449/</span><span class="invisible"></span></a></p><p><a href="https://zhub.link/tags/xv6" class="mention hashtag" rel="tag">#<span>xv6</span></a> <a href="https://zhub.link/tags/%D0%BF%D0%B0%D1%80%D0%B0%D0%BB%D0%BB%D0%B5%D0%BB%D0%B8%D0%B7%D0%BC" class="mention hashtag" rel="tag">#<span>параллелизм</span></a> <a href="https://zhub.link/tags/%D1%81%D1%87%D0%B5%D1%82%D1%87%D0%B8%D0%BA_%D1%81%D1%81%D1%8B%D0%BB%D0%BE%D0%BA" class="mention hashtag" rel="tag">#<span>счетчик_ссылок</span></a> <a href="https://zhub.link/tags/%D0%B1%D0%BB%D0%BE%D0%BA%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B8" class="mention hashtag" rel="tag">#<span>блокировки</span></a> <a href="https://zhub.link/tags/%D0%B1%D0%B0%D1%80%D1%8C%D0%B5%D1%80%D1%8B_%D0%BF%D0%B0%D0%BC%D1%8F%D1%82%D0%B8" class="mention hashtag" rel="tag">#<span>барьеры_памяти</span></a> <a href="https://zhub.link/tags/%D0%BA%D0%B5%D1%88%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5" class="mention hashtag" rel="tag">#<span>кеширование</span></a> <a href="https://zhub.link/tags/%D0%B0%D1%82%D0%BE%D0%BC%D0%B0%D1%80%D0%BD%D1%8B%D0%B5_%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D0%B8" class="mention hashtag" rel="tag">#<span>атомарные_операции</span></a> <a href="https://zhub.link/tags/%D0%BF%D1%80%D0%B5%D1%80%D1%8B%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F" class="mention hashtag" rel="tag">#<span>прерывания</span></a></p>
Habr<p>[Перевод] Xv6: учебная Unix-подобная ОС. Глава 8. Файловая система</p><p>Файловая система организует и хранит данные. Пользователи и программы работают с данными, а файловая система сохранит данные даже после перезагрузки компьютера. Файловая система xv6 предлагает Unix-подобные файлы, директории и пути и хранит данные на virtio-диске . Глава расскажет, какие задачи решает файловая система xv6.</p><p><a href="https://habr.com/ru/articles/805243/" target="_blank" rel="nofollow noopener noreferrer" translate="no"><span class="invisible">https://</span><span class="">habr.com/ru/articles/805243/</span><span class="invisible"></span></a></p><p><a href="https://zhub.link/tags/xv6" class="mention hashtag" rel="tag">#<span>xv6</span></a> <a href="https://zhub.link/tags/%D1%84%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0" class="mention hashtag" rel="tag">#<span>файловая_система</span></a> <a href="https://zhub.link/tags/inode" class="mention hashtag" rel="tag">#<span>inode</span></a> <a href="https://zhub.link/tags/%D0%B6%D1%83%D1%80%D0%BD%D0%B0%D0%BB" class="mention hashtag" rel="tag">#<span>журнал</span></a> <a href="https://zhub.link/tags/%D0%B4%D0%B8%D1%80%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%B8%D0%B8" class="mention hashtag" rel="tag">#<span>директории</span></a> <a href="https://zhub.link/tags/%D0%BA%D0%B0%D0%BD%D0%B0%D0%BB%D1%8B" class="mention hashtag" rel="tag">#<span>каналы</span></a> <a href="https://zhub.link/tags/%D1%84%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D1%8B%D0%B5_%D0%B4%D0%B5%D1%81%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D0%BE%D1%80%D1%8B" class="mention hashtag" rel="tag">#<span>файловые_дескрипторы</span></a> <a href="https://zhub.link/tags/%D0%BF%D1%83%D1%82%D0%B8_%D0%BA_%D1%84%D0%B0%D0%B9%D0%BB%D0%B0%D0%BC" class="mention hashtag" rel="tag">#<span>пути_к_файлам</span></a> <a href="https://zhub.link/tags/%D1%81%D0%B1%D0%BE%D0%B8" class="mention hashtag" rel="tag">#<span>сбои</span></a> <a href="https://zhub.link/tags/%D0%B2%D0%BE%D1%81%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5" class="mention hashtag" rel="tag">#<span>восстановление</span></a></p>
Habr<p>[Перевод] Xv6: учебная Unix-подобная ОС. Глава 7. Планирование процессов</p><p>Глава расскажет, что такое мультиплексирование процессов, как xv6 переключает процессы, как xv6 синхронизирует процессы с помощью sleep и wakeup, как работает семафор, как работает канал (pipe), как случаются инверсии приоритетов и образуются конвои процессов, как правильно убить процесс и укротить грохочущее стадо процессов.</p><p><a href="https://habr.com/ru/articles/801567/" target="_blank" rel="nofollow noopener noreferrer" translate="no"><span class="invisible">https://</span><span class="">habr.com/ru/articles/801567/</span><span class="invisible"></span></a></p><p><a href="https://zhub.link/tags/xv6" class="mention hashtag" rel="tag">#<span>xv6</span></a> <a href="https://zhub.link/tags/%D1%81%D0%B5%D0%BC%D0%B0%D1%84%D0%BE%D1%80" class="mention hashtag" rel="tag">#<span>семафор</span></a> <a href="https://zhub.link/tags/%D0%BF%D0%B5%D1%80%D0%B5%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%BA%D1%81%D1%82%D0%B0" class="mention hashtag" rel="tag">#<span>переключение_контекста</span></a> <a href="https://zhub.link/tags/%D0%BC%D1%83%D0%BB%D1%8C%D1%82%D0%B8%D0%BF%D0%BB%D0%B5%D0%BA%D1%81%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5" class="mention hashtag" rel="tag">#<span>мультиплексирование</span></a> <a href="https://zhub.link/tags/%D1%83%D1%81%D0%BB%D0%BE%D0%B2%D0%BD%D1%8B%D0%B5_%D0%BF%D0%B5%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5" class="mention hashtag" rel="tag">#<span>условные_переменные</span></a> <a href="https://zhub.link/tags/%D0%BF%D0%BB%D0%B0%D0%BD%D0%B8%D1%80%D0%BE%D0%B2%D1%89%D0%B8%D0%BA" class="mention hashtag" rel="tag">#<span>планировщик</span></a> <a href="https://zhub.link/tags/sleep" class="mention hashtag" rel="tag">#<span>sleep</span></a> <a href="https://zhub.link/tags/wakeup" class="mention hashtag" rel="tag">#<span>wakeup</span></a> <a href="https://zhub.link/tags/%D0%B2%D0%B7%D0%B0%D0%B8%D0%BC%D0%BE%D0%B1%D0%BB%D0%BE%D0%BA%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B8" class="mention hashtag" rel="tag">#<span>взаимоблокировки</span></a> <a href="https://zhub.link/tags/%D0%BA%D0%B0%D0%BD%D0%B0%D0%BB%D1%8B" class="mention hashtag" rel="tag">#<span>каналы</span></a></p>
Habr<p>[Перевод] Xv6: учебная Unix-подобная ОС. Глава 6. Блокировки</p><p>Ядро ОС выполняет программы параллельно и переключает потоки по таймеру. Каждый процессор выполняет поток независимо от других. Процессоры используют оперативную память совместно, поэтому важно защитить структуры данных от одновременного доступа. Потоки испортят данные, если процессор переключится на другой поток, когда первый поток еще не завершил запись. Потоки конкурируют за доступ к структуре данных. Ядро кишит структурами, которые потоки используют совместно. Блокировки защищают данные при конкурентном доступе. Глава расскажет, зачем нужны блокировки, как xv6 реализует и использует блокировки.</p><p><a href="https://habr.com/ru/articles/797557/" target="_blank" rel="nofollow noopener noreferrer" translate="no"><span class="invisible">https://</span><span class="">habr.com/ru/articles/797557/</span><span class="invisible"></span></a></p><p><a href="https://zhub.link/tags/xv6" class="mention hashtag" rel="tag">#<span>xv6</span></a> <a href="https://zhub.link/tags/%D0%B1%D0%BB%D0%BE%D0%BA%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B8" class="mention hashtag" rel="tag">#<span>блокировки</span></a> <a href="https://zhub.link/tags/%D0%BF%D1%80%D0%B5%D1%80%D1%8B%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F" class="mention hashtag" rel="tag">#<span>прерывания</span></a> <a href="https://zhub.link/tags/%D0%B2%D0%B7%D0%B0%D0%B8%D0%BC%D0%BE%D0%B1%D0%BB%D0%BE%D0%BA%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B8" class="mention hashtag" rel="tag">#<span>взаимоблокировки</span></a> <a href="https://zhub.link/tags/%D0%BF%D0%BE%D1%82%D0%BE%D0%BA%D0%B8" class="mention hashtag" rel="tag">#<span>потоки</span></a> <a href="https://zhub.link/tags/%D0%BF%D0%B0%D1%80%D0%B0%D0%BB%D0%BB%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5" class="mention hashtag" rel="tag">#<span>параллельное_программирование</span></a> <a href="https://zhub.link/tags/%D0%BC%D0%BD%D0%BE%D0%B3%D0%BE%D0%BF%D0%BE%D1%82%D0%BE%D1%87%D0%BD%D0%BE%D1%81%D1%82%D1%8C" class="mention hashtag" rel="tag">#<span>многопоточность</span></a> <a href="https://zhub.link/tags/pthreads" class="mention hashtag" rel="tag">#<span>pthreads</span></a> <a href="https://zhub.link/tags/lockfree" class="mention hashtag" rel="tag">#<span>lockfree</span></a></p>
Habr<p>[Перевод] Xv6: учебная Unix-подобная ОС. Глава 5. Прерывания и драйверы устройств</p><p>Драйвер управляет устройством - настраивает, отправляет команды, обрабатывает прерывания и общается с процессами, которые ожидают завершения ввода-вывода. Код драйвера зависит от конкретного устройства, поэтому изучайте документацию на устройство, чтобы понять код драйвера. Устройство прерывает процессор, когда требует внимания. Обработчик прерывания опознает устройство и вызовет процедуру драйвера. В xv6 это делает процедура devintr . Файл kernel/console.c содержит код драйвера терминала. Драйвер обрабатывает символы из последовательного порта UART на RISC-V, которые человек вводит на клавиатуре. QEMU эмулирует микросхему 16550 UART и подключает клавиатуру и экран к UART. На реальном компьютере 16550 управляет портом RS232 , который работает с терминалом или другим компьютером. Драйвер накапливает символы в кольцевом буфере cons.buf . Индекс cons.r указывает на первый символ, который прочтет функция consoleread . Буфер хранит строки символов, а индекс cons.w указывает на начало последней строки, которую еще вводит человек. Индекс cons.e указывает позицию курсора в последней строке для ввода следующего символа.</p><p><a href="https://habr.com/ru/articles/795735/" target="_blank" rel="nofollow noopener noreferrer" translate="no"><span class="invisible">https://</span><span class="">habr.com/ru/articles/795735/</span><span class="invisible"></span></a></p><p><a href="https://zhub.link/tags/xv6" class="mention hashtag" rel="tag">#<span>xv6</span></a> <a href="https://zhub.link/tags/%D0%BF%D1%80%D0%B5%D1%80%D1%8B%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F" class="mention hashtag" rel="tag">#<span>прерывания</span></a> <a href="https://zhub.link/tags/%D0%B4%D1%80%D0%B0%D0%B9%D0%B2%D0%B5%D1%80" class="mention hashtag" rel="tag">#<span>драйвер</span></a> <a href="https://zhub.link/tags/%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0" class="mention hashtag" rel="tag">#<span>операционная_система</span></a> <a href="https://zhub.link/tags/%D0%B0%D1%81%D0%B8%D0%BD%D1%85%D1%80%D0%BE%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D1%8C" class="mention hashtag" rel="tag">#<span>асинхронность</span></a> <a href="https://zhub.link/tags/%D0%B2%D0%B2%D0%BE%D0%B4%D0%B2%D1%8B%D0%B2%D0%BE%D0%B4" class="mention hashtag" rel="tag">#<span>вводвывод</span></a> <a href="https://zhub.link/tags/uart" class="mention hashtag" rel="tag">#<span>uart</span></a> <a href="https://zhub.link/tags/riscv" class="mention hashtag" rel="tag">#<span>riscv</span></a> <a href="https://zhub.link/tags/unix" class="mention hashtag" rel="tag">#<span>unix</span></a> <a href="https://zhub.link/tags/%D1%82%D0%B5%D1%80%D0%BC%D0%B8%D0%BD%D0%B0%D0%BB" class="mention hashtag" rel="tag">#<span>терминал</span></a></p>
Habr<p>[Перевод] Xv6: учебная Unix-подобная ОС. Глава 4: Прерывания и системные вызовы</p><p>Глава расскажет, как xv6 обрабатывает прерывания на RISC-V и о хитростях виртуальной памяти: как использовать ошибки доступа к страницам, чтобы оптимизировать работу ОС. Глава расскажет о копировании страниц при записи, ленивой выдаче страниц, выдаче страниц по необходимости и сбросе страниц на диск.</p><p><a href="https://habr.com/ru/articles/794326/" target="_blank" rel="nofollow noopener noreferrer" translate="no"><span class="invisible">https://</span><span class="">habr.com/ru/articles/794326/</span><span class="invisible"></span></a></p><p><a href="https://zhub.link/tags/xv6" class="mention hashtag" rel="tag">#<span>xv6</span></a> <a href="https://zhub.link/tags/%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0" class="mention hashtag" rel="tag">#<span>операционная_система</span></a> <a href="https://zhub.link/tags/%D0%BF%D1%80%D0%B5%D1%80%D1%8B%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F" class="mention hashtag" rel="tag">#<span>прерывания</span></a> <a href="https://zhub.link/tags/%D0%B8%D1%81%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D1%8F" class="mention hashtag" rel="tag">#<span>исключения</span></a> <a href="https://zhub.link/tags/%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%BD%D1%8B%D0%B5_%D0%B2%D1%8B%D0%B7%D0%BE%D0%B2%D1%8B" class="mention hashtag" rel="tag">#<span>системные_вызовы</span></a> <a href="https://zhub.link/tags/%D1%8F%D0%B4%D1%80%D0%BE" class="mention hashtag" rel="tag">#<span>ядро</span></a> <a href="https://zhub.link/tags/%D1%82%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D1%8B_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86" class="mention hashtag" rel="tag">#<span>таблицы_страниц</span></a> <a href="https://zhub.link/tags/%D0%B2%D0%B8%D1%80%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D0%BF%D0%B0%D0%BC%D1%8F%D1%82%D1%8C" class="mention hashtag" rel="tag">#<span>виртуальная_память</span></a> <a href="https://zhub.link/tags/copyonwrite" class="mention hashtag" rel="tag">#<span>copyonwrite</span></a> <a href="https://zhub.link/tags/riscv" class="mention hashtag" rel="tag">#<span>riscv</span></a></p>
Habr<p>[Перевод] Xv6: учебная Unix-подобная ОС. Глава 3. Таблицы страниц</p><p>ОС управляет виртуальной памятью с помощью таблиц страниц. Виртуальная память процесса - адресное пространство, защищенное от других процессов. ОС делит память на страницы одинакового размера и отображает страницы виртуальной памяти на страницы физической памяти. Так ОС предоставит процессу непрерывное адресное пространство, даже если страницы физической памяти расположены в другом порядке. Таблица страниц хранит для виртуальной страницы номер соответствующей физической страницы. Каждый процесс владеет личной таблицей страниц. Глава рассказывает, как xv6 работает с виртуальной памятью и об устройстве виртуальной памяти RISC-V.</p><p><a href="https://habr.com/ru/articles/792808/" target="_blank" rel="nofollow noopener noreferrer" translate="no"><span class="invisible">https://</span><span class="">habr.com/ru/articles/792808/</span><span class="invisible"></span></a></p><p><a href="https://zhub.link/tags/%D0%B2%D0%B8%D1%80%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D0%BF%D0%B0%D0%BC%D1%8F%D1%82%D1%8C" class="mention hashtag" rel="tag">#<span>виртуальная_память</span></a> <a href="https://zhub.link/tags/%D1%82%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D1%8B_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86" class="mention hashtag" rel="tag">#<span>таблицы_страниц</span></a> <a href="https://zhub.link/tags/riscv" class="mention hashtag" rel="tag">#<span>riscv</span></a> <a href="https://zhub.link/tags/xv6" class="mention hashtag" rel="tag">#<span>xv6</span></a> <a href="https://zhub.link/tags/%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0" class="mention hashtag" rel="tag">#<span>операционная_система</span></a> <a href="https://zhub.link/tags/unix" class="mention hashtag" rel="tag">#<span>unix</span></a> <a href="https://zhub.link/tags/%D1%8F%D0%B4%D1%80%D0%BE" class="mention hashtag" rel="tag">#<span>ядро</span></a></p>
Habr<p>[Перевод] Xv6: учебная Unix-подобная ОС. Инструменты для сборки и запуска xv6 под QEMU</p><p>Эта инструкция - приложение к книге об учебной ОС xv6 . Xv6 работает на RISC-V. Для сборки кода xv6 и запуска под QEMU понадобятся RISC-V версии инструментов: QEMU 5.1+, GDB 8.3+, GCC, и Binutils.</p><p><a href="https://habr.com/ru/articles/791286/" target="_blank" rel="nofollow noopener noreferrer" translate="no"><span class="invisible">https://</span><span class="">habr.com/ru/articles/791286/</span><span class="invisible"></span></a></p><p><a href="https://zhub.link/tags/xv6" class="mention hashtag" rel="tag">#<span>xv6</span></a> <a href="https://zhub.link/tags/riscv" class="mention hashtag" rel="tag">#<span>riscv</span></a> <a href="https://zhub.link/tags/gcc" class="mention hashtag" rel="tag">#<span>gcc</span></a> <a href="https://zhub.link/tags/qemu" class="mention hashtag" rel="tag">#<span>qemu</span></a></p>
Habr<p>[Перевод] Xv6: учебная Unix-подобная ОС. Глава 2. Устройство операционной системы</p><p>Операционная система выполняет несколько процессов одновременно. ОС распределяет время работы с ресурсами компьютера между процессами. ОС даст каждому процессу шанс на выполнение, даже если число процессов больше числа процессоров. ОС изолирует процессы друг от друга так, что ошибка в одном процессе не нарушит работу других. ОС позволяет процессам взаимодействовать - обмениваться данными и работать совместно. Глава 2 рассказывает, как xv6 выполняет эти требования, о процессах xv6 и как xv6 запускает первый процесс.</p><p><a href="https://habr.com/ru/articles/791058/" target="_blank" rel="nofollow noopener noreferrer" translate="no"><span class="invisible">https://</span><span class="">habr.com/ru/articles/791058/</span><span class="invisible"></span></a></p><p><a href="https://zhub.link/tags/xv6" class="mention hashtag" rel="tag">#<span>xv6</span></a> <a href="https://zhub.link/tags/riscv" class="mention hashtag" rel="tag">#<span>riscv</span></a> <a href="https://zhub.link/tags/%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0" class="mention hashtag" rel="tag">#<span>операционная_система</span></a> <a href="https://zhub.link/tags/%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D1%81%D1%81" class="mention hashtag" rel="tag">#<span>процесс</span></a> <a href="https://zhub.link/tags/%D1%8F%D0%B4%D1%80%D0%BE" class="mention hashtag" rel="tag">#<span>ядро</span></a> <a href="https://zhub.link/tags/%D0%B2%D0%B8%D1%80%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D0%BF%D0%B0%D0%BC%D1%8F%D1%82%D1%8C" class="mention hashtag" rel="tag">#<span>виртуальная_память</span></a> <a href="https://zhub.link/tags/%D0%B1%D0%B5%D0%B7%D0%BE%D0%BF%D0%B0%D1%81%D0%BD%D0%BE%D1%81%D1%82%D1%8C" class="mention hashtag" rel="tag">#<span>безопасность</span></a> <a href="https://zhub.link/tags/%D0%BC%D0%BE%D0%BD%D0%BE%D0%BB%D0%B8%D1%82%D0%BD%D0%BE%D0%B5_%D1%8F%D0%B4%D1%80%D0%BE" class="mention hashtag" rel="tag">#<span>монолитное_ядро</span></a> <a href="https://zhub.link/tags/%D0%BC%D0%B8%D0%BA%D1%80%D0%BE%D1%8F%D0%B4%D1%80%D0%BE" class="mention hashtag" rel="tag">#<span>микроядро</span></a> <a href="https://zhub.link/tags/%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%BD%D1%8B%D0%B5_%D0%B2%D1%8B%D0%B7%D0%BE%D0%B2%D1%8B" class="mention hashtag" rel="tag">#<span>системные_вызовы</span></a></p>
Habr<p>[Перевод] Xv6 Глава 1: Интерфейсы операционной системы</p><p>Эта книга рассказывает о принципах работы операционных систем на примере xv6. Операционная система xv6 реализует базовый интерфейс, который Кен Томпсон и Деннис Ритчи предложили в операционной системе Unix, и подражает внутреннему устройству Unix. Комбинации простейших механизмов Unix дают удивительную свободу действий. Современные операционные системы признали успех Unix и реализуют похожие интерфейсы - BSD, Linux, macOS, Solaris, и даже Microsoft Windows. Изучение xv6 поможет понять работу и других операционных систем.</p><p><a href="https://habr.com/ru/articles/789478/" target="_blank" rel="nofollow noopener noreferrer" translate="no"><span class="invisible">https://</span><span class="">habr.com/ru/articles/789478/</span><span class="invisible"></span></a></p><p><a href="https://zhub.link/tags/xv6" class="mention hashtag" rel="tag">#<span>xv6</span></a> <a href="https://zhub.link/tags/%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0" class="mention hashtag" rel="tag">#<span>операционная_система</span></a> <a href="https://zhub.link/tags/unix" class="mention hashtag" rel="tag">#<span>unix</span></a> <a href="https://zhub.link/tags/%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%BD%D1%8B%D0%B5_%D0%B2%D1%8B%D0%B7%D0%BE%D0%B2%D1%8B" class="mention hashtag" rel="tag">#<span>системные_вызовы</span></a> <a href="https://zhub.link/tags/%D1%84%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0" class="mention hashtag" rel="tag">#<span>файловая_система</span></a> <a href="https://zhub.link/tags/%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D1%81%D1%81" class="mention hashtag" rel="tag">#<span>процесс</span></a> <a href="https://zhub.link/tags/%D0%B2%D0%B2%D0%BE%D0%B4%D0%B2%D1%8B%D0%B2%D0%BE%D0%B4" class="mention hashtag" rel="tag">#<span>вводвывод</span></a> <a href="https://zhub.link/tags/shell" class="mention hashtag" rel="tag">#<span>shell</span></a> <a href="https://zhub.link/tags/%D0%BA%D0%B0%D0%BD%D0%B0%D0%BB%D1%8B" class="mention hashtag" rel="tag">#<span>каналы</span></a> <a href="https://zhub.link/tags/%D1%8F%D0%B4%D1%80%D0%BE" class="mention hashtag" rel="tag">#<span>ядро</span></a></p>