top | item 43405258

(no title)

Mr-Frog | 11 months ago

I've always enjoyed the practical research and projects that happen at the CalPoly schools, my friends who attended always seemed to be doing some very neat hands-on work.

Anecdotally, my occasional interactions with Linux kernel source code have always impressed me with how the project manage to effectively structure such a large C codebase. Until I look at FreeBSD code, which is even more impressively organized. Both of these projects have really helped me think about how to best organize huge complicated systems.

discuss

order

rcxdude|11 months ago

I'm also curious about what impressed you. Most of my interactions with Linux code have been trawling through either crufty or just poorly-written subsystems/drivers because they're causing me problems, which I realise is a bit of a biased sample.

shakna|11 months ago

If that were the Windows source, you wouldn't have been able to find it. Parts of the "driver" would be found in seventeen different systems, using seventeen different styles of coding, using macros that look the same but act differently in different files, leaving the driver as nothing more than a side-effect of the whole.

... I might not miss that codebase.

Mr-Frog|11 months ago

I was working with network drivers and the core network stack. I've heard bad things about questionable device driver implementations, I could only imagine what you saw.

MikeTheGreat|11 months ago

If you're willing to share I'd be interested in hearing more about what you learned. What is it about those two codebases that you've used to inform your own choices?

The kernels are pretty sizeable and pretty specialized pieces of software so it's kinda fascinating that useful lessons for other projects could be extracted from it.

Mr-Frog|11 months ago

I did an internship where I had to write fake network devices to test some server platform firmware configuration. I spent a bunch of time digging around the core PCIe code and Linux network stack. The first few weeks were a bit overwhelming but by the end of the internship I was really impressed with how clean and relatively understandable the interactions between userland, kernel space, and hardware operations were. It really made me aware about the importance of deliberately designed API surfaces that are critical to millions of users.

I also enjoy C programming, and it was interesting to see how the developers built out such a complex system without the more friendly programming language structures that I was first exposed to in school (mostly C++ and Java).

kragen|11 months ago

Note that Diomidis is at AUEB, not CalPoly.