Live data from Hacker News

Ask HN: Going low-level – what to learn next?

news.ycombinator.com

21–30 of 59 posts

Re: Ask HN: Going low-level – what to learn next?

#22
What do you want low programming for?

I 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?

#27
If you want to "go low" in the operating system, you could write a Linux kernel module:

https://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.

https://github.com/brendangregg/FlameGraph

https://bheisler.github.io/criterion.rs/book/index.html

Re: Ask HN: Going low-level – what to learn next?

#28
Low-level means different things to different people:

1. 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].

Re: Ask HN: Going low-level – what to learn next?

#30
Git pull the Linux kernel source tree (with lxr or cscope for code navigation). Open the Linux kernel mailing list, get some patch you're interested in (e.g. memory management), apply it to your tree, study the patch and participate in solving subsequent/related problems.
Post reply on HN