Skip to content

Instantly share code, notes, and snippets.

@smalinux
Last active January 26, 2024 09:32
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save smalinux/2e9c5537fdac65501a655280352c9c15 to your computer and use it in GitHub Desktop.
Save smalinux/2e9c5537fdac65501a655280352c9c15 to your computer and use it in GitHub Desktop.
⭐ Portfolio

TL;DR

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.

Future Projects

  • Deep dive into Linux eBPF subsystem.
  • Implement a personal Hacker News filter (side project).

Google Summer of Code 2022

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: https://www.linkedin.com/in/smalinux/

Previous Projects

Linux kernel modules

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 :)

Linux kernel mailing list: https://lore.kernel.org/linux-perf-users/CAP-5=fWLY2cF97P0oiMpnLzKjBJ-tC_jRyRNicSHjx6m73KrWg@mail.gmail.com/

Linux From Scratch (LFS)

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

https://github.com/smalinux/LFS

SimOS

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

https://github.com/smalinux/simOS

RougeLike game

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

https://github.com/smalinux/RougeLike

Chess bot

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.

https://youtu.be/vDjorA9yCEA

Others

About Me

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

  1. https://gist.github.com/smalinux/e869b376b5c77cacdcda4cb14f027632

  2. https://github.com/htop-dev/htop/commits?author=smalinux

  3. https://github.com/performancecopilot/pcp/commits?author=smalinux

  4. https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/log/?qt=grep&q=sohaib

  5. PCP proposal - Google docs

  6. https://github.com/smalinux/linux-kernel-modules-lab - https://github.com/smalinux/ps-aux

  7. https://github.com/cirosantilli/linux-kernel-module-cheat

  8. https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/log/?qt=grep&q=sohaib

  9. https://lore.kernel.org/linux-perf-users/CAP-5=fWLY2cF97P0oiMpnLzKjBJ-tC_jRyRNicSHjx6m73KrWg@mail.gmail.com/

  10. https://lwn.net/Articles/880699/

  11. https://github.com/smalinux/LFS 2

  12. GitHub - smalinux/dotfiles

  13. https://youtu.be/jrx1LhWCcnk

  14. https://www.youtube.com/watch?v=aUWQ_VIuKY4&ab_channel=smalinux

  15. https://github.com/smalinux/simOS

  16. Roguelike - Wikipedia

  17. https://www.youtube.com/watch?v=4vNrjhPuxMM

  18. https://github.com/smalinux/RougeLike

  19. Stockfish - Open Source Chess Engine - stockfishpy · PyPI

  20. https://youtu.be/vDjorA9yCEA

  21. https://www.youtube.com/live/JVdH_78oS50

  22. https://youtu.be/zsXe-T-bV5U

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment