Linus on All Sorts of Stuff
Linux Times.Net writes "
Linus Torvalds
tells of some other programming venues than the Linux kernel, predicts a shadowy outcome for GNU/Hurd, gives some advice to anyone wanting to undertake a large software project and updates us on the latest in kernel development in this email interview by Preston St. Pierre. "
Linus takes on approach, the BSDs take another. I think there's a place for both in thr world, and that the BSD's is the approach for saner, safer integration of technology. Linux, which takes a faster approach, is where the actual technology comes from but oftentimes in an untested manner.
BLING BLING. Meet the architecture that's changing everything.
When you're not into making profit out of something, you're usually more generous to include alternatives (or even competition).
Rock that crushes, Paper & Scissors that don't matter.
...there'd be a ton of jokes about it going down in flames immediately. However, since it's linuxtimes.net and running Linux, getting slashdotted quickly is NOT A PROBLEM
He's not a god or anything, but a very down-to-earth person when it comes to software and the linux kernal in general. He is absolutely correct on what happens to "big vision" software. Too many projects that started big have fizzled, and small applications that work tend to grow and morph into ground-shaking applications as they mature. Take web-browsers for example.
JMD
When all else fails, feel free to panic.
What's with all these so-called interviews which are basically a handful of random questions asked by an interviewer who seems to be doing his junior-high homework assignment? OSNews is bad enough... can't they ask anything interesting, or actually engage in a conversation about the subject? Linus has lots of interesting things to say, but unfortunately these folks can't think of what to ask.
The interviews in ACM Queue, particular the one with Jim Gray interviewed by David Patterson, was much much more intriguing.
Inferior? Different, yes. Linux runs on a few dozen processors. Windows runs on .. well, 1 well, three somewhat. I have hardware for which the Windows drivers never worked, but works fine under Linux. So it's a "it depends". There's certainly *more* hardware that Linux runs on and has drivers for, though it may not be your hardware.
Make up your mind. Is it ``immensely flexible'', or ``monolithic and slow-to-change''? I'm pretty sure it's not both.
As for ``too monolithic and slow-to-change to be easy to toss onto a new PC'', try Knoppix. It makes installing Debian easier than installing Windows.
See what I've been reading.
From that description, it doesn't seem very useful for exceptional Joe either, only for GNU/Joes developing Hurd.
Be wary of any facts that confirm your opinion.
I don't see that hardware support in Linux is any worse than other operating systems, on several fronts.
In the desktop PC space, I can run anything I care to hook up, other than some shitty winprinters. Granted, some features are lacking like 3D accelerators and some multimedia hardware, but if you're careful choosing your stuff, it will work with Linux. I tossed Fedora Core 2 on two new PCs and a laptop, and it just works. I couldn't say that two years ago.
Even my iMac runs YDL with all of my hardware supported. That was the biggest surprise of all, frankly.
Don't even go there with Mac OS X. They only have to support one architecture and one major hardware vendor. MS has it slightly (not really) easier than Linux, too, because they're only running on x86 for the desktop and server.
Things are better for Linux in the embedded space, as I see it. I can pick nearly any embedded processor, and Linux runs quite well with all features supported. That market is actually bigger than the desktop space, and more exciting to boot.
1.
Linux vs Windows in terms of hardware support depends on the hardware.
There is hardware that leading distributions will better detect and automatically configure that, under windows, would have to be installed through vendor CDs. And speaking of vendor CDs... the work, or lack of work, done by 3rd party hardware vendors does not reflect on the quality of Linux the operating system. Only on the quality and user-friendliness of the 3rd party vendor's hardware.
It is to linux's credit that in so many cases it supports 3rd party hardware out of the box, not needing 3rd party vendor CDs that install junk along with the driver.
2.
Linux vs Macintosh in terms of hardware support... I'm sorry, but it is really dumb of you to even compare.
The day that Linux distributors start making their own hardware, you can be sure that Linux hardware support will be 100% flawless too.
It's not entirely bad for operating systems students to get their hands dirty with either. It does have some cool things going for it--though it does seem doubtful they'll ever get anywhere with it as a mainstream OS--for example: rather than using the traditional monolithic kernel, hurd uses a multi-server running on top of microkernel approach. So it is definitely neat and interesting for os geeks to play with.
Sure, Linus can't see into the future, but he can follow the blinking red arrows that industry is posting.
There are many reasons why Linux won't go to a "shadowy fate." It is largely deployed in the enterprise. There are thousands and thousands of people either directly developing on it or for it. There is millions of dollars being shoveled into it by the likes of IBM and Novel. If all these folks thought that Linux was headed for a shadowy fate any time soon, do you think they would waste their time and effort on it? Do you even read Slashdot? (:
It's not neccesarily just about open source vs closed source, it's about superior product in the market place. Open source is a partial factor, depending on your targeted demographic. I'm not sure how its immense flexibility is a bad thing, or how Linux is too slow to change, but it's true that all people may not be able to enjoy it. Even that is rapidly changing, with easy-to-use distros like Linspire, Ubuntu (or whatever), and Fedora.
More on usability: Because I am a technically-abled person, I prefer to use Linux on the desktop (home computer and work computer). When my laymen friends ask if they should install Linux, I shrug and ask them what's wrong with their Windows? I hope that I will be able to give them an enthusiastic yes within a year or two.
Those were some insightful comments from Mr. Torvalds. Interesting that they are such simple words, the things they express so obvious and down to earth, but since they come from a public figure, they have a lot of authority.
Of course, there are other public figures whose statements make a lot less sense; being deceptive rather than insigtful.
Please correct me if I got my facts wrong.
Okay, maybe HURD isn't where we all want it, that is -- on our desktops and running everything... BUT...
Lets not forget, HURD is FSF/GNU, and they've proven time and time again that they are presistant, don't rush to complete their vision, and go the extra distance on a lot of things.
If HURD achieves both the standards and the quality of forethought that all the other FSF/GNU code that has been released so far, then it will doubtlessly be a marvel of OS technology. It has a tall order to fill, though, and honestly -- it there's no rush to see it pushed into production, then I'd let the politics play themselves out. However, it *is* the goal of the FSF. How it finally winds up-- well-- I'm anticipating to see like everyone else, but I've become a believer in the FSF's patience, skills, and collective vision.
From that description, it doesn't seem very useful for exceptional Joe either, only for GNU/Joes developing Hurd.
Or running servers. Web servers, print servers, file servers... heck, it might even work for supercomputers for all I know.
In Linux, you may have to install fewer drivers, but the ones that you do have to install are difficult to do so with. This is what prevented me from making the switch to Linux a couple years ago: I couldn't get my wireless NIC running.
It's easy to say that I should buy hardware more carefully, or (as another poster said) it works on everything except "those shitty winprinters," but that avoids the problem. I need it to run on the hardware I've got already, or it becomes cheaper (and easier) for me to go buy a Windows upgrade.
I'm hardly a computer guru, but I'm definitely more competent than most people I know when it comes to them. Nonetheless, every time I've tried to switch to Linux (on average, once every year or two since '96), I've been put off by a piece of hardware I couldn't make work.
First it was sound, then it was printing, then it was a NIC, then it was a video card, then it was a wireless NIC.
*shrug*
I'm sure I could learn how to do it, but I already spend 50+ hours a week fighting with computers at work, I don't want to struggle when I get home.
Reality has a conservative bias: it conserves mass, energy, momentum...
It's only been what, like 15 years?
Who's kidding who?
The revolution will NOT be televised.
When my laymen friends ask if they should install Linux, I shrug and ask them what's wrong with their Windows?
Overwhelmingly, it seems to be adware/spyware, and the all the other stuff that people install intentionally or accidentally. Within a year or two, the average windows machine gets bloated with semi-removable crap.
The people I've moved over to linux have no problems using it. It's installing it, getting all of the hardware configured, and installing all of the strangely named multimedia software/codecs that is the tricky part. This all usually comes preinstalled on Windows, so it's an unfair comparison.
I am always sickened when I have to use a fresh Windows installation, and it comes without a DVD decoder, a CD burner, a decent text editor, a PDF reader, a popup blocker, an FTP client, or a graphics file converter - all stuff that comes standard with most linux distro, or that I can install (for free) with *one command*.
That's what's wrong with Windows.
These are truly words of wisdom! Take note, young software engineer!
I don't buy it. And perhaps it's because I fall into the young category and might be lacking the "real world" experience.
e're taught from day 1 to look at code reuse and to break large chunks of logic into smaller bits. That requires a bit of planning ahead. You need to make some good guesses about where things will go. Right now you don't need to worry about transferring data via sockets, but there's a good chance one day you will need to. So you design the way your program breaks down its funcionality so that it's a trivial matter to take the output from one function and direct it torwards another that begins/handles the transfer process.
Lets take it up a notch in complexity and look at planning the development for a 3D game. You build a modular system so as things change, you can move to a different sound engine, or 3D engine, or whatever, and don't have to rewrite half the code of the system. But to build modular, you have to plan, you have to see where, down the road, that modularity is going to give you a benefit.
That's what makes the HURD really nice is all the modularity is planned and laid out. There's a structure and you know the direction the development will take. Big picture stuff.
There's a reason the captian of the ship pilots from the bridge, where he can see what's in front of him. Linus seems to want to pilot his ship from the engine room.
I'd have to disagree with this one too. When you buy a piece of hardware for windows, the driver was written under incredible time pressure -- remember the difference between financial success and failure for a product is measured in weeks, so the driver just cannot be late.
By comparison, shortly after the device comes out a reverse-engineered driver will be available for linux. It will be clunky and hard to install, slower, more buggy, etc. Later versions will fix the bugs, then fix the efficiency, then fix the installation issues, then tie in with hardware autodetection. Soon enough, the linux drivers exceed the windows ones.
So, if you get your hardware the moment it is released to the public, you will probably find the windows drivers better. If you wait until things become affordable then you're probably going to find linux drivers at least as good.
I.e. it might be fun to play with, but it's not very useful for the average Joe.
Well, Linux started out as something barely usable even to hardcore geeks (kermit was the most complex application for a good while), and look what it turned into.
(S(SKK)(SKK))(S(SKK)(SKK))
There is a lot of truth to this. But if you look at the list of things you're giving (sound, printer, ethernet, video, wireless) you'll notice they're getting increasingly 'modern'. Within a year you will likely find wireless works perfectly (it already does for many devices, though my atmel wlan requires a (GPLed) driver not included in the kernel).
But that's not to say your comment won't be applicable in a year, you'll just have to say 'bluetooth' instead of wireless, or whatever the hot new technology of 2005 is. My feeling is that for most people, linux will 'just work' first time now. This was less true two years ago, and it will be even more true in two years time.
What's wrong with Linux is it doesn't come with *A* DVD decoder, *A* CD burner, *A* decent text editor, *A* PDF reader, *A* popup blocker, *AN* FTP client, or *A* graphics file converter. It comes with at least a half-dozen of each that have differing feature sets and no clear direction of which one is "optimal" for the new user to start with.
Linux needs to focus on progressive discoverability - Only expose as much of the interface, programs, and power as necessary. Keep it all in reserve for people who want it, but don't constantly throw it and the millions of settings right in a new user's face.
I don't know what kind of crack I was on, but I suspect it was decaf.
Well, given the trend over the last 20 years (or more, really), things have been in a fairly constant state of maturing. Hardware has changed, as has the needs of the hardware and the desired results. Granted, I can't think of anything in the last 5 or so years that has changed in much at all besides bigger, faster, and smaller, so maybe there's a chance for the current operating systems to reach a point of 'maturity'. At least some of them - it's pretty much a given that certain large software companies will push out larger, more complex operating systems that will never be truly 'done' (except for the "now abandoned" sense).
I imagine that in 20 years or so, computers will be small and cheap enough where a different network design paragidm will be necessary, to some degree, and where conventional operating system concerns will not really be concerns any longer - while things such as security take a forefront in OS design. It seems that trend may have already started, to some degree.
~/ssh slashdot.org ssh: connect to host slashdot.org port 22: too many beers
If MS Windows did come with all of those apps, would you be complaining that they are an illegal monopoly trying to stifle competition? GNU/Linux distributions bundle those applications by choice, but Gentoo Stage 1 install doesn't have any of the apps that you mentioned. Does Gentoo sicken you as well?
- Any performance improvement you get from having a highly-optimized driver is typically swallowed up by the general inefficiency of Windows itself.
- While the hardware vendor's coders may know their hardware, they don't (and CAN'T, due to it's closed nature) know the Windows internals and how their code will interact with Windows, hence the need for Microsoft to certify the drivers. IME, A *HUGE* number of BSOD errors (perhaps even the majority) are due to misbehaving or buggy vendor-supplied drivers.
The only place Linux falls behind is support for bleeding-edge hardware. This generally isn't a problem for me as I rarely if ever buy leading edge hardware due to it's lousy price/performance ratio. One or two steps back from top-of-the-line usually gives you >90% of the performance for 50% of the price.Why is it that the proponents of "one nation under God" are so eager to get rid of "liberty and justice for all"?
Your assumption is that it takes a lot of planning.
/now/ to build one. As their needs increase, they add to those bits and pieces. If the needs exceed the flexibility of the design, that's the time that redesign is required.
:)
:)
/not/ to do when designing software.
Take a look at CPAN for a good detraction to your argument.
Most CPAN projects start pretty small and fill only a few features. Since search.cpan.org contains a pretty thorough revision history of most of these projects, you might find that useful.
Anyways, no one builds an app in perl with one all-encompassing module. They take bits and pieces that do what they need
You can see a good example of your argument being executed poorly by examining some popular PHP applications, or you can just take a look at slashcode, which I apologize, should never have been released to the public.
PHP 4 in particular has horrid OOP support. I know perl's isn't much better, but I'll gladly take horrible perl OOP over that joke of OOP that's is the representation in PHP 4. It's much better in 5 I hear.
Anyways, that's just context, only to lead to the point. As a result, many of the applications in PHP lead to shoe-horning OOP features into a procedural interface - which is fine if you know what you're doing, but not really in anyone's best interest unless they still refuse to admit that OOP has merit and a place (only the biggest curmudgeons in the software industry - like jwz.
Either way, a lot of PHP authors try to implement things like plugins, namespaces, all sorts of crap which PHP 4 was not meant to do by craftily using includes and manipulating the names of functions.
I'm only using the PHP vs. Perl comparison because the distinct lack of features in PHP 4 that appeal to a designer of large applications fosters this kind of problem, and while it's pretty rude to make this assumption, only those who can't see that ahead of time doom themselves by writing large applications completely in PHP 4.
A good rule of software design: If you can't realize it without getting crafty, you've already done something wrong. Unnecessary complexity will always lead to failure. Take a look at windows.
Amongst other problems with PHP (like it's lack of a built-in database API that supports binds for all databases), that's why you see these applications on bugtraq all the damned time. Applications like Zope which are built on a foundation made to give the features an application like Zope needs help eliminate the most basic design flaws.
Just to bring my argument down from the heavens, I have on two occasions gone to great lengths to design giant API's that were flawed as soon as I plugged them into the editor. One of these designs kept me away from my editor for nearly 6 months, unless I was writing documentation. So, I would like to think that I'm speaking from experience on what
If I had said, "what do these things really need to do", written them, and then said, "how can I make them operate better", I don't think I would have been in that position.
Nonetheless, the hardware support of even the latest Linux distributions is inferior to that of Windows or even Mac OS X
I call shenanigans on this. The last count I saw showed that Red Hat FC2 has more than 3 times as many drivers as Windows XP out of the box, assuming that you only count Intel-compatible platforms (if you count all platforms, Linux has an even wider edge).
E.g. my scanner and TV capture card are both supported out of the box under FC2 and not supported at all under XP. The scanner came with Win95 drivers, but no newer ones are available for Win32 and the old ones don't work with Win2k and later. I can't remember exactly which Windows version broke support for the capture card. I have no intention of buying a new scanner when mine is a great workhorse oversized flatbed with true 1200x1200 resolution that still outperforms the modern cheapo models handily.
And while my wireless LAN card is theoretically supported under Windows, it locks up every 10 minutes when WPA encryption is enabled (WEP is forbidden in our environment for security reasons) but runs for weeks with no problems under Linux--and Linux supports advanced features like running it in host AP mode (as a basestation).
Windows has better support in some areas--brand new 3D graphics cards is one, new winprinters and winmodems are others--but as far as overall hardware support Linux is way ahead.
rage, rage against the dying of the light
It's not entirely bad for operating systems students to get their hands dirty with either.
Nooooooo!!!!
Students spend enough time dealing with ivory tower crap. The last thing that they need to do is waste time on an architecturally pure but practically useless system.
Of course, as a case study for a Software Engineering course (showing all the things that can be done wrong) it would provide real value.
There is no contradiction. Nobody is arguing that Linus did NOT name Linux after himself. He did. GP and Parent agree here. However, he did not do it to inflate his ego or gain notoriety, and in fact planned to change the name before the kernal was in wide distribution. The name stuck, though.
Who said anything about Stallman? :-)
:-)
GNU and the FSF are both bigger than Stallman.
Also work on the hurd is going slow because so few people are working on it (the kernel `linux' is available as an alternative so no-one gets involved).
If a person was to hack on the hurd I don't think they'd really need to talk to RMS, but then surely just reading what he has to say on a mailing list wouldn't be too hard to deal with?!
So, what are you/the researchers waiting for? Fork it already and get busy. Linus ain't stupid, he'll put your patches/port your changes in if they are good.
Heck, do a good enough job and you could start the 2.7.x series.
Laws are horrible moral guides, moral guides make even worse laws.
Nonetheless, the hardware support of even the latest Linux distributions is inferior to that of Windows or even Mac OS X
Puzzling statement to say the least. I find the opposite is true. For example, Linux support for scanners is broader than that of Windows 2000 and XP (Linux is better with legacy devices). Linux support of 64-bit hardware is also more mature (where is Microsoft now on that front?). Mac OS X? That one floored me. Mac OS can be kludged into running on other platforms I guess, but it only has ONE supported hardware platform. It is easy to offer exemplary hardware suport when you only support a VERY SMALL amount of hardware.
Monolithic and slow-to-change? If that is Linux, what is Windows, fossilised? Look at Windows NT4 and Windows Server 2003 or XP (especially in "classic mode"). Visually nothing really innovative and looking deeper even less innovative architecturally. Look at Linux over that same period--form the Kernel on up to KDE and GNOME. HUGE difference, both in modularity and pace of change.
Oh, horsehockey. I work with a bunch of computer science researchers who work on high performance computing topics. Guess how most of 'em do their OS-level research? They take Linux and make their wacky new file system/interconnect/etc. ideas work with it. Seems to work pretty well for them.
Another thing to remember is that a lot of CS researchers write half-arsed code that isn't ready for prime-time. They're usually thinking proof-of-concept, not production deployment. That isn't unique to academia, either; it amazes me how much utter crap escapes from big corporate research labs claiming to be a "product".
[/me decides to quit before this degenerates into YA rant about the fact that physicists are often better at production-quality software engineering than computer scientists]
--Troy
"My life's work has been to prompt others... and be forgotten." --Cyrano de Bergerac
Which would put it on a par with how useful the Linux kernel was when it was young. It wasn't useful unless one was extremely technical, and even then it lacked a lot of hardware support and one couldn't do a lot of commonly useful things with it. In time, the HURD can mature and become competitive. This doesn't mean GNU/Linux is a piece of cake for jobs people want to do.
But what I find interesting is Torvalds' answer to the question following his HURD answer:
Here, unlike in previous questions, I think Torvalds uses the word "Linux" to mean a complete operating system in which the Linux kernel is being used (typically, a GNU/Linux system), so I'll interpret the answer in that vein.
The main point I wanted to draw out is that it took ten years, by Torvalds' estimate, to get where things are now. I'd argue that that estimate is wrong by half (the free software community began 20 years ago), but even if we take the ten year figure at face value, the HURD hasn't been running on anyone's machine for ten years yet. And even now there are people (such as a fellow I had on my radio show last week who was addressing a caller saying the same thing) saying that the modern GNU/Linux system is too hard to use, too complex to install and to complex to do some jobs with when compared against Microsoft Windows or MacOS X. Those jobs include:
All of these jobs are possible but way more difficult to simply do than they ought to be. And few (if any) distributions make it easy to do these things by including the free software packages available to make them work right out of the box.
Configuration is too hard; getting these things working rely on one's skill with a command line interface or editing technical configuration files. ESR's printer essay was right on the mark when it came to his perspective on hooking up a printer--adding a printer should be automatic and the system should do more network scanning and autoconfiguration to suit what most people most of the time will want.
So, even for those who would complain the GNU/HURD system is too far out of reach, I'd say look closer to home and see the problems that exist for GNU/Linux. GNU/Linux is a heck of a lot closer to what I think people yearn for, but that's no reason to trash GNU/HURD.
Digital Citizen
A year or two my ass....a day or two and most windows boxes are totally trashed...unless there is a half way knowledgable person running it.
what?
someone said to me there are 2 developers maintaining the cvs repository of hurd.
A person who tried Debian GNU/HURD said it was usable, but with some unsupported hardware.
There are three distributions of GNU/Hurd: Debian GNU/Hurd, Bee GNU/Hurd and Gentoo GNU/Hurd, together with gnu.org
HURD isn't exactly dead, but I doubt it could replace Linux right now. However, I am excited by the idea of microkernels and I really want to see HURD becoming successful and usable by the general public.
http://hurd.gnu.org/Why is this modded a troll? Micro-kernels sound like a neat idea. But then again, monolithic kernels should be good enough for everyone.
Which brings up another point. Yes, you have to be a bit selective about hardware, before you buy it's wise to check that it is supported. And you probably won't get the latest and greatest (I bet it'll take quite a while for example for the new nForce4 chipset to be supported). But once hardware is supported in Linux, I've found it to work extremely well and reliably - and yes, out of the box.
Is it hard to do that on Red Hat?
No, you can install k3b on redhat fedora core and burn away, but knowing that k3b is as easy to use as Nero, or even EXISTS is harder on Linux than Windows if for no other reason than the fact that you can't just go to the store and see all the cd burning software available, and buy what you need. Most CD burners come with some kind of burning software for Windows, but not for Linux. If I was a "user" with a new CD burner in my machine that runs Linux, being able to burn CDs will be a lot harder for me than my neighbor running Windows. Now, here come the "if it's that hard for them to figure out, they shouldn't be running Linux in the first place" argument that draws in so many people to the Linux flock....
(Not necessarily from you, Strider, but some yutz is thinking it out there right now...)
In fact all of those things except OCR (which I've never heard of) and modems (which I have no experience of in mandrake) are a breeze. You don't ever have to use the command line.
No, not necessarily. Suppose for some reason your modem isn't supported, or network card, or sound card. There might be a kernel module out there you can get that'll enable it, but the average user isn't going to be able to do that. Until it's at the point that they stick in a CD that auto-runs and installs the drivers, or software for them, it's never going to be easy enough for general use. There are lots of people who are going to say "my grandmother or spouse uses Linux without problems", but that wouldn't be true if they didn't have a geek to help them out along the way.
Oh, yeah, OCR=Optical Character Recognition. Scan a document, and it converts it to text so it can be edited. Useful stuff for some, and for those people a deal-breaker against using Linux (like me).
Which is more painful? Going to work or gouging your eye out with a spoon? Find out!
http://www.workorspoon.com