1 comentários

 
GN⁺ 2024-05-27
Opiniões do Hacker News
  • Desde a adolescência eu sonhava com esse tipo de conteúdo, e é ótimo ver cada vez mais programadores trabalhando em projetos bem avançados transmitindo seu processo de trabalho
    Quando dá para dar uma olhada por trás da cortina assim, muita coisa que parecia mágica e complexa deixa de ser tão misteriosa

    • Tenho inveja das crianças de hoje, que conseguem encontrar praticamente qualquer coisa que queiram aprender. Antigamente não era nada assim
    • Eu também sonhava com isso, mas ainda acho difícil encontrar conteúdo profundo e tecnicamente excelente
      Seria bom compartilharmos esses canais entre nós, e eu gostaria de conhecer outros
      Outro canal que conheço é https://www.youtube.com/@LowLevelLearning
      Tecnicamente não é um canal de programação, mas também gosto muito de https://www.youtube.com/@StuffMadeHere. É um excelente canal de engenharia
    • O canal do Marcan também vale a pena. O processo de colocar Linux para rodar no silício ARM da Apple tem quase 12 horas e é impressionante, e mostra que a Apple usou bastante hardware customizado
      https://www.youtube.com/live/GxnWuXgj3JI?si=lUJ_7KdkylzXLryj
  • Alguns meses atrás escrevi um driver de host USB para STM32F4, e a parte mais difícil foi a falta de boa documentação
    O periférico tinha registradores de leitura/escrita mapeados como somente leitura no SVD, era preciso definir bits que não estavam documentados, e o USB bulk-only transport apontava para uma especificação SCSI inexistente
    No fim, encontrei um post de blog dizendo que, para fazer um pendrive USB funcionar, era preciso basicamente copiar exatamente o que o Windows faz
    Felizmente, eu tinha um osciloscópio capaz de decodificar quadros USB, o que me poupou muito tempo para entender por que não estava funcionando
    USB parece depender muito de conhecimento transmitido informalmente; ainda assim, é impressionante que seja tão universal e que, na maioria das vezes, simplesmente funcione

    • Fico curioso para saber qual osciloscópio você usou para decodificar USB
    • Fico curioso se você nunca pensou em transmitir esse tipo de trabalho
    • Os controladores USB da Intel perdoam absurdamente bugs no software de controle. São realmente extremamente tolerantes
  • Comecei a contribuir para um projeto de descompilação e, embora eu esteja longe de ser o melhor descompilador, já pensei em transmitir enquanto trabalho
    Fico me perguntando se haveria interesse nesse tipo de conteúdo. Não sei se as pessoas teriam curiosidade sobre vestígios de como o assembly é afetado pelo sinal das variáveis, a diferença entre acesso a structs e acesso a arrays, as coisas estranhas que até compiladores de 30 anos fazem com estruturas de controle, reutilização de registradores, ou como guiar o código para gerar assembly idêntico byte a byte em consoles clássicos

    • Criei uma conta porque acho que seria muito legal assistir a isso. Já tentei reunir esse tipo de conhecimento obscuro de engenharia reversa, mas é difícil até saber onde procurar
    • Tenho interesse. Na faculdade aprendi assembly 8086 básico e li alguns livros de engenharia reversa, mas nunca fui muito além
      Fico curioso se você está trabalhando em algum projeto open source
  • Estou criando um sistema operacional e já pensei em transmitir algumas sessões de trabalho; se as pessoas realmente acharem interessante, talvez eu comece

    • O fascínio de ver alguém fazendo algo difícil está em observar o processo de pensamento dessa pessoa. Escrever um sistema operacional certamente entra na categoria de coisas difíceis
      Se você realmente tiver tempo, eu adoraria que fizesse isso, e até apoiaria financeiramente
  • A coisa mais interessante é a fonte usada no terminal/código

  • Há uma parte faltando no título: este é um driver de dispositivo USB para um dispositivo relativamente simples, e já havia código existente, então é essencialmente mais um trabalho de “tradução” de código para código
    Pode parecer muito impressionante, mas, pessoalmente, vejo como algo parecido com assistir a uma pessoa competente fazendo o próprio trabalho

    • Sim. O título ficou um pouco fora do alvo. Não sou exatamente um grande conhecedor de kernel, e aprendi algumas coisas vendo o vídeo, mas muita coisa pareceu quase mágica
      Seria bom se um moderador pudesse remover “from scratch” do título e incluir que se trata de um driver de dispositivo, mas tudo bem se não fizerem isso
    • Parece um driver que quase não tem motivo para existir. Sendo um painel frontal, provavelmente seria melhor gerenciá-lo no espaço de usuário como uma aplicação libusb
  • Eu realmente gosto desse tipo de vídeo e de tutoriais aprofundados, mas a expressão “from scratch” não parece muito adequada
    “A partir de 10 anos de experiência fazendo exatamente esse tipo de coisa” não teria o mesmo impacto, claro

  • A especificação USB não tem algo em torno de 500 páginas? Impressionante

    • Você não precisa ler todos os detalhes da especificação USB; basta entender aproximadamente como a funcionalidade funciona
      O kernel oferece muitas funções com as quais trabalhar. Dá para aprender só lendo o código do driver mais simples que você encontrar no código-fonte do kernel e depois avançar para drivers mais difíceis
    • Eu não conseguiria nem transcrever 500 páginas em três horas
    • Uma boa API de drivers deveria esconder tudo isso, para que drivers USB individuais não precisem se preocupar com a especificação USB. Isso é trabalho do código USB core comum
    • E, neste caso, a maior parte disso nem é muito relevante