Ao modificar os arquivos do sistema Linux 0.11, adicione uma chamada simples do sistema
Em Ubuntu20.04.1 Máquina virtual, usando os Bochs para executar arquivos de imagem compilados Linux0.11 para compilar Linux0.11 requer um ambiente GCC de 32 bits, e um link de configuração de ambiente simples e viável está anexado: https://gitee.com/cn-guoziyang/oslab:
Ao modificar o arquivo do sistema Linux 0.11 (executado com bochs), a implementação é adicionar uma chamada simples do sistema. Aqui está a saída da chamada.
Escreva o Nomeout.c do programa no nível do usuário, abra a janela para chamar a função do sistema através da macro syscall e ligue para a função SYS_NAMEOUT SYSTEM. Escreva a função sys_nameout, que é salva no kernel do sistema Linux0.11 no formato de arquivo de nome.c; sys_nameout chama printk () para concluir a impressão. Modifique o arquivo makefile para que o kernel/who.c adicionamos possa ser compilado e vinculado a outros códigos Linux.

Etapas detalhadas: adicione a definição macro de números de chamadas do sistema IAM e WHOAMI (_NR_XXXXXX)
Caminho do arquivo: /linux-0.11/**include/unistd.h ** 
Modifique o número total de chamadas do sistema Caminho de arquivo: /linux-0.11/**kernel/system_call.s ** 
Adicione o nome da chamada do sistema à chamada recém-adicionada do sistema e mantenha o caminho do arquivo da tabela de chamadas do sistema: /linux-0.11/ incluir/linux/sys.h

Escreva a implementação do código para a chamada recém-adicionada do sistema e crie um name.c arquivo.c caminho do arquivo **: /linux-0.11/kernel****

Escreva Printk ("Olá, I'm LWH") em nome.c
Modificar makefile
Para permitir que o kernel/who.c acrescente possa ser compilado e vinculado a outro código Linux, devemos modificar o arquivo makefile
Caminho do arquivo: /linux-0.11/kernel/makefile

Escrevendo um programa de teste
Até agora, a parte que precisa ser modificada no kernel foi concluída. Em seguida, você precisa escrever um programa de teste para verificar se a chamada do sistema recém-adicionada foi compilada no kernel Linux-0.11 para chamada
Caminho do arquivo: /oslab/namein.c /oslab/nameout.c

/ * nameout.c */
Biblioteca #Define
#include <unistd.h>
#include <errno.h>
#include <asm/segment.h>
#include <linux/kernel.h>
#include <stdio.h>
_sysCall2 (int, nameout, char *, nome, int -signed int, tamanho);
int main (int argc, char *argv [])
{
Char Nome de usuário [64] = {0};
/ Sistema de chamada Nomeout Nameout () /
Nomeout (nome de usuário, 24);
printf ("%s n", nome de usuário);
retornar 0;
}
Usando o método de montagem para realizar o compartilhamento de arquivos entre o host e o sistema operacional da máquina virtual, execute o seguinte comando no diretório oslab para montar o diretório HDC para o sistema operacional da máquina virtual

Compilar Linux Kernel File Path: /OSLab /Linux
Executar o comando make no terminal 
Fazer sucesso
Execute o caminho do arquivo da máquina virtual do Bochs: / OSLAB / Terminal para executar o comando RUN 
Adicione um novo caminho do arquivo de número de chamada para Linux-0.11: /usr/include/unistd.h na máquina virtual (também pode ser modificada na interface gráfica após a montagem) 
(Se modificado na máquina virtual)
(Se modificado na interface gráfica do host após a montagem)

O GCC Run produz com sucesso o texto do caso


A programação de disco é realizada usando o FIFO (primeiro serviço a chegar primeiro), SSTF (mais curto prioridade de busca) e digitalização (algoritmo de agendamento de elevadores)
Mostrar ordem de agendamento, calcule o número médio de faixas móveis
Escreva uma ferramenta de arquivo FileTools usando chamadas de sistema de arquivos para ter as seguintes funções:
Crie um novo arquivo, escreva um arquivo, leia um arquivo, modifique as permissões de arquivo, visualize as permissões de arquivo atual e saia
Use oleodutos para implementar a comunicação do processo entre processos pai e filho
Gerar 320 sequências de instruções
Converter sequência de instruções no fluxo de endereços de página
Calcule o primeiro algoritmo de permutação de página primeiro a sair (FIFO), o algoritmo de permutação de página mais recente e mais duradouro e a taxa de acerto do algoritmo de permutação de página ideal (ideal) sob diferentes blocos de página de memória
Use oleodutos para implementar a comunicação do processo entre processos pai e filho
Use filas de buffer de mensagem para permitir a comunicação entre os processos do cliente e do servidor
Use o armazenamento compartilhado para alcançar a comunicação do processo entre dois processos