Lançamento do sistema operacional ToaruOS 1.14 e linguagem de programação Kuroko 1.1

Está disponível o lançamento do projeto ToaruOS 1.14, desenvolvendo um sistema operacional semelhante ao Unix escrito do zero com kernel próprio, carregador de boot, biblioteca C padrão, gerenciador de pacotes, componentes de espaço do usuário e uma interface gráfica com gerenciador de janelas compostas. No atual estágio de desenvolvimento, os recursos do sistema são suficientes para executar Python 3 e GCC. O código do projeto é escrito em C e distribuído sob a licença BSD. Uma imagem ao vivo de 14 MB foi preparada para download, que pode ser testada em QEMU, VMware ou VirtualBox.

Lançamento do sistema operacional ToaruOS 1.14 e linguagem de programação Kuroko 1.1

O projeto teve início em 2010 na Universidade de Illinois e desenvolveu-se inicialmente como um trabalho de pesquisa na área de criação de novas interfaces gráficas compostas. Desde 2012, o desenvolvimento se transformou no sistema operacional ToaruOS, que foi desenvolvido inicialmente como um projeto estudantil, e depois se transformou em um hobby de fim de semana, adquirido pela comunidade que se formou em torno do projeto. Em sua forma atual, o sistema está equipado com um gerenciador de janelas composto, suporta arquivos executáveis ​​vinculados dinamicamente no formato ELF, multitarefa, gráficos e pilhas de rede.

O pacote inclui uma versão da linguagem de programação Python 3.6, que é usada no desenvolvimento de alguns aplicativos gráficos específicos do ToaruOS, como gerenciador de pacotes, editor gráfico, visualizador de PDF, calculadora e jogos simples. Programas de terceiros portados para ToaruOS incluem Vim, GCC, Binutils, FreeType, MuPDF, SDL, Cairo, Doom, Quake, emulador de Super Nintendo, Bochs, etc.

ToaruOS é baseado em um kernel que utiliza uma arquitetura modular híbrida que combina um framework monolítico e ferramentas para utilização de módulos carregáveis, que formam a maioria dos drivers de dispositivos disponíveis, como drivers de disco (PATA e ATAPI), sistemas de arquivos EXT2 e ISO9660, framebuffer , teclados, mouses, placas de rede (AMD PCnet FAST, Realtek RTL8139 e Intel PRO/1000), chips de som (Intel AC'97), bem como complementos VirtualBox para sistemas convidados.

As primitivas fornecidas pelo kernel incluem threads Unix, TTY, sistema de arquivos virtual, multithreading, IPC, memória compartilhada, multitarefa e outros recursos padrão. ext2 é usado como sistema de arquivos. Para interagir com o kernel, é fornecida uma implementação pseudo-FS /proc, criada por analogia com o Linux.

Os planos para 2021 incluem trabalho na arquitetura x64-86 de 64 bits (por enquanto, os assemblies estão sendo gerados apenas para sistemas x32 de 86 bits) e suporte para sistemas multiprocessadores (SMP). Outros objetivos incluem melhorar a compatibilidade com especificações POSIX na área de processamento de sinais e métodos de sincronização, trazer a biblioteca C padrão para o nível Newlib e implementar seu próprio compilador de linguagem C e ferramentas de desenvolvimento.

O projeto também está desenvolvendo sua própria linguagem de programação dinâmica, Kuroko, projetada para substituir o Python no desenvolvimento de utilitários e aplicações customizadas para o sistema. A linguagem suporta compilação e interpretação de bytecode, sua sintaxe se assemelha ao Python (é posicionada como um dialeto abreviado do Python com definição explícita de variáveis) e possui uma implementação muito compacta. O interpretador de bytecode fornece um coletor de lixo e suporta multithreading sem usar bloqueio global. O compilador e o interpretador podem ser compilados na forma de uma pequena biblioteca compartilhada (~500KB), integrada a outros programas e extensível através da API C. Além do ToaruOS, a linguagem pode ser usada em Linux, macOS, Windows e rodar em navegadores que suportam WebAssembly.

A nova versão do ToaruOS focou no desenvolvimento da biblioteca C padrão e da linguagem de programação Kuroko. Por exemplo, funções matemáticas necessárias para o cálculo correto dos parâmetros de iluminação no jogo Quake foram adicionadas à libc. A capacidade de inicializar no VirtualBox no modo EFI foi aprimorada. O tamanho da imagem iso foi reduzido usando a compactação da imagem do disco RAM.

A nova versão da linguagem Kuroko 1.1 adiciona suporte para async e await, implementa multithreading, melhora a compatibilidade com Python 3, suporta múltiplas atribuições de valores, expande as ferramentas para escrever manipuladores na linguagem C, adiciona suporte para anotações de tipo para funções, adiciona o palavras-chave “yield” e “yield from”, os módulos os, dis, fileio e time foram integrados, novos métodos foram implementados em str, list, dict e bytes, suporte para pré-compilação em bytecode foi adicionado, a licença foi adicionada foi alterado para MIT (anteriormente havia uma combinação de MIT e ISC).

Fonte: opennet.ru

Adicionar um comentário