Started getting into kernel stuff for work. Does anyone have a good idea what kind of market demand there is for kernel devs or similar skill sets? Being new to this I absolutely love it, but have no idea. The resources shared by everyone here are so helpful! I’ve been muddling through by reading the docs, source code, and various messages on the mailing list and... it’s been a little painful.
Linux Kernel Teaching
51–60 of 82 posts
Re: Linux Kernel Teaching
#52Earlier quoted context omitted.
E-mail the person maintaining the sub-system you are modifying.
I had Al Viro CC'd on the emails when I sent it to linux-fsdevel. Are you saying I should send it to him again, directly? (The patch, for reference: https://github.com/saagarjha/linux/commit/4867a403decc364c8b... . I figured I should also take this opportunity to check to make sure there's nothing wrong with it that might cause it to be ignored.)
printf("%llx\n", ((long long)0xffffffff
Prints: ffffffffffffffffRe: Linux Kernel Teaching
#53Started getting into kernel stuff for work. Does anyone have a good idea what kind of market demand there is for kernel devs or similar skill sets? Being new to this I absolutely love it, but have no idea. The resources shared by everyone here are so helpful! I’ve been muddling through by reading the docs, source code, and various messages on the mailing list and... it’s been a little painful.
Consistent kernel hackers get hired fast. Focus on a particular subsystem, participate in the community, and contribute regularly - you'll have opportunities in no time.
Re: Linux Kernel Teaching
#54Earlier quoted context omitted.
I had Al Viro CC'd on the emails when I sent it to linux-fsdevel. Are you saying I should send it to him again, directly? (The patch, for reference: https://github.com/saagarjha/linux/commit/4867a403decc364c8b... . I figured I should also take this opportunity to check to make sure there's nothing wrong with it that might cause it to be ignored.)
In what sense does it overflow? printf("%llx\n", ((long long)0xffffffff Prints: ffffffffffffffff
Re: Linux Kernel Teaching
#55Earlier quoted context omitted.
If you want to contribute, fix bugs found by syzbot [0], there's an endless backlog there. It's the fastest way to get your hands dirty, familiar with a variety of subsystems, and land meaningful, appreciated patches upstream. [0] https://syzkaller.appspot.com/upstream
Thank you, made my March a little better :)
Re: Linux Kernel Teaching
#56Earlier quoted context omitted.
I had Al Viro CC'd on the emails when I sent it to linux-fsdevel. Are you saying I should send it to him again, directly? (The patch, for reference: https://github.com/saagarjha/linux/commit/4867a403decc364c8b... . I figured I should also take this opportunity to check to make sure there's nothing wrong with it that might cause it to be ignored.)
In what sense does it overflow? printf("%llx\n", ((long long)0xffffffff Prints: ffffffffffffffff
The values in question are being convertd back to loff_t anyway, but that's an implementation-defined conversion rather than undefined behavior.
So that is to say, doing the shift in the corresponding unsigned type and then converting to the original signed type is better defined at the language level than just doing the shift in the signed type.
I think this is just academic, because shifting a 1 into the sign bit behaves the same way on all platforms targeted by Linux using the only compiler that you can use.
Well, or maybe not. The one problem there is new changes in GCC which assume that all sorts of things that used to work (and were thus de facto implementation-defined) are no longer happening in programs (because they are undefined behavior, so who would do that?) Thus even if the target hardware has stable two's complement behavior on a left shift that alters the sign of a value, and that has worked fine for years, an updated GCC can suddenly decide that it's okay optimize based on the idea that the program doesn't do such a thing.
On a different note, the proposed change is jarringly ugly because u64 is size specific, whereas loff_t isn't. A long long isn't defined as 64 bits; it is at least 64 bits. On a system that, say, makes long long 128 bits, the proposed code change is not correct. To make this change with the proper elegance and precision, what you need is for loff_t to have a sister unsigned type that pairs with it: a uloff_t.
Re: Linux Kernel Teaching
#57Earlier quoted context omitted.
I had Al Viro CC'd on the emails when I sent it to linux-fsdevel. Are you saying I should send it to him again, directly? (The patch, for reference: https://github.com/saagarjha/linux/commit/4867a403decc364c8b... . I figured I should also take this opportunity to check to make sure there's nothing wrong with it that might cause it to be ignored.)
In what sense does it overflow? printf("%llx\n", ((long long)0xffffffff Prints: ffffffffffffffff
Re: Linux Kernel Teaching
#58Earlier quoted context omitted.
Prehistoric? It is actually how the Git workflow was designed to work, and it is a standard method that does not require third-party services nor tools. Just your mail agent. Sending patches is as easy as sending one in GitHub or any other web-based system. The problem is that you (and many others) have never done it, and so anything different is harder. You should consider that if learning a handful of CLI commands…
> Sending patches is as easy as sending one in GitHub or any other web-based system. Its still prehistoric in projects like the Linux Kernel, from a beginners point of view compared to GitHub, Gerrit or GitLab, which most of the active contributors are already working at large companies who's work requires contributing to it, thus already have invested in time and money learning the contribution process. To look at t…
Everyone knows how to reply to an e-mail. It's very low effort way to find interested people to review your patch/and get some reaction from maintainers.
That's how it is now. That's not to say, current system is not somewhat problematic to some maintainers/subsystems, but that's not really your businesss as a contributor.
Re: Linux Kernel Teaching
#59Earlier quoted context omitted.
> Sending patches is as easy as sending one in GitHub or any other web-based system. Its still prehistoric in projects like the Linux Kernel, from a beginners point of view compared to GitHub, Gerrit or GitLab, which most of the active contributors are already working at large companies who's work requires contributing to it, thus already have invested in time and money learning the contribution process. To look at t…
If you cannot by arsed to learn a few new development tools or workflows, I am sorry but this field is likely to burn you out very soon, be it Linux kernel development, the next shiny GitHub replacement or the new edition of HTML/CSS/whatever. And let's not start about learning the myriad of tools you gotta learn to do in professional Linux kernel development (or any kind of specialized development for that matter).…
On that matter, the barrier for being a long term Linux contributor is still very high and this is from the perspective of outsiders in general. So unless you're working at a company that does professional Linux development with the hardware and software resources available to you, it is actually the outsiders that will be definitely burned out and won't bother with contributing anyway and will go to another OS kernel project to start from.
Unlike you, I don't push beginners into the deep end for them to later drown. I get them started on an easier yet similar path where they use similar tools which eventually they later become potential Linux contributors at a company working on the kernel. But the starting path is certainly not Linux.
Re: Linux Kernel Teaching
#60Earlier quoted context omitted.
In what sense does it overflow? printf("%llx\n", ((long long)0xffffffff Prints: ffffffffffffffff
The idea may be to avoid shifting a 1 into the sign bit, which is undefined behavior. The values in question are being convertd back to loff_t anyway, but that's an implementation-defined conversion rather than undefined behavior. So that is to say, doing the shift in the corresponding unsigned type and then converting to the original signed type is better defined at the language level than just doing the shift in th…