Executando verificação de segurança...
5

Realmente, fui um preguisoço anteriormente, mas fico feliz que a discussão tenha despertado seu interesse e agradeço pela crítica. Então vamos lá, sem preguiça.

Aprenda C e Unix de verdade:

Antes de mergulhar nas implementações, recomendo fortemente começar pelo entendimento da interface, por meio do APUE. Após estudar esse livro a fundo, você terá uma base sólida para compreender como ferramentas essenciais como Postgres, Nginx (e muitas outras) funcionam. Eles dependem fundamentalmente do que o Unix oferece para essas aplicações.

Entender a interface Unix é essencial, não só teoria. Isso permite otimizar suas aplicações, aproveitando os recursos do sistema operacional de maneiras que muitos desconhecem. Lembro-me de ler um paper em 2014 ou 15, que detalhava como, graças a um conhecimento profundo de como o epoll funciona, foi possível manter um servidor nginx funcional mesmo sob um intenso ataque DDoS. Da mesma forma, já observei casos onde o Unix/Postgres foi utilizado para que certas conexões tivessem suas threads escalonadas em tempo real. Esse tipo de configuração garantia que operações específicas fossem executadas mesmo sob condições de estresse extremo no banco de dados. Isso é aprender Unix verdade.

Este é o tipo de conhecimento que permite soluções muitos mais robustas e eficientes, e sobre restrições severas as únicas possiveis. Ambos os casos exigem mais do que um entendimento profundo das APIs do Unix; é necessário modificar e recompilar o código-fonte de cada aplicação para atender a essas demandas especificas.

Quanto ao seu interesse no desenvolvimento de BSD e Linux, é um ótimo caminho. Esses sistemas são obras de alguns dos programadores mais experientes em C do mundo. Os livros que recomendei (existem muitos outros na verdade, estes são os melhores, hehe) oferecem um vislumbre de decisões e implementações notáveis. Por exemplo, a forma como a lista encadeada do kernel do Linux, calcula o endereço do proximo elemento, é uma verdadeira joia da programação C. Assim como maneira que o BSD realiza manipulações de bits para aplicar e combinar filtros e flags no kqueue, que não apenas é eficiente, mas também surpreendentemente clara e legível. Isso é aprender C de verdade.

Um abraço e bons estudos!

Carregando publicação patrocinada...
2

primeiramente, obrigado @oCarlos por ter feito o @clacerda escrever uma resposta mais detalhada, kssk.

assim, muito obrigado pelo conteúdo que você mandou, principalmente pelos links, já que, se você não compartilhasse esses links, eu provavelmente não iria conseguir achar, por preguiça ou porque eu não sei pesquisar nada mesmo.

eu sou um grande curioso nessa parte de Unix, mesmo não sabendo muito, eu mexo mais no Linux, que não deixa de ser um Unix (eu acho). inclusive já baixei o Arch Linux algumas boas vezes (não sei se isso é grande coisa, mas eu achei o processo divertido).

eu já tive a ideia de tentar contribuir em algo no sistema linux, ou tentar fazer alguma modificação direta no Arch Linux, mas eu não faço ideia de como fazer isso, e isso tudo se dá por preguiça da minha parte.

como eu disse mais a cima, eu não sei pesquisar (vou até anotar esse ponto para eu aprender), e tudo isso é por conta da, preguiça.

bem, novamente eu agradeço por ter compartilhado esses links, com certeza vou utiliza-los para estudos.

até uma próxima!