Getting into Linux Kernel Development
cyphar.com
cyphar.com
You want something to broaden your horizons, and that has a much smaller surface. Try Minix 3, Plan 9 (or the 9front fork), DragonFly BSD, Genode, Haiku (BeOS-like), some flavor of illumos, HelenOS or even GNU Hurd.
Besides the easier entry and the higher learning opportunity, you have more of a chance to make truly major contributions. Something like porting your favorite package can get your hands dirty quickly.
Arguably, having less conflict of interest from corporate benefactors makes for a much smoother communication experience, too.
I also don't get your point about conflict of interest. There is no one corporate sponsor of Linux. And just because you are a newbie, your patch is not looked down upon. There is a great community willing to help if you put in the effort.
It really depends on your goals - if you just want to learn, then Minix is pretty good.
[1] http://zinascii.com/2015/illumos-5498.html
[2] http://zinascii.com/2014/crossed-signals.html
[3] http://zinascii.com/2014/a-posix-queue-implementation.html
All modern kernels are going to be complicated. Simple kernels aren't efficient or full-featured, that's just how the real world works.
There is no prioritisation of people who are and aren't backed by companies. All patches are judged by merit. And anybody can give a major contribution (just take a look at the massive amount of work going into kdbus which is being worked on by many different people with different interests).
I sense a real bias as to how module boundaries should be architected here. Right off the bat, saying all modern kernels will be complicated (as opposed to complex) and that simple kernels won't be efficient or full-featured, demonstrates you're thinking squarely in terms of monolithic kernels. Are QNX and L4 not simple, small yet efficient kernels?
Complexity is intrinsic, but something being complicated usually implies the use of wrong or incomplete abstractions. Having the right architecture from the beginning can make huge differences, as certain problems either go away or become more manageable as they're shifted into the library or server level, with all the advantages that come from being there.
just take a look at the massive amount of work going into kdbus which is being worked on by many different people with different interests
kdbus is mostly worked on by the core systemd contributors + Greg K-H, which is a handful of people. The fact that it has been routinely criticized by Lutomirski and others speaks for itself.
There are plenty of jobs for Linux and FreeBSD, and I find both kernels very interesting. As for architectural interest, I can see a case being made for Plan 9 or unikernels, but most other kernels are pretty similar.
Besides, it's not like you can't be a Linux sysadmin/programmer in your day job and hack on more novel OS as your hobby.
For example, Al Viro was an ex-Plan 9 hacker who later became a full-time Linux guru.
The thing is that once you've been involved in truly different OS architectures, migrating to a relatively boring Unix monolith like Linux isn't all that hard. Besides, Unix and Linux are so widespread there's little chance you won't be using them in some form throughout.
As for architectural interest, I can see a case being made for Plan 9 or unikernels, but most other kernels are pretty similar.
Sorry, but this is a plain falsehood.
But monolithic kernels, like Linux, BSD, and Solaris, being architecturally different? I think if your goal was to explore different kernel architecture, you'd be better off looking at the others, as these are relatively similar. I think you'd even agree!
But yes, anything like that does help familiarise you with the semantics of writing kernel code.
I was a bit confused as the patch set I linked to were from Feb 2015
And for new projects, a quick CTRL-Shift-M in Firefox while you're creating your stylesheets would help verify that things you're adding won't break on mobile.
(Sorry if I'm sounding negative, but your post might be really good and some small design tweaks would make it readable on any screen size and help stop the design getting in the way of your content).
commit 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2
Author: Linus Torvalds <torvalds@ppc970.osdl.org>
Date: Sat Apr 16 15:20:36 2005 -0700
Linux-2.6.12-rc2
Initial git repository build. I'm not bothering with the full history,
even though we have it.
...