Pull to refresh

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. Пока он еще не родился , а "живет" только в симуляторе. Вот на этом симуляторе в отладочногй среде я эту ОС и запустил. Это не так-то просто т.к. архитектура совершенно не похожа на универсальный процессор, указатели нестандартные. Так что для разнообразия тем курсовых и лабораторных возьмите на заметку :)

Sign up to leave a comment.

Articles