Как скомпилировать и запустить xv6 на windows?
Нас учат xv6 в нашем курсе. В настоящее время мы используем для входа на сервер Linux нашей школы, используя замазку в Windows.
Там мы вносим изменения в исходный код xv6 (используя vim), затем компилируем и запускаем его в qemu просто
make clean
make
make qemu-nox
Не всегда возможно подключиться к их серверам, поэтому я хочу иметь возможность компилировать и запускать xv6 без окон (очевидно, в некоторых эмуляторах).
Какой эмулятор я могу использовать для вышеуказанной работы? (редактировать код, компилировать и запускать) и как?
6 ответов
Ну, есть разумные инструкции о том, как создать среду для сборки и использования XV6 под Windows на сайте http://www.cs.mta.ac.il/~carmi/Teaching/OS.xv6/index.html. Эмулятор, который они используют для запуска - Bochs.
Если вы хотите использовать WSL (подсистему Windows для Linux) в Windows 10, это может помочь.
Следуйте инструкциям относительно Windows здесь или
Шаг 1: включите и настройте WSL после этого.
Шаг 2: запустите WSL bash и установите необходимые материалы на WSL.
- открыть CMD
- тип
cd <xv6-source-path>
- тип
bash
и это переключит CMD в bash WSL - затем
sudo apt-get update && sudo apt-get install git nasm build-essential qemu gdb
Шаг 3: отключите видеоустройство для qemu в Makefile.
Откройте Makefile в исходном каталоге xv6 в любом текстовом редакторе.
найти строку, начинающуюся с
QEMUOPTS =
- присоединять
-display none
в эту строку и сохраните файл.
Шаг 4: введите команды linux like в этом терминале, т.е.
- первый
make
- затем
make qemu
Теперь, если все в порядке, вы должны быть в терминале xv6
Вы можете запустить Linux внутри VirtualBox, что даст вам ту же среду на вашем компьютере, что вы используете на школьном сервере. Тогда вы можете продолжить запускать xv6 в qemu. Для этого вам понадобится достаточно мощная машина - двухъядерный процессор с 4G памяти - это минимум, с которым я бы попытался.
Я бы тоже выбрал какое-то решение для виртуальной машины (как предложено TMN), но, возможно, стоит попробовать построить его на Cygwin, если у вас нет оборудования для запуска достаточно специализированной виртуальной машины.
Я пробовал выше, но make qemu-nox
дал мне эту ошибку:
Cannot set up guest memory 'pc.ram': Cannot allocate memory
Я открыл графический интерфейс Virtual Box, щелкнул правой кнопкой мыши на виртуальной машине, когда она была выключена (остановлена), я щелкнул правой кнопкой мыши на виртуальной машине, затем щелкнул вкладку "система" и изменил объем памяти материнской платы более чем на 2000 МБ.
После этого я побежал:
make
make qemu-nox
Это сработало для меня, хотя ничего больше не сработало.
Мне удалось собрать и запустить xv6 с помощью командной строки (cmd.exe) в Windows 10. Вот что я сделал. Ни в Linux, ни в среде Windows10 + WSL, ни в среде Windwos10 + Cygwin или MSYS, я создал ее в Windows10 с помощью командной строки. Для Windows вам потребуется следующее: MinGW, BusyBox и QEMU. Модифицированный мной исходный код xv6 можно загрузить по следующему URL.
https://github.com/mirokuuno/xv6-windows
Подробности описаны в разделе «Как собрать и запустить Unix-xv6 с помощью командной строки в Windows».