Learn how it works, try adding a new instruction or implementing an extension.
Ask HN: Going low-level – what to learn next?
21–30 of 59 posts
Re: Ask HN: Going low-level – what to learn next?
#22I learned assembly so I could disassemble and understand programs.
I learned C so I could use all the libraries that people had made and their frameworks than later because C++, Objective C, C#, java, python and other derivatives.
I wanted to manipulate images, speech and video and using high level programming language was so inefficient so I continued using C.
I learned FPFGAs again because I needed efficiency or the things I wanted to do like controlling robots did not work at all(they moved so sluggishly).
I love learning things, but that was never enough for me to learn something deeply when problems appear.
Re: Ask HN: Going low-level – what to learn next?
#23Re: Ask HN: Going low-level – what to learn next?
#24Re: Ask HN: Going low-level – what to learn next?
#25Re: Ask HN: Going low-level – what to learn next?
#26Re: Ask HN: Going low-level – what to learn next?
#27https://sysprog21.github.io/lkmpg/
https://blog.sourcerer.io/writing-a-simple-linux-kernel-modu...
If you want to "go low" in the way hardware works, you could try and write an interrupt handler on an embedded device.
If you want to "go low" in how optimizations work in application development, you could try and implement microbenchmarks and look at flamegraphs.
Re: Ask HN: Going low-level – what to learn next?
#281. The best source of low-level information on things like operating systems (writing your own) etc is https://wiki.osdev.org/Expanded_Main_Page
2. Compiler related low-level should include a read through Crafting Interpreters (https://craftinginterpreters.com/), even if all you're going to do is create compiled languages.
3. Hardware type low-level (where you build your own logic) is a long and ultimately non-rewarding path. I would suggest https://eater.net/8bit/
All those links are only starting points; use them to find a direction in which to head.
[EDIT: I also recommend writing a eBPF module for linux - easier than writing a kernel module, with just as much low-level hooks as you might need].