I've started my journey by building many Linux kernel modules and my own OS from scratch. Then I contributed to open-source projects like Google Summer of Code1, Htop 2, PCP 3, and Linux kernel 4.
I needed to choose a Linux subsystem to focus on and to learn Linux through it. I chose the performance aspects of Linux. My experience with Htop and PCP made this decision for me.
I am passionate about performance engineering and monitoring, because it gave me the power to touch dark places in the system that nobody in other Linux subsystems could touch.
I'm interested in performance aspects of software systems and metrics collection tools such as Htop, perf and eBPF.
- Deep dive into Linux eBPF subsystem.
- Implement a personal Hacker News filter (side project).
This project is substantial, which is why I've dedicated a separate page to it: Google Summer of Code 2022 · GitHub
- I'd like to highlight that the lessons I've learned throughout this project are immeasurable.
- Participating in discussions with senior programmers has been a unique and exceptional experience for me, allowing me to gain invaluable insights.
- Additionally, working in an open-source environment has been an exceptional experience that has aided me in improving my skills.
- Before jumping into coding, I wrote a proposal5 that helped me organize my workflow and significantly enhanced my productivity.
— LinkedIn:
I wrote 80+ simple Linux kernel modules 6 while working through the lkmc7 repository, the Linux device driver (LDD3) book and many other resources like "The Eudyptula Challenge".
“If you didn't get angry and mad and frustrated, that means you don't care about the end result, and are doing something wrong.” — Greg KH
- I was able to overcome my fear of navigating a large codebase like Linux and gain a deeper understanding of the operating system by learning about kernel modules.
- Additionally, I learned how to use kernel APIs such as hash tables, which helped me acquire practical knowledge. This knowledge allowed me to make sense of the information I gained from the "operating system dinosaur" book.
- Ultimately, this understanding enabled me to contribute to the Linux community by submitting my own simple patches 8.
- I helped to reproduce a memory leak issue 9 :)
- My name is here10 with the most Tested-by people :)
I wrote bash scripts 11 while working through the Linux From Scratch book. These scripts are for building my own independent Linux distribution.
- I wrote this project with tears because a small mistake caused my machine to be completely erased while entering the Chroot environment.
- Fortunately, I have crontab12 scripts that back up everything on my system every half hour :)
- LFS is an intensive task that helped me gain a better understanding of how each component of Linux works, how they are interdependent, and how to configure each component according to their specific needs.
— YouTube Demo 13 & Source code 11
Tiny operating system I wrote using pure Assembly only while working through osdev.org.
x86 architecture in 16-bit mode using BIOS interrupts.
— YouTube Demo14 & Source code 15
Classic ASCII game I wrote to improve my C language using ncurses library.
Fortunately, my experience with this library helped me later contribute to Htop. since this same library is used by Htop to create terminal GUI-based apps.
"These games were popularized among college students and computer programmers of the 1980s and 1990s" 16
— YouTube Demo 17 & Source code 18
Python script allows me to cheat while I'm playing chess online on chess.com (just for fun) which allows me to beat even top-rated players.
I used Stockfish APIs19 and Selenium to implement this project.
— YouTube Demo 20.
- GitHub - smalinux/TBSys Simple CLI project was written as part of my technical interview assessment.
Hello, my name is 𝑺𝒐𝒉𝒂𝒊𝒃 and welcome!
Everyone has a hobby, and mine is exploring various life projects and challenges to improve myself. – from technical skills to fitness challenges. I was recently invited to participate in technical podcasts in Arabic, where I shared my insights on the low-level track21 and how to participate in Google Summer of Code22.
I'm always happy to hear from folks, and if you're ever in the city where I'm currently residing, I would love to meet up for coffee. Don't hesitate to reach out to me at sohaib.amhmd@gmail.com if you want to get in touch. I love meeting & connecting with people, so if you're ever in the neighborhood, feel free to reach out and say hello!
Footnotes
-
https://gist.github.com/smalinux/e869b376b5c77cacdcda4cb14f027632 ↩
-
https://github.com/performancecopilot/pcp/commits?author=smalinux ↩
-
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/log/?qt=grep&q=sohaib ↩
-
https://github.com/smalinux/linux-kernel-modules-lab - https://github.com/smalinux/ps-aux ↩
-
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/log/?qt=grep&q=sohaib ↩
-
https://lore.kernel.org/linux-perf-users/CAP-5=fWLY2cF97P0oiMpnLzKjBJ-tC_jRyRNicSHjx6m73KrWg@mail.gmail.com/ ↩
-
https://www.youtube.com/watch?v=aUWQ_VIuKY4&ab_channel=smalinux ↩