// sistema operacional

AJOS

Anthony Operating System · Arquitetura de Baixo Nível com Interrupções e Kernel Próprio

Kernel: Estável Interrupções: Implementadas Shell: Funcional v1.2.0
$ ./ajos --boot > kernel loaded · interrupts enabled · shell ready

Baixo Nível

Boot em Assembly · Interrupções de hardware · Gerenciamento de memória

Interrupções

IRQ handlers · Interrupções de software · Sistema de eventos

Shell Próprio

Interface de comando · 25+ comandos · Sistema de arquivos básico

Arquitetura

Kernel monolítico · Drivers de dispositivo · Gerenciamento de processos

🏗️ Arquitetura do Sistema

O AJOS é construído sobre uma arquitetura de kernel monolítico, com camadas bem definidas que vão desde o bootloader em Assembly até a camada de aplicação em Java. O sistema atualmente suporta interrupções de hardware e software, gerenciamento de processos e um shell interativo completo.

Bootloader

Assembly · Inicialização · Modo Real → Protegido

Kernel

C · Gerenciamento de memória · Interrupções · Scheduler

Drivers

Dispositivos · VGA · Teclado · Timer

Shell

Java · Interface de comando · Sistema de arquivos

Aplicações

Java · Programas do usuário · Bibliotecas padrão

⚡ Funcionalidades Técnicas

🔄 Gerenciamento de Interrupções

O AJOS implementa um sistema completo de interrupções, incluindo handlers para interrupções de hardware (IRQ) e software (INT). O sistema suporta:

// Exemplo: Handler de Interrupção do Teclado (C)
void keyboard_irq_handler() {
   unsigned char scancode = inb(0x60);
   if (scancode & 0x80) {
      // Tecla liberada
      handle_key_release(scancode & 0x7F);
   } else {
      // Tecla pressionada
      handle_key_press(scancode);
   }
   send_eoi(1); // End of Interrupt
}

🧠 Kernel e Gerenciamento de Processos

O kernel do AJOS gerencia processos de forma eficiente, com escalonamento baseado em prioridade e suporte a multitarefa preemptiva.

💻 Shell de Comandos

O shell do AJOS oferece uma interface completa para interação com o sistema, com suporte a 25+ comandos e um sistema de arquivos básico.

// Exemplo: Comando 'ps' no Shell (Java)
public class PsCommand {
   public static void execute(String[] args) {
      Process[] processes = Kernel.getProcesses();
      System.out.println("PID\tSTATUS\tNAME");
      for (Process p : processes) {
         System.out.println(p.getId() + "\t" +
            p.getStatus() + "\t" + p.getName());
      }
   }
}

🛠️ Stack Tecnológica

O AJOS é construído com uma combinação de linguagens de baixo e alto nível para maximizar performance e flexibilidade:

Assembly (x86) C Java NASM GCC QEMU GRUB Make GDB

📊 Status de Desenvolvimento

✅ Concluído

  • • Bootloader em Assembly
  • • Kernel em C
  • • Shell em Java
  • • Sistema de interrupções
  • • Gerenciamento de processos

🔄 Em Desenvolvimento

  • • Sistema de arquivos avançado
  • • Drivers de rede
  • • Interface gráfica básica
  • • Suporte a múltiplos núcleos

📋 Planejado

  • • Suporte a USB
  • • Rede TCP/IP
  • • Sistema de arquivos distribuído
  • • Virtualização leve

🖥️ Demonstração

AJOS em execução no QEMU [ Boot: GRUB → Kernel → Shell ]
Emulação disponível em breve
Em breve Solicitar acesso