Faz pouco o lançamento do projeto ELKS 0.6 foi anunciado (Subconjunto de kernel Linux incorporável), desenvolve um sistema operacional semelhante ao Linux para processadores Intel 8086, 8088, 80188, 80186, 80286 e NEC V20/V30 de 16 bits.
O sistema operacional pode ser usado em computadores mais antigos da classe IBM-PC XT/AT e SBC/SoC/FPGA que recriam a arquitetura IA16. O projeto está em desenvolvimento desde 1995 e começou como um fork do kernel Linux para dispositivos sem unidade de gerenciamento de memória (MMU).
Existem duas opções para a pilha de rede: a pilha TCP/IP normal do kernel Linux e a pilha ktcp que é executada no espaço do usuário.
das placas de rede, Adaptadores Ethernet compatíveis com NE2K e SMC são suportados. Também é possível criar canais de comunicação através da porta serial utilizando SLIP e CSLIP. Os sistemas de arquivos suportados incluem Minix v1, FAT12, FAT16 e FAT32. O processo de inicialização é configurado usando o script /etc/rc.d/rc.sys.
Além do kernel Linux adaptado para sistemas de 16 bits, o projeto desenvolve um conjunto de utilitários padrão (ps, bc, tar, du, diff, netstat, mount, sed, xargs, grep, find, telnet, meminfo, etc.). ), incluindo o shell compatível com bash, o gerenciador de janelas do console de exibição, os editores de texto Kilo e vi, o ambiente gráfico baseado no servidor Nano-X X. Muitos componentes do espaço do usuário são emprestados do Minix, incluindo o formato de arquivo executável.
Principais novos recursos do ELKS 0.6
Nesta nova versão um interpretador de linguagem BASIC foi adicionado, adequado para estações de trabalho e sistemas ROM flashed. Isso inclui comandos para trabalhar com arquivos (LOAD/SAVE/DIR) e gráficos (MODE, PLOT, CIRCLE e DRAW).
Outra mudança que se destaca é que uma biblioteca matemática foi adicionada à biblioteca C padrão e a capacidade de trabalhar com números de ponto flutuante foi fornecida nas funções printf/sprintf, strtod, fcvt, ecvt. O código da função strcmp foi reescrito e significativamente acelerado. Uma implementação mais compacta da função printf foi proposta. Adicionadas funções in_connect e in_resolv.
Destaca-se também que o kernel melhorou o suporte para o sistema de arquivos FAT, aumentou o número máximo de pontos de montagem para 6, adicionou suporte para definir o fuso horário, adicionou uname, usatfs e chamadas de sistema de alarme, reescreveu o código para funcionar com o temporizador.
Além disso um programa para trabalhar com arquivos tar foi adicionado, comandos man e eman adicionados para exibir manuais e suporte fornecido para exibir páginas man compactadas e comando "redefinição de rede" adicionado. Comando nslookup reescrito, adicionado a capacidade de exibir informações sobre partições montadas ao comando mount.
Por outro lado, também se destaca desempenho aprimorado do comando ls em partições FAT, bem como desempenho e suporte significativamente aprimorados para sistemas de 8 bits no driver de rede NE2K.
Das outras mudanças que se destacam:
- O servidor FTP ftpd foi reescrito para suportar o comando SITE e a capacidade de definir tempos limite.
O suporte para resolver nomes DNS por meio da chamada in_gethostbyname é implementado para todos os aplicativos de rede. - O comando test ("[") está embutido na implementação do bash.
- Adicionado suporte para copiar um disco inteiro para o comando sys.
- Um novo comando de configuração foi adicionado para configurar rapidamente o nome do host e o endereço IP.
- Adicionadas as opções LOCALIP=, HOSTNAME=, QEMU=, TZ=, sync= e bufs= para /bootopts.
- Suporte para discos rígidos SCSI e IDE foi adicionado à porta para o computador PC-98, um novo carregador BOOTCS foi adicionado, suporte para carregamento de um arquivo externo foi implementado, suporte para partições de disco foi expandido.
A porta para processadores 8018X adicionou suporte para execução a partir de ROM e melhor manipulação de interrupções.
Finalmente Se você estiver interessado em saber mais sobre isso, você deve saber que o código-fonte é distribuído sob a licença GPLv2. O sistema é fornecido na forma de imagens para gravar em disquetes ou rodar no emulador QEMU, você pode consultar os detalhes no link a seguir.