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
1 comentários
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
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
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
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
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
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
https://tosche.net/fonts/comic-code
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
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
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
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