Skip to content

Latest commit

 

History

275 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Escolha o idioma/choose language

🇧🇷 Português (Brasil)

Kernel Hexagon

O Hexagon é um núcleo (kernel) monolítico executado em modo protegido 32-bit, desenvolvido puramente em Assembly x86 para a arquitetura PC (x86). É um kernel escrito do zero, visando a velocidade e a compatibilidade de harware moderno, mas também sendo capaz de ser executado em hardware mais antigo (Pentium III ou superiores, com 32 MB de memória RAM ou mais). Suporta multitarefa preemptiva: múltiplos processos ficam em memória e são executados de forma concorrente por um escalonador round-robin. Um processo idle dedicado (PID 0) está presente para quando não há nada pronto para ser executado. O Hexagon foi projetado para ser um kernel Unix-like e compõe a base do Hexagonix, embora independente deste. Ele executa imagens executáveis no formato HAPP, desenvolvido exclusivamente para o Hexagon. Ele também implementa uma API bastante sofisticada acessível através de uma chamada de sistema padronizada e documentada, como você pode ver abaixo.

Algumas características do Hexagon:

  • Suporte a processadores x86 (Pentium III ou superiores);
  • Suporte a dispositivos com 32 MB de memória RAM ou mais;
  • Suporte a ambiente de usuário;
  • Multitarefa preemptiva, com escalonador round-robin e processo idle dedicado;
  • Sete estados de processo (livre, pronto, em execução, bloqueado, dormindo, zumbi e idle);
  • Criação de processos não bloqueante (spawn) e encerramento de processos por PID (kill);
  • Chamada de sistema com 71 funções acessadas pelo ambiente de usuário;
  • Formato binário executável próprio (HAPP);
  • Unix-like;
  • Completamente escrito em Assembly x86;
  • Self-hosting (o montador usado para construir o Hexagon pode ser executado sobre ele);
  • Sistema de arquivos virtual;
  • Abstração de dispositivos;
  • Suporte total a leitura e escrita em sistemas de arquivos FAT16;
  • Suporte a gráficos VESA VBE e em múltiplas resoluções;
  • Suporte a modo texto;
  • Motor de renderização de fontes gráficas, que podem ser alteradas pelo usuário;
  • Suporte a relógio em tempo real;
  • Suporte a portas seriais e paralelas (comunicação serial, debug e impressão);
  • Compatível com carregador de inicialização próprio (Hexagon Boot - HBoot);
  • Suporte a usuários e permissões.

Outras características que estão sendo desenvolvidas:

  • Procura e enumeração de todos os dispositivos PCI.

Você pode ajudar a implementar as funções em desenvolvimento acima!

Este arquivo não fornece informações técnicas sobre o kernel Hexagon. Para acessar a documentação técnica completa, clique aqui.

🇬🇧 English

Hexagon kernel

Hexagon is a monolithic kernel running in 32-bit protected mode, developed purely in x86 Assembly for the PC (x86) architecture. It is a kernel written from scratch, aiming for the speed and compatibility of modern hardware, but also being able to run on older hardware (Pentium III or higher, with 32 MB of RAM or more). Supports preemptive multitasking: multiple processes are kept in memory and run concurrently through a round-robin scheduler. An idle process (PID 0) takes over when nothing is ready to run. Hexagon was designed to be a Unix-like kernel and forms the basis of Hexagonix, albeit independently of it. It runs executable images in the HAPP format, developed exclusively for Hexagon. It also implements a very sophisticated API accessible through a standardized and documented system call, as you can see below.

Some features of Hexagon:

  • Support for x86 processors (Pentium III or higher);
  • Support for devices with 32 MB of RAM or more;
  • User environment support;
  • Preemptive multitasking, with a round-robin scheduler and a dedicated idle process;
  • Seven process states (free, ready, running, blocked, sleeping, zombie and idle);
  • Non-blocking process creation (spawn) and process termination by PID (kill);
  • System call with 71 functions accessed by the user environment;
  • Own executable binary format (HAPP);
  • Unix-like;
  • Completely written in x86 Assembly;
  • Self-hosting (the assembler used to build the Hexagon can run on top of it);
  • Virtual file system;
  • Device abstraction;
  • Full support for reading and writing on FAT16 file systems;
  • VESA VBE and multi-resolution graphics support;
  • Text mode support;
  • Graphic font rendering engine, which can be changed by the user;
  • Real-time clock support;
  • Support for serial and parallel ports (serial communication, debug and printing);
  • Supports own boot loader (Hexagon Boot - HBoot);
  • Support for users and permissions.

Other features being developed:

  • Search and enumeration of all PCI devices.

You can help implement the above development functions!

This file does not provide technical information about the Hexagon kernel. To access the complete technical documentation, click here.

Licença do Hexagon/Hexagon License

Hexagonix Operating System

BSD 3-Clause License

Copyright (c) 2015-2026, Felipe Miguel Nery Lunkes
All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

About

Hexagon kernel (Hexagonix kernel)

Topics

Resources

Stars

13 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages