Welcome To The World Of Low Level Systems

Hi. My name is Ankur Agrawal and I love low level systems and reverse engineering.

I am a lifelong student from India.

Here I publish my polished notes.

I write to organize my understanding, not for social credits.

English is not my first language and I am not here to write perfect English. So, grammatical erros are inevitable. But I keep on polishing my notes so that I have the most clear articulation possible at any point in time.

If you read my notes consistently, you’ll often notice significant changes in the structure and organization of both the files and the content in them because I absolutely love knowledge management.

To me, knowledge management is paramount. I keep on organizing and polishing so that I can keep finding patches in my understanding and remove them. It’s not a bug, it’s a important feature in my whole functioning.

Understanding low level systems in a linear fashion is simply not possible. I have tried my best to organize my write ups in a sequential manner but it’s just not possible. No matter how much I try to organize, it doesn’t really work like that. It’s a web. But that doesn’t stop me either.

This is the reason why links are often broken. Earlier I used to publish using GitBook, which used to manage links itself. Now I am on my own.

I am mentioning all of this so that I can do the work guilt-free, otherwise I feel like I am decepting myself, fooling myself. As said by Sir Richard Feynman, “don’t fool yourself and you are the easiest to fool”. I just don’t want to listen and praise Mr. Feynman, but put those learnings into action and improve my life.

I don’t have peers who share the same drive, who have the same hunger for deep understanding of low level systems. If you are like me, please don’t hesitate to reach out at my email.

I don’t use any social media as it drives me insane. I just want to study and having NO DISTRACTIONS enables exactly that.

If my notes can help you, I am more than happy and grateful for it.

  • Open source community has made everything free, which is why I am able to learn so much for free.

Thank you.

Resources

I started my journey by asking questions to Chat GPT. When I started understanding things, I switched more to the official manuals and community-led resources.

  1. Manual Pages for library functions, system calls and shell commands. An equivalent internet version of it is hosted by man7.org. If you prefer an offline version, it is also compiled as a book by the maintainers, which can be found at kernel.org
  2. The GNU C Library Reference Manual is a massive work of knowledge, providing a great source of authentic information of low level systems. It can be found at sourceware.org
  3. Debugging With GDB, The GNU Source-Level Debugger is an extensive piece written about debugging. Although I want to mention that I didn’t started my journey with it because there was no chapter that covered the fundamentals directly, so I preferred to query Chat GPT there but later when I understood how gdb works, I switched to this manual for more concrete information. It can be found at sourcewar.org. Note: It expects you’ve some low level knowledge.
  4. This is an excellent quick reference card for the most used GDB commands, prepared by the University Of Texas.