I was expecting

Story: The end of the OS is nighTotal Replies: 24
Author Content
cabreh

Aug 31, 2011
9:09 AM EDT
I expected to see an article announcing a fantastic new discovery of a bio computer that would integrate entirely with our bodies so all we would have to do to use it is think about what we wanted.

But no. All it was is another article written by someone who knows nothing about what he/she is talking about.

If humans have to interact with any piece of hardware then there will ALWAYS ALWAYS ALWAYS be an OS. I don't care if the name and the look changes, it IS STILL AN OS.

gus3

Aug 31, 2011
10:12 AM EDT
Sorry, cabreh, but that's just not true. Think: hand-held calculators (not the programmable/graphing kind).
cabreh

Aug 31, 2011
10:32 AM EDT
Are there any of those around these days? Even with those there is something in there that says "you just pressed the 00000100 button, store that in a register, now you pressed the 00000010 button, store that in another register, now you pushed a button that says to multiple the numbers in those registers".

That is an OS.
tuxchick

Aug 31, 2011
10:52 AM EDT
These stories make my head hurt. Like all the others, he thinks Web applications replace operating systems. How can people get paid to write such simpleminded spew.
gus3

Aug 31, 2011
12:14 PM EDT
So you're saying that the handheld that used the 4004 CPU was running an OS in the ROM?

Only by stretching the definition of "operating system".

And yes, handhelds can be bought at any department store checkout, for about US$5. If they're running an OS, I'd be very surprised.
lcafiero

Aug 31, 2011
12:18 PM EDT
My favorite paragraph of the article:

"Of course the operating system will never completely disappear but it will be reduced over time to the status of 'plumbing'; the bits that make all the others bits work. In many ways the operating system will simply be the first application to load when booting up. All the the other applications will use it to launch, and from there on they will run the show (and many of the applications)."

Wait. Did I miss something? All these years I thought that's what the OS was doing already.

Yep, you can drive your car without an engine. Ever watch "The Flintstones"?
skelband

Aug 31, 2011
12:49 PM EDT
Any digital computer has to have an OS and user code.

The thing is though, the distinction is not necessarily that obvious to the casual observer or even to the coder.

Anyone actually trying to program the user experience on a modern calculator would quickly turn into a nutcase if they had to deal with the hardware directly for all their frontline code. You always need some kind of hardware abstraction, to make the device usable to programmers.

The "OS" is there, it just may be rather thin...

Grishnakh

Aug 31, 2011
5:17 PM EDT
cabreh wrote:If humans have to interact with any piece of hardware then there will ALWAYS ALWAYS ALWAYS be an OS.


Wrong.

Operating systems are not a requirement by any means. In fact, prior to only 10 years ago, it was quite common for embedded devices to have capable CPUs, but no OS at all. All the software ran on the "bare metal", that is directly on the CPU. Prior to only 16 years ago, lots of PCs (and prior to about 20 years ago, ALL PCs) had no OS either, only a fake OS called "DOS" which was not an operating system at all, but a program loader that provided a few shared functions that programs could use if they chose to. Even now, lots of very simple embedded devices use simple 8-bit and 16-bit microcontrollers which cannot run an OS. Microchip has a line of simple "PIC" CPUs with only a couple hundred bytes of RAM, and a 2-level deep stack; there's no way to run an OS on those, nor would you want to, but they're quite handy for simple projects.

OSes are very handy, however, if you want to abstract away interfaces to the hardware, and/or you want to run multiple programs simultaneously (this used to be called "time sharing"), and/or you want to allow multiple users to run programs simultaneously. You can still make devices that don't have an OS, and do all the hardware interfacing in your program, but why bother, when you can just use a freely-available OS?

As for the article, the writer is a moron.
idiot article author wrote:Of course the operating system will never completely disappear but it will be reduced over time to the status of “plumbing”; the bits that make all the others bits work. In many ways the operating system will simply be the first application to load when booting up. All the the other applications will use it to launch, and from there on they will run the show (and many of the applications).


"Other applications" will launch and manage other applications? Sorry, but that's called the "operating system" in today's terminology. This guy seems to be calling a bootloader (like U-boot) the "OS" in this paragraph, which is entirely wrong.

I think this guy should avoid writing about software, which he clearly knows nothing about, and focus on writing about other topics, such as celebrities.
BernardSwiss

Aug 31, 2011
7:57 PM EDT
It's called... or at least it used to be called, in the days before "Fox News" and "Reality TV" ...

... as I was saying, it's called "Silly Season" -- those long, hot, slow days of summer (generally August) in which news-makers and news-purveyors are both mostly on vacation, somewhere else, and thus fluffy filler material normally, customarily and rightfully left to be the daily grist for the supermarket tabloids, gets reported as actual news by whoever's left to man the sparsely populated desks, in hope that readers distracted by their own understaffed workplace, their own vacations, family picnics and summer activities will be provoked or cajoled into paying attention for a while.

