A primeira pasta ( 01_simpleOS_Hello_World ) disponibilizada é apenas um "Hello World" ... com o tempo vou fazendo mais uploads de mais implementação:
02_simpleOS_Keyboard ... 03_simpleOS_Interrupts ... etc.
E esqueci de informar as referências ... "honrar a quem tem honra merecidas":
//-------------------------------------------------------------------
//
// THIS FILE IS PART OF SIMPLE OPERATING SYSTEM:
//
// The Interrupt API.
//
// FILE:
// interrupt.c
//
// This API is based in this:
//
// REFERENCE:
// http://www.osdever.net/bkerndev/index.php
// https://sourceforge.net/projects/flick/
// https://github.com/ketanhwr/exylus
//
// START DATE: 16/06/2019 - 10:40
//
//-------------------------------------------------------------------
//
//-------------------------------------------------------------------
//
// THIS FILE IS PART OF SIMPLE OPERATING SYSTEM:
//
// The Interrupt API.
//
// FILE:
// asm.S
//
// This API is based in this:
//
// REFERENCE:
// http://www.osdever.net/bkerndev/index.php
// https://sourceforge.net/projects/flick/
// https://github.com/ketanhwr/exylus
//
// START DATE: 16/06/2019 - 10:40
//
//-------------------------------------------------------------------
//
6. Re: Projeto SOS ( Simple Operating System ) | HOWTO !!!
lmJRusa Debian
Post recolhido
Enviado em 18/06/2019 - 18:18h
Continuarei acompanhando o projeto, ainda mais porque nos próximos anos pretendo conseguir entrar numa graduação na área de Computação.
Desejo sucesso aí!
7. Re: Projeto SOS ( Simple Operating System ) | HOWTO !!!
gokernelusa Linux Mint
Post recolhido
Enviado em 19/06/2019 - 12:15h
Olá pessoal !
Atualizei o projeto com o teclado usando Interrupção .
OBS: Na próxima atualização vou substituir a API INTERRUPT ( asm.S, interrupt.c ) por essa ( https://github.com/scanlime/metalkit ), motivo:
01: A API MetalKit se mostrou mais precisa em uns testes ...
02: A MetalKit se mostrou mais performática em um teste de performance :
--------------------------------------------------------------------------
a: Usando um "FPS" com a atual api ( interrupt ) exibiu o máximo: 187.322.705
b: Usando um "FPS" com ( MetalKIT interrupt) exibiu o máximo: 554.245.590
OBS: "sem esperar pela proxima interrupcao" ... ou seja um loop vazio de performance.
OBS2: ao tentar compilar esse teste em Linux não vai funcionar corretamente... só funciona compilando em Windows 32 bits ... digo: compila mas não funciona ...
--------------------------------------------------------------------------
8. Re: Projeto SOS ( Simple Operating System ) | HOWTO !!!
gokernelusa Linux Mint
Post recolhido
Enviado em 20/06/2019 - 12:51h
Olá pessoal !
O sistema foi atualizado com ( General Protection Fault ) ... para testar basta tentar executar um teste simples ( call_hello ) no shell que o OS faz a "proteção", ou seja "paralisa" ...
Usando o comando ( call_hello ), estou tentando executar um ( JIT ) ... o sistema identifica e "protege" ... BETA AINDA.
Quem não quiser usar essa "protecao", basta comentar no arquivo ( interrupt.c ) as linhas com:
idt_set_gate(0, (uint)isr0, 0x08, 0x8E); // linha 179
...
idt_set_gate(31, (uint)isr0, 0x08, 0x8E); // linha 210
9. Re: Projeto SOS ( Simple Operating System ) | HOWTO !!!
gokernelusa Linux Mint
Post recolhido
Enviado em 21/06/2019 - 11:40h
Olá pessoal !
Neste momento estou esperando o almoço ficar pronto ... então corri para postar esse:
Talvez alguém esteja se perguntando sobre o último comentário meu ... Porque ao chamar no shell o comando ( call_hello ) logo em seguida acontece a "proteção" ???
Explicando:
De propósito eu executo um ( JIT ) com bug:
// JIT COM BUG DE PROPÓSITO ...
#define LONG_TO_BYTE(l) l, (l >> 8), (l >> 16), (l >> 24)
void call_hello (void) {
long l = &hello;
unsigned char code[] = {
0x55, // push %ebp
0x89, 0xe5, // mov %esp,%ebp
// ... no setup %esp stack ...
// BUG AQUI DE PROP[OSITO... pois precisa setar a PILHA: