Dear NetBSD team,
I am Valerio, a first-year Information Engineering student and I'm writing to submit my proposal for Google Summer of Code 2025 under the project "Emulating missing Linux syscalls". Below you will find all answers to the standard NetBSD application questions.
---
About your project
What is the goal of the project?
The goal is to improve Linux binary compatibility in NetBSD by identifying and implementing missing Linux syscalls inside the compat_linux kernel layer. This will allow previously unsupported Linux binaries to run correctly on NetBSD.
What will be the deliverables of the project?
- Implementation of several missing Linux syscalls in compat_linux
- A selected Linux binary that initially fails, then runs successfully after implementation
- Code with inline documentation and comments
- Summary table of missing syscalls and status
- Test cases and usage notes
Schedule and milestones:
Until the start of the project:
- Set up dev environment, collect test binaries and study linux syscalls and compat_linux
Phase 1:
- Identify broken Linux binary, trace missing syscalls, begin implementation of first syscall
Phase 2:
- Implement more syscalls, improve translation, and test execution
Final Phase:
- Complete implementations, finalize documentation, submit patches
Is similar software available elsewhere?
After doing some research I noticed that FreeBSD has got a similar software, Linuxulator.
---
About your project and NetBSD
Have you installed NetBSD and configured it?
Yes, I have installed NetBSD in a virtualized environment and gone through the boot.
Have you found the relevant source areas?
Yes. I had a look at sys/compat/linux/.
How will your project integrate into NetBSD?
This project is purely kernel-level and will integrate as part of the compat_linux subsystem.
What interfaces will your project use?
- the sys/compat/linux directory
- Syscall table and dispatcher (syscalls.master)
Familiarity with those interfaces?
Medium/High. I have worked on similar kernel C projects, including system call implementation, interrupt handling and process implementation.
Does the project involve hardware?
No, a VM is sufficient.
---
About you
Related project:
- x64OS project: an operating system I'm building from scratch for the AMD64 architecture using QEMU. I’ve implemented a custom bootloader and drivers for VGA, keyboard, and IDE. I’m currently working on POSIX I/O syscalls like read and write. Written in C
and Asm, using Make, it' on my GitHub profile.
Experience with NetBSD?
No prior contributions yet.
How to contact me:
- Email: valerio.tangari%outlook.com@localhost
- GitHub: https://github.com/valerioedu
Anything else?
I’m deeply passionate about OS development and C systems programming. This project aligns perfectly with my interests and I'd be excited to contribute in the GSoC.
Thank you very much for your time and consideration. I look forward to any feedback or questions.
Best regards,
Valerio
|