OS/161 - это упрощенная операционная система, которую Гарвард использует для обучения студентов на курсах операционных систем. Он включает автономное ядро ​​и простую пользовательскую среду, все написано на C. Он работает на симуляторе машины System/161, который предлагает упрощенные, но все же реалистичные аппаратные устройства. (Ни OS/161, ни System / 161 никоим образом не связаны с IBM.) [Скопировано с небольшими изменениями с http://www.eecs.harvard.edu/~syrah/os161/]
0 ответов

Настройка GDB с DDD для OS-161

Я настраиваю GDB для отладки OS-161 и планирую использовать DDD в качестве визуального интерфейса. Я следую инструкциям на официальной странице курса CS-161: http://www.eecs.harvard.edu/~cs161/resources/eclipse.html (прокрутите вниз до DDD). После п…
15 июн '17 в 07:58
1 ответ

Что такое kfree по отношению к ядру и операционным системам?

В настоящее время я беру класс операционных систем и вижу, что kfree используется во многих файлах, но я все еще не понимаю, что именно он делает. Насколько я понимаю, kfree() освобождает выделенную память?
10 мар '18 в 08:04
0 ответов

Ошибки соединения с gdb-7.8, скомпилированным с os161 mips

Я работаю над Ubuntu 18.10. Я настроил это с: ./configure --target=mips-harvard-os161 --prefix=$HOME/os161/tools Ошибки компиляции с gdb-7.8, скомпилированным с os161 mips. Как мне это исправить? ... ниже /home/kapperchino/Downloads/ .../gdb-7.8+os1…
19 дек '18 в 03:39
1 ответ

Как потоки спят с отключенным прерыванием?

Я пытаюсь понять, как работает код ниже. Это прямо из моих слайдов лекций. Эта функция P() и V() является частью реализации семафора в ОС, которую мы используем в классе (OS161). Я думаю, что вам может понадобиться понимание OS161, чтобы ответить на…
2 ответа

OS161 ожидал '=', ',', ';', 'asm' или '__attribute__' до ошибки

Я работаю над проектом os161. Я создаю файл, который включает array.h, предоставленный в src / kern / include. Когда я компилировал, у меня была ошибка как это: ./../include/array.h:85: ошибка: ожидается '=', ',', ';', 'asm' или 'attribute' перед 'u…
26 мар '12 в 09:10
1 ответ

"bmake: нет системных правил (sys.mk)" при попытке собрать OS161 на Mandriva

Я изучаю класс операционных систем и пытаюсь установить рабочую установку OS161 Гарварда на наших лабораторных машинах Mandriva. У меня настроен набор инструментов, но когда я пытаюсь собрать исходный код с помощью bmake, я получаю следующую ошибку:…
09 сен '13 в 18:20
0 ответов

os161 внесение изменений через cvs

Пока я выполнял cvs, мое соединение с сервером было сброшено, и я должен был закрыть свое окно сейчас после восстановления соединения, я снова пытаюсь зафиксировать свои изменения в cvs, и он продолжает говоритьcvs commit: [14:18:31] waiting for MYU…
16 мар '14 в 14:20
1 ответ

Почему одна таблица страниц на процесс

Сначала я думал, что для всей системы существует только одна таблица страниц. Но на самом деле есть одна таблица страниц на процесс? Какой смысл иметь многостраничную таблицу вместо одной страничной. Я реализую часть os161
29 ноя '11 в 02:55
2 ответа

Как проверить значение семафора с помощью оператора '=='?

Семафор объявляется и создается так: static struct semaphore *done; done = sem_create("done",0); // semaphore value initialized to zero Что происходит, когда if(done==NULL) { //Something done here... } условие if выполнено выше? поскольку для параме…
12 окт '14 в 05:20
1 ответ

Добавить отладочную информацию в os161

Я пытаюсь отладить os161, и у меня возникают проблемы из-за отсутствия отладочной информации. Ни одна из моих функций не имеет информации о номере строки, поэтому я могу сделать что-то вроде "b lock_acquire", но когда я делаю "s", он говорит: "Один …
19 фев '14 в 04:40
1 ответ

*** отсутствует разделитель. Стоп. Пока затмение пытается запустить OS/161

В строке 13 .include "$(TOP)/mk/os161.config.mk" я установил инструменты OS161 и пытаюсь запустить OS161 поверх затмения и компилирую зависимости. # Automatically generated by config; do not edit. # # Top of the kernel tree KTOP=../.. # Top of the w…
09 мар '15 в 05:30
2 ответа

Объявить память, чтобы структурировать в C

У меня есть структура ABC в одном файле struct abc { some variaables and functions } Я использую эту структуру в другом файле следующим образом: struct abc *t = kmalloc(sizeof(struct abc));kmalloc эквивалентен malloc тогда происходят следующие ошибк…
07 апр '14 в 00:04
1 ответ

Значения регистра trapframe для имени проги и argv

Я работаю с os161 и хочу найти значения регистров для имени программы char * и char **argv для передачи системному вызову execv из структуры traframe trapframe-> tf_a1 хранит значения argv, но тип данных всего - u_int32 в trapframe Как я могу их най…
07 апр '14 в 14:56
1 ответ

OS161: TLB отсутствует при загрузке

У меня ошибка при загрузке TLB при запуске теста форка, я понимаю, что это связано с передачей неправильного stackptr в mips_usermode, моя реализация, кажется, вращается вокруг нескольких предложений здесь, была бы признательна, если бы я ее исправи…
26 мар '12 в 23:37
2 ответа

Как получить указатель на адресное пространство пользовательской памяти в Os/161 в execv

Я сейчас пишу execv(char *program, char **args) позвоните в Os / 161. Итак, я получаю копию данных пользователя, предоставленных в программе и в args в пространстве ядра. Затем я создаю новое адресное пространство, в которое загружается программа с …
26 окт '09 в 11:50
1 ответ

Как добавить новый системный вызов в OS/161?

Я пытаюсь добавить новый системный вызов в мой код OS/161, но у меня возникают проблемы с поиском, где добавить прототипы. Я полагаю, что вы должны добавить его в пространство ядра и пространство пользователя, но я не уверен точно, в какие файлы пом…
17 мар '13 в 23:15
2 ответа

Как сделать так, чтобы дочерний процесс разветвлялся через sys_fork(), чтобы его стек ядра содержал фрейм-ловушку?

Я работаю над реализацией системного вызова sys_fork() на уровне ядра. Я сделал копирование родительского процесса в дочерний процесс в соответствии с требованиями. Проблема заключается в том, как скопировать дочернюю ловушку (копию родительской лов…
19 фев '11 в 22:31
1 ответ

thread_fork работает над ядром

Я работаю на OS161, где библиотека C pthread не поддерживается в первую очередь. Моя текущая цель - понять вызовы sys и запустить несколько простых программ. моя простая функция имеет следующий код: int id = 1; long id2 = 1; int ret = thread_fork("m…
08 мар '14 в 19:47
2 ответа

Ошибки Makefile - "*** отсутствует разделитель" и "*** рецепт начинается до первой цели"

Я пытаюсь построить userland для os161. Когда я набираю make в командной строке, я получаю следующую ошибку: Makefile 24: *** отсутствует разделитель (вы имели в виду TAB вместо 8 пробелов?). Стоп. Я проверил Makefile в строке 24 и попытался добавит…
20 май '17 в 02:34
1 ответ

Почему указатель меняется без причины?

Я работаю над заданием 2 класса ops. Следующая функция загружает массив обработчиков файлов для создаваемого процесса (например, пользовательские процессы для тестовых программ, представленные здесь). int _fh_bootstrap(struct fharray *fhs){ /* Initi…
10 янв '17 в 03:30