Dear Tech-Kern Community,
As the saying goes: "The deeper and more thorough the research, the smoother and more efficient the execution."
With that in mind, over the past few weeks, along with my trusted cup of coffee, I have been deeply analyzing the NetBSD kernel Source Code in preparation for the project:
Auto Create Swap on Memory Pressure (175 hours)
NetBSD is known for its portability and efficiency across diverse hardware, embedded systems and older machines with limited resources. However, systems without a pre-configured swap partition can experience severe performance degradation when subjected to memory pressure.
This project aims to dynamically allocate swap memory as needed, preventing system slowdowns and crashes. I have put together a detailed proposal of roughly 51 pages outlining each step of the implementation process. Along with that I have also incorporated Testing and Mentor Check-ins for each week, to ensure the project is on track, and the set goals are met.
Request for Feedback
During my research, I have encountered a few design dilemmas, thus I would greatly appreciate the Mentors and community's guidance, approval on these decisions.I have highlighted and linked specific sections on the first page where your insights are needed the most for the best suitable implementation approach.
If you could spare the time to review my proposal, leave comments or suggest modifications, particularly on the mentioned sections along with any general feedback, I would greatly appreciate it.
Your expertise and scrutiny are invaluable in shaping this project's direction.
About Me:
I have been coding in C for the past three years, primarily focusing on low level projects, with some experience in embedded C programming.
Here are some of my relevant projects and experience:
- I have built a virtual machine from scratch, with its own assembly-like language all implemented in C.
- I have also developed a small scale kernel in C
- Worked on a four months long embedded C project using STM32 Microcontroller
- Published research on Machine Learning based for System Log Anomaly Detection (with another paper pending publication on Linux System Log dataset analysis for security)
- I have also worked on and contributed to C and Rust hybrid Codebases
- Served as the core member for my college's Open Source Labs
I have also spent the past few years experimenting with the Linux kernel and QEMU. NetBSD, because of its highly portable nature has played a key part in my development journey.
Motivation: Why this project matters to Me and NetBSD
Having used NetBSD on resource constrained systems, I have personally encountered scenarios where the lack of proper swap has led to severe slowdowns. My experience with low memory systems started with my own 4 GB laptop which I had growing up. I vividly remember struggling to attend Zoom sessions, only to find my system locked up and slowing down due to improper memory utilization. This led me to explore UNIX based systems and eventually, the complexities of swap partitioning and proper memory management. This gives me a strong motivation to improve NetBSD’s memory resilience.
I believe this could particularly be useful for embedded devices, older hardware, and diskless systems that would run NetBSD, where swap is not always pre-configured and thus could be dynamically allocated when needed.
I would greatly appreciate your feedback on taking this project forward.
Thank You,
Soumyajyoti Sarkar