The moon's gravitational pull is slowly reducing the rotational velocity of the Earth. It is estimated that the day was only twenty or so hours long when the dinos were around, IIRC. So, just wait another 100 million years or so, and we should be up to 30 hours a day.
(To those readers who find this interesting, I might recommend the book What if the Moon Didn't Exist?, by Neil F. Comins.)
Windows NT got through the back door via a "Posix subsystem" on the kernel.
And, interestingly enough, one of the things on the Air Force's checklist to secure an NT server is to disable the POSIX subsystem. It is apparently a security hole pretending to be a kernel component.
So, the DoD mandates that you have POSIX, but also mandates that you not have POSIX.
The point of the picture is to show inheritance and it portrays Linux as being a standalone branch with no connection to what went before.
Er, no. The diagram shows code forks. By and large, Linux systems incorporate little to no code from other Unix systems, largely because of the licensing issues. Perhaps there should be a dashed line from some of the BSDs, since there is some BSD code floating around in your average Linux distro, but by and large, Linux (for the obtuse: in this context, Linux == Linux kernel, GNU tools, some BSD tools, XFree, Perl, Python, KDE, etc., etc.) stands alone. Indeed, the line from Minix to Linux is incorrect.
The kernel is just a tiny part of the OS...
And, once again, I state: Most of the world accepts "Linux" to mean "complete systems using the Linux kernel". This diagram is no exception.
The picture is beautiful, but it repeats a common error.
I think the creator of the chart is well aware of what a "Unix system" really means. Most of the world accepts "Linux" to mean "complete systems using the Linux kernel", in the right context. This is no exception.
Drawing the picture this way gives too much credit to Linus Torvalds...
There is no mention of Linus anywhere on the chart or the web page. Furthermore, the diagram itself is not, as near as I can tell, about giving credit for anything. It merely tracks code forks.
The folks who gave you the hundred-odd programs required by Posix plus all the development tools, mainly the FSF and its army of volunteers and the folks at Cygnus...
Your average Linux distro includes a number of utilities from the BSDs, as well. (Indeed, pretty much any Unix these days encorporates ideas, if not code, from BSD.)
Even more important, the folks like Peter McDonald, Adam Richter, and Patrick Volkering...
Indeed. I wonder if we should include people like ESR and companies like Red Hat, who have been largely responsible for bringing Free Software onto the corporate map?
The picture can be fixed by removing the Linux kernels... and replacing them with a diagram showing the early SLS, LGX, and Slackware releases...
That would not "fix" anything, only expand it. The "Linux" branch includes all of those implictly.
I do think a diagram of the history of the Linux distros, in the same spirit as this one, is a cool idea, though.
I'll save the usual rant about why SCSI is better then IDE. I've already posted it to Slashdot like five times since I joined. It's getting old. But I will respond to a few choice comments...
No, but there aren't any devices out there that are going to suck up all that bandwidth on the consumer side of the market, either.
Why is it that all the IDE apologists out there say "Home users don't need that kind of bandwidth!" in response to us SCSI users, when the topic that spawned the thread is invariably a new, faster IDE spec?
If home users don't need the speed, why do they keep making IDE faster?
I dare you to try and get 15 SCSI devices from different manufacturers and different scsi revisisions running reliably on the same bus.
Well, I've never gone all the way to 15 different SCSI OEMs on one bus, but I have combined several, many times, without problems. I've also seen the occasional incompatibility due to buggy firmware. But then, I've also seen the occasional incompatibility with IDE, and with only two devices. Hmmmm.
It'd be great if devices would disconnect..
It would be great if they powered on, too. Good thing they do!
... doesn't work so well when the devices start to compete and see who's smartest...
Um, do you have something in mind here, or are you just making it up as you go along? Seriously. The above makes almost no sense.
Doesn't happen with IDE.
Because it cannot. How can an inherently dumb bus have problems with intelligent devices?
Do you know how hard it is to find scsi cables and adapters in most cities...
Oh, for crying out loud. Why don't you just say you don't like the acronym or something? If you can't find SCSI cables, you're looking in the wrong places. I live in East Buttmunch, Cow Hamster (AKA New Hampshire, a rural state in the North-East corner of the USA), and I don't have any problems finding SCSI cables.
... how much you'll pay for them?
This is mainly a matter of economy of scale. If they made as many SCSI cables as they did IDE, SCSI would be about that cheap, too.
Half the problems attributed to Windows95 were problems integrating it with Novell networks.
Indeed. But is that a problem with Windows95 or with NetWare? Given the deliberate brain-damage in Microsoft's "Client for NetWare Networks", and their past track record in general, I know who I would blame.
Novell's never implemented TCP/IP properly...
While they were dragged in screaming, fighting tooth and nail, Novell finally did wake up and smell the Internet. NetWare 5.0's IP stack is actually pretty good.
Want to triple the service calls for workstations on your network, at the same time acheiving a four-fold drop in system response time? Simply install Novell's Network Client on an NT Workstation.
A short version is, IMO, "Simply install NT Workstation."
I left to pursue NT...
But you're not biased or anything...
Linux does NOT NEED to be dragged down to the level of a Novell network.
Regardless of which way Linux would be dragged, it is worth pointing out that this project is only tangentially related to Linux. It is mainly a project to implement an ABI compatible NetWare clone under an Open Source license. I don't remember Open Source being declared limited to Unix.
With Linux, our intent is to support existing Windows applications (with Wine) on an optimized OS kernel that provides comparable performance metrics to today's Unix product lines.
That's all very nice to hear, but when you take a look at the current server market (and the market shares, of course) you will notice that Unix's share is decreasing very rapidly. Despire the fact that their NOS is a very robust and stable one, it is obvious, juding by the statistics, that the people want something else (more) nowadays. One could speculate on why people seemed to loose interest. IMHO, one of the reasons is their own 'special' way of supporting SMB, but that's besides the point.
So I wonder why they want to focus on a complete new OS, which is based on a fading one (Unix), instead of supporting the currently available OSes even better? Sure; a Unix based OS which can also run Windows applications sounds nice but not necessary; if I need Windows support I'd just setup another server running Windows; it comes with the PC, remember?
As for the Windows part; if I'd have to choose between a (proven) stable NOS like Windows NT or a new (free) product on the market I'd choose Windows. That is how it works when running a business.
Don't forget that they plan to developing into 2000 and beyond. How many Unix users will be left then? No one can predict this for sure but I really don't think it will be enough to make this whole product commonly accepted. It would take time, much effort and a lot of people supporting it.
[For the clue impaired: Everything the original poster says about NetWare can be applied almost verbatim to Linux six years ago. Funny how point-of-view makes such a difference, eh?]
I've got a designated volume of space in the cube farm, just like everyone else. But I don't know if I could call it an "office". Lately I spend all of time time:
1. At a customer site
2. In my car on my way to/from the customer site
3. In the machine room fixing servers
4. In the lab fixing other things
Real sysadmins don't need officies. They're too busy to actually stop moving long enough to use one.
First, although Bruce hosts the site, he's not otherwise involved.
It was a joke. Brett Glass is an active member of the "BSD community", and a strong and outspoken opponent of the "GPL camp" of Open Source developers. Much like FIJAGDH and FIAWOL are antithetical, so are those two's stances on software licenses.
Apparently, it wasn't nearly as funny as I hoped it was.:-(
I'd dispute the suggestion that Wolfenstein 3D was truly original. Plenty of RPGs had used a first-person viewpoint while wandering round a maze before, while the gameplay wasn't really more than a gauntlet clone.
Hmmm. Interesting point. Maybe some of the games in question weren't so much "new" as (can I say this without getting a bad taste in my mouth?) "innovative". Taking existing concepts and improving upon them.
I'd have to suggest the inclusion of Dungeon Keeper, though.
Dig Dug plus SimCity plus Dungeons and Dragons. It works both ways.;-)
(For the less informed, the subject line evaluates to "Me too!")
I am ashamed that Slashdot printed this article.
No joke. The first thing I thought when I read The Taco's lead-in --
The ongoing debate between KDE and GNOME has calmed down a lot in the last year...
-- was, "Well, this story should fix that problem, then, eh?
Keep in mind, I don't really care what Slashdot's Fearless Leader does with the site -- if it starts to suck too much, there's plenty more Internet out there -- but this cost Malda some karma points in my eyes. What an obvious troll/flamebait story.
Interesting. I'd first point out that, to me at least, what you're proposing sounds a bit more like a gigantic (128 MB) L3 DRAM-cache than traditional NUMA. Of course, I don't know too much about NUMA...
I don't either, except some basic theory. But basically, good NUMA systems eliminate the duplication of data that traditional PC cache memory systems use. The hardware and OS know that some memory is faster then other memory, and put more frequently used pages in the faster memory.
NUMA is traditionally used in very large microcomputer systems (IBM, Sun, SGI) and clusters. SGI does a lot of this in their high-end number crunchers. Memory on the local processor node is significantly faster to access then memory on another node, even with a 2 GByte/sec backplane.
True, it does require OS-level support for this, and the circuitry is more complex, and blah blah blah, but I think it is worth it for systems where expandability is important (e.g., high-end workstations, servers). I don't see it happening in the home PC market, though. You might as well stick with the "onboard" very-fast-ram then.
And indeed, that would be the biggest problem with this scheme--the latencies.
Well, yes, but without this system, the latencies are even worse. If the data isn't in cache or "onboard" RAM, then it must be on disk. And even 70ns FPM SIMMs are faster then paging to disk!
But still, I think you'd find on such a system that upgrading the main DRAM--like enlarging your virtual memory swap file--wouldn't have the same effect on system performance as upgrading main memory does today.
I'm sure, but I still think the performance and expandability is worthwhile, especially for something like a web server, where some data (e.g., database engine and indexes) are going to be accessed frequently, while other data (random static web content) is less important (and limited by the speed of the pipe in any event).
IOW, they want to keep some sort of proprietary control over the code?
Close, but not quite: They want to keep some sort of non-proprietary control over the code. IOW, they want everyone to have equal control over the code.
The BSDL is optimized for code-reuse, regardless of how the code is reused. The GPL is optimized for making sure the code is always available to anyone who wants it, regardless of what has been done to it. A subtle but important difference that many people miss.
So given that DRAM is a pain and requires a separate controller to work it, why do we use it?... performance - for SRAM to change state, one gate has to change and the other gate follows it, so it takes twice as long for a state change. This is all approximate, of course.
I'm confused. They use static RAM as cache memory, right? Because it is faster, right? So how can it also be slower?
optical interconnect rather than copper wires. No cross-talk, and you could actually send those insanely high-frequency signals the handful of inches between the memory and the CPU with nearly zero latency.
Hmmmm. While the zero cross-talk is a big benefit, many optical systems actually have higher latencies then their copper counterparts. More bandwidth, but slower response time. This isn't a factor in networks, so fiber is the media of choice, but I imagine it would be inside your computer.
The problem is, static RAM (SRAM) fundamentally takes up more space then dynamic RAM (DRAM). SRAM uses six transistors per memory cell (bit) where DRAM uses one little thingy (I forget what it's called) per cell. This means a much larger package. (It also means lower yields, since SRAM is harder to make.) After a while, trace lengths and the speed of light are going to get in your way.
Thank you for a very interesting and informative post!
I'd say eventually the industry is going to have to give up the idea of expandable RAM, and change the entire architecture of the motherboard so that the CPU and main memory are moved off it, onto a daughter card, like the graphics card is now.
The above, in particular, is extremely interesting. I can see it happening. Indeed, it would fit current trends. We had 30-pin SIMMs forever, but now you're lucky if you keep your memory across two CPU generations. So move all the fast-changing stuff onto a single expansion card, and keep the more stable PCI bus and basic I/O functions on a backplane/mainboard.
I don't think traditional expandable RAM has to go away completely, though. I think the solution would be further extending the NUMA (Non-Uniform Memory Access) concept of cache memory. We've already got very-high-speed L1 and L2 cache. Say this CPU+high-speed-memory card you propose has N ultra-high-speed on-die L1 cache, N*16 super-high-speed off-die L2 cache, and N*(2^10) of very-high-speed, CPU-local RAM. Then have an expandable main memory system of merely high-speed RAM, slower, but expandable and much larger, say, N*(2^12). To fill in some example numbers:
128 KB L1 cache
2 MB L2 cache
128 MB local RAM
512 MB main RAM
As a person who has spent many all-nighters coding away in ASM without a macro-assembler, CISC does not look too bad.
LOL. Ah, yes. I remember, from my days at Unnamed U., that the VAX they still had in use as a student machine had an assembler instruction to evaluate an arbitrary length polynomial equation. Now that's what I call an instruction set!
We also had a MicroVAX in the department I worked as an admin from time to time. The thing was a true crawling horror, but we kept it around because one old guy refused to give it up. Then one day, it actually caught on fire. Said old guy was still logged into it remotely (without problems!) when we killed the power to stop the smoke. After that, though, it never booted again.
Would the quiz cover local current events like polluted water in the local reservoir? Or would it instead focus on world events?
That would, I suppose, depend on the type of election -- local, regional, or national. If you've got more then one tier, you take more then one test.
Then which kind of events? Economic? Social? Political?
Well, why not all of the above? Such a system wouldn't have to ask "hard" questions, just questions on the "major" issues. True, the system tends to self-define the "major" issues, but one could expect even one apathetic to the current trendy debates to at least be aware of them.
(Keep in mind that I'm not really serious about this; it is more of a thought exercise then anything else.)
The pool of questions and the range of options are too broad; there would wind up being a bias in the test, even though it would not be deliberate.
I think you could avoid a bias by using random selection of topics and questions. You might "bias" the test against people who aren't very current on the issues, but that is rather the point, after all.
The whole concept reminds me of the Jim Crow- type tests...
That comparison is inescapable, but I think there is a difference: The Jim Crow laws tested (relatively) unrelated, general skills, because an unwanted demographic (recently freed slaves) did not have those skills. The idea here, instead, is to actually establish an objective and rational requirement for suffrage. Namely: Are you familar enough with the canidates and their stands on the issues that you can make an informed decision? The question of whether it is even possible to develop such a metric is, of course, the crux of the matter.
I like Robert Heinlein's suggestion: you should not be allowed to vote unless you can find the roots of y=9x^2+12x+4.
I think David Brin's idea, from his novel Earth, was better: You need to keep up on current events in order to be able to vote. After all, being able to find the root of a quadratic equation, while useful, really doesn't have that much bearing on political choices. But an understanding of "current events" at least indicates that you care enough about the issues to keep track of them, which is about the only objective yet meaningful qualification for suffrage I can think of.
Now, David Brin's system used a global computer system which monitored your usage of news media systems, which probably has too many privacy concerns to be practical. But perhaps some sort of randomly-generated, ten-question, current-events quiz could be used, and you have to score X% correct or better to vote.
This also lets you remove age requirements, as Heinlien pointed out: A nine-year-old girl may be able to vote while her father cannot. Which is fine and dandy, I think.
Also from Heinlien's Expanded Universe was this idea which I just loved: The test could be given in the same enclosed booth as the votes cast, so no embarasment is risked. Or, you could use it to improve the species: If you fail the test (whatever it is), the booth still opens -- but is empty!
(Not very nice, but you have to love the concept!)
It is interesting to note that two of the "new" things that make the article author so excited have already been done ny Borland, in C++Builder, while retaining C++ compatibility. (Well, okay, they added a couple keywords, but marked them as implementation-dependent using the ANSI standard double-underscore prefix.)
Personally, I found C# support of events to be a very exciting new feature... an object reference as well as a method reference.
C++Builder has been doing this since day one, with what Borland calls a "closure". You use a new keyword, __closure, to declare a pointer which points to a member function of a specific object instance. Not surprisingly, Borland uses this to drive the entire event system in their GUI framework. It rocks.
Properties are another example, even though they're not as much of a labor-saver as events are.
Again, Borland has been doing this since day one. The keyword __property can be used to declare object members which appear to be simple variables to "outsiders", but do magic when read or set.
Once again, Microsoft fails to innovate, but instead steals from elsewhere.
Slow down the rotation of the Earth...
Okay, no problem. In fact, we've already started.
The moon's gravitational pull is slowly reducing the rotational velocity of the Earth. It is estimated that the day was only twenty or so hours long when the dinos were around, IIRC. So, just wait another 100 million years or so, and we should be up to 30 hours a day.
(To those readers who find this interesting, I might recommend the book What if the Moon Didn't Exist? , by Neil F. Comins.)
Windows NT got through the back door via a "Posix subsystem" on the kernel.
And, interestingly enough, one of the things on the Air Force's checklist to secure an NT server is to disable the POSIX subsystem. It is apparently a security hole pretending to be a kernel component.
So, the DoD mandates that you have POSIX, but also mandates that you not have POSIX.
Everybody got that?
The point of the picture is to show inheritance and it portrays Linux as being a standalone branch with no connection to what went before.
Er, no. The diagram shows code forks. By and large, Linux systems incorporate little to no code from other Unix systems, largely because of the licensing issues. Perhaps there should be a dashed line from some of the BSDs, since there is some BSD code floating around in your average Linux distro, but by and large, Linux (for the obtuse: in this context, Linux == Linux kernel, GNU tools, some BSD tools, XFree, Perl, Python, KDE, etc., etc.) stands alone. Indeed, the line from Minix to Linux is incorrect.
The kernel is just a tiny part of the OS...
And, once again, I state: Most of the world accepts "Linux" to mean "complete systems using the Linux kernel". This diagram is no exception.
The picture is beautiful, but it repeats a common error.
... and replacing them with a diagram showing the early SLS, LGX, and Slackware releases ...
I think the creator of the chart is well aware of what a "Unix system" really means. Most of the world accepts "Linux" to mean "complete systems using the Linux kernel", in the right context. This is no exception.
Drawing the picture this way gives too much credit to Linus Torvalds...
There is no mention of Linus anywhere on the chart or the web page. Furthermore, the diagram itself is not, as near as I can tell, about giving credit for anything. It merely tracks code forks.
The folks who gave you the hundred-odd programs required by Posix plus all the development tools, mainly the FSF and its army of volunteers and the folks at Cygnus...
Your average Linux distro includes a number of utilities from the BSDs, as well. (Indeed, pretty much any Unix these days encorporates ideas, if not code, from BSD.)
Even more important, the folks like Peter McDonald, Adam Richter, and Patrick Volkering...
Indeed. I wonder if we should include people like ESR and companies like Red Hat, who have been largely responsible for bringing Free Software onto the corporate map?
The picture can be fixed by removing the Linux kernels
That would not "fix" anything, only expand it. The "Linux" branch includes all of those implictly.
I do think a diagram of the history of the Linux distros, in the same spirit as this one, is a cool idea, though.
As was said so eloquently (I forget by who):
The Internet interprets censorship as damage and routes around it.
I'll save the usual rant about why SCSI is better then IDE. I've already posted it to Slashdot like five times since I joined. It's getting old. But I will respond to a few choice comments...
... doesn't work so well when the devices start to compete and see who's smartest ...
... how much you'll pay for them?
No, but there aren't any devices out there that are going to suck up all that bandwidth on the consumer side of the market, either.
Why is it that all the IDE apologists out there say "Home users don't need that kind of bandwidth!" in response to us SCSI users, when the topic that spawned the thread is invariably a new, faster IDE spec?
If home users don't need the speed, why do they keep making IDE faster?
I dare you to try and get 15 SCSI devices from different manufacturers and different scsi revisisions running reliably on the same bus.
Well, I've never gone all the way to 15 different SCSI OEMs on one bus, but I have combined several, many times, without problems. I've also seen the occasional incompatibility due to buggy firmware. But then, I've also seen the occasional incompatibility with IDE, and with only two devices. Hmmmm.
It'd be great if devices would disconnect..
It would be great if they powered on, too. Good thing they do!
Um, do you have something in mind here, or are you just making it up as you go along? Seriously. The above makes almost no sense.
Doesn't happen with IDE.
Because it cannot. How can an inherently dumb bus have problems with intelligent devices?
Do you know how hard it is to find scsi cables and adapters in most cities...
Oh, for crying out loud. Why don't you just say you don't like the acronym or something? If you can't find SCSI cables, you're looking in the wrong places. I live in East Buttmunch, Cow Hamster (AKA New Hampshire, a rural state in the North-East corner of the USA), and I don't have any problems finding SCSI cables.
This is mainly a matter of economy of scale. If they made as many SCSI cables as they did IDE, SCSI would be about that cheap, too.
Half the problems attributed to Windows95 were problems integrating it with Novell networks.
Indeed. But is that a problem with Windows95 or with NetWare? Given the deliberate brain-damage in Microsoft's "Client for NetWare Networks", and their past track record in general, I know who I would blame.
Novell's never implemented TCP/IP properly...
While they were dragged in screaming, fighting tooth and nail, Novell finally did wake up and smell the Internet. NetWare 5.0's IP stack is actually pretty good.
Want to triple the service calls for workstations on your network, at the same time acheiving a four-fold drop in system response time? Simply install Novell's Network Client on an NT Workstation.
A short version is, IMO, "Simply install NT Workstation."
I left to pursue NT...
But you're not biased or anything...
Linux does NOT NEED to be dragged down to the level of a Novell network.
Regardless of which way Linux would be dragged, it is worth pointing out that this project is only tangentially related to Linux. It is mainly a project to implement an ABI compatible NetWare clone under an Open Source license. I don't remember Open Source being declared limited to Unix.
[Rewind the clock about six or seven years...]
With Linux, our intent is to support existing Windows applications (with Wine) on an optimized OS kernel that provides comparable performance metrics to today's Unix product lines.
That's all very nice to hear, but when you take a look at the current server market (and the market shares, of course) you will notice that Unix's share is decreasing very rapidly. Despire the fact that their NOS is a very robust and stable one, it is obvious, juding by the statistics, that the people want something else (more) nowadays. One could speculate on why people seemed to loose interest. IMHO, one of the reasons is their own 'special' way of supporting SMB, but that's besides the point.
So I wonder why they want to focus on a complete new OS, which is based on a fading one (Unix), instead of supporting the currently available OSes even better? Sure; a Unix based OS which can also run Windows applications sounds nice but not necessary; if I need Windows support I'd just setup another server running Windows; it comes with the PC, remember?
As for the Windows part; if I'd have to choose between a (proven) stable NOS like Windows NT or a new (free) product on the market I'd choose Windows. That is how it works when running a business.
Don't forget that they plan to developing into 2000 and beyond. How many Unix users will be left then? No one can predict this for sure but I really don't think it will be enough to make this whole product commonly accepted. It would take time, much effort and a lot of people supporting it.
[For the clue impaired: Everything the original poster says about NetWare can be applied almost verbatim to Linux six years ago. Funny how point-of-view makes such a difference, eh?]
I've got a designated volume of space in the cube farm, just like everyone else. But I don't know if I could call it an "office". Lately I spend all of time time:
1. At a customer site
2. In my car on my way to/from the customer site
3. In the machine room fixing servers
4. In the lab fixing other things
Real sysadmins don't need officies. They're too busy to actually stop moving long enough to use one.
First, although Bruce hosts the site, he's not otherwise involved.
:-(
It was a joke. Brett Glass is an active member of the "BSD community", and a strong and outspoken opponent of the "GPL camp" of Open Source developers. Much like FIJAGDH and FIAWOL are antithetical, so are those two's stances on software licenses.
Apparently, it wasn't nearly as funny as I hoped it was.
I'd dispute the suggestion that Wolfenstein 3D was truly original. Plenty of RPGs had used a first-person viewpoint while wandering round a maze before, while the gameplay wasn't really more than a gauntlet clone.
;-)
Hmmm. Interesting point. Maybe some of the games in question weren't so much "new" as (can I say this without getting a bad taste in my mouth?) "innovative". Taking existing concepts and improving upon them.
I'd have to suggest the inclusion of Dungeon Keeper, though.
Dig Dug plus SimCity plus Dungeons and Dragons. It works both ways.
(For the less informed, the subject line evaluates to "Me too!")
I am ashamed that Slashdot printed this article.
No joke. The first thing I thought when I read The Taco's lead-in --
The ongoing debate between KDE and GNOME has calmed down a lot in the last year...
-- was, "Well, this story should fix that problem, then, eh?
Keep in mind, I don't really care what Slashdot's Fearless Leader does with the site -- if it starts to suck too much, there's plenty more Internet out there -- but this cost Malda some karma points in my eyes. What an obvious troll/flamebait story.
Bad Taco! No anime for you tonight!
FIAWOL, because Fandom Is A Way Of Life.
;-)
So, who owns www.fijagdh.com then? If Bruce Perens is associated with FIAWOL, does that mean Brett Glass should own FIJAGDH.COM?
Interesting. I'd first point out that, to me at least, what you're proposing sounds a bit more like a gigantic (128 MB) L3 DRAM-cache than traditional NUMA. Of course, I don't know too much about NUMA ...
I don't either, except some basic theory. But basically, good NUMA systems eliminate the duplication of data that traditional PC cache memory systems use. The hardware and OS know that some memory is faster then other memory, and put more frequently used pages in the faster memory.
NUMA is traditionally used in very large microcomputer systems (IBM, Sun, SGI) and clusters. SGI does a lot of this in their high-end number crunchers. Memory on the local processor node is significantly faster to access then memory on another node, even with a 2 GByte/sec backplane.
True, it does require OS-level support for this, and the circuitry is more complex, and blah blah blah, but I think it is worth it for systems where expandability is important (e.g., high-end workstations, servers). I don't see it happening in the home PC market, though. You might as well stick with the "onboard" very-fast-ram then.
And indeed, that would be the biggest problem with this scheme--the latencies.
Well, yes, but without this system, the latencies are even worse. If the data isn't in cache or "onboard" RAM, then it must be on disk. And even 70ns FPM SIMMs are faster then paging to disk!
But still, I think you'd find on such a system that upgrading the main DRAM--like enlarging your virtual memory swap file--wouldn't have the same effect on system performance as upgrading main memory does today.
I'm sure, but I still think the performance and expandability is worthwhile, especially for something like a web server, where some data (e.g., database engine and indexes) are going to be accessed frequently, while other data (random static web content) is less important (and limited by the speed of the pipe in any event).
IOW, they want to keep some sort of proprietary control over the code?
Close, but not quite: They want to keep some sort of non-proprietary control over the code. IOW, they want everyone to have equal control over the code.
The BSDL is optimized for code-reuse, regardless of how the code is reused. The GPL is optimized for making sure the code is always available to anyone who wants it, regardless of what has been done to it. A subtle but important difference that many people miss.
Can I use Linux as a verb?
... any noun can be verbed.
I wonder if this is where the name "core" came from in respect to *NIX systems.
Dead on. Unix geeks often refer to a program loaded into memory as "in core" for this reason.
So given that DRAM is a pain and requires a separate controller to work it, why do we use it? ... performance - for SRAM to change state, one gate has to change and the other gate follows it, so it takes twice as long for a state change. This is all approximate, of course.
I'm confused. They use static RAM as cache memory, right? Because it is faster, right? So how can it also be slower?
optical interconnect rather than copper wires. No cross-talk, and you could actually send those insanely high-frequency signals the handful of inches between the memory and the CPU with nearly zero latency.
Hmmmm. While the zero cross-talk is a big benefit, many optical systems actually have higher latencies then their copper counterparts. More bandwidth, but slower response time. This isn't a factor in networks, so fiber is the media of choice, but I imagine it would be inside your computer.
Nothing but full speed static RAM. Yum.
The problem is, static RAM (SRAM) fundamentally takes up more space then dynamic RAM (DRAM). SRAM uses six transistors per memory cell (bit) where DRAM uses one little thingy (I forget what it's called) per cell. This means a much larger package. (It also means lower yields, since SRAM is harder to make.) After a while, trace lengths and the speed of light are going to get in your way.
Thank you for a very interesting and informative post!
I'd say eventually the industry is going to have to give up the idea of expandable RAM, and change the entire architecture of the motherboard so that the CPU and main memory are moved off it, onto a daughter card, like the graphics card is now.
The above, in particular, is extremely interesting. I can see it happening. Indeed, it would fit current trends. We had 30-pin SIMMs forever, but now you're lucky if you keep your memory across two CPU generations. So move all the fast-changing stuff onto a single expansion card, and keep the more stable PCI bus and basic I/O functions on a backplane/mainboard.
I don't think traditional expandable RAM has to go away completely, though. I think the solution would be further extending the NUMA (Non-Uniform Memory Access) concept of cache memory. We've already got very-high-speed L1 and L2 cache. Say this CPU+high-speed-memory card you propose has N ultra-high-speed on-die L1 cache, N*16 super-high-speed off-die L2 cache, and N*(2^10) of very-high-speed, CPU-local RAM. Then have an expandable main memory system of merely high-speed RAM, slower, but expandable and much larger, say, N*(2^12). To fill in some example numbers:
128 KB L1 cache
2 MB L2 cache
128 MB local RAM
512 MB main RAM
That way, you get the best of both worlds.
As a person who has spent many all-nighters coding away in ASM without a macro-assembler, CISC does not look too bad.
LOL. Ah, yes. I remember, from my days at Unnamed U., that the VAX they still had in use as a student machine had an assembler instruction to evaluate an arbitrary length polynomial equation. Now that's what I call an instruction set!
We also had a MicroVAX in the department I worked as an admin from time to time. The thing was a true crawling horror, but we kept it around because one old guy refused to give it up. Then one day, it actually caught on fire. Said old guy was still logged into it remotely (without problems!) when we killed the power to stop the smoke. After that, though, it never booted again.
Would the quiz cover local current events like polluted water in the local reservoir? Or would it instead focus on world events?
That would, I suppose, depend on the type of election -- local, regional, or national. If you've got more then one tier, you take more then one test.
Then which kind of events? Economic? Social? Political?
Well, why not all of the above? Such a system wouldn't have to ask "hard" questions, just questions on the "major" issues. True, the system tends to self-define the "major" issues, but one could expect even one apathetic to the current trendy debates to at least be aware of them.
(Keep in mind that I'm not really serious about this; it is more of a thought exercise then anything else.)
The pool of questions and the range of options are too broad; there would wind up being a bias in the test, even though it would not be deliberate.
I think you could avoid a bias by using random selection of topics and questions. You might "bias" the test against people who aren't very current on the issues, but that is rather the point, after all.
The whole concept reminds me of the Jim Crow- type tests...
That comparison is inescapable, but I think there is a difference: The Jim Crow laws tested (relatively) unrelated, general skills, because an unwanted demographic (recently freed slaves) did not have those skills. The idea here, instead, is to actually establish an objective and rational requirement for suffrage. Namely: Are you familar enough with the canidates and their stands on the issues that you can make an informed decision? The question of whether it is even possible to develop such a metric is, of course, the crux of the matter.
I like Robert Heinlein's suggestion: you should not be allowed to vote unless you can find the roots of y=9x^2+12x+4.
I think David Brin's idea, from his novel Earth, was better: You need to keep up on current events in order to be able to vote. After all, being able to find the root of a quadratic equation, while useful, really doesn't have that much bearing on political choices. But an understanding of "current events" at least indicates that you care enough about the issues to keep track of them, which is about the only objective yet meaningful qualification for suffrage I can think of.
Now, David Brin's system used a global computer system which monitored your usage of news media systems, which probably has too many privacy concerns to be practical. But perhaps some sort of randomly-generated, ten-question, current-events quiz could be used, and you have to score X% correct or better to vote.
This also lets you remove age requirements, as Heinlien pointed out: A nine-year-old girl may be able to vote while her father cannot. Which is fine and dandy, I think.
Also from Heinlien's Expanded Universe was this idea which I just loved: The test could be given in the same enclosed booth as the votes cast, so no embarasment is risked. Or, you could use it to improve the species: If you fail the test (whatever it is), the booth still opens -- but is empty!
(Not very nice, but you have to love the concept!)
It is interesting to note that two of the "new" things that make the article author so excited have already been done ny Borland, in C++Builder, while retaining C++ compatibility. (Well, okay, they added a couple keywords, but marked them as implementation-dependent using the ANSI standard double-underscore prefix.)
... an object reference as well as a method reference.
Personally, I found C# support of events to be a very exciting new feature
C++Builder has been doing this since day one, with what Borland calls a "closure". You use a new keyword, __closure, to declare a pointer which points to a member function of a specific object instance. Not surprisingly, Borland uses this to drive the entire event system in their GUI framework. It rocks.
Properties are another example, even though they're not as much of a labor-saver as events are.
Again, Borland has been doing this since day one. The keyword __property can be used to declare object members which appear to be simple variables to "outsiders", but do magic when read or set.
Once again, Microsoft fails to innovate, but instead steals from elsewhere.