Описание тега xv6
NoneXv6 is a small Unix-like teaching operating system made by MIT for its 6.828 OS course. It is inspired by Unix Version 6.
1
ответ
Доступ к текущим запущенным процессам в xv6?
Поэтому я пытаюсь придумать возможный способ доступа к списку текущих запущенных процессов в xv6. Мой мыслительный процесс состоит в том, чтобы получить доступ к ptable, так что я могу пройти по нему и увеличить счетчик для всех работающих. Однако, …
14 сен '15 в 18:36
0
ответов
Не могу сделать CD в xv6 при использовании эмулятора QEMU
Я установил эмулятор qemu с os xv6. Я пытаюсь скомпилировать проект, написанный на c, который включает в себя: makefile, 2 c files и header. Я открыл терминал qemu, и я пытался изменить каталог с помощью команды cd, чтобы получить доступ к файлам, и…
30 окт '17 в 20:14
1
ответ
XV6 - usys.s что этот код делает?
Я никогда не видел этот синтаксис сборки. #include "syscall.h" #include "traps.h" #define SYSCALL(name) \ .globl name; \ name: \ movl $SYS_ ## name, %eax; \ int $T_SYSCALL; \ ret SYSCALL(fork) SYSCALL(exit) SYSCALL(wait) SYSCALL(pipe) SYSCALL(read) …
22 сен '15 в 09:54
1
ответ
Почему эта программа выделяет 8 страниц, но может вместить только 2048 узлов, размер которых составляет 8 байт?
Узел определяется следующим образом: struct node{ int value; struct node *next; }; Используя sizeof(struct node) Я узнал, что узел составляет 8 байтов (в xv6). Поэтому я использую malloc выделить некоторое пространство памяти для хранения некоторых …
08 апр '17 в 22:56
1
ответ
GDB не распознает новые файлы / строки
Я пытаюсь отладить xv6, используя эмулятор qemu, с ядром gdb. Как бы то ни было, GDB не будет распознавать любые добавления, которые я делаю к файлам. например, он не распознает новые файлы или даже новые строки в существующем файле, например: в фай…
08 апр '16 в 15:09
1
ответ
Как реализовать системный вызов, имеющий параметр структуры?
Я хочу реализовать системный вызов, в котором я передаю ссылку на структурную переменную, затем я хотел бы отобразить значения в том же файле. Например, у меня есть следующая структура. struct procInfo{ int processID[64]; // the PID of each process …
11 фев '15 в 02:26
3
ответа
Маленький c компилятор для образовательных целей
Есть ли небольшой компилятор c, который следует всем расширениям, и при этом он имеет менее 10000 LOC. В основном я пытаюсь портировать такой маленький компилятор на одно из образовательных ядер ОС, известное как xv6. Благодарю.
28 ноя '13 в 13:08
2
ответа
Почему iget() скрыт в xv6
Я немного играю с xv6, современной реализацией Unix версии 6. Для моего первого взлома я хотел реализовать простой getcwd системный вызов, но я немного растерялся относительно того, какой уровень абстракции мне следует использовать. Должен ли я испо…
21 апр '14 в 19:58
6
ответов
Как скомпилировать и запустить xv6 на windows?
Нас учат xv6 в нашем курсе. В настоящее время мы используем для входа на сервер Linux нашей школы, используя замазку в Windows. Там мы вносим изменения в исходный код xv6 (используя vim), затем компилируем и запускаем его в qemu просто make clean ma…
23 сен '11 в 17:59
2
ответа
Передача канала между родителем и дочерним элементом внутри функции
У меня возникли некоторые трудности в следующем:Я пытаюсь отправить канал дочернему узлу в функции, а затем сделать так, чтобы дочерний узел записал в него функцию. Следующие части кода объяснят это лучше: int p[2]; int i; pipe(p); close(p[1]); if(f…
26 мар '15 в 11:18
2
ответа
Unix (в C) пытается написать хвост для XV6
Привет stackru(ers)! Я изучаю Unix с использованием ОС XV6 (документация находится здесь) и пытаюсь написать функцию хвоста на C. Ожидаемый результат: хвост, чтобы дать последние 10 строк файла tail - указать последние строки файла хвост... это дать…
06 фев '17 в 06:45
1
ответ
Как мы можем различить разные части памяти процесса?
Я пытаюсь сбросить память процесса и различить разные части, такие как кодовая страница, защитная страница, стек и куча. Я могу сбросить память процесса, вызвав добавочный системный вызов, и в этом системном вызове я использую memmove, чтобы сбросит…
01 дек '17 в 19:02
2
ответа
Makefile из xv6
Я читаю код xv6, и мне трудно читать Makefile. Не могли бы вы рассказать мне, как работают следующие утверждения: 1. "CFLAGS += $(shell $(CC) -fno-stack-protector -E -x c /dev/null >/dev/null 2>&1 && echo -fno-stack-protector)" 2. …
19 мар '12 в 05:32
0
ответов
Как получить доступ к вершине стека в xv6?
Я пытаюсь получить доступ к вершине стека для основного процесса в xv6. Как я должен это сделать? Благодарю.
15 дек '16 в 16:05
1
ответ
Не удается запустить xv6 в qemu
Я использую Debian Wheezy и хочу запустить xv6 в qemu. Я установил libsdl1.2-dev и запустил команду make qemu. Но произошла ошибка: не удалось инициализировать выход SDL (не удалось найти устройство).
21 ноя '12 в 05:00
1
ответ
Почему вся физическая память должна отображаться для инициализации списка свободных страниц?
В сопроводительной книге на странице 32 говорится, что Существует проблема начальной загрузки: вся физическая память должна быть сопоставлена, чтобы распределитель мог инициализировать свободный список, но создание таблицы страниц с этими сопоставле…
01 июл '15 в 11:44
1
ответ
Как связать стандартную библиотеку с кросс-компилятором?
Я хочу собрать xv6 на macOS, поэтому я установил кросс-компиляторный набор инструментов i386-elf-gcc и i386-elf-gcc из Homebrew Tap. Проблема в том, что i386-elf-gcc не может связать стандартные библиотеки во время компиляции. Я протестировал на про…
31 янв '18 в 22:43
1
ответ
Почему такие поля, как limit и base отдельно хранятся в gdt в os?
Например, в коде xv6 mmu.h segdesc имеет такой вид struct segdesc { uint lim_15_0 : 16; // Low bits of segment limit uint base_15_0 : 16; // Low bits of segment base address uint base_23_16 : 8; // Middle bits of segment base address uint type : 4; …
29 окт '14 в 09:09
2
ответа
Рекурсивная функция для манипулирования заданным путем
Я работаю над модификацией дидактической ОС xv6 (написанной на c) для поддержки символических ссылок (ярлыки AKA). Символическая ссылка - это файл типа T_SYM, который содержит путь к месту назначения. Для этого я написал рекурсивную функцию, которая…
27 июн '12 в 22:25
2
ответа
Как xv6 знает, где находится последний элемент p->pgdir?
В xv6 каждый процесс имеет структуру с именем proc, в которой хранится состояние процесса. у него есть поле с именем pgdir, которое указывает на каталог его страницы. Мой вопрос заключается в следующем: он должен хранить индекс последнего элемента в…
12 янв '19 в 06:30