>> My terminology is compliant with that definition. > > *Sigh* > > I am aware of that. The general term "re-entrancy" is not synonymous > with the specific term "reentrant kernel".
So re-entrancy is not synonymous with re-entrancy? Or the definition of re-entrancy when applied to a kernel is different than the definition when it is applied to something else? Or the definition you supplied doesn't apply to kernels? > I do not wish to seem mean, but when I say to you that you are not > explaining this well, it is not a useful or constructive answer to > acknowledge it and then go on to say "well this backs me up" > followed by "but that is not what I mean". I'm saying that if you apply the definition you supplied to kernels as they currently exist they are not re-entrant. > Brent, I am a professional explainer of hard concepts. It's my job. > I get paid for it. I am not here to try to decode what you are > talking about and then explain it better. That is what I get paid > to do and you are not paying me. I am telling you, gratis, that your > explanations are lacking, and rather than an essay-length response, > a better one would be to _come up with better explanations_. It's Bret, not Brent. And I will attempt a better explanation below. >> I haven't redefined anything. Individual subroutines may be re- >> entrant but the entire kernel itself is not. > > When the industry considers that all mainstream OSes have reentrant > kernels, _yes it does_ and you need to find some better > explanations. > You are not doing that. So, something is true because "everybody else says so?" Let me try to explain with a thought experiment. Currently, there can be only one bootable device on a computer (usually one of the partitions on the hard drive, whether it be MBR or GPT). Let's say that instead of it working that way, there could be multiple bootable partitions. While booting, each bootable partition is "given" (by what one could at least potentially call a "BIOS") its own CPU/core to use while it is booting, in addition to its own independent chunk of memory. All the different OS's could boot at the same time since they are independent of each other. Of course the BIOS would also need to somehow "divide" or "share" the other hardware resources (in addition to the CPU's and memory) among the different OS's, but that is another matter. We are discussing re-entrant kernels. Let's take this a step further. Let's say that you set it up so that a single partition could boot multiple "copies" of an OS. For example, the BIOS would provide three different CPU's to the bootable partition and tell it to install three independent "copies" of Linux. The _same_ kernel would boot three independent Linuxes at the same time. The kernel would need to be re-entrant since three different CPU's would be accessing it at the same time. This is sort of the opposite of what happens today -- instead of the OS controlling the CPU(s) the CPU/BIOS "controls" the OS. Or, as an alternative, the BIOS could only provide one CPU but still tell the kernel it wants three "copies" of Linux to boot. The kernel could boot each "copy" of the OS sequentially (in which case it wouldn't necessarily need to be re-entrant) or could boot them concurrently (in which case it would need to be be re-entrant). Those scenarios are what I would call examples of re-entrant kernels. Call the idea stupid or insane or impractical or whatever you want, but that would comply with the definition you provided of re-entrancy. For whatever reason (mostly, I think, just "because that's not the way it's done"), in today's world the "boot" part of the kernel is not considered part of the kernel, at least when it comes to the concept of re-entrancy. > Allegedly, Einstein said: "If you can't explain it simply, you don't > understand it well enough." Is that explained well enough now for you to understand? >> E.g., you can't have the _same_ copy of the kernel running on >> multiple CPU's concurrently > > Multiple cluster OSes do that, such as Plan 9, Inferno, and > Parhelion HeliOS. > > https://www.theregister.com/2021/12/06/heliosng/ Again, not what I'm talking about. See above. >> The problem is, the CPU's _themselves_ really haven't gotten a >> whole lot faster than they were in the 386 days. > > Drastic oversimplification to the point of not being true, accurate > or representative. *Sigh* Let me give you some actual data to back up my claim, shall I? The computer I'm currently using is a few years old, old enough that I can boot DOS on the actual hardware. The CPU is an Intel i5-4590 running at 3.30 GHz. I have a DOS program I wrote a long time ago, called SLOWDOWN (and hope to find time to "update" it in the future). The purpose of SLOWDOWN is to slow the computer down so that DOS applications don't "blow up" because the computer is too fast. It's not a perfect solution, but is useful in certain situations. One of the things SLOWDOWN needs to do is figure out how fast the computer is running so that it can slow it down the correct amount when you want to do that. So, SLOWDOWN can sort of be used as a "benchmark" to see how fast your computer actually is. For my test, I compared how fast my current computer runs (with a 3.30 GHz clock speed) against a 33 MHz 386 CPU (which I measured way back when -- I don't have access to that computer any more). At least in theory, because my current clock speed is 100 times as fast as the 386, my current computer should run _at least_ 100 times as fast as the 386 did. Also, at least in theory, it should be even faster than that since the new computer has a cache and the 386 didn't, modern CPU's take fewer clock cycles per CPU instruction, etc. In fact, the new 3.3 GHz i5 CPU runs about 10 times faster than the 33 MHz 386 did, not more than 100 times like you would expect. I then ran a second test where I disabled the cache on the CPU (you can do this with my CPUCACHE program which is included with SLOWDOWN). This is a more "apples-to-apples" comparison of the _actual_ CPU speed than the original test with the cache enabled. When I did this test, the computer ran almost exactly the same speed as the 33 MHz 386 (it was about 3% faster, not 10,000% faster as "logic" would dictate). There is something VERY wrong going on here. I suspect you may not believe my results, but they are nonetheless real. So, given this real-life data, how exactly is what I said untrue, oversimplified, inaccurate, unrepresentative, or any other similar adjective you would choose to use? According to the theory, what I said can't be true, and yet it is. I'm sure somebody will claim something like, "modern CPU's are optimized for modern applications so you can't expect them to run old stuff, like DOS, very well." Well, I think it's pretty unreasonable to expect a modern 3.3 GHz i5 CPU to run at almost the exact same speed as a 33 MHz 386 and with a straight face say, "it really is more than 10,000% faster -- you're just not looking at it the right way." As they say, the proof of the pudding is in the eating. Let me ask you a few questions. One of the things I said was that the main reason modern CPU's seem so fast is because of "tricks" like pipelining and caching, and you seem to indicate that you don't think that is true. Would you even _consider_ running a modern OS on a CPU with the cache disabled, when the actual, verifiable data shows it would run about the same speed as in the 386 days? The next set of questions relate again to what I mentioned previously. What if modern CPU's were super high-speed 386-class CPU's? That is, what if we applied modern fabrication techniques to 386 era technology -- how fast would the CPU's actually be? Let's assume we could fabricate a 3.3 GHz 386-class CPU. Do you think it would be 10,000% faster than a 33 MHz 386? I think it probably would be -- I certainly think it would be WAY faster than my 3.3 GHz i5. And you could probably fit dozens, or maybe even hundreds, of them on a single die. > I'd say Koomey's Law replaced Moore's Law circa 2007-2008, when the > x86 industry went through the multicore transition. From ~1975 to > ~2005: CPU bandwidth approximately doubled every ~1½ years. Since > ~2005: bandwidth increases ~10% every 1½ years. Does that matter if it doesn't actually do anything useful in the real world? CPU bandwidth seems to be pretty much irrelevant based on the tests I delineated above. What seems to matter way more are caches and I/O (SSD's have been a big boon to speed that has nothing to do with CPU bandwidth). >> That is not what you are saying. > >> I know it's not -- it's probably not clear to most people since >> it's it's a completely different way of thinking than what they're >> used to. And again, I'm not saying that it's a "good" idea or that >> it should even be implemented -- but it can at least give a >> different perspective on how things _could_ be done. > > I suggest you watch my series of talks at the FOSDEM conference from > 2018-2020. Maybe. > Not because I am saying I am an examplar of cogent explanation -- I > am not Even though that's what you are paid to do? > -- but because they constitute a fairly serious dive into > alternate OS architectures, while you seem to think I am just not > bright enough to understand your searing insights. Not at all. You are more than bright enough. I just think you, like so many others, have been so entrenched in "the way things are" that you can't even conceive of the way things could be. >> Again, while interesting, none of those are what I'm talking about. > > I know they aren't. I specifically chose them to illustrate how your > attempted explanation was amenable to misinterpretation. Of course -- almost everything is amenable to misinterpretation. Did I explain it any better this time? I fully realize that lots (maybe even all) who read this may think "the cheese has slid off my cracker" (I love that line from The Green Mile) or that "I'm not playing with a full deck." That may in fact be the case, but it could also be that I'm playing with a stacked deck. We may never know for sure. _______________________________________________ Freedos-devel mailing list Freedos-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/freedos-devel