Hi all, I am Aarnav, a Computer Science student studying at the International Institute of Information Technology, Hyderabad. I wish to make an impact on OSS, and GSoC is a very convenient way for students like me to contribute. I also wanted to use this opportunity to learn more about low-level systems, and this project implementing real asynchronous I/O in NetBSD feels perfect for working towards this goal.
I have worked with asynchronous I/O in the past, but mostly only in userland. I have built a scheduler or two, but they were mostly toys and certainly not built into any kernel. I've worked with Linux's io_uring and other schedulers like Rust's tokio and OCaml's eio. I am excited to implement something in an actual kernel which could be used by thousands of people. However, I am relatively unexperienced in this field, and I would love guidance in how to get started: if there's any reading material or small projects to do that you recommend for getting familiar with this task, that'd be a great help. I will slowly make my way through the NetBSD website and get it installed on my computer in the meanwhile. I'll work on all the steps suggested in the guidelines, like rebuilding the kernel and userland, reading through the source code, and seeing some similar implementations on other BSDs/Linux. I write this email to ask the mentor (or anyone else willing to help) for any reading material, tasks, or any other instructions that can help me in this journey. I will be studying up on and experimenting with NetBSD after my exams end. I currently daily-drive Linux on Desktop, but have worked with FreeBSD and OpenBSD before (on servers). I have good experience with the Rust, C, and Zig progarmming languages (as far as low-level programming languages go), and I have worked with low-level programs before, but not a kernel. I have contributed to various open-source projects before, though only through git. I hope to learn a lot from this programme and also provide the community with a valuable contribution. Thank you, Aarnav Pai.
