Do I need strong mathematical bases to work in the memory subsystem?
Hello good morning, to be developed from the kernel do I need to have good math bases? I want to help in the ram memory subsystem and I have that doubt thank you.
On Sun, 29 Sep 2019 17:48:43 -0500, CRISTIAN ANDRES VARGAS GONZALEZ said:
Hello good morning, to be developed from the kernel do I need to have good math bases? I want to help in the ram memory subsystem and I have that doubt thank you.
Depends what you mean by "strong math basics". You'll *definitely* need to understand decimal/hexadecimal/binary/octal and how to convert between them. Understanding algebra is useful. If you've had some intro to complexity theory so you understand why an O(N^2) algorithm is usually worse than one that's O(N log N), that helps. Also, knowing enough computing theory to understand what a finite state machine is, and why to use one, and how to write code to implement one, is useful. You *probably* don't need calculus or deep number theory or a lot of other pure math. Programming in the kernel doesn't require any more math than what's required for competent programming in userspace.
On 9/30/19 1:06 AM, Valdis Klētnieks wrote:
On Sun, 29 Sep 2019 17:48:43 -0500, CRISTIAN ANDRES VARGAS GONZALEZ said:
Hello good morning, to be developed from the kernel do I need to have good math bases? I want to help in the ram memory subsystem and I have that doubt thank you. Depends what you mean by "strong math basics". You'll *definitely* need to understand decimal/hexadecimal/binary/octal and how to convert between them. Understanding algebra is useful.
If you've had some intro to complexity theory so you understand why an O(N^2) algorithm is usually worse than one that's O(N log N), that helps. Also, knowing enough computing theory to understand what a finite state machine is, and why to use one, and how to write code to implement one, is useful.
You *probably* don't need calculus or deep number theory or a lot of other pure math.
I've heard this for years and when I went back for my PhD and Masters degree in comp sci, I found out, low and behold, this is just not true. If you hope to do anything that is not elementry, you need serious math for the algorithms, not to mention to complete the jobs being done. Knowing math is the real key to unlocking to potential of the power of computational mathmatics. -- So many immigrant groups have swept through our town that Brooklyn, like Atlantis, reaches mythological proportions in the mind of the world - RI Safir 1998 http://www.mrbrklyn.com DRM is THEFT - We are the STAKEHOLDERS - RI Safir 2002 http://www.nylxs.com - Leadership Development in Free Software http://www.brooklyn-living.com Being so tracked is for FARM ANIMALS and extermination camps, but incompatible with living as a free human being. -RI Safir 2013
On Wed, 02 Oct 2019 21:47:42 -0400, Ruben Safir said:
I've heard this for years and when I went back for my PhD and Masters degree in comp sci, I found out, low and behold, this is just not true.
The question was specific to *kernel* development. Look around. Does Linus have a PhD? How many people at the last Kernel Plumber's or Kernel Summit have PhDs? I'm willing to bet that there's very few PhD's in CS listed in MAINTAINERS. And those that are, are probably coincidental...
If you hope to do anything that is not elementry, you need serious math for the algorithms, not to mention to complete the jobs being done.
Knowing math is the real key to unlocking to potential of the power of computational mathmatics.
If you're doing that sort of mathematics *inside the kernel*, there's probably something wrong with your overall design. Just sayin'.
On 10/2/19 11:35 PM, Valdis Klētnieks wrote:
On Wed, 02 Oct 2019 21:47:42 -0400, Ruben Safir said:
I've heard this for years and when I went back for my PhD and Masters degree in comp sci, I found out, low and behold, this is just not true.
The question was specific to *kernel* development.
Actually yes
Look around. Does Linus have a PhD? How many people at the last Kernel Plumber's or Kernel Summit have PhDs?
Linus has a Masters in Comp Sci, not that he is the greatest engineer ever.
I'm willing to bet that there's very few PhD's in CS listed in MAINTAINERS. And those that are, are probably coincidental...
I can't testify to that, but there are ton of Master Degree coders and a lot of mathamaticians. General plumbing is not needed, but predictive trees, and crypto certainly do and some hardware problems need calc, or even integration. The harder the job, the more math is needed.
If you hope to do anything that is not elementry, you need serious math for the algorithms, not to mention to complete the jobs being done.
Knowing math is the real key to unlocking to potential of the power of computational mathmatics.
If you're doing that sort of mathematics *inside the kernel*, there's probably something wrong with your overall design.
Maybe, but I don't think so. And the hardware is getting more exotic.
Just sayin'.
_______________________________________________ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
-- So many immigrant groups have swept through our town that Brooklyn, like Atlantis, reaches mythological proportions in the mind of the world - RI Safir 1998 http://www.mrbrklyn.com DRM is THEFT - We are the STAKEHOLDERS - RI Safir 2002 http://www.nylxs.com - Leadership Development in Free Software http://www.brooklyn-living.com Being so tracked is for FARM ANIMALS and extermination camps, but incompatible with living as a free human being. -RI Safir 2013
On Wed, Oct 02, 2019 at 11:42:04PM -0400, Ruben Safir wrote:
On 10/2/19 11:35 PM, Valdis Klētnieks wrote:
If you hope to do anything that is not elementry, you need serious math for the algorithms, not to mention to complete the jobs being done.
Knowing math is the real key to unlocking to potential of the power of computational mathmatics.
If you're doing that sort of mathematics *inside the kernel*, there's probably something wrong with your overall design.
Maybe, but I don't think so. And the hardware is getting more exotic.
"more complex" does not mean "needs more math. Look at the new USB4 spec, and the patches posted to start adding support for that to the kernel. No "math" in there at all other than very simple stuff. And no one can say that USB for is not "serious", so I agree with Vladis, a deep mathmatical background is not needed for almost all of the kernel. It's just simple C code, nothing to be afraid of. greg k-h
On 10/3/19 3:00 AM, Greg KH wrote:
USB4 spec, and the patches posted to start adding support for that to the kernel. No "math" in there at all other than very simple stuff.
And no one can say that USB for is not "serious", so I agree with Vladis, a deep mathmatical background is not needed for almost all of the kernel. It's just simple C code, nothing to be afraid of.
I wouldn't call that C code basic. Regardless, showing an example of a driver that doesn't need math, and it might if you understood the high level math, and your not aware of it, but predictive branching would need it. You can not calculate simple interest efficiently without calculus. This repeadely ends up being an issue of "if I don't know it, I don't need it", which is wrong. More math helps you every time. Math is advanced logic. I can't tell you how many times I see folks brute force their way to solutions that they should be using integration. -- So many immigrant groups have swept through our town that Brooklyn, like Atlantis, reaches mythological proportions in the mind of the world - RI Safir 1998 http://www.mrbrklyn.com DRM is THEFT - We are the STAKEHOLDERS - RI Safir 2002 http://www.nylxs.com - Leadership Development in Free Software http://www.brooklyn-living.com Being so tracked is for FARM ANIMALS and extermination camps, but incompatible with living as a free human being. -RI Safir 2013
On Thu, 03 Oct 2019 06:55:50 -0400, Ruben Safir said:
I wouldn't call that C code basic. Regardless, showing an example of a driver that doesn't need math, and it might if you understood the high level math, and your not aware of it, but predictive branching would need it.
See the kernel code that maintains statistical data on likely()/unlikely() under CONFIG_PROFILE_ANNOTATED_BRANCHES. Seems like "this likely() actually only triggers 3% of the time" isn't exactly higher math. There may be some magic going on in the chip hardware - but that's in the *hardware* and inaccessible to the programmer. I'll also point out that speculative execution has *other* problems.....
You can not calculate simple interest efficiently without calculus.
Simple interest is *easy*. Amount * percent. Done. It's compound interest that only sort of needs calculus (and there only to understand the limiting case) - and even there I doubt any banks actually use calculus, just apply the iterative approach. // yearly interest compounded monthly for (i=0;i<num_months;i++) { balance += (balance * percent) /12;} I'd like to see you do it more efficiently using calculus. Especially if you have to take into account rounding to the nearest penny 36 times for a 3 year loan. That stuff is why COBOL is still around. :)
calculus. This repeadely ends up being an issue of "if I don't know it, I don't need it", which is wrong. More math helps you every time. Math
Somehow I doubt that the Taniyama-Shimura-Weil conjecture is ever going to have any relevance inside the kernel.
is advanced logic. I can't tell you how many times I see folks brute force their way to solutions that they should be using integration.
Can you show an example of where the kernel needs to be using integration?
Guys, It would be more helpful if everybody states their own experience with respect to kernel development. It sounds more like a fight now. :) The question was originally asked by "CRISTIAN ANDRES". He is nowhere in the conversation now. Let's see if he has some specific query with respect to the ram memory subsystem. Cheers Sahil Gupta [image: Mailtrack] <https://mailtrack.io?utm_source=gmail&utm_medium=signature&utm_campaign=sign...> Sender notified by Mailtrack <https://mailtrack.io?utm_source=gmail&utm_medium=signature&utm_campaign=sign...> 10/03/19, 01:18:52 PM [image: Mailtrack] <https://mailtrack.io?utm_source=gmail&utm_medium=signature&utm_campaign=sign...> Sender notified by Mailtrack <https://mailtrack.io?utm_source=gmail&utm_medium=signature&utm_campaign=sign...> 10/03/19, 01:19:38 PM [image: Mailtrack] <https://mailtrack.io?utm_source=gmail&utm_medium=signature&utm_campaign=sign...> Sender notified by Mailtrack <https://mailtrack.io?utm_source=gmail&utm_medium=signature&utm_campaign=sign...> 10/03/19, 01:20:58 PM On Thu, Oct 3, 2019 at 12:56 PM Valdis Klētnieks <valdis.kletnieks@vt.edu> wrote:
On Thu, 03 Oct 2019 06:55:50 -0400, Ruben Safir said:
I wouldn't call that C code basic. Regardless, showing an example of a driver that doesn't need math, and it might if you understood the high level math, and your not aware of it, but predictive branching would need it.
See the kernel code that maintains statistical data on likely()/unlikely() under CONFIG_PROFILE_ANNOTATED_BRANCHES. Seems like "this likely() actually only triggers 3% of the time" isn't exactly higher math.
There may be some magic going on in the chip hardware - but that's in the *hardware* and inaccessible to the programmer. I'll also point out that speculative execution has *other* problems.....
You can not calculate simple interest efficiently without calculus.
Simple interest is *easy*. Amount * percent. Done. It's compound interest that only sort of needs calculus (and there only to understand the limiting case) - and even there I doubt any banks actually use calculus, just apply the iterative approach.
// yearly interest compounded monthly for (i=0;i<num_months;i++) { balance += (balance * percent) /12;}
I'd like to see you do it more efficiently using calculus. Especially if you have to take into account rounding to the nearest penny 36 times for a 3 year loan. That stuff is why COBOL is still around. :)
calculus. This repeadely ends up being an issue of "if I don't know it, I don't need it", which is wrong. More math helps you every time. Math
Somehow I doubt that the Taniyama-Shimura-Weil conjecture is ever going to have any relevance inside the kernel.
is advanced logic. I can't tell you how many times I see folks brute force their way to solutions that they should be using integration.
Can you show an example of where the kernel needs to be using integration? _______________________________________________ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
On 10/2/19 9:42 PM, Ruben Safir wrote:
General plumbing is not needed, but predictive trees, and crypto certainly do and some hardware problems need calc, or even integration.
Those sound like hyper specific things and decidedly specif subsets of the kernel. I believe that there is a LOT of room for kernel development that does not need advanced mathematics.
The harder the job, the more math is needed.
math ≠ advanced mathematics I concede that quite a bit of math is used in the kernel. But advanced mathematics is a ⊂ of mathematics.
Maybe, but I don't think so. And the hardware is getting more exotic.
IMHO the eccentricity of the hardware has no direct correlation to the complexity of the device driver controlling said hardware. Driving an external serial attached modem does not require advanced mathematics. Creating a software based modem, be it kernel space and / or user space, does require advanced mathematics. Notice how the simpler hardware requires more math conversely the more complex hardware does more of the work, thus needing simpler drivers. -- Grant. . . . unix || die
On 10/2/19, Ruben Safir <ruben@mrbrklyn.com> wrote:
On 10/2/19 11:35 PM, Valdis Klētnieks wrote:
On Wed, 02 Oct 2019 21:47:42 -0400, Ruben Safir said:
I'm willing to bet that there's very few PhD's in CS listed in MAINTAINERS. And those that are, are probably coincidental...
I can't testify to that, but there are ton of Master Degree coders and a lot of mathamaticians.
Speaking from my own set of Shoes, some part of it is about being attracted to something with discernible patterns.. predictable patterns.. I don't know, words aren't quite pulling together this morning, but.. Math and computers.. Maybe "logical" is the word I'm looking for.. If one has followed a [building block] type of learning path for either Math or computers, they're both actually... fun because they *can be* predictably logical.. That is, if one has taken the logical path of learning either subject via a [building block] type of education rather than trying to jump off into the very deepest end first. *shakes head at self* PS Linux From Scratch.. LFS.. I WISH I had found that first 20 years ago before all others. It would have made a lot less sense (to me) in that order, but all others after that would have made A LOT MORE sense in its shadow. I think I learned about LFS from Kernel Newbies, from a suggested further readings list or something, now that i think about it, too. #ThankYou! :) Cindy :) -- * runs with birdseed *
participants (7)
-
Cindy Sue Causey -
CRISTIAN ANDRES VARGAS GONZALEZ -
Grant Taylor -
Greg KH -
Ruben Safir -
Sahil Gupta -
Valdis Klētnieks