Публикации по теме 'xv6'
Первый процесс XV6 г.
Перед стартом
В этом разделе мы поговорим о том, как после подготовки нескольких ресурсов для операционных систем (распределители страниц, таблица страниц ядра, таблица процессов и т. Д.) Создается и работает первый процесс.
Шаги создания первого процесса следующие:
Выделить структуру процесса (контекст, каталог таблицы страниц, указатель стека ядра…) Создайте таблицу страниц для пространства ядра Выделить страницу для кода инициализации пользователя Настроить фрейм-ловушку для iret..
Вопросы по теме 'xv6'
Не удается загрузить xv6 после добавления некоторых кодов в ядро
Я только немного изменил ядро xv6 для поддержки разделяемой памяти. После компиляции не могу загрузить его под qemu. Он просто останавливается при «загрузке с диска ...». Но с загрузчиком ничего не делал. Кто-нибудь может сказать мне, что...
145 просмотров
schedule
09.09.2021
Аппаратное и программное обеспечение сохраняет во время переключения контекста в xv6
Я изучаю переключатель контекста xv6 в книге Операционные системы: три простых элемента . Я не могу полностью понять раздел Сохранение и восстановление контекста в Глава 6 (стр. 8).
Почему существует два типа сохранения / восстановления...
300 просмотров
schedule
26.02.2022
реализация функции спин-блокировки в xv6, чтобы иметь возможность использовать API-интерфейсы на уровне пользователя.
В xv6 есть файл spinlock.c для создания спин-блокировки для использования ядром. Но мне нужно реализовать API-интерфейсы спин-блокировки для использования на уровне пользователя. Например, я реализую sp_create() для создания спин-блокировки на...
735 просмотров
schedule
01.03.2022
Для чего используется операционная система XV6?
Я проходил онлайн-курсы по операционным системам, и я слышал, как они говорили, что операционная система XV6 может быть использована для изучения реализации операционных систем, вот и все. Но после того, как я поискал в Интернете, не хватило ресурсов,...
1193 просмотров
schedule
13.04.2022
qemu запрос образа диска
Я пытаюсь запустить qemu с xv6, но у меня возникли проблемы с компиляцией xv6. какие типы образов дисков поддерживает qemu. например, Qemu принимает файлы .ISO? Я попытался загрузить FreeBSD, но QEMU сообщает об отсутствии загрузочного устройства.
165 просмотров
schedule
26.04.2022
xv6 rev6 странный код в syscall()
Любой может понять, почему используются следующие ifs, строки 3279-3285 в коде xv6-rev6:
int num;
num = proc−>tf−>eax;
if (num >= 0 && num < SYS_open && syscalls[num]) {
proc−>tf−>eax = syscalls[num]();
} else...
542 просмотров
schedule
22.07.2023
Как передать значение в функцию системного вызова в XV6?
Я пытаюсь создать простой планировщик на основе приоритетов в XV6. Для этого мне также нужно создать системный вызов, который позволит процессу установить свой приоритет. Я сделал все необходимое для создания системного вызова, как описано здесь и в...
17767 просмотров
schedule
25.10.2022
Почему в XV6 константа PHYSTOP определена как 0xE000000?
Насколько я знаю, в XV6 PHYSTOP должен быть 1 ГБ.
В этом случае значение PHYSTOP должно быть 0x40000000 (1 ГБ), а не 0xE000000 (224 МБ), как показано в http://pdos.csail.mit.edu/6.828/2014/xv6/xv6-rev8.pdf :
0203 #define PHYSTOP 0xE000000 //...
1305 просмотров
schedule
25.05.2023
Почему планировщик xv6 вызывает sti () в начале каждого цикла?
В сопутствующей книге говорится
Причина для периодического включения прерываний на простаивающем процессоре заключается в том, что может не быть RUNNABLE процесса, потому что процессы (например, оболочка) ожидают ввода-вывода; если планировщик...
1382 просмотров
schedule
17.07.2023
Миграция процессов в ОС xv6
Я хочу написать программу, которая может сохранять состояние процесса, когда он выходит из файла, и другую программу, чтобы перезагрузить состояние этого процесса и запустить его, если он оставлен в ОС xv6. Что-то вроде сохранения состояния...
221 просмотров
schedule
19.01.2023
Выполнение остановленного процесса в XV6
Я написал два новых системных вызова и добавил их в ядро ОС xv6. Таким образом, используя один системный вызов, я могу сохранить состояние процесса, а используя другой, я могу перезагрузить предыдущее состояние и продолжить. проблема связана с...
121 просмотров
schedule
12.11.2022
Глобально статический int в модуле самовызова
(Отказ от ответственности: это домашнее задание)
Я создаю программу-оболочку, назовем ее fancysh. Я пытаюсь добавить функциональность PATH (и других env vars) в свою оболочку, пока все хорошо. Мой наивный подход состоял в том, чтобы хранить все...
50 просмотров
schedule
24.07.2023
Состояние гонки в xv6
Я новичок в области ОС и пытаюсь изучить это, взломав xv6. Я сомневаюсь, что мы можем решить, прежде чем делать вызов fork, запускать ли родительский или дочерний с помощью системных вызовов. аргумент в пространство ядра и решить, запускать ли...
436 просмотров
schedule
20.12.2022
Зарегистрировать указатель при создании потоков в xv6
Я хочу создать поток в xv6 с помощью системного вызова "clone()", но меня не устраивает создание стека, поскольку, если я хочу создать поток, мне нужно создать соответствующий указатель регистра, такой как ebp, esp , эп. Но я не знаю, как установить...
1220 просмотров
schedule
23.09.2023
Невозможно сделать cd в xv6 при использовании эмулятора QEMU
Я установил эмулятор qemu с os xv6. Я пытаюсь скомпилировать проект, написанный на c, который включает: makefile, 2 файла c и заголовок. Я открыл терминал qemu и пытался сменить каталог с помощью команды cd, чтобы перейти к файлам, и он сказал мне:...
358 просмотров
schedule
04.11.2022
xv6: чтение тиков напрямую, не снимая блокировку тиков?
Я работаю над заданием в курсе операционной системы на Xv6 . Мне нужно реализовать структуру состояния данных для процесса для времени его создания, времени завершения, времени сна и т. Д.
На данный момент я решил использовать переменную ticks...
1245 просмотров
schedule
20.05.2023
Расположение определения open() в xv6
У меня есть задание, которое требует от меня разработки собственного системного вызова. Для этого я хотел бы просмотреть определение открытого системного вызова. Под этим я подразумеваю, что хотел бы увидеть, как определяется фактический open(const...
1032 просмотров
schedule
07.05.2023
XV6 make file выдает нераспознанный режим эмуляции: -N при попытке сделать xv6 в Windows
$ make qemu-nox
ld -m -N -e main -Ttext 0 -o _cat cat.o ulib.o usys.o printf.o umalloc.o
C:\MinGW\bin\ld.exe: unrecognised emulation mode: -N
Supported emulations: i386pe
make: *** [_cat] Error 1
Я продолжаю получать эту ошибку, хотя установил...
72 просмотров
schedule
01.11.2022
Реализация FCFS для xv6
В настоящее время для моего проекта в колледже я пытаюсь реализовать алгоритмы планирования FCFS и Priority для xv6. Я закончил с приоритетом и теперь пытаюсь заставить работать FCFS. Ниже приведены изменения, которые я внес в код:
void...
603 просмотров
schedule
04.05.2023