skelband

Aug 31, 2011
8:02 PM EDT
@Grishnakh: "OSes are very handy, however, if you want to abstract away interfaces to the hardware, and/or you want to run multiple programs simultaneously (this used to be called "time sharing")..."

I think your view of what an OS is is very multi-user, multi-process oriented. This is what we are used to seeing these days, but it wasn't always so.

CP/M, MS-DOS, these were all called operating systems at the time. In my understanding of the terminology, the key is abstraction, not any idea of process or multi-user facilities. In this sense, these very basic pieces of frontline hardware code were OSes. They merely present an interface which makes the use of the hardware more straightforward for the programmer and often (though not necessarily) will provide a measure of portability.
patrokov

Aug 31, 2011
8:26 PM EDT
As a starting point, I'd say that any machine that uses a multi-purpose CPU requires an OS to control what program is running at any time.
gus3

Aug 31, 2011
9:25 PM EDT
Again...

I have a crude version of "Space Invaders" on my desktop system (Athlon64X2 2.5GHz, 4G RAM). The game loads the same way that the Linux kernel loads, with an "image=" stanza in LILO, or a "kernel" statement in GRUB.

"Space Invaders" is not an operating system. It runs on bare metal. IIRC, it doesn't even have the ability to reboot the system.

The CPU is multi-purpose. This version of "Space Invaders" does not require an OS.

The first digital, multi-purpose computers didn't have OS's. They had monitors, which loaded and ran programs on the bare metal, with raw access to the spinning platters or tapes. The push to provide abstractions of the hardware reached fruition in the 1960's. But the computers of the 1950's, before OS's, were just as Turing-complete as the computers of the 1970's.
krisum

Sep 01, 2011
2:59 AM EDT
Though it is possible to design an inbuilt OS in hardware enough to be able to connect to Web and run web apps, experience over the past decades shows it is increasingly impractical to do so for even moderately complex general purpose computing machines. In fact even most specialized device manufacturers have moved towards embedded OSes due to various reasons including economic feasibility, ease of upgrades, fixing issues etc. So unless someone comes up with a better alternative, OSes are not going away anywhere even if one were to dream that web apps will replace desktop someday.
cabreh

Sep 01, 2011
5:39 AM EDT
An OS is not the programs that you run, it is the interface between humans and hardware which allows you to interact with the hardware OR software running on that hardware.

In theory you can have a self-loading program (such as a game on a game console) that has an OS built into it, but there still needs to be an interface between the hardware and the software and humans. Therefore a Space Invaders game cannot be used unless there is an OS providing the interface between what you do on the interface hardware and the game (software) itself.

It matters not if the OS is firmware or software that is loaded. There still MUST be an OS (even an extremely limited one) for you as a human to be able to do anything with the device. Linux kernel and drivers = an OS. Linux distribution != an OS (though it contains one). Only the oldest computers I can remember which looked like they didn't have an OS were computers where you set switches to address registers and enter data. But guess what, even they had what was called a monitor built into a ROM. That was still an OS.
gus3

Sep 01, 2011
12:00 PM EDT
So you're saying that my crude Space Invaders can't manipulate or poll the hardware directly? It absolutely *has* to have an OS to do this?

If that's the case, what does the OS rely on for hardware interfacing?
patrokov

Sep 01, 2011
5:25 PM EDT
Gus3, Did the Commodore 64 has an OS?
gus3

Sep 01, 2011
6:06 PM EDT
At power-on, sort of. It had a "kernal" which provided services to the BASIC interpreter.

GEOS replaced the "kernal" with its own services, and also re-programmed the 1541 disk drive.

It was always possible to re-configure the C64 system, so that it had no operating ROM for system services or BASIC interpreter, so whatever was running had to handle all device I/O on its own.
cabreh

Sep 02, 2011
4:06 AM EDT
The minute you add one peripheral to a basic computer you need an OS of some type. Whether you program it directly into a single application (such as your game console example) or whether you run your programs on top of it makes no never mind.

The cpu doesn't know how to handle or even what a peripheral is. That's what the OS is for. Therefore anything outside a basic cpu/memory unit, anything with say a keyboard or floppy drive or graphics interface or joystick will have an OS. In whatever form it takes.

My problem with the original article was that I believe the author was talking more about desktops and such more than an OS. Therefore the desktop as we know it MAY disappear eventually, but the fact that an OS is needed will not change.
krisum

Sep 02, 2011
1:53 PM EDT
> Whether you program it directly into a single application (such as your game console example)

No, this is incorrect. The term OS refers to a program providing an abstraction that typically loads itself in protected space and intercepts kernel calls (or whatever mechanism being provided) to provide some services to the application. If a game console has some routines that directly access the hardware then it certainly cannot be categorized as an operating system. See more below.

> The cpu doesn't know how to handle or even what a peripheral is. That's what the OS is for.

The primary use of OS today still remains providing a kind of "sandbox" to a program so it can run in its own space without overlapping other programs (unless explicitly intended). To that end memory protection, virtual memory are the probably most important services provided by the OS. Also ultimately the OS also has to invoke some instructions to access the peripherals that are routed through the CPU instruction execution, so it is not accurate to say that CPU does not know about peripherals.

That being said, there does not seem to be any possibility for OSes going away anytime soon given that no alternative concepts have emerged that can better it.
patrokov

Sep 02, 2011
8:18 PM EDT
Gus,

Perhaps we're getting lost in semantics, but my understanding is that with CP/M and PC they were called DOS because one of their major functions was to access outside storage (usually a disk). As computers became more sophisticated, the D was dropped in recognition that the system controlled much more than just disk access.

That's why I asked about the C64. In its stock configuration, the user was able to access outside storage in either tape or disk form, e.g., Load *, 8. It would seem to me that this performs the same function as the DOS on PCs, hence an OS.

Regarding kernel vs OS, most of MS-DOS was outside programs (fdisk.exe, copy.exe, etc.), and command.com seems to have contained the kernel (or perhaps OS core). Similarly RMS complaines that Linux itself is not an OS, but GNU plus Linux is.
gus3

Sep 02, 2011
8:35 PM EDT
In that case, the "operating system" was the embedded system in the 1541/71/81 drive, which had two tasks swapping constantly: managing the disk controller (motor, stepper, and read-write head), and everything else (serial cable I/O, file access, file system management, etc.). It had less RAM and less configurability than the 64, but it was still open to hacking and improvements, like GEOS, TurboDisk, and even playing "Daisy Belle" on the stepper motor.
krisum

Sep 03, 2011
2:26 AM EDT
> Similarly RMS complaines that Linux itself is not an OS, but GNU plus Linux is.

He has deliberately twisted the definition of OS to be fuzzy (which in the technical sense is not) to somehow justify the GNU userland as part of OS (and ignoring plethora of other tools). IMO a better justification of this (rather than the long GNU essays on this) is that Linux strives to be POSIX compliant which cannot be satisfied by the kernel alone.
patrokov

Sep 04, 2011
12:21 PM EDT
Gus, at this point I think that you need to proffer a definition (perhaps illustrated with examples) of what constitutes an OS.

Krisum, I don't really care what RMS thinks. I was just trying to draw a parallel between MS-DOS and Linux in an effort to grep what Gus has in his head regarding OS. Which brings up a really interesting point, to what degree does an OS need an interface in order to be an OS?
gus3

Sep 04, 2011
3:57 PM EDT
It comes down to purpose: If the system has a single purpose, which it carries out with near-autonomy, and which purpose cannot be replaced without a system reset (not even under attack), then that system is a true embedded system without an OS. (But I expect some high availability systems could replace their running images without a reset, even at the risk of corrupted data...)

If the system's purpose can be replaced without a reset, whether by design (on the CLI) or by attack (stack-smashing jump-to-libc exec() call), then the purpose is carried out by an application on top of an OS.

The OS provides services, but not purpose. If the services available are determined solely by the purpose, such that purpose and services are "welded together", I would not be inclined to call that a system with an OS. But if the services are a generic set that might be used by some unspecified purpose, I would call that an OS.

Game consoles occupy a haunted DMZ between these realms, as Sony found out.
krisum

Sep 05, 2011
8:04 AM EDT
> Which brings up a really interesting point, to what degree does an OS need an interface in order to be an OS?

The basic requirement would be that of code that loads in some protected area of the system during startup (so other code cannot overwrite it, though this may not be a strict requirement in some exceptional cases) and remains in the system during its lifetime, while providing some system-level services to other programs that are loaded.

In the extreme case of the system having just a single program and no capability to load any other code, then it itself cannot be termed as an operating system. If the program itself is a kind of interpreter that can load other programs on top abstracting away the underlying hardware, then apart from being an interpreter it can be also seen in the role of an operating system.

For UNIX like OSes the POSIX spec is the most widely used one, and provides a clear definition of the interface expected. Most other OSes don't have a clearcut definition of scope and its up to the provider to define it.

Posting in this forum is limited to members of the group: [ForumMods, SITEADMINS, MEMBERS.]

Becoming a member of LXer is easy and free. Join Us!