Изменив системные файлы Linux 0.11, добавьте простой системный вызов
На виртуальной машине Ubuntu20.04.1, используя Bochs для запуска скомпилированных файлов изображений Linux0.11 для компиляции Linux0.11, требуется 32-битная среда GCC, и прикреплена простая и выполнимая ссылка на конфигурацию среды: https://gitee.com/cn-guoziang/oslab
Изменив системный файл Linux 0.11 (запустите с Bochs), реализация заключается в добавлении простого системного вызова. Вот имена звонка.
Напишите программу nameout.c на пользовательском уровне, откройте окно, чтобы вызвать системную функцию через макрос Syscall, и вызовите функцию системы sys_nameout. Напишите функцию sys_nameout, которая сохраняется в системном ядре Linux0.11 в формате файла name.c; sys_nameout вызовы printk () для завершения распечатки. Измените файл Makefile так, чтобы ядро/Who.c мы добавили, можно было бы скомпилировать и связать с другими кодами Linux.

Подробные шаги: добавьте макро -определение номеров системы IAM и WHOAMI (_NR_XXXXXX)
Путь файла: /nlinux-0.11/luninclude/unistd.h ** 
Измените общее количество системных вызовов. 
Добавьте имя системного вызова в недавно добавленный системный вызов и поддерживать путь файла таблицы системных вызовов: /nlinux-0.11/ include/linux/sys.h.

Реализация кода записи для вновь добавленного системного вызова и создать name.c файла .

Напишите Printk ("Привет, я LWH") в name.c
Изменить Makefile
Чтобы разрешить ядро/WHO, мы добавляем.
Путь файла: /nlinux-0.11/kernel/makefile

Написание программы тестирования
До сих пор та часть, которая должна быть изменена в ядре, была завершена. Далее, вам нужно написать тестовую программу, чтобы проверить, был ли вновь добавленный системный вызов в ядро Linux-0.11 для вызова
Путь файла: /oslab/namein.c/oslab/nameout.c

/ * nameout.c */
#Define Library
#include <unistd.h>
#include <errno.h>
#include <asm/segment.h>
#include <linux/kernel.h>
#include <stdio.h>
_syscall2 (int, nameout, char *, name, unsigned int, size);
int main (int argc, char *argv [])
{
char username [64] = {0};
/ Звонный системный вызов nameout () /
Название (имя пользователя, 24);
printf ("%s n", имя пользователя);
возврат 0;
}
Использование метода Mount для реализации обмена файлами между хостом и операционной системой виртуальной машины выполните следующую команду в каталоге oslab , чтобы монтировать каталог HDC в операционную систему виртуальной машины

Compile Linux ядра пути: /oslab /linux
Выполнить команду Make в терминале 
Добиться успеха
Запустите путь файла виртуальной машины Bochs: / oslab / terminal для выполнения команды запуска 
Добавьте новый путь файла номера вызовов для Linux-0.11: /usr/include/unistd.h в виртуальной машине (также может быть изменен в графическом интерфейсе после монтажа) 
(Если модифицировано в виртуальной машине)
(При изменении в графическом интерфейсе хоста после монтажа)

GCC запустить успешно выводит текст корпуса


Планирование дисков выполняется с использованием FIFO (First Come First Service), SSTF (самый короткий приоритет поиска) и сканирования (алгоритм планирования лифта)
Показать заказ на планирование, вычислить среднее количество движущихся дорожек
Запишите файл файла FileTools, используя вызовы файловой системы, чтобы выполнять следующие функции:
Создайте новый файл, напишите файл, прочитайте файл, изменяйте разрешения на файлы, просмотрите текущие разрешения на файл и выходят
Используйте трубопроводы для реализации процесса связи между родителями и дочерними процессами
Генерировать 320 последовательности инструкций
Конвертировать последовательность инструкций в потоку адреса страницы
Рассчитайте алгоритм перестановки страниц первого и первого исхода (FIFO), самый последний и самый длинный алгоритм перестановки страницы и скорость попадания оптимального (оптимального) алгоритма перестановки страниц в различных блоках страницы памяти.
Используйте трубопроводы для реализации процесса связи между родителями и дочерними процессами
Используйте очереди буфера сообщений, чтобы включить связь между клиентскими и серверными процессами
Используйте общее хранилище для достижения процесса связи между двумя процессами