3 ms·
I feel like this underestimates how hard it is to get started. I've started playing around with the kernel and making small modifications. It's not straight for
by tayo42 10y ago
I feel like this underestimates how hard it is to get started. I've started playing around with the kernel and making small modifications. It's not straight forward. For me just getting it complied in a vm was an ordeal. Most books are pretty old and if you go google for what ever you want you end up with a lot of very dense resources. Then you need to figure out if that article you found actually applied to whatever current kernel your using and what's changed since then. Ive been doing like hours of reading for a few line change here and then.
And somewhat off topic. I think it will be interesting to see what happens to linux in the long term. Are that many new/young programers getting into kernel development? Id imagine there's not to many people getting into programing now that are writing c or working on the kernel. Who is going to replace the kernel developers of today? Or am I just totally off?
- ashitlerferad 10y agoYoung folks come through the GSoC/Outreachy programs: https://wiki.linuxfoundation.org/en/Google_Summer_of_Code https://wiki.linuxfoundation.org/en/Google_Summer_of_Code https://kernelnewbies.org/OutreachyIntro https://kernelnewbies.org/OutreachyIntro Lots of new folks come through companies hiring people to work on Linux.
- yeukhon 10y agoThat's basically the experience everyone has to go through with any new codebase. For example, when I worked on a couple Firefox bugs a few years ago, I hadn't touch C++ for several years. I did have to spend several hours just to get a hang of things. Luckily what I needed to change was not too challenging. Several dozen lines were added and overall the necessary functions were all . hg grep helped a lot to find what I want. If I were to implement a new driver from scratch, that would be really tough. Though since C and C++ aren't something I am very comfortable with (I haven't written a single line of and C and C++ for so long), it can be really tough especially during debugging.
- _pmf_ 10y ago> That's basically the experience everyone has to go through with any new codebase. Yes; for a codebase of comparable size and widespread usage, the Linux kernel is very, very easy to get into and very, very well documented. Go to Documentation/[your subsystem] and you'll get something useful, usually a reference on a driver you can base yours on (which is how practically all drivers are created). Nice ways to get started: - simple character device - SPI slave and SPI protocol driver
- zbuf 10y ago> For me just getting it complied in a vm was an ordeal You're right, the process of building and installing a custom kernel is much harder than it used to be 10-15 years ago. And I believe this is a problem that impacts a certain kind of contribution. Because even for the most experienced and competent of programmers, the bar for entry is too high. The distributions are partly to blame here. The complexity of initrd setups have meant that testing even a small or single line change is an ordeal. The wrapping in package managers like RPM makes incremental builds of a kernel impossible. My personal setup is based on Slackware without an initd; a kernel build resembles a 'make; make install' like it has been for the past 15+ years. I've been unable to achieve anything similar in reasonable time on a CentOS system.
- digi_owl 10y agoAnd it will get worse. Just about every idea that is coming out of Gnome/Freedesktop these days assumes a massive initramfs. To bootstrap systemd they even have a copy of dbus crammed in there. And the (ab)use of initramfs is what has lead to the push for just cramming everything into /usr.
- hyperion2010 10y agoI've been using Gentoo for 10 years and have been configing, building, and installing (and occasionally patching) kernels for that entire time. For me it has gotten much easier now that you can use an efi stub kernel to install. That said I agree that it can be too much because most distros don't make it easy and 'hello world' is often the hardest program you will ever write.
- fit2rule 10y agoI dunno, I've been a Linux kernel guy since Linus posted to the minix-list, and I have to say that things seem easier than ever. I mean, pick your distro, figure out how it boots the kernel, use it to build a new kernel, boot it. Repeat, ad infinitum. The problem seems to be a rather hefty "NIMBY" factor, imho. If you want to get into the kernel these days, you have to realize: its a done thing. Nobody cares if you're a rockstar. Learn the tooling and methodology, or gtfo...