Описание тега 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