Skip to content

hexagonix/Hexagon

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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 para a arquitetura PC (i386). É 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). No momento, garante um ambiente monoutilizador, apesar do uso de terminais virtuais, e monotarefa, apesar da capacidade de carregar, manter em memória e controlar mais de um processo por vez, em uma pilha de execução de ordem cronológica. Futuramente o kernel poderá receber suporte a execução de múltiplos processos em multitarefa preemptiva. 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 i386 (Pentium III ou superiores);
  • Suporte a dispositivos com 32 MB de memória RAM ou mais;
  • Suporte a ambiente de usuário;
  • Chamada de sistema com 68 funções sofisticadas acessadas pelo ambiente de usuário;
  • Formato binário executável próprio (HAPP);
  • Unix-like;
  • Completamente escrito em Assembly i386;
  • 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;
  • Multitarefa preemptiva.

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 Assembly for the PC (i386) 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). At the moment, it guarantees a single-user environment, despite the use of virtual terminals, and single-tasking, despite the ability to load, keep in memory and control more than one process at a time, in a chronological order execution stack. In the future, the kernel may support the execution of multiple processes in preemptive multitasking. 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 i386 processors (Pentium III or higher);
  • Support for devices with 32 MB of RAM or more;
  • User environment support;
  • System call with 68 sophisticated functions accessed by the user environment;
  • Own executable binary format (HAPP);
  • Unix-like;
  • Completely written in i386 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;
  • Preemptive multitasking.

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-2024, 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.