-
Drew DeVault
25/11/2022 21:00
Focar em geração de código nunca foi tão interessante, e o autor mostra como é possível gerar interfaces de comunicação interprocessos no seu sistema operacional. O uso de "strings::template" na biblioteca padrão do Hare, inspirado no Python, é um toque elegante que torna a tarefa mais acessível. Como mencionado, "gerar código começa com o ponto de entrada", o que é uma mensagem clara para quem lida com DSLs. Essa abordagem traz relevância prática para o desenvolvimento, equilibrando teoria e aplicação.
-
O autor Evan Ovadia traz à tona um conceito curioso com sua nova abordagem de segurança de memória, a partir de uma noite acordado pensando em fanfics. Ele apresenta 'regions', uma técnica de análise estática que promete escrever código seguro e eficiente sem depender de coleta de lixo ou contagem de referências. Isso é como se o código estivesse de férias, descansando em um resort, enquanto cuida da memória por conta própria. Resta saber como essa abordagem se desenrolará nas próximas partes do artigo e se realmente será o Santo Graal da segurança de memória.
-
O conceito de 'zero-cost borrowing' com as Vale Regions é uma proposta interessante. Eles estão tentando resolver o eterno dilema entre segurança de memória e performance, algo que até hoje parece ter sido um campo de batalha com poucas vitórias. Como mencionado, a ideia de combinar referências geracionais com regiões promete não apenas ser rápida, mas também manter uma simplicidade admirável. Vamos ver se eles conseguem sair dessa com mais acertos do que um código legado mal escrito.
-
Drew DeVault
12/11/2022 00:00
Plan 9 é como aquele projeto de código aberto que ninguém ouviu falar, mas que os grandes nomes da tecnologia respeitam. Como destacado no texto, "Plan 9 é um sistema operacional de pesquisa e existe para responder perguntas sobre ideias em design de OS". Ele tirou apoio de conceitos bem legais como UTF-8 e containers. E quem diria que abrir um TCP seria tão simples quanto abrir um arquivo? Se a evolução do Unix tivesse um tio, seria o Plan 9, sempre jogando suavidade no que poderia ser uma bagunça de syscalls.
-
Drew DeVault
11/11/2022 21:00
Plan 9 é o tipo de sistema operacional que você não sabia que precisava conhecer, mas que influenciou tudo ao seu redor, mesmo quando sua mãe não sabe o que é um sistema operacional. A forma como ele aborda a programação de rede, utilizando arquivos em vez de syscalls mágicas, parece uma solução que até o mais cético dos devs poderia admirar. "Quando tudo deve ser um arquivo no Unix, por que a API de rede é totalmente implementada com chamadas syscalls especiais?" Essa pergunta é mais pertinente do que parece. E sim, a ideia de montar um servidor remoto em seu namespace de sistema de arquivos sem permissões complicadas é algo que devs de infraestrutura sem dúvida dariam uma estrela no GitHub.
-
Antirez (Salvatore Sanfilippo)
04/11/2022 15:46
Falar de listas encadeadas é como lembrarmos de como nossas primeiras experiências de programação nos moldaram. O autor defende que, muito além de serem vistas como mero meme de entrevista, "as listas encadeadas mostram ao programador novato conceitos fundamentais sobre espaço e tempo na computação". Elas ensinam sobre como a adição de elementos funciona em tempo constante, além de explorar propriedades como a composabilidade. Se você já trabalhou com estruturas de dados em projetos sérios, sabe que subestimar listas encadeadas pode ser um erro tão grande quanto tentar usar bubble sort em produção.
-
Drew DeVault
27/10/2022 00:00
Este post nos apresenta o primeiro driver de espaço de usuário para o Helios, um driver serial, que é como aquele amigo que sempre volta para a conversa depois de um tempo fora de moda. A implementação utilizando um tarball é um lembrete elegante de que até o mais simples dos protocolos pode ter suas nuances, especialmente quando falamos de comunicação entre sistemas. A promessa de cobrir a API de threading em espaço de usuário ficou para uma próxima vez, mas quem precisa disso quando você pode brincar com drivers e bootloaders?
-
Drew DeVault
26/10/2022 21:00
Neste post, estamos vendo a implementação de um driver serial em espaço de usuário para o sistema Helios. O autor menciona, com um toque de humor, que "estritamente falando, isso deveria ser 'notas de hacking de OS em Hare'"—um típico caso onde a nomenclatura é apenas a ponta do iceberg. É interessante notar como um driver serial, embora considerado 'fora de moda', ainda tem sua utilidade em projetos como este. O uso de um tarball para o initramfs mostra que o autor não tem medo de manter as coisas simples e funcionais. Um belo exemplo de como conceitos antigos ainda têm um espaço em novas tecnologias, não é mesmo?
-
No mundo da latência, todos já sentimos aquele momento em que o sistema parece sair de férias. O artigo em questão, "Nudge: Stochastically Improving upon FCFS", propõe uma abordagem interessante para melhorar a latência da cauda, que é basicamente como dar um empurrãozinho na fila. O que me impressiona é que, mesmo com tantos algoritmos sofisticados, a maioria ainda depende do FCFS. E esse Nudge quer trocá-lo por pequenas prioridades em trabalhos menores sem desmerecer o bom e velho FCFS. E aí, vale a pena experimentar ou é só mais um truque de mágica?
-
Drew DeVault
15/10/2022 00:00
Parece que outubro foi um mês de reprogramação geral, mas não a que você pode estar pensando. O Helios deu um salto quântico na sua arquitetura com um novo scheduler e uma API de usuários completamente repaginada. "A separação de preocupações" é a nova mantra do kernel, e quem diria que um page fault poderia se transformar numa festa? Se tudo isso funcionar como planejado, talvez a Helios consiga uma balança equilibrada entre diversão e funcionalidade, como um bom nerd jogando Jenga com códigos.
-
Drew DeVault
14/10/2022 21:00
Nesse mês de descanso, o autor fez um leve desvio para o lado divertido da programação, trazendo melhorias significativas para o Helios. As adições como suporte a endereços IPv6 e melhorias no decodificador UTF-8 mostram que apesar do foco em diversão, o trabalho sério não foi esquecido. O novo módulo uapi promete uma separação mais limpa das responsabilidades no kernel, o que é sempre uma boa notícia. E quem não gosta de um bom sistema de threads melhorado? Parece que Helios está se preparando para brilhar com toda sua complexidade e funcionalidade.
-
O texto fala sobre o dilema de escalar a capacidade de um banco de dados sem comprometer a atomicidade de transações. "O clássico problema de ciência da computação chamado Compromisso Atômico" nos lembra que, mesmo com duas instâncias, se as transações precisam acessar ambos os shards, a escalabilidade vai pras cucuias. No fim das contas, um otimismo exagerado nos dá uma performance que não reflete a complexidade do problema. A rigidez do Two-Phase Commit mostra que, mesmo em sistemas distribuídos, nem tudo que reluz é ouro, especialmente quando se trata de transações.
-
Drew DeVault
03/10/2022 00:00
A discussão sobre a inclusão de Rust no kernel do Linux é como tentar convencer um droid a mudar de lado na guerra dos clones. O autor, que não é exatamente fã de Rust, afirma que "a linguagem não se encaixa nas necessidades do kernel", e isso é um ponto interessante. Lidar com alocações de memória e restrições de uso de pilha é como tentar realizar um debug em um código legado: complicado. Se Linus Torvalds diz que "as necessidades do kernel superam quaisquer necessidades do Rust", vale a pena ouvir; no fim, o kernel não vai se moldar ao que os apaixonados por Rust desejam.
-
Drew DeVault
02/10/2022 21:00
Esse texto traz um debate interessante sobre Rust no kernel do Linux, mas o autor deixa claro que sua resposta é um não bem firme. Ele argumenta que o kernel exige um rigor que Rust pode não conseguir atender facilmente, como "estritos limites na alocação de memória e no uso da pilha". O que eu levo disso tudo é que, na hora de pensar em linguagens para ambientes tão críticos quanto o kernel, é preciso olhar atentamente para as necessidades específicas – algo que nem todo mundo parece fazer. Até mesmo Linus Torvalds já disse: "as necessidades do kernel superam qualquer necessidade do Rust".
-
Drew DeVault
02/10/2022 00:00
Quem diria que o Hare quebraria seu juramento de não ter multi-threading? Mas calma, a abordagem tipo "não inventado aqui" ainda reina, já que essa funcionalidade foi arquitetada sobre um micro-kernel chamado Helios. O autor ressalta que, embora a multi-threading não seja protagonista em Ares, ela será útil especialmente para testar as primitivas do kernel. A implementação de pthreads parece estar nos planos futuros, o que é ótimo para portabilidade - e quem não ama um bom P2P direto dos 90?
-
Drew DeVault
01/10/2022 21:00
Parece que o Hare decidiu dar uma escapadinha na sua própria promessa de não implementar multi-threading. O autor menciona que, apesar de não esperar que isso tenha um papel crucial no sistema Ares, é uma adição interessante para ajudar a testar primitivas do kernel Helios. Usar threads para IPC é como achar que pode rodar um JavaScript pesado sem impactar o desempenho; uma decisão mais eficiente em vários aspectos. Vamos ver como isso vai se desenrolar no futuro.
-
Drew DeVault
15/09/2022 00:00
Aparentemente, o COVID-19 não conseguiu derrubar a produtividade desse dev. Ele menciona que está "metade do caminho da pilha de lenços de papel" enquanto trabalha para simplificar a compilação cruzada no Hare. Além disso, a inclusão de IDs de espaço de endereço promete um "impulso substancial de performance" — uma ótima sacada para quem se preocupa com eficiência nas máquinas. Com tanta refatoração em Helios, parece que ele está aplicando o conceito de programação defensiva diretamente no design, o que é sempre bem-vindo em projetos que pretendem crescer.
-
Drew DeVault
14/09/2022 21:00
O autor está lidando com COVID-19 e, apesar da recuperação lenta, trouxe algumas novidades no desenvolvimento do Hare. A facilitação do cross compiling é um alívio, e o "bigint stuff" parece promissor para o suporte a TLS. Além disso, o novo projeto powerctl é uma adição interessante para gerenciar estados de energia no Linux — provavelmente o devs irão preferir isso a administrar uma pilha de lenços. A reformulação do Helios promete melhorias significativas ao reconsiderar o ciclo de vida dos objetos, o que pode ser um divisor de águas em performance.
-
Drew DeVault
07/09/2022 00:00
O texto destaca como a linguagem de programação Hare busca facilitar a escrita de kernels, como o projeto Helios. Os kernels são realmente criaturas complexas, muito mais exigentes do que seu aplicativo de lista de compras. O conceito de passar um "bootinfo" com informações cruciais para o init, em um contexto onde a alocação dinâmica é um quebra-cabeça, é um verdadeiro teste de habilidade para devs. Afinal, quem disse que programar em baixo nível não poderia ser também uma diversão cheia de desafios?
-
Drew DeVault
06/09/2022 21:00
O artigo explora a linguagem de programação Hare e seu objetivo de permitir a criação de kernels, especificamente no projeto Helios. O foco aqui é na complexidade de fornecer informações detalhadas ao processo init, que é crucial para a inicialização do sistema. O autor menciona a necessidade de lidar com múltiplos espaços de endereçamento em um ambiente onde a alocação dinâmica é um verdadeiro tabu. Agora, se você acha que programar no nível do kernel é fácil, é melhor dar uma olhada nesses desafios de gestão de memória antes de escrever seu próximo loop for em Python.