Comments 14
Имеет CLI (Command line interface - интерфейс командной строки).
как-то скупо описано. Надеюсь, портировали bash, gcc, прочие текст- и файл-утилиты. То что графики нет, понятно. Идея замечательная, думаю, очень полезная. Линукс начинался с меньшего. Ещё бы показать код на гитхабе, без этого что за разработка?
да все есть давно, сабжу не первый год
Да, все что необходимо для выполнения заданий есть)
Я оставила ссылку на сайт MIT, где все есть, думала, что этого достаточно. Но и как ответили ниже, тут код https://github.com/mit-pdos/xv6-public
Линукс начинался с Миникс. И никто Миникс не отменял и его вполне можно использовать для обучения.
Как все-таки выглядят начальные условия лабораторных и их результат. Ну то есть что-то типа «вот вам ссылка на репозиторий xv6, но с вырезанным модулем управления памяти, вам нужно его написать». Или как-то по-другому? В чем именно упрощение происходит?
Интерес не праздный, давно подумываю своим ученикам что-то такое дать. Чтобы и полезно им было, и относительно быстро можно было сделать.
Примерно так и выглядит. Вот вторая лаба, про управление памятью - https://pdos.csail.mit.edu/6.828/2018/labs/lab2/
Смотрим первое самостоятельное упражнение. Exercise 1. In the file kern/pmap.c, you must implement code for the following functions (probably in the order given).
boot_alloc()
mem_init()
(only up to the call to check_page_free_list(1)
)page_init()
page_alloc()
page_free()
Фактически со студентами надо исходный код прочитать вместе, рассказать, что там происходит, дать отсылки на документацию по железу - и вперёд, к самостоятельной работе
В Шаде встречался с лабами по xv6 на х86. С одной стороны - очень интересно и круто. С другой - требовалась куча знаний: си, ассемблер, отладка, архитектура ОС (страничная адресация памяти, потоки, фишки типа cow и fork) на хорошем глубоком уровне. Если студент знает меньше - будет сложно и не понятно.
Это была больше вводная статья про курс, поэтому не расписывала задания)
Примерно так и выглядит. В коде есть комментарии по типу "тут надо дописать кусок кода для задания №". Мы на занятиях разбираем код и просто рассказываем теорию из ОС так, чтобы студенты смогли дописать код.
Как-то здесь была статья про японских студентов которые придумали свой процессор, свой отладочный инструмент и запустили XV6. Я тогда подумал, что у меня все тоже это есть и почему бы мне не попробовать запустить эту ОС. Оказалось, что есть исходники для портирования под ARM, MIPS, RISC-V. Вначале я использовал для изучения код ARM, т.к. хорошо знал эту архитектуру, но обнаружил, что код просто ужасный. Очень часто адреса преобразуются в числа и вычисления производятся над числами с учетом некоторых особенностей системы команд ARM (например, использовался тот факт, что сохранение контекста делается одной командой). Пришлось взять MIPS версию. В ней был более толковый код. В итоге на моей уникальной архитектуре все это тоже заработало и я даже запустил пример японских студентов и их дымящимся паравозиком :)
Вау! Крутой кейс)
Ну, для меня это было действительно круто :) Если вы что-то готовите для студентов России, то могу обратить ваше вниманиие на такой DSP процессор как 1967ВН58. Пока он еще не родился , а "живет" только в симуляторе. Вот на этом симуляторе в отладочногй среде я эту ОС и запустил. Это не так-то просто т.к. архитектура совершенно не похожа на универсальный процессор, указатели нестандартные. Так что для разнообразия тем курсовых и лабораторных возьмите на заметку :)
XV6 как ОС для обучения