Preinstalled Hurd Now Available
Roger_Wilco writes "The GNU Web site is announcing that Spacetime Systems will now install GNU/Hurd as well as GNU/Linux. Hurd is Object Oriented, unlike Linux, so it may be a superior system in the long run."
← Back to Stories (view on slashdot.org)
It's been on the gnu.org page for a week or two.
Slashdot? Oh, I just read it for the articles.
How much would it take to make Linux's kernel
object oriented? Are there any specific reasons
why it isn't already? What's kept it from moving
into the wonderful world of oo?
I'm open to being convinced - but will need to be convinced.
-- Slashdot sucks.
I may be a fool, but I believe this story appeared in slashdot before. Not that it hurts anything...
Fools of America, unite! Join the
Hurd is Object Oriented, unlike Linux, so it may be a superior system in the long run.
Huh? Why would you say something like that? I mean I can see arguing microkernel v. monolithic kernel archetectures, but saying an OS is better than another due to its programming methodology?
Besides in the words of John Maynard Keynes, in the long run, we're all dead.
DrLunch.com The site that tells you what's for lunch!
Wasn't this posted ~2 months ago?
Still trying to decipher the meaning of the text in this story.
(Score -1, Redundant)
Preinstalled Hurd sounds like a no-win scenario to me.
This is very, very cool. The HURD is awesome, and I for one am going to be following it very closely as it develops.
For all of the people who are now going to bash the HURD as completely useless and still in development, keep in mind that linux was once at the point that the HURD currently is. It's in development, there are probably more things to be implemented than things that have already been implemented (although any developers feel free to jump in and comment at length about the status relative to the long term goals of the project) but the project is VERY cool.
It doesn't *compete* with linux in the way that you might think - it's sort of a UNIX, but it's based off of the Mach microkernel, which is a very different way of going about operating system design than your typical UNIX.
Let's face it, of course linux rocks, but in terms of operating system design concepts, linux really didn't change much, it just took ideas that were already out there and created an excellent implementation of said ideas. The HURD on the other hand is based on a different worldview of operating systems and has a lot of promise.
Besides, how bad can it be to have another choice for an operating system? You don't have to use Linux, BSD, Win95, or HURD, but it's good to know that the choice is out there. Personally, I don't know if I'm ready to join the HURD, but I'm watching the code, and I plan to jump in and contribute where I can.
And to all you people who say that the term GNU/Linux is a total travesty of fairness on the part of the FSF, the HURD is pretty much the last component of the GNU system that is needed. Whether they choose to call that GNU/HURD or just HURD is up to them, but if you look at the HURD in terms of the framework of GNU's work, it explains a lot about why Stallman wants to call Linux GNU/Linux. (And I agree with him)
Regardless of what you may have read above, I agree with you. Support the Free Software Foundation http://www.gnu.org/
As far as I understand, the Linux kernel is very consistently thought out and new additions are considered very carefully before being implemented. So is there any really significant gain to an OO kernel?
+----------------------------------------------
+------------------------------------------------
+ The urge to destroy is a creative urge
I'm sorry, usually I try to stay away from straight-flamage type comments, but I can't help myself this time.
What the hell is that statement supposed to mean? What makes an "Object Oriented" OS "better" than another that's not "Object Oriented"? What do you mean by saying the OS is "Object Oriented" anyway? By extrapolation, does this mean we can now definitively say that since C++ is "Object Oriented," it may be a superior language to C in the long run? (And if so, is Hurd written in obviously superior C++ or obviously inferior C?)
Hurd goes about supplying services to the system processes and end-user in a different way than Linux does. They're different. That's it. End of story. If you think "the way Hurd does it" is "better" then fine, that's your opinion. Better people than you have had similar opinions; go search the 'net and find that legendary exchange between Torvalds and Tannenbaum regarding why a microkernel is superior and why Linux is doomed to failure because it's monolithic.
This is one of the most incredibly content-free, flame-inviting statements I've seen in the main body of an article on
-=-=-=-=-
-=-=-=-=-
My mom's going to kick you in the face!
Is this a porpent of anti-Hurd FUD to come?
Come on folks.... Having another free choice of OS is a GREAT THING!
Lets not start fighting over this. That is something MS would instigate to split the Open Source community.
Lets, at least, not do it to ourselves.
Bitcoin pyramid: Join here: http://www.bitcoinpyramid.com/r/1427 it's FREE!
Lets see...
PC vs. Macintosh
VHS vs. Beta
Windows vs. OS/2
Linux vs. Hurd
Gee, if Linux has now become the inferior technology... it's gonna DOMINATE!!!!!!!!! YEEEEEEEESSSS!!!!!!!!! WORLD DOMINION!!!!!!!
HAIL ERIS
hmmm....
uh,
k i guess this post is Redundant...
but errrr look out erisans Cthulhu is behind linux... ie world domination.
how else can you explain all these geeks that lack socal skills, they are Cthulhuan mind controled robots.
nmarshall
#include "standard_disclaimer.h"
R.U. SIRIUS: THE ONLY POSSIBLE RESPONSE
nmarshall
The law is that which it boldly asserted and plausibly maintained..
--Colonel Burr 1783
I can't speak to the author of this article's particular intentions when they talked about how it would be better because it was OO (if it even IS), but...
It used to be that structured programming in the imperative paradigm was going to save us all and allow us to write the killer apps and progress in computer science. Then it was the functional/logic languages (like LISP from the functional camp and PROLOG from the logic camp) and these days, Object oriented programming is the flavor of the month. Look at the popularity of C++ on the MS platform, and the long hard push for java acceptance. Jeez, and your favorite languages like python and perl, well, if they didn't start off as having OO capabilities, they were certainly hastily added.
It's the flavor of the month, man. In 10-15 years, I'd expect the object oriented paradigm to be as popular as other passed computer science fads. Not that it won't be useful, it's just that eventually people will stop thinking of it as the silver bullet to slay any programming problem
Regardless of what you may have read above, I agree with you. Support the Free Software Foundation http://www.gnu.org/
For the sweet love of God why must we have to deal with the god forsaken RMS notation of Gnu/Linux.
It's Linux !!! Repeat after me
Linux
Linux
Linux
It's NOT Gnu/Linux.
sheesh
1: A post on the same topic was made quite a while ago (search the
2: WTF does he mean by "Object-Oriented"?! That phrase has absolutely zero meaning when applied to the HURD.
The real difference between the HURD and Linux is that the HURD uses a full microkernel architecture, which allows you to all sorts of cool stuff with "servers" that sit between your basic kernel and the rest of userspace.
I'm not sure that "Object Oriented" is the correct term to apply to the Hurd's microkernel architecture. I may be wrong.
As for why Linux is not like Hurd, read The Torvalds / Tanenbaum debates or do a random search on "Linus," "Tanenbaum", and "Microkernel". Linus details all of the reasons why Linux is monolithic versus being broken up into micro modules. Very historic, in Linux terms.
I've noticed a few posts asking what the advantage of rewriting the kernel in a language like C++. I don't know the answer, but in the linux kernel mailing list faq, question 1.4 states:
Why don't we rewrite the Linux kernel in C++?
(ADB [Andrew D. Balsa]) Again, this has to do with practical and theoretical reasons. On the practical side, when Linux got started gcc didn't have an efficient C++ implementation, and some people would argue that even today it doesn't. Also there are many more C programmers than C++ programmers around. On theoretical grounds, examples of OS's implemented in Object Oriented languages are rare (Java-OS and Oberon System 3 come to mind), and the advantages of this approach are not quite clear cut (for OS design, that is; for GUI implementation KDE is a good example that C++ beats plain C any day).
and
(REW [Roger E. Wolff]) In the dark old days, in the time that most of you hadn't even heard of the word "Linux", the kernel was once modified to be compiled under g++. That lasted for a few revisions. People complained about the performance drop. It turned out that compiling a piece of C code with g++ would give you worse code. It shouldn't have made a difference, but it did. Been there, done that.
And question 1.5:
Why is the Linux kernel monolithic? Why don't we rewrite it as a microkernel?
(ADB) No opinions here, just a few pointers. Linux has been implemented as a "personality" on top of a modified version of the Mach3 microkernel. This is a fully functional piece of code, known as MkLinux. The project was in part funded by Apple, and as such it was running at first on PowerPC Macs. But an x86 version is available, with fully open source code. Similarly, the Hurd (the GNU kernel) is being implemented on top of Mach3.
There is a historical Usenet thread related to this subject, dating back from 1992, with posts from Linus, Andrew Tanenbaum, Roger Wolff, Theodore Y T'so, David Miller and others. Nice reading on a rainy afternoon. It's fascinating to see how some predictions (which seemed rather reasonable at the time) have proved wrong over
the years (for example, that we would all be using RISC chips by 1998).
This article looks amazingly similar to this one, which Roblimo posted 3 weeks ago.
+----------------------------------------------
+------------------------------------------------
+ The urge to destroy is a creative urge
a convenient install for the HURD. Take a look at
the install instructions on the Debian GNU/Hurd
website; they're inconvenient at best.
Yeh, so moderate me down :-)
IMHO Andover has palmed off some turkeys on slashdot in the guise of helping with the load. Roblimo is the prime example. I have gotten to the point of almost skipping his posts for their inflammability. It's as if Andover is trying to increase the circulation by hiring a headline writer away from the Weekly Weird News -- "World War Two Bomber Found on Moon!".
Other of his posts have also thrown inflammatory commentary into the pot. It smells of an insecurity, as if he's afraid no one will want to read the article unless there's some exciting nonsense to get the bile up.
--
Infuriate left and right
So, a quick look on Altavista lead me to this page, where I found out the (this is low-level.. only because I have no real idea what OOP really means) jist of OOP is that the objects have control over starting and killing themselves, and they communicate with each other. So, say, would that mean that a new device would load its driver only when you called on that device.. and kill it after a period of inaction? (instead of, say, the kernel loading the module at the user's/root's command?)
/. for a long time.")
If so, and that's the "only" advantage to HURD/the idea that HURD is OO programmed... how is that better? Is it a more efficient way of using processor time/system resources/memory?
Or.. what's the dealio?
(Other than that, though, I'd have to say I agree with you when you say:
"This is one of the most incredibly content-free, flame-inviting statements I've seen in the main body of an article on
Insert mind here.
--
--
"Insert witty quote here."
This is starting to remind me of the vi/emacs religious wars.
The fact is that OO is a design paradigm. It isn't any "better" or "worse" than other design paradigms. In fact, it owes much to the structured software design movement from whence it was derived. It should all compile to the same code... it's a question of which one fits the particular mind set you have and the problem you are trying to solve.
...but the 'inflamatory' comment was actually the story submitter's, not roblimo's. This is what italics mean in a story header.
(Not that I disagree with you about roblimo's foot-in-the-mouth way of presenting stories, but this just doesn't happen to be an example of that.)
I.
Debian sells "GNU/Linux", "GNU/Hurd"
Redhat sells "Linux"
Mandrake sells "Linux"
Caldera sells "OpenLinux"
Corel sells "Linux"
So if you don't like the name GNU/Linux, don't buy Debian.
If you don't like it when people wrongly call every brand of Linux, GNU/Linux, either:
1. Ignore them.
2. Be rude like RMS, and correct everyone.
Hey, if you like OOD, just ask Alan Cox why he won't work on an OOD kernel. I figure he is more qualified than any of the C++, QT, gotta obstract everything persons that most programmers are. My vote(not that I am Alan), is that a C++ rewirte would be a tragedy. A good system is in its overall design, not in the handicaps we have to take care of so the general IDE programmers can work with it. Applications don't need gun ho kernel programming extensions anywho.
Very historic, in Linux terms.
One point that lept out at me from the 1992 debates was:
A point which I don't think everyone appreciates is that making something available by FTP is not necessarily the way to provide the widest distribution. The Internet is still a highly elite group. Most computer users are NOT on it. It is my understanding from PH that the country where MINIX is most widely used is Germany, not the U.S., mostly because one of the (commercial) German computer magazines has been actively pushing it. MINIX is also widely used in Eastern Europe, Japan, Israel, South America, etc. Most of these people would never have gotten it if there hadn't been a company selling it.
I wonder if "betting with/against the net" is why every stockbroker on Wall Street has heard of Linux and has never neard of Minix? Grin
Odds are, you'll be watching it for a long time.
Put on your peril-sensitive sunglasses please. A flame is near...
I see all kinds of crap on Slashdot bashing this company or that for vaporware. And yet on this thread, I see tons of posts which effectively say "don't be too hard on Hurd". Bleh. Hurd is the vaporware of the decade (and pretty much the WHOLE decade).
And that, IMO, is reason enough to tell RMS to shut the fuck up about using GNU/Linux instead of Linux. With Hurd, he can name it whatever he wants. Maybe if it was mature then he wouldn't be so bitchy about others (Linus & co) who actually got something done.
I'm just sick and tired of seeing evaluations based on WHO did something rather than WHAT was actually done. I'm all for more choice and creativity in open source. But let's not get overexcited about Hurd. It will be a long while before anyone can do real work on it (if ever). I think its track record speaks for itself.
"According to Thomas Bushnell, BSG, the primary architect of the Hurd, ```Hurd' stands for `Hird of Unix-Replacing Daemons'. And, then, `Hird' stands for `Hurd of Interfaces Representing Depth'."
We also find some more information on the page, like it uses the "GNU C library," not C++ as other comments suggest, and its main strong points seem to be:
"Unlike other popular kernel software, the Hurd has an object-oriented structure that allows it to evolve without compromising its design. This structure will help the Hurd undergo major redesign and modifications without having to be entirely rewritten."
"The Hurd interfaces are designed to allow transparent network clusters (collectives), although this feature has not yet been implemented."
"It is possible to develop and test new Hurd kernel components without rebooting the machine (not even accidentally). Running your own kernel components doesn't interfere with other users, and so no special system privileges are required."
--
--
"Insert witty quote here."
I have been in the software fields for about 3 decades. I have heard many claims before.
I have heard from some people claiming that softwares that are written in the Assembly Language are better, because it can be better optimized.
I have also heard, that softwares that are written with "embedded AI" are better than those that are not.
There are so many claims like that over the years.
This time though, someone is claiming that "HURD is Object Oriented, unlike Linux, so it may be a superior system in the long run".
Is that true?
Just because HURD is written in the Object Oriented manner, does that makes it better than Linux (or BSD or AIX) which, unfortunately, the authors of the other systems have not had the foresight to utilize the OO techniques?
Please excuse my ignorance.
Is a piece of software which is written in the OO manner truly superior to those which are not?
I definitely want some answers.
Thank you.
Muchas Gracias, Señor Edward Snowden !
So for we have Gnulix for GNU/Linux. What's next, Gnurd for GNU/Hurd? I hereby decree that everyone seeking to flame GNU/Hurd users refer to them as GNURDS.
RMS has only been talking about Hurd since 1984. Every friggin article places the ship time "right around the corner." And that was 15 years ago. :-)
Kaboom! I expected a couple of know-it-alls to sneer at the suggestion that object-oriented design is better than a procedural design, but I never expected such a violent response.
How can an OS be object-oriented?! What the hell is that supposed to mean?!
Settle down. The poster (I'm sure) wasn't trying to say that the design methodology or language used to create a piece of software will, alone, decide its usefulness. A lot of us that write both C and C++ on a regular basis get used to the ease of conceptualizing object-oriented code, and are elated when new projects use a framework we favor. I would prefer to hack an OS written in C++. I think the code would probably much easier to get my head around. Naturally, I would rather USE whichever OS was fast, reliable, supported, etc.
Of course, that which gets hacked most frequently tends to become fast, reliable, supported, etc, etc.
The bottom line is this: OO vs. Anti-OO is a holy war, and the crusades will rage on. If you don't like OO, fine. Write C, or Fortran, or Cobol, or assembler for all I care. Object-oriented languages were created for a reason. Some people find advantages in them. And to those people, all other factors held constant, an OS written in C++ would clearly be an improvement.
Please, keep in mind that this is /not/ meant to be flamish in nature. If it so appears, I shall strive for greater subtlety in future.
/. already, this item is further proof that /. really, really needs some kind of sub-editor to catch these things. After all, the banner says "News for Nerds", and any organ which deseminates news has to take care with such matters to ensure that they can continue to be taken seriously.
...
Well beyond the point that this is oldish news, and has appeared on
A phrase like "Hurd is Object Oriented, unlike Linux, so it may be a superior system in the long run." is so manifestly ambiguous and potentially contentious that it's a crying shame to see it writ upon my screen so. Time for a rethink that doesn't involve just hacking Slash, chaps.
On-topic: HURD does indeed look tres groovy, and I'm looking forward to giving it a try. I wonder if it runs on VMWare? I guess their's only one way to find out
-- Post No Gravy
Please, keep in mind that this is /not/ meant to be flamish in nature. If it so appears, I shall strive for greater subtlety in future.
/. already, this item is further proof that /. really, really needs some kind of sub-editor to catch these things. After all, the banner says "News for Nerds", and any organ which deseminates news has to take care with such matters to ensure that they can continue to be taken seriously.
...
Well beyond the point that this is oldish news, and has appeared on
A phrase like "Hurd is Object Oriented, unlike Linux, so it may be a superior system in the long run." is so manifestly ambiguous and potentially contentious that it's a crying shame to see it writ upon my screen so. Time for a rethink that doesn't involve just hacking Slash, chaps.
On-topic: HURD does indeed look tres groovy, and I'm looking forward to giving it a try. I wonder if it runs on VMWare? I guess their's only one way to find out
-- Post No Gravy
i don't know. I thought Java and C++ took up more space and have extra overhead. The theory was that these could eventually be optimized over time, but I don't know if it's ever happened. I've been away from the programming scene since then.
Hurd is an unusable piece of kernel hacking crap. Unless you are a kernel hacker you're not going to find anything interesting in Hurd. It is beta, not wait, still deep-alpha quality OS. And yes, Linux after 2 years of development was ways ahead of hurd after 10 years of Development. go figure.
There was one more thing Jobs saw.
The MOUSE.
Muchas Gracias, Señor Edward Snowden !
OK, so you're running a Linux kernel. Which is released under the GNU General Public License. If all you are running is a kernel, then I'm impressed. Did you post your comment by whistling down your phone line?. No. I bet you had to run a shell. Which is also almost certainly released under GPL. Maybe you used cat to compose your post, but I doubt it. You probably used a text editor like emacs (originated by RMS himself) to write it. Then you probably connected to your ISP with pppd. Guess which license?
And every single bit of your Gnu/Linux setup (if you use a decent distribution) could have been (and certainly was) built with gcc and the rest of the bin-utils package. Guess who owns the copyleft on that?
I'm getting bored now, but please learn your history. RMS wanted to create a free OS. He chose to implement it as a UNIX rather than anything else because of the cultural heritage of the UNIX community. He would have chosen a better architecture if he could, but he made a pragmatic decision.
Then, rather than start with a kernel, he started with the tools that make an OS usable, like a text editor (alright emacs is just a little bit more than an editor), a compiler (try writing one yourself if you're bored for a few decades), text processing utilities etc.
Then the GNU project was almost complete, and it was good... but before they got a chance to start serious work on the gorgeous, architechturally clean and fiendish to debug Hurd kernel that was their dream, a bright lad from Finland turned up with an incomplete, but functional kernel. And they saw that it was good, if a bit hairy and flaky. But they persuaded the great Finn to release it under their licence. And GNU/Linux was born. That was in 1991. Please remember, that was a *very* long time ago. FreeBSD didn't exist. X was still closed. And the WWW probably had less pages than the Great Library of Alexandria. Ancient times indeed.
Linux would have been a rather neat toy that had once run on a single 8086 if it weren't for the GNU project.
Linus gave us a kernel, because he had the courage to share it.
RMS gave us Gnu/Linux, because he is a (very hairy) visionary. What he really gave us were two critical things. Forget emacs. Forget gcc. He gave us a vision, and he gave us the GPL.
Both the vision and the GPL have flaws, but until you can come up with any single thing as good as one of these, please remember that it IS GNU/Linux.
I apologise for the rant.
Ceci n'est pas un sig
Did anyone else notice the reference to "Herding Cats" in the linked page at dartmouth, kind of funny the way this week has gone. peace love and grits
Read my plan to save the Bengals
I've written apps in both C++, and Java, and I love java. I've never had an app not run on any platform I've ever tried. From windows, the Mac, even UNIX.
I like C++, but Not nearly as much as I do java. C++ feels backwards, and overly complex. And forward declarations are a pain in the fucking ass. You'll notice that C++ isn't portable at all, so I don't really see what kind of an argument that is...
Amber Yuan (--ell7)
"and dear god does this website suck now." -- CmdrTaco
Linus Torvalds: "If the GNU kernel had been ready last spring, I'd not have bothered to even start my project: the fact is that it wasn't and still isn't. Linux wins heavily on points of being available now."
Linus Torvalds: "If you write programs for linux today, you shouldn't have too many surprises when you just recompile them for Hurd in the 21st century."
Andy Tanenbaum: "5 years from now everyone will be running free GNU on their 200 MIPS, 64M SPARCstation-5."
So Linus was spot on or a year pessimistic on the 21st centuary prediction, depending on whether he is a pedant or not. I *still* don't have 64M on my home computer, although the O2 I use at work is about to be upgraded to 256M. Sun went non-linear on their numbering of SPARCstations, so I don't know how that pans out.
Quattuor res in hoc mundo sanctae sunt: libri, liberi, libertas et liberalitas.
So kernel code changes can be made more quickly... but the OS runs more slowly! Sorta depends on what your definition of "better" is, I guess... for most people, it would be a faster running kernel, not a more easily maintainable kernel.
Linux, HURD and FreeBSD share quite a bit. A huge number of tools port between them with little effort. We welcome each other at conferences and users' groups. Etc., etc. In the end, the best open source OS will win. The best open source desktop OS will run on desktops. The other best open source desktop OS will run on the other desktops. The best open source web server OS .... It's about choice. It's about comparing them objectively for different uses. It is about learning from each one's strengths and bring that knowledge from one to another.
Every open source OS is stronger because they are all a training ground for open source programmers. You don't have to use a single book or a single kernel's source code to learn the One True Way (tm). I'm using Linux (sorry Richard, GNU/Linux) at home right now. I may switch to FreeBSD or HURD, or dual boot. And my data and applications will come with me. Standards are common data formats and common protocols, not a specific version of a specific program or OS.
The net will not be what we demand, but what we make it. Build it well.
I guess this'll qualify me for a Fields Medal, then...
:: Integer -> [Integer]
(Haskell)
factors
factors large-prime = [large-prime 1]
(Scheme)
(define (factors large-prime) (values large-prime 1))
(Perl)
sub factors { return (shift(), 1); }
To the editors: your English is as bad as your Perl. Please go back to grade school.
Is Hurd fully Linux compatible? Device drivers, XFree86, desktops, the whole shebang?
Particularly device drivers. If everyone has to rewrite device drivers for Hurd, then they might as well close up shop.
--
Well, he said 5 years from now. 1992+5 = 1997. Were 200mhz chips with 64 Megs of ram standard in '97? I guess. Of course, hurd was nowhere in sight...
Amber Yuan (--ell7)
"and dear god does this website suck now." -- CmdrTaco
This is the first time I've heard of HURD and it seems like an interesting concept.
... but yet it seems to not be an application for end users - mainly because of all of the touchy-feelyness of what you need to do to unload/reload without crapping everything out
completely unloadable/reloadable pieces of the kernel. you could unload the video pieces on a server to save on handles, userspace, etc. or you could unload the cdrom support if you didn't have one for the same purpose
it seems like it's a great idea for optimization for specific applications
... I could see this becoming the New Server Platform, but Linux seems to start becoming the New User Platform instead.
should their efforts be focused thus? probably.
I would just like to put in my BeOS side of things here. You people talk about HURD as if it were something new and revolutionary. BeOS predates HURD by one year. Be was formed in 1990, and GNU hadn't even decided on the mach kernel until well into 1991. By 1997, BeOS had reached R3 and had been released on intel, at which time the OS was production quality. BeOS has many of the things the HURD has. It is fully mickrokernel, it has increadible interapp communication, it is not only OO in system design, but in API design, it is designed to be extended without crufting up the system. In addition, it has a fully journaled filesystem with database attributes. (not a buzzword. BeOS never fscks, and when you use the metadata feature for files and the regular expresion searching you'll never want to go back.) It has a very fast messeging system (which I believe is faster than MACH's) it has extensive API support for media, etc. Of course, BeOS did not come up with all of these. The OO idea was pioneered by Next and microkernels have been around a long time. So give credit where its due. BeOS has done most of what HURD does (except some security and abstaction stuff like coding the OS while its running) and his here now. And BeOS too does not deserve all the credit for it. All these ideas have been pioneered and infact successfully implemented before.
A deep unwavering belief is a sure sign you're missing something...
As most of you know, for me MINIX is a hobby, something that I do in the evening when I get bored writing books and there are no major wars, revolutions, or senate hearings being televised live on CNN. My real job is a professor and researcher in the area of operating systems.
As a result of my occupation, I think I know a bit about where operating are going in the next decade or so. Two aspects stand out:
Microkernel vs Monolithic System
Most older operating systems are monolithic, that is, the whole operating system is a single a.out file that runs in 'kernel mode.' This binary contains the process management, memory management, file system and the rest. Examples of such systems are UNIX, MS-DOS, VMS, MVS, OS/360, MULTICS, and many more.
The alternative is a microkernel-based system, in which most of the OS runs as separate processes, mostly outside the kernel. They communicate by message passing. The kernel's job is to handle the message passing, interrupt handling, low-level process management, and possibly the I/O. Examples of this design are the RC4000, Amoeba, Chorus, Mach, and the not-yet-released Windows/NT.
While I could go into a long story here about the relative merits of the two designs, suffice it to say that among the people who actually design operating systems, the debate is essentially over. Microkernels have won. The only real argument for monolithic systems was performance, and there is now enough evidence showing that microkernel systems can be just as fast as monolithic systems (e.g., Rick Rashid has published papers comparing Mach 3.0 to monolithic systems) that it is now all over but the shoutin`.
MINIX is a microkernel-based system. The file system and memory management are separate processes, running outside the kernel. The I/O drivers are also separate processes (in the kernel, but only because the brain-dead nature of the Intel CPUs makes that difficult to do otherwise). LINUX is a monolithic style system. This is a giant step back into the 1970s. That is like taking an existing, working C program and rewriting it in BASIC. To me, writing a monolithic system in 1991 is a truly poor idea.
Portability
Once upon a time there was the 4004 CPU. When it grew up it became an 8008. Then it underwent plastic surgery and became the 8080. It begat the 8086, which begat the 8088, which begat the 80286, which begat the 80386, which begat the 80486, and so on unto the N-th generation. In the meantime, RISC chips happened, and some of them are running at over 100 MIPS. Speeds of 200 MIPS and more are likely in the coming years. These things are not going to suddenly vanish. What is going to happen is that they will gradually take over from the 80x86 line. They will run old MS-DOS programs by interpreting the 80386 in software. (I even wrote my own IBM PC simulator in C, which you can get by FTP from ftp.cs.vu.nl = 192.31.231.42 in dir minix/simulator.) I think it is a gross error to design an OS for any specific architecture, since that is not going to be around all that long.
MINIX was designed to be reasonably portable, and has been ported from the Intel line to the 680x0 (Atari, Amiga, Macintosh), SPARC, and NS32016. LINUX is tied fairly closely to the 80x86. Not the way to go.
Don`t get me wrong, I am not unhappy with LINUX. It will get all the people who want to turn MINIX in BSD UNIX off my back. But in all honesty, I would suggest that people who want a **MODERN** "free" OS look around for a microkernel-based, portable OS, like maybe GNU or something like that.
Andy Tanenbaum (ast@cs.vu.nl)
P.S. Just as a random aside, Amoeba has a UNIX emulator (running in user space), but it is far from complete. If there are any people who would like to work on that, please let me know. To run Amoeba you need a few 386s, one of which needs 16M, and all of which need the WD Ethernet card.
I hate the dumb comments like "GNU/Linux pffft, it's linux, simple as that. RMS needs to stop being such a dick!". It's important to consider that if there had been no GNU, there probably would have been no GNU/Linux, however if there had never been the Linux Kernel, most likely all the r&d would have just gone into HURD and there most likely would have been a GNU/Hurd *anyway*.
People do need to read up on thier history and give props.
Its just the oppinion of the submitter.
Amber Yuan (--ell7)
"and dear god does this website suck now." -- CmdrTaco
Now Mach, which was originally written at CMU, was the basis for OSF/1. The name was changed to DEC Unix, and is now called Compaq Tru64. It's all Mach. Basically, you load the Mach microkernel, then you load the OSF/1 unix server, or the MkLinux server (just a modified linux kernel, I believe) in the case of MkLinux, or the HURD server in the case of the HURD. Of course, they all run slightly different versions the Mach microkernel, just to be ornary.
So, HURD isn't really that revolutionary at all
OO code is just so more maintainable. Linus has argued against OO in the kernel
just to keep the performance up but Linux needs to face up to the advantages that OO
has to offer. Just about everything else of note in OpenSource is OO (Qt,PHP,MySQL). The noticeable exception is Apache.
Use BeOS for 5 minutes and wonder at the way it can play 12 MP3s in reverse while copying a large file while effortlessly moving through the desktop.
:).
Why would playing an MP3 in reverse be any more difficult then playing it forwards? And considering that playing an mp3 takes about 3% of the CPU on my friends NT machine, that would have a lot more to do with the MP3 Player software and the hard drive itself then the Underlying/overlaying operating system (underlying the MP3 player, overlaying the hard drive
Amber Yuan (--ell7)
"and dear god does this website suck now." -- CmdrTaco
I think all of you who are dis-advocated the effect of OOP on the perfermance of an OS are being very one-dimensional. Sure, it all ends up as machine code one way or another, the difference is in the human factor, the pyschological element of programming. Programming is, after all, just a metaphor for computer functionality. The GNU website says it best...
it's built to survive Unlike other popular kernel software, the Hurd has an object-oriented structure that allows it to evolve without compromising its design. This structure will help the Hurd undergo major redesign and modifications without having to be entirely rewritten.
In the initial version the methodology doesn't matter much, but as the OS matures, methodology beings to play a larger role. It's a lot easier to revise an OOP system, maintaining elegance and performance, than it is to revise a conventional structued program. Remember, the article says "better in the long run", which it is. In programming, you must always remember the human element, some might say it's the most important of all.
- Dave "It's better to be a pirate than to join the Navy" - Steve Jobs
Woah... How is the Linux architecture out of date? It works... what else matters? So what if it's not OO. I don't care, I want something that works.
Furthermore, what do you mean Linux isn't OO? What makes an OS OO? Object Oriented has nothing to do with the language something is written in, rather how it is written. the linux kernel is quite well layed out.
As for MS Kicking ass, that has nothing to do with the OO TCP/IP stacks, but how the stacks are written. An OO environment will almost always slow an app down. The reason for this is that for an enviroment to suppor the basic tenants of being an OO language mean that many decisions have to be delayed until runtime. C++ doesn't really take this all that far (hence people often refute it as a real OO lanugage), but take a look at Objective-C or SmallTalk to see what this really means. The answer is, decreased performance (due to the complex runtime environment) but increased maintanence and extensibility.
Abandon C? HA! C++ has it's usage, mainly in that it's OO enough to make GUI App development easier. But you still can't reach the performance of straight C with C++. I'd suggest, however, that you one day check out an OpenStep environment and see what a real OO language can do. Check out Interface Builder on MacOSX or NeXTStep, that could not have been written in as crappy a language as C++. C++ was created as a better C, and I think it's best left at that.
Last thing, I don't want to combat MS. I could care less. The "Us vs Microsoft" attitude is really getting old.
similar idea. it's quite fast.
"There's no secret. You just press the accelerator to the floor and keep turning left." -- Bill Vukovich
Design Elegance aside,
What if in production it really does suck?
Will the GNU gang be man enough to admit it?
Will open source supporters be too afraid to criticize it?
Will it live in perpetual alpha/beta?
Will it in fact become stable version vaporware?
Lot's of good people spend their good time working on HURD and I do not mean to demean their work in any way. People have been "Waiting for Godot" for 10 years now and it is starting to get ridiculous for the outside observer.
The wake up call here is that plenty of technologies look great on paper but in reality just plain suck. (like JAVA; please dont respond to this example)
This statement does not need responses, it is merely here to make you think. Good Day.
Mountain View, CA., September 22 - HURDOne, Inc., a leading-edge developer of HURD software, products and services, filed to raise $24 Million in an initial public offering, according to a Securities and Exchange Commission filing.
The Mountain View, California-based Company offers online products, tools, news, and services for the HURD operating system and other "open source" communities, at its website http://www.hurdone.net/.
Under its open source model, anyone may contribute to the software coding.
The Company's principal product, HURDOne OS, provides a wide variety of server functions, including setting up a web, e-mail, file or print server, as well as using the computer as a general purpose desktop workstation to perform virtually any computer function. HURDOne OS will be available in English, Chinese, Japanese, German, Spanish and French.
HURDOne plans to sell 3 million shares in the IPO and will have approximately 9.2 million shares outstanding once the sale is completed, according to the filing.
The company was founded and is run by its President, Dr. One L. Inux, Jr., who has worked in senior engineering and technology positions at Hughes Aircraft Co., Teledyne Systems, Co., and California Institute of Technology, Jet Propulsion Laboratory. Dr. Inux was also Chief of Artificial Intelligence Branch, NASA Ames Research Center and organized Lockheed's Artificial Intelligence Center. He was the former founder and CEO of Alantic Macroelectronics and WebCIS.
HURDOne applied to sell its shares on NASDAQ under the symbol "HURD".
The company will be in its "Quiet Period" during SEC review of its filing, which is available on EDGAR.
About HURDOne
Our company provides world-class quality HURD software targeted to the server, workstation and home environments. It is distinguished by the unchallenged availability of applications and platform support, ease of installation and use, and technical support. The software is characterized by stability, security and usability. HURDOne expects to become the highest rated supplier of HURD solutions based on packaging, support, and capability worldwide.
Speak truth to power.
A kernel doesn't "use a C library". A C library is a C interface to the kernel from userland.
They only code a kernel can use is stuff already in ROM.
> Unless, of course, you're willing to take the
> uneasy position that Microsoft has ever had
> superior technology.
The Microsoft mouse is nice - not cutting edge, and not three-buttoned, but unassuming and pleasant to use.
Maybe DOJ should negotiate for the mouse division to be put in charge.
perl -e 'fork||print for split//,"hahahaha"'
Uh... I'm no programming god, but I think you mean "multi-threaded" TCP/IP stack. An "object-oriented" stack would not have any particular speed advantage if I recall correctly.
Insert pithy comment here.
I hate to bitch about this because I know many people will say "who cares". To these people I wish a happy millenium which they think started A month ago.........
I shouldn't even have to post this but the moderation is getting poor around here.
The HURD might have obsoleted Linux in ten years time. Or it may have died completely. To a Free Software user, it doesn't matter.
Users of non-free software have to worry in case their OS dies out. They will either have to keep using their obsolete machine, or bin all of their software and try and find modern apps that can read their old documents.
In contrast, if the HURD starts to gather pace then any popular Free Software currently available for Linux will be ported to the HURD. Users can continue using their current apps; they don't have to start afresh every time they change OS. This must be one of the big advantages of Free Software.
perl -e 'fork||print for split//,"hahahaha"'
So like.. is anyone EVER going to do the HURD-Debian-HOWTO and make an iso?
How we know is more important than what we know.
I use linux on a powerpc and gcc just plain sucks compared to good compilers like IBM's. Believe it or not, I would be willing to PAY for a commercial high-performace c compiler for my system. People in x86 are spoiled by having a halfway decent compiler. Mind you, I would help contribute but compiler design is far bayond my grasp. Also, if there was a non-gnu but gpl'ed set of tools, you'd better believe I wouldn't flinch about using them. It really does not matter who makes them as long as they are free and they work. As for EMACS, it never it gets installed so why would I name Linux after it? No disrespect to the GNU fans out there (and I am one), but do not overstate the importance of 'GNU' software.
You know what ? If you don't believe me, ( and I hate to put a third party in this), but I feel I must clear this accusation.
A few months ago, one of the speakers at a Linux show in Montréal was Mike Shaver. M. Shaver gave a big long speech about portability, ( well not that long ) and one the attendees asked why didn't they use Java instead of C++ for Mozilla. Is answer was : "Java is not that portable". If you ever see him, ask him.
I have to admid that I'm not confortable bringing somebody else into this. I feel I must explain why I did this, I have been involved in Linux for a long time, but have never really participated in community activities like slashdot. I don't know if calling somebody a liar is standard here on slashdot, but I don't like it when somebody calls me a liar.
will software need to be recompiled to run on the HURD, or is it binary compatible with Linux?
I think its a bit premature to say the HURD is 'theoretically better than Linux' i mean, shit, you could say that Windows NT is 'theoretically better than Linux', but i know which OS i'd rather run.
I gots ta ding a ding dang my dang a long ling long
I hate to break into a nice flamewar in the making, but, I think the reason it's generally Linux and not GNU/Linux is because it's _easier to say_.
That being said, the FSF really needs to look into a PR department. Sure, "GNU/HURD" is a humorous little acronym, but do you think something with that name will gain popular acceptance? Come on, people, do you see many Wang computers these days? "Linux" sounds like an operating system. "HURD" doesn't.
First, I have a moderation question which I would like someone to answer. I have always though of the off-topic flag as somewhat realitive to the current thread, i.e. when people start spouting a bunch of irrelevent shit you are allowed to respond to it, so long as you try not to disrupt the real discussion (Example: you will notice I am not using my +1 on this post) Do people feal that this is the proper course of action for a moderator or should we take a more absolute stance towards off-topic?
.sig) that were ignored by the moderators in favor of moderating down the one good post. The above post may have been off topic by the absolutist view of off topic, but it was not as bad as the other posts which were ignored.
.sig is not intended as an insult to intelegent christians.. only the stupid ones who think morals should not change and adapt. It is also intended to remind people (including myself) that there are a lot of stupid people in the world.
:)
Second, I find it quite amusing that the post I am repling to was the only post in the above conversation to be moderated down, but it was also the only post with content. There are several anti-Russel posts with essentially no content (including the AC which originally replied to the
Third, christianity believes morals were dictated by God, so there is technically no such thing as "moral progress" and that any change in Gods morals would be a bad thing. This would make Russel technically correct that christianity is the enemy of moral progress; thus making it the perfect philosophical statments for a mathematician like Russel to make.. quite funny. (An exception to the above statment about christianity must be granted to a few people like Larry Wall who I can't very well imagin think of anything as static and unchanging)
Fourth, the
I think I'll try posting this anonymously to keep the score down arround 0. That was it's offtopicness will not disrupt discussion. Plus, I've never used this post anonymously box before. Hmm.. Irony, I'm concerned about a question about off-topic discussions being off-topic.
What I meant by that, when I said that I thought the FSF was justified in calling it GNU/Linux was this - for a long, long time, they've talked about developing HURD as the kernel for the GNU system.
When you look at the things that they've done, (the FSF) and see that they are still working on a kernel, it gives you the "big picture" of GNU work. The point of GNU was not to write a C compiler or a kick-ass editor or a bunch of binary utilities, even though they eventually did. The point was to build an entire system. With that in mind, when linux came along, and was GPL'd, they had a kernel, and a missing piece was suddenly there. Every other piece of software that they had written was meant to fit into the framework of the GNU system, and even though they didn't explicitly write linux in-house or through organized effort on the part of the FSF, it was a GPL'd piece of software that became part of the "system". And thus GNU/Linux. Because it's just not linux. Linux is a kernel, for chrissake! Without the rest of the GNU System (of which linux is a part) the kernel is unusable.
Frankly, not to be extreme (even though I am) but I think they'd be within their rights to call the whole damn thing the GNU System with no reference to "Linux". Why should the kernel get special treatment in naming? We don't call it GNU/ls even though the "ls" program is GPL'd. So why give Linux special consideration? It was for compromise I think.
Just my $0.02.
Regardless of what you may have read above, I agree with you. Support the Free Software Foundation http://www.gnu.org/
... that's what people call it when the Solaris kernel runs with mainly GNU software on top. (And I can't think of many Solaris systems which don't have *some* GNU software installed).
You may not have heard the term before but it is in common use.
perl -e 'fork||print for split//,"hahahaha"'
The developers who worked on linux, both in the early days and now, relied on gcc. There's no way that a snowballing mass of casual developers could have accumulated if they each had to pay $00s for a compiler. gcc was linux's midwife.
(I'm sure you know all this, just people might want to know)
perl -e 'fork||print for split//,"hahahaha"'
... oops, where's sed gone? Or is that GNU/sed?
perl -e 'fork||print for split//,"hahahaha"'
Thanks... I suddenly had the realization of what it all is..
As cheesy as this may sound, I'm taking c++ right now (just a short course in HS) and we're learning things like naming new functions, which you so kindly pointed out.. so, now I know. I feel better.
Insert mind here.
> there is no such thing as GNU/Linux
Look here and here to see that GNU/Linux exists.
perl -e 'fork||print for split//,"hahahaha"'
I've been marked offtopic, beacuse someone didn't like my political viewpoint. That, and beacuse the moderation system is jacked up.
I hope this answers your question
and i bet you watched titanic to see how it ended
Besides, I don't see device driver availability a drawback to Linux getting this far, OS/2 still has better support in that regard.
Don't get me started OS/2 Warp 4 driver support sucks big time. I work on a contract basis with a company that uses Warp 4 almost exclusively. Finding drivers, especially for video cards, is becoming just about impossible. And the GRADD drivers are just awful.
My list of grievences with OS/2 is quite long, starting with those ridiculous Fixpaks (worse than NT Service Packs, takes forever to install) and ending with having to reboot for the most minor config change (much worse than NT). We're experimenting with Linux because it has much better driver support than OS/2, especially video!!
Linus tried to rewrite the kernel quite some time ago in C++. The community rebelled. He rescinded.
:^)
I notice you didn't include GTK+, which is also OO. Oho, you say, it's written in C. It can't be OO. BZZZZT! It's OO, but more in a Smalltalk way than a C++ way. One need not write OO code in an OO language.
Quite frankly, I've noticed that C++ is extremely good for two things: using processor cycles and eating RAM. I'd be willing to bet that most, if not all, OO operations could be re-coded in pure C, and with less overhead (after all, OO programs *have* to be implemented somehow in machine language-I haven't heard of any OO processors coming out yet. God help us if they do.
Stating on Slashdot that I like cheese since 1997.
Loyalty is a HUGE topic in the GNU/LINUX world. Honostly, how many people that use this system aren't loyalists and purists? But should loyalty bring closed mindedness (I'm not sure if that's a word)? I think not. Before I get into why HURD is a Good Thing(tm), you first must ask yourself this, what is it about Linux that you are mostly loyal to? Personally, I'd have to say that freedom is the first thing, followed by all my gnu tools (which most unices have, but gnu's stuff is more polished and featureful IMHO), also would be GNOME and E (not to say one that any other desktop combo is better than the next, I'm just a sucker for eye-candy), and my linux apps. I'm sure that most people would agree here. Now, for all of you HURD bashers, how could HURD possibly take these things away from you? It is licensed the same way as linux (GPL, duh), so freedom is still there. Obviously, gcc will work with it, because they are both part of gnu, making all of your apps available. We still haven't seen any disadvantages yet. HURD will merely add another choice of kernel and survival of the fittest will eventually favor HURD or Linux, maybe both? Though I highly doubt that. If HURD turns out to be better than Linux, all the Linux kernel hackers will more or less start hacking HURD and all will be well. This can only BENEFIT us as a community. Linux is dominant now, HURD may be later, this leads to quality computing, choice, freedom, evolution, and choice. Where's the downfall? -- "We've got to get up, we've got to go, we've got to be one voice!" ~Pennywise -Bob
If you want to see a fast, OO OS, go try Be.
;-)
The thing boots in seconds.
It's funny what you can do when you start from scatch.
> But is the speed decrease worth it?? That's a question *every* programmer asks before he starts a project.
"An ounce of design prevents a pound of optimization."
C++ _can be_ slow and bloated. Avoid RTTI, and Exceptions, if you want lean and mean code. (Or if you are trying to maximize performance avoid Templates, and Virtual Functions.)
As a game developer, we are allways aware of the speed issue.
OO wins in the long run, because
1. A *properly designed* OO system is easy to maintain.
2. Any minor speed hits are moot with Moore's law.
Cheers
that as long as a software project is intelligently planned and developed, it really doesn't NEED to be OO. OO programming has some advantages to development (especially when it comes to designing a UI) but its main advantage is that if you use OO programming you MUST be more careful in your design (in order to really get any benefits OO programming gives you).
That's what I used to think as well. However, a substantial contingent of the OO community argues violently against extended design at the outset of a project, relying instead upon an OO programming technique, refactoring, to "adjust" OO designs over time to facilitate change and reuse for additional functionality not contemplated in the prototype.
The theory is to build VERY EARLY ON "the simplest thing that could possibly work," exploiting refactoring and agressive (most tests written before most code) regression testing to evolve the prototype to a superior design over time. Fowler's book, "Refactoring" and Kent Beck's "Extreme Programming" really opened my eyes to a new way to thinking about code.
Having experimented with XP techniques on recent projects, albeit in the small, I have discovered that there is much more truth than hype in Beck's writing. While I haven't "gone to the dark side" completely yet, I now recognize that there are in fact some truly fundamental, and exciting, differences between OOPing and traditional hacking.
On one point I will agree, however: good ooping requires discipline to attain its benefits, perhaps more discipline than can be imposed on a large decentralized project such as an Open Source OS. You can write groty code, of course, in any programming languauge.
As I'm often fond of pointing out here, more OS choice and variation is a good thing (provided it's not gratuitously incompatible).
But why would anyone buy a computer with HURD preinstalled on it? I mean, it's only at version 0.2, which hasn't been updated in 3 years - how complete/useful can it really be? I can certainly see how it would be interesting to play with and/or hack on, but is it even up to the task of running a computer 24/7?
I'd be really interested to know how many of these things they actually sell.
Wow! Just like the TRS-80, with it's Level II BASIC ROM's. yeah
I nearly made a fatal error though by bursting into laughter when Leonardo sank into the ocean.
these systems are underpowered and way overpriced.
Shipping should also cost a bit from England.
Secondly, GNU Hurd is never going to be a factor in the OS race. It is "going to be released" for how many years now?
Please. One free OS with all the zealots at a time please.
but on my FreeBSD box, actually yes, gnu ls is called 'gnuls'.
Despite the non-overlapping bug-sets of C++ compilers, I have found
... ? Pizza, as far as I
...
it to be more portable than Java. (But Java *should* become more
portable as time goes on. Things improve.)
As for template bloat, I run size and nm on my C++ executables, and
I have not seen bloat from templates since egcs-1.0 days. Things
improve.
For those of you who think the parameterized types proposed in
pizza are a match for C++ templates, well, what about
specialization, partial specialization, non-type parameters,
instantiation of only those methods used
can tell, does not provide these things.
And then there is const. How, in Java, do I make a method promise
not to muck with the object referenced by the reference I pass
it?
I can't. The method can do whatever it wants with my object.
If a bug appears that is caused by a modifying method being called
on my object at the wrong time, every bit of code that got a
reference to my object must be examined. Of all the things Java
lacks, this hurts the most.
I do think GC is wonderful for eliminating a source errors (but
C++ destructors would work just as well if people would wake the
fuck up and *USE* them), and I think good threads simplify many
common design patterns, as well as resulting in more responsive
user interfaces.
However, if you take away templates and const, and offer threads
and gc in return, I would feel ripped off. (Of course, that may
be because I know where to get decent threads and gc for C++
and good memory management habits are first-nature to me.)
But I must in closing say that language comparisons are
untrustworthy; Java and C++ where designed for very different
purposes, despite their superficial similarities. Change the
problem, and you may find you need a different tool.
Q0: Why are we fighting about Java and C++? Hurd is not written in
either of these languages.
A0: This is slashdot. The topic of the article is irrelevant. Nobody
read it anyway.
Q1: The real beauty of GNU/HURD is its extensible multi-server
architecture; each of the many duties of the OS is performed by a
different, separate server. Imagine something like a cross between a
Unix daemon and a kernel module, with the advantages of both.
Why has no one mentioned this?
A1: Go back to A0. Read it twice.
Stuff does seem to compile better under AIX4.3 though..it looks like IBM finally got the header files right.
So if Linux is "winning", if something more suited to some people comes along, say, the HURD, pretty much all the free software can be ported without much pain.
Put simply, once the HURD is completed, as long as it has developers and users, it simply cannot "lose".
---
Before I say anything, note that Hurd is in C. Hurd is based on a Mach microkernel and several server "objects" that perform your routinely tasks. An "object" is an independant entity - that has a given task and a way of talking the environment. This is not Object Oriented Programming, this is Object Oriented Philosophy - A way of thinking about the kernel. You could write an object oriented application in assembler - the OO with the "philosophy" shade! It is different, thus it definitely has merits. Not surprisingly, all the merits are the same as those for Object Oriented Programming - your program is extensible (add more objects), flexible, uniform interface, dependable (smaller code unit/lesser bugs), etc.
Let's say I was a complete whacko and decided to run a system based on GNU tools (compilers, shells, emacs, etc) that had been compiled for NT. Lets say I refused to use/install any part of NT other than the base OS... didn't use Explorer, IE, any "accessories", and no services other than the raw basics needed to get NT to network. Would I then call my computer GNU/NT?
Just to paraphrase... EW! EW! GROSS! GROSS! *spit* *pah-tewwy* EW! DON'T TOUCH ME! GROSS! GROSS! GET IT AWAY! GET IT AWAY! ACK! ACK! ICK! HELP ME! GOD SAVE US ALL!
it's not a dug habit... it's a drug hobby
i just thought i'd say hello! long live linux and free OS's (btw, i'm a c++ coder:)
Thank you for posting these links. They were very informative.
"Hey... don't be mean." --Buckaroo Banzai
Why the hell are people complaining that it shouldn't be realeased if it's only v0.2.
YOU DON'T HAVE TO USE IT IF YOU DON'T WANT
Getting it out early is A Good Thing because it means more programmers will take notice, and write code for it, which is nice - even if you/we stick to Linux, a bit of competition will keep everyone on their toes.
Um, all your examples involve graphics. Proper OS design places the graphics system in userspace. What advantage does that leave for the OO operating system?
This is pasted from the GNU Hurd FAQ
4.1 Can I run Linux binaries on GNU Hurd?
Currently, this is not possible. On the other hand, there are quite a few people who really want to make this work, so it is likely to happen in the near future.
I may add that it this FAQ has been saying this for quite a while now, and I haven't heard much about this on the hurd mailing lists. So don't expect running quake on hurd the next couple of months.
jarl
The bottom line is this: OO vs. Anti-OO is a holy war, and the crusades will rage on. If you don't like OO, fine. Write C, or Fortran, or Cobol, or assembler for all I care. Object-oriented languages were created for a reason. Some people find advantages in them. And to those people, all other factors held constant, an OS written in C++ would clearly be an improvement.
But nothing would beat a true LispOS ;) About the holy war business. It's not actually Anti-OO, it's more about the place OO has gotten because of agressive marketing. Yes, marketing, the last thing that should affect methodologies.
OO vs. mainstream imperative I understand, since OO offers genuine advantages over static imperative languages, but when people say: "OO means better reusability" and don't qualify the basis of comparison, other equally good methodologies are left in the shadow as well. This infuriates a lot of people (myself included) since this makes it hard to expose people to other ways of software development, since they have already learnt the OO gospel and are prejudiced against other methodologies.
Most programmers have large egos and want to believe that the method they know best is the best method for software development. I'd bet that most OO programmers aren't nearly as good structured programmers as they are OO programmers. If you know one methodology well and the other poorly then it's easier to believe that the methodology you know better is the better methodology rather than that you don't know the other methodology well enough.
Didn't we already have this discussion a while ago? Doesn't this page ring a bell? (I even won quite a few karma points at the time. Maybe I should cut'n'paste my comments of the time to gain some more; but I won't 'coz I'm too honest.)
Anyway, this explains why we're suddenly seing an unusual amount of traffic on the help-hurd mailing list.
This post ends the debate: Linux can scale down (think Mobile Linux, LOAF) Hurd can scale up. The choice comes down to what you need. Period. Any posts beyond this one about Linux being better than Hurd or vice versa should be moderated to flamebait.
When Borland ports their C/C++ compiler to Linux, it will crush gcc. Why?
Speed. People will start compiling their kernel with Borland C/C++, and start writing more apps using it. Why?
Speed. In a community where people have to brag about uptimes, a faster and smaller kernel will be important. But the Borland compiler is better anyway.
So, you see my GNUFreak friend, soon gcc won't be needed for Linux. What are you going to then?
Why do people maintain that OO is inherently superiour when all the practical evidence points to boring old structured/procedural methodologies and languages being more succesful in real life.
What's everybodies favourite Web server -- its apache written is C.
Whats the best Web server OS -- its BSD written in C.
Whats the best selling database software in the world. Take your pick Oracle, written in C, Sybase written in C, DB2 written in Assembler/C.
What's the worlds favouate scripting language -- its Perl written in C.
Whats your favourite operating system -- probably Linux -- written in C.
There is however on operating system written almost entirely in an OO language (C++), which uses "reuse" in a big way, which uses "metamorphsis" in a big way -- yes its the one you love to hate Windoze -- written in C++ with the unitelagable MFC classes, it reuses all that DOS assembler code, almost every MFC class is a superclass of other superclasses.
Now I am not saying a good programer cannot write good OO code. A good programer can write good code in almost any language. But OO and C++ in particular enables a bad programaer to write spectaulary bad code -- some of the worst designs I have ever seen in 25 years systems experience have been pure OO.
Old COBOL programmers never die. They just code in C.
OO? Microkernels? All nice things to have (since the 1960s, in fact, see Hydra->AS/400 on this page). But people more interested in the future might want to check out "reflective OSes".
Aperios is the name of Sony's OS for that robot dog. I had a link to it but now it seems to be broken. It is just an evolutions of Apertos (the OS formally known as Muse).
I particularly recommend the paper "The Muse Object Architecture: A New Operating System Structuring Concept" (number 24 on this page) for a good comparison of the various ways to design an OS.
(Score: -1, Flamebait, Troll)
While there's no denying that C++ is a steaming heap of offal, ST is not the last word in OO languages.
I'd rate Self, Dylan, Cecil, and Common Lisp as OO languages with better designs than Smalltalk.
This is not to say ST is bad; in fact it's wicked cool. It's just not the last word in OO.
Pfffttt. The strict duality of user space and kernel space is whats wrong IMO... we need a lot more spaces and get rid of the "can do everything it bloody well likes" kernel space, again IMO.
But my opinion is just that, there is no proper OS design. Just opinions.
As someone else already pointed out.
BTW on MACH3... its a dog plain and simple. Its IPC is apparently too complex for a microkernel.
"True" Microkernel OSs have a problem that's generally swept under the rug of theory: task switches cost performance. Dozens, if not hundreds, of clock cycles per switch, and that's not counting the costs of TLB and cache thrashing. The only way to offset this is by doing fewer task switches- i.e. by "monolithizing" the kernel into larger and larger chunks. An example of this happening is when NT4 brought the graphics primitives into the kernel for performance reasons. In extremis you get the AmigaOS- which was a "true" microkernel design and got good performance, but at the cost of having no memory protection at all. Task switches became little more expensive than procedure calls.
"True" monolithic kernels also have problems- mainly lack of configurability, the need to recompile the entire kernel to add or remove a driver or reconfigure anything, etc. To overcome these limitations, the kernels need to undergo "microkernalization"- an example of this happening is Linux getting loadable modules.
So the best operating systems- those who strike the best balance between configurability and performance- are the "mixed breed" OSs, either monolithic kernels with microkernel-like features, or microkernels with monolithic-like features. At this point, the difference between "microkernels" and "monolithic kernels" is the difference between Coke and Pepsi.
Brian
Sorry, couldn't resist the obvious pun
"In the meantime, RISC chips happened, and some of them are running at over 100 MIPS. Speeds of 200 MIPS and more are likely in the coming years. These things are not going to suddenly vanish. What is going to happen is that they will gradually take over from the 80x86 line. They will run old MS-DOS programs by interpreting the 80386 in software... I think it is a gross error to design an OS for any specific architecture, since that is not going to be around all that long."
-- Andy Tannenbaum, "Linux is obsolete", January 1992
"Transmeta has pioneered a revolutionary new approach to microprocessor design. Rather than implementing the entire x86 processor in hardware, the Crusoe processor solution consists of a compact hardware engine surrounded by a software layer. The hardware component is a very simple, high-performance, low-power VLIW (Very Long Instruction Word) engine with an instruction set that bears no resemblance to that of x86 processors. Instead, it is the surrounding software layer that gives programs the impression that they are running on x86 hardware. This innovative software layer is called the Code Morphing software because it dynamically "morphs" (that is, translates) x86 instructions into the hardware engine's native instruction set."
--www.transmeta.com, January 2000
spooky, eh?
Great, sounds like someone is trying to coin some more terms for us programmers to learn, as if debating over usage of 'engine', 'API', 'applet', 'free', 'opensource', 'module', etc etc were not enough. I for one have always refered to OOP as it logically sounds, a type of programing, instead of a type of language (while C++ and Java support specialized Object Oriented syntax it is up to the programmer to use them in an object oriented manner)? So if a programmer, programs in C in an Object Oriented manner, then its OOP. OOL, OOD, OOMyAss, what ever... To me Object Oriented Design, removes itself more from programming, and sounds more like the visual age, where there is less programing and more object concating...
I don't post moron, I post messages.
Looks like I'm going to have to bump my score filter up to 3. :(
Rob, I agree with you on hoarding points, but couldn't you allow us to keep 3 or so around longer? Maybe you could make it so one's pool has a half-life of 24 hrs. and rounding up (or something), so your points never fall below 1 unless you actually use them/it.
Please, just for emergencies like this? :)
(posting because I have no points)
Look around, and choose your own ground. -PF
No, of course you wouldn't call it GNU/NT. It's not the fact that linux uses a lot of bundled GNU utilities or that GNU is all over the place in linux. That's why I added the comment in my post, "If you look at linux in terms of the GNU framework".
The GNU project was about creating an entire UNIX like system, which consists of tools, a compiler, and all the rest of that jazz. The kernel was the last piece they needed, and when linux came along as a GPL'd kernel, sure it was an independant project from GNU, but the people at GNU looked at it as the last piece of the puzzle just sliding into place, fitting perfectly with all the other pieces.
So why not GNU/NT? Because NT isn't GPL'd, it isn't UNIX like, you could distribute it with GPL'd utilities and use it that way, but that was never the point of NT, and because NT is about corporate profits, not about freedom. That's why you wouldn't call it GNU/NT no matter how many GPL'd utilities you used with it.
-- Truth goes out the door when rumor comes innuendo. -- Groucho Marx