The Role of the Operating System In the Future
liteswap writes "Linux geeks love Linux and Windows mavens won't quit Microsoft -- but will we really care that much whether a machine is running Linux or Windows in future?
As Sun announces Solaris support for Red Hat Linux applications, the need to specify the OS for a particular application will fade away, and the application and the x86 platform become the critical things -- at least that's what this Techworld feature argues..." Maybe a long time from now this will happen - but I don't see it happening RSN.
I've been contemplating the OS situation for years (ever since I first tried to run a multinode BBS under DOS' DesqView) and only recently has a possible endgame become visible to me: emulation.
.SYS driver like we had in the DOS days that basically handled everything.
Software needs an OS layer, the OS layer needs an abstraction layer to hardware, and the hardware needs a communication layer to all the various mechanisms (drivers, BIOS, interface protocols, whatever). It isn't just a simple 16-bit
We've seen so many emulators (Macs running Windows emulators running Mac emulators) on so many platforms, but what has allowed so many to come to the market in such a short period of time? Processor speed, I'd say.
Now that processors are incredibly fast, we're likely to see little performance increases in the tasks that 90% of the world uses PCs for: displaying text on a screen, inputting text into a form, and sending that text to a printer. Sure, Vista will incorporate a new video structure and 3D-gaming and heavy-use databases will always need faster processors, but MOST users are still just text viewers.
The next step, I believe, is creating a more realistic "standard" emulation structure for software. I think the F/OSS market is awesome because you can generally cross-compile a lot of code on various operating systems, but they still need modifications to the specifics of the OS or the hardware you're running on. What I really think will be the next big thing will be a TRUE hardware abstraction layer in the OSes (H.A.L.I.T.O.S.es?). Is it possible? I'm not sure, but it makes me wonder.
Why do people bust their asses constantly updating WINE when the OSS community can work towards a more amazing result: a standardized implementation structure that lets you write software once, and have it run on any OS that has a HAL to translate that implementation structure to what the hardware requires.
I know -- that's what the OS is supposed to do, but it fails. Yet do MOST applications really need the extreme features we have in customization (different video cards, hard drive controllers, network interfaces, etc)? Or would MOST applications run just fine (on high end processors) if they can say "Write pixel at X,Y" or "send data chunk to IP address" or "Write this data to this store" etc?
Maybe I'm talking out of my ass (I haven't programmed anything significant since MajorBBS mods in C over 15 years ago), but it seems like that is where software has to head. A completely transparent "mini-OS" that offers all software written for it a very standard set of instructions for the most popular functions. You're not going to write 3D games in it, but that's not the target market. 3D games will always push the envelope and come BEFORE the hardware can handle it. We're talking about basic implementation of basic software, yet it is this basic software that we waste billions of man-hours of labor on trying to get working on various OSes and hardware combos.
Now that I think about it, wasn't NT supposed to be the magic system? What exactly happened there? (Don't just say "Microsoft.")
The only development software that has come close to giving us platform independence are interpretative languages like Perl and Java, but that promise is still elusive. Java still seems to have stalled, and with projects like Mono, it almost seems like Microsoft may ultimately, though possibly unwillingly, get the upper hand.
The world's burning. Moped Jesus spotted on I50. Details at 11.
Leaving abstractions aside, of course the choice of Windows or *nix matters. Because of Windows' layout and the way that certain applications are built into it (IE, Windows Help, etc) there are reliability issues that cause many more maintenance-related reboots than on Unix. When was the last time you rebooted a Linux machine because the Help system in KDE needed updating?
Also, there are certain OS-specific things which usually cannot be solved in hardware (assuming you're running on the best you can afford). Need an FS that handles massive sparse files correctly? Maybe that means you need Reiser on Linux, or ZFS on Sun... (I have no idea if this is true). Maybe Windows just CANT do this well, regardless of CPU power. Do you need to hot-swap NICs, CPUs, and add/remove memory and CPU power on the fly? You probably have to go to AIX then. Didn't we just read an article about how Windows takes 5x the number of CPU cycles to start a process?
If you consider the OS tightly coupled to the app, or the app requires specific capabilities from its OS, then app concerns will dictate the OS.
I want to delete my account but Slashdot doesn't allow it.
Yes, I really think it does matter which operating system is used, and it should matter to everyone: developers, purchasers, and--unless they are very short-sighted--end users.
I've heard about Solaris to Linux ABI for years. I dug this up from 2 years ago: http://developers.sun.com/solaris/articles/support _for_x86.html.
So is this something new or something that now works now that the Linux ABI has stabilized? Or is this easier now that Sun is shipping x86 systems or what?
Inquiring geeks want to know the point of running Linux apps on their Sun boxes.
I think the role of languages that don't rely on a specific platform will become much more important in the future. I write my software in Python and it works wherever Python works (well, not really thanks to GTK+, but its getting there!). As these languages and toolkits mature, I think we'll start to see less of a dependence on the OS
Right around the time Linus Torvalds announced his employment with Transmeta, he said something to the effect that the world already had a portable byte code, and that byte code was x86.
*'in future' repeated for emphasis
I read
How is what you are describing not the Java -- bytecode, JVM model?
but the programming world has a serious lack of portability. Programmers refuse to attempt to write portable code, and they cite (with justification) the lack of any libraries which allow them to do so with ease. Microsoft, Apple and Unix have three very different programming APIs, and Microsoft + Apple continue to try to make sure their APIs diverge from each other. MS being the worst...they "invent" a new language all their own and encourage the use of it by mob force.
The nuts and bolts of the world are still in C/C++, and will be for the foreseeable future. C/C++ still lack any standardized support for GUIs and threads. C/C++ are still the most flexible languages (in a non-CS professor approved sort of way).(This is not a "my language is better than yours post")
For a long time we're going to care about our OS because our programs will only run on one certain one, even if we don't really care what OS we use.
"x86 platform become the critical things"
Why? If you are going to abstract the OS why not the ISA?
IBM actually has been doing this for years with the System38/AS400.
The came up with a "prefect" ISA. When a program is installed it is converted to the actual ISA of the machine it is running on. IBM went from a CISC to the Power ISA without a hiccup.
I have wondered why Linux hasn't come up with a similar system. When you install and RPM or some other style of package the system could "translate" from a perfect ISA to the native ISA of the system you are running on.
Sort of like Transmeta did but do it at install instead of runtime.
Think of it as a just at install compiler vs a just at runtime compiler.
See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
For the those clueless people, like myself, RSN does not stand for the "Royal Singapore Navy" or the Religious Science of Nashville but for "Real, Soon now" which to the initiate could alternately mean "Real Soon, Possibly Never".
I guess you need to be a science fiction fanzine fanboy or a regular reader of "Chaos Manor" to know this. Tribal Knowledge...
They will most likely suffer all from the same (protocol) bugs, be vulnerable for the same attacks and ultimately be virus compatible. Diversity is good. Lets just have two or three major operating systems in the future, probably running the same applications, but not on exactly the same code base on a nice interactivity layer.
My wife's sketchblog Blob[p]: Gastrono-me
Yeah... I think maybe you're wrong. When an OS uses device drivers, it's essentially creating a Hardware Abstraction Layer... and All software, and programming languages are moving towards more abstraction. The idea that a program will run across multiple platforms is a testament to the abstraction of the hardware, and the generic features of the OS (threading, file system, etc). Maybe the point is the UI of the OS is going to become more important, as we run out of features to abstract. Heaven knows we programmers wouldn't mind some things being simplified... (Asynchronous sockets anyone?) Don't get me wrong, I love c++, but the OS is getting abstracted away, and that's okay.
First, Java, while not as successful as Sun hoped (what is?) hardly "failed miserably." Prior to C#, what other options were there for object oriented, garbage collected high level languages? People used C++, which, while in some ways stronger than Java, is hardly comparable. Java (partly) filled a void that, hopefully, C# will fill in an even more convincing way.
Second, machine independent bytecode isn't really the crux of the issue, I don't think. I say this for two reasons; first, x86 is pretty much the standard at this point (I say this from a G4 Powerbook, but with Apple and Sun shipping x86 machines, the desktop, workstation, and much of the server market seems to be going x86); second, any language with cross platform libraries and compilers is "write once, run anywhere;" VMs are only interesting (in the context of compatibility) insofar as they are "compile once, run anywhere."
The OS is already a hardware abstraction layer; it allows you to ignore what kind of I/O devices someone has, what size their disk is, how much RAM they have, and so forth. The technology to write code that works across multiple platforms was realized decades ago, and we use it daily. The only reason we're still talking about this is essentially an economic one--while each OS is an implementation of a standardized hardware abstraction layer, there are simply multiple OSes, which means multiple standards. The obvious solution to this is to be able to a) run multiple standards on one machine (either by running multiple OSes or by an OS that is compatible with, or emulates, the syscalls and libraries of another OS) or b) use a higher level language (like Java) that has its own standard and its own abstraction layer for each OS it is compatible with.
In other words, standardizing platforms is easy; getting people to agree on a given standard is hard. Being compatible with multiple standards is a good bit less hard, and we've been doing that for at least a decade as well.
Then over here, we have the one bad, sulky operating system. Who is this making these horrible noises and faces at everybody else over here in this dark corner? Why, my goodness, it's Microsoft! What's the matter, Softie, don't you want to play nice with the other systems? Oh, I see, you want all the other systems to *DIE* so you can be all by yourself. OK, I guess that's a "no". Well we're going to go on having our little party together and maybe you'll get the hint and just go away...
But I still don't see it real soon, even if MS suddenly does a Grinch and grows it's heart three sizes bigger and decides it's going to play nice after all. Witness the fragmentation even within an OS's community (distro vs distro, desktop vs desktop, editor vs editor), and I don't think you'll get the vi/Gnome/Debian bigot and the Emacs/Fluxbox/Slackware bigot to say "Eeeeeh...what's the difference?" But then again, my crystal ball *is* due for a polishing...
It seems to me that, until we can make document file formats (think MSOffice versus OpenDoc) not matter, talking about the whole OS not mattering is a bit premature. We live in a time when we discuss at great length file formats and the future readability of Word documents. Solving *that* problem (any word processor can figure out any other word processor's file format) would appear to be a much simpler problem than abstracting the OS. Walk, then run.
The more you regulate a company, the worse its products become.
I just purchased a nice cs101 book for java 5.0.
Why?
Because my computer science department wants to standardize on java in addition to c++. Why standardize on Java? Because its the most sought after language in business.
Don't believe me? Go to www.monsterboard.com or some job site and look at jobs in your area. Java is the most sought after language with c/c++ second, and perl third.
Java is essential for any big ecommerce servlet. Php is not there yet and neither is c#.net in terms of scalability and maturity.
Java is a success.
http://saveie6.com/
The OS matters and MS is making big headway in that front. They are doing it right in the face of all their naysayer's, and the irony is those self-proclaimed geniuses are missing what's happening right in front of their face.
For example, the Apple crew touts being first to market with features like indexed searching as reasons why they will beat MS. All the while MS is quietly getting XP Embedded in ATMs and Cars. MS can ad a search in an update (e.g. Vista), but Apple isn't going to power any BMWs with OSX 10.5, but MS already does with XP Embedded.
MS is diligently working with GE (one of the worlds largest companies, 1st or 2nd place) to advance home automation, and integrate with household appliances. Home automation is the FUTURE of computing, period. MS is working hard to penetrate the Home Media market (media center, Xbox, IPTV, etc.), the phone market, and many other fronts. You can say they won't make it, but they are doing a hell of a job to date. Look at the next generation of television, IPTV. MS is starting to get so far ahead of everyone else it's getting sad. Take some time and watch the demos, they are very impressive. The zealots keep saying it isn't true, but they have been saying this since Windows 95. They were wrong then, and are wrong now. Apple and RedHat don't have any big exclusive deals with Verizon or SBC to power IPTV, but MS does. Those deals are getting fiber brought to everyone's doorstep. IPods are cool, but they are a novelty device and they aren't going to power the home of the future, but at the current rate, MS will.
Phones: Mobile 5 blows the doors off of all business class phones today with the exception of RIM's. With the exchange integration, RIM won't be able to compete... MS phones will support Push with more then a 100,000,000 people overnight. RIM is struggling to top 5,000,000. Linux phones are a nice idea, but they don't offer push, and the ones at present can't hold a candle to Mobile 5. Then there are PDAs. MS has crushed Palm, and Nokia's hail marry is neat, but won't beat Mobile 5.
The bottom line is if you like MS or not, they are growing in many areas that aren't being publicized. The naysayers are a sleep at the wheel. The platform of the future isn't going to come from Google, Sun, and certainly not Apple. MS is getting in at the ground floor of these industries and they have far more money to fight off the others.
The platform matters. I know so many of you are out of your mind pissed at me for writing this. I'm sure some of you will have some wiki-pedia posts to try and make your case, or some blog of an anti-ms zealot. And to you I say; it doesn't matter if you use a Windows computer for surfing the web or not, you aren't going to be escaping MS powered operating systems anytime soon. History will prove me right.
What is wrong with the fifteen yoears old kids in the forum? If they know what they are talking about, their age does not matter. I have helped and have been helped by many 15 years old kids. By the way, I'm 37.
As far as support goes, I guess that you haven't had to call Micro$oft regarding an installation issue. I could not find a telephone number on the Win2k package. I finally found a number in the accompanying booklet. After calling this number (toll call) and waiting about 15 minutes, the only thing I got was a prompt for my credit card number!!! Many distributions of Linux provide better support than that.
Linux handles just about all of the programs that I need in order to do business without all of the seecurity issues. The only program that does not work in WINSAP 2000, but that is because Florida Medicaid will not release the information in order to write a Linux version. As is the case with most U.S. State governments, Florida forces people to run Windows. I guess with wealth comes privileges.
The Jargon File explains many of these terms, has some interesting notes on hacker culture, and is sometimes plain funny.
Please correct me if I got my facts wrong.
You are confusing easy to use with easy to learn. Windows may be easier to learn (debtable really) but it's not easy to use. Once you learn it linux is supremely easy to use. It never gets in your way unlike windows. In linux I can recurse through a mail directory forwarding every single mail meets any arbitratry criterea to my gmail account with one line of typing. I can't even try to attempt that with windows.
As for support I don't know what age the support people who work at MS are but they sure are some of the most useless people on the planet. Whenever you call MS you spend the first three days trying to convince them that you are actually having a problem with one of their products. The fuckers want to blame everything else except their product. Are you having a problem with access? Oh that's because you installed firefox!.
I have always had fantastic support for my linux apps. In the majority of the cases where I needed help I was able to contact the developers themselves. Frequently my problems get solved by IRC in less time then I would have spent on hold while calling MS.
evil is as evil does
Slashdot is clearly behind the curve on this one.
Point #1: Embedded devices
Do you know what "OS" is running in your digital camera? Your DVD player? Your MP3 player? Your GPS system? In the majority of cases, the answer is no.
Point #2: Web applications
Google search, Google reader, gmail, Flickr, etc. They look the same to me whether I'm running Linux, Unix, OS X, BSD, etc.
Point #3: Cross platform apps
Python coding and development feels the same on Windows, Linux, and OS X. Makes no difference to me. Ditto for editing with vim. Quite a few other languages and applications are identical, too: Inkscape, The Gimp, etc.
This is a pipe dream. The OS will continue to matter as long as there is money to be had by locking customers into a specific platform. As odd as it sounds, many customers WANT to be locked in to a specific vendor.
.NET. Despite the propaganda from Mono, .NET is a Windows-only platform, and will remain so for the foreseeable future. Mono is merely the Wine of the .NET world: you'll hear stories about .NET apps that will run on it, but try as you might you can't get any of the ones you need to run under it. What good is a crossplatform backend when the front end GUI is still inextricably tied to one OS?
Platforms will matter because your applications will remain platform specific. The big push in corporations right now is to migrate everything to
If major web sites and applications are still coding for specific browsers, my hopes for a cross-platform world where OS doesn't matter are very very slim.
A Government Is a Body of People, Usually Notably Ungoverned