tech-userlevel archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Apply for GSoC: Inetd enhancements -- Add new features to inetd

Dear NetBSD community,
Sorry for contacting you just before the application deadline. I Hope it's not too late to apply for this super cool project in GSoC! 
I am a 3rd year CS student from Southern University of Science and Technology, China, and I'm currently an exchange student at UC, Berkeley. This semester I took CS162 Operating System course at Berkeley, which made me obsessed with the operating system. But since I do not have any real-world project experience, I believe it's better to start with an easy-level project, hence I feel like applying for this project. My basic information is as follows, and my CV is attached.

About your project
What is the goal of the project? (Short overview)
Accumulate open-source development experience, and learn how to work on a real-world project.

What will be the deliverables of the project? (Code, documentation, ...)
There will be a draft design document before coding period, and a revised version of document at each evaluation point.
There will be a final document at the final evaluation, and a final version of code.

Give an overview of how you intend to reach the project's goal in the form of milestones and a schedule.
Now - June 13, familiarize myself with NetBSD environment and investigate the source code of Inetd, as well as similar functions in other OSs.
June 13 - June 29, work on Prefork and Per service configuration file
June 30 - July 25, work on rate limiting features and logging improvements
Before Phase 1 Evaluation, try finishing the primary features.
July 25 - Sep 5 Based on the previous process, select advanced features to implement.
At final evaluation, try finishing at least two of the advanced features.

Is similar software already available elsewhere, e.g. for Linux or any other BSD?
Yes, replacements of Inetd include xinetd and launchd on Mac OS, and rlinetd on distributions of Linux.

Is the project a port of software, or a rewrite? (remember: No GPL in the NetBSD kernel!)
I think it's a port of software.

About your project and NetBSD
If your working area is the core NetBSD operating system: have you installed NetBSD and made first experiences with hands-on configuration?
Have you rebuilt the kernel and the userland, either in full or in parts?
No, I haven't, but I will try to do that as soon as possible.

Have you found the relevant places that your project is based on in the source code, and read through it?
Yes I have found it, it's at src/usr.sbin/inetd/inetd.c, but I haven't read through, I will try as soon as possible.

How will your project integrate into NetBSD? (Userland tool, kernel subsystem, driver, patch set, pkgsrc, ...)
I think my work will be to add features to an existing software, so I do not need to integrate on my own.

What interfaces in NetBSD will your project use? (Go into details here! What module/file names, functions, data structures etc. are of relevance for your project?
To what degree are you familiar with those interfaces? (not/some/very, details?)
Most of the changes will be in the file src/usr.sbin/inetd/inetd.c
For Prefork, change spawn(struct servtab *sep, int ctrl) I plan to maintain a process pool in the spawn function.
For Per service configuration, change  getnetconfigent() and set the config and set the configuration for each service. I thinks it can be realized by maintaining a map from service to config file.
For other features, I haven't dive deeply into them due to the application deadline. But I will soon after the application.
I have just started, so I'm not very familiar with them, but I think they are sort of straightforward.

Is knowledge on other topics required for this project, e.g. on hardware, software other than NetBSD, APIs, protocols, etc.? If so, give details and references.
I think understanding how computer networks work will be helpful to this project.

To what degree are you familiar with those? (not/some/very, details?)
I have taken computer networking course in FA2021, and I got A+ in that course. I have experience in socket programming with both Python and C/C++.

If the project involves hardware (e.g. writing drivers, doing a port to new hardware, ...): do you own the hardware or have access to?

About you
Can you list some prior projects that you have worked on so far? Include details like programming language, duration, number of people involved, project goal, if you used CVS, SVN or similar, and whatever else we may find thrilling! If you have a CV/resume online, feel free to include a link.
My CV is attached. And here is my github link: TANSixu (MarSxT) (

Do you have any prior experience with programming NetBSD? In what area? If you did send some problem reports (PRs) or patches, please include references.

Have you previously discussed your project within NetBSD, either on a mailing list or with some specific developers? If so, please give us either the names/email addresses of those developers or point us towards the discussions on our list (via

How do we contact you for question, comments, suggestions, etc.?
Or you can provide other platforms and I will register.

Is there anything else you'd like us to know? Did we forget any important details or questions?
I have a question regarding the project: Do we have a test suite for this project that can perform a sanity check? If not, how can I check if my program runs correctly? Thanks.

Looking forward to your reply!

Sixu Tan

Attachment: tsx_CV_Academic.pdf
Description: Adobe PDF document

Home | Main Index | Thread Index | Old Index