How do you Define "Operating System"? 325
Sambo asks: "I read somewhere that the Windows 2000 operating system will have around 40 million lines of code. That seems like a lot. How is the term "Operating System" defined these days? Does it just mean any application that will fit on the CD-ROM? Do web browsers, media players, games or even the GUI itself fall under the definition?" I've always defined the operating system as "the set of services and routines needed to load and execute applications". The trickier question is deciding what is and is not an "application".
refined definition (Score:1)
Maybe I add something to the debate.
Computing machines can run any number of flexible programs across periods of time.
Perhaps the operating system can be defined as that immovable software that is required for all other transient software.
In the case of the Turing machine, the hardware is the tape, and the operating system is the set of programmatic rules about how to interpret and move around the tape. Without that, it would not be possible to implement transient programs.
In the case of the PC, the hardware includes physical processor, I/O, support chips, etc. The operating system consists of device drivers, scheduling software, file system support, network support ... all of which are needed to implement transient programs (browsers, word processors, etc).
The problem is blurred because over time, the levels of abstract (as occurs in everythng in life) are generally moved. So now, networking becomes a fundamental part of the system, not considered an 'add on', so is subsumed into the operating system.
I would agree that the GUI can be considered not a neccessary part of the O/S. The low level mechanisms used to access the display system are part of the O/S, but as any number of GUI's could be added, then it seems that that it is not a 'neccessary' part (okay, you can argue that even the display system API is not a 'necessary part', but really it is so fundamental to a system that has display capabilities, and because there can be different types of display capabilities, then the logical place for this is in the operating system).
This seems to lead to the central thesis in the argument: The operating system mediates between the physical system and the software system. The operating system may not account for "all" mediation needs, but it will serve the vast majority as subject to various technical/commercial tradeoffs. The operating system may go beyond this basic level of support to provide addition facilities (e.g. GUI).
Just my comment! M.
It's whatever you need to OPERATE the SYSTEM (Score:1)
a thing. Anything you need (once you have control)
to process a document of any sort is not strictly
speaking part of the OS - it's an app.
That's how I see it.
+AndyJ+
You are one of the "eteet"? (Score:2)
- A.P.
--
"One World, one Web, one Program" - Microsoft promotional ad
Hi, Microsoft PR (Score:1)
Excuse me? You call Windows Explorer not an application but you all the replacement Windows/IE explorer hybrid an application? How so mr DOJ/Sun/Netscape/Oracle/Sun person?
Hello?
Re:Minimalistic (Score:1)
M$ went through a huge amount of work trying to make the browser part of the operating system, but the only thing they really did was to take required subroutines from the browser and put them in the system DLLs. This can only marginally be considered an advance of the operating system, since all it really does is make the ability to browse available to applications besides the browser (browse from inside your spreadsheet or word processor). This is not especially unique, and certainly not unique to operating systems - both Adobe Acrobat and RealVideo can appear inside other applications, provided the application is designed with hooks to allow it.
Yes, GUI can be part of the operating system. Look at the Mac.
Compilers are applications.
...phil
Re:Minimalistic (Score:1)
...phil
OS ? (Score:1)
So we can see that everybody here are mixing what they think with reality, and there are fluctuations in the consistency of their definition. So what is an OS ? I'm too young to answere that. BUT we can observe the OS concept has changed over time and every OS developer team adopts a diferent strategy. Look at monolitic(LINUX) and microkernel(QNX) OS'es for example. The common denominator of all OS'es is the answere ? Maybe. It's hard to draw a line betwen OS and APLICATIONS with all those flying DLL in NT/WIN95. It's stupid to settle for an OS wich can be crashed by the smallest aplication.
Anything that is said to run other programs. (Score:1)
I am reading HACKERS, a nice book that has hacking at MIT in the fifties and sixties as its beginning. It mentions the time-sharing systems that the hackers loathed. (However, in the end, they themselves created ITS (the Incompatible Time-sharing System)).
Before time sharing, one program ran on the computer, unless it was a debugger or the like.
With ITS around, many programs could run at the same time. However, terminology can play a fun game. The PDP-6 itself was only running ITS. ITS was runing other programs.
You may ask then, "how can a program run other programs?". In the spirit of Socrates I'll tell you that if you ask that, you already have the answer.
And that is an Operating System.
Is WINE an OS? No, its an emulator. (Or is it?
Is Linux under vmware an OS, yes. The virtual computer is another story, however.
Just some thoughts.
Re:Depends on how you want to look at it (Score:1)
It's himem.sys and emm386.exe. They're only needed if you want to use high memory, EMS, or XMS, if I remember correctly. You could find replacements for that too, or for the whole thing, like DR-DOS, or FreeDOS, or OpenDOS (or whatever the hell they call it now). They aren't bug-for-bug compatible with the holy MS-DOS 6.22 (last known good DOS), but they're generally good enough.
I suppose next you'll be telling me that the original Unix operating system consisted only of the kernel, and the rest was just add-ons... That's one point of view, but not a very useful one. You might need those basic system tools that were written in assembler, since the OS was created as a development platform for itself, and therefore it was needed to accomplish its goals.
---
pb Reply rather than vaguely moderate me.
Now, looking at Microsoft... (Score:1)
Ok, I'll agree that an OS can mean different things in different contexts and to different people. There's very little that you can dispute when it comes to definitions of this sort. They get blurred all the time.
I'm not trying to say that truth is relative, but rather that perspective and intent count for a lot here.
This is where I think you hit on the one thing that definitely drives straight to the heart of the Microsoft/DOJ matter. An OS maker could make everything an integral part of the OS if they so desired. That's why the DOJ had to go to the lengths that they did in order to prove that the intent behind the integration of IE was to harm Netscape. Intent is very important. Intent is the difference between murder and manslaughter (or in this case between anti-competitive behavior and "innovation"). I think that just about anything that a company says is an OS must be accepted as an OS. If they've done something like Microsoft did, and it looks like they may have broken the law, then the prosecutor will have to prove why they did it. Simply showing that they did it is not enough.
Re:The OS is the kernel + currently loaded modules (Score:2)
>the monitor, it could be argued that XFree86 is
>part of the operating system. And I think
>personally that it is. But only while you're
>actually using it.
Even tho it doesn't run in kernel space? I'm
not sure I agree with you on at least this point.
Fundamental divisions (Score:3)
The definition of an OS is a very murky and grey thing. A look at seperable componants would be in order here.
In some systems, various items above are combined into one (for better or worse), or an item may become mostly a stub. It is also possable to have more than one of some of the items stacked together such as bash->X->WindowMaker or xdm->X->WindowMaker.
In an embedded systym, some custom program replaces init and provides every layer above the kernel.
Some systems violate the layering by sprinkling callbacks all over the place or through inconsistant policy wrt. what handles what (*cough* Windows *cough*) That doesn't make the model go away (as much as MS's legal department wants it to), it just makes a system ill-defined and kludgy. Even those systems can (with herculian effort) be seperated. Win '95 HAS been run on top of DR DOS (I don't have the references handy) and the browser HAS been split out of Win '98 (with great difficulty).
It IS vaguely possable to split the 'window manager' out of Win '95 and insert another though MS certainly goes out of it's way to make that hard to do. You can boot Win '95 into 'DOS mode' which is actually a conglomerate of DOS itself, and a few 32 bit extensions from Windows itself.
A well integrated system doesn't have to be sloppy like Windows. For example, I consider O2 with IRIX and 4dwm to be a well integrated system, but it is quite easy to replace the system utilities and shell with parts of the GNU system, and still have a nice, well integrated system. It's also possable to use a different window manager if for some odd reason you don't like 4dwm.
Now that we;ve defined a few basic terms, we get to decide which of the basic componants make up an Operating System. Personally, I would call it kernel + init + system libraries +system utilities. That does NOT include the shell! (be it text or GUI).
I'm done rambling now.
Re:OS implies everything (Score:2)
>that is needed to bring the System into an
>Operattional state,
So for windows, a small army of tech support folks are part of the operating system?
what defines an operating system (Score:1)
this basically narrows down to the kernel.
i personally count "operating system" to mean the kernel + a shell.
in the case of windows 95/98, this means dos.
in the case of windows nt 4.0, this counts the gui i guess.
in the case of linux/unix, i would say a minimalistic operating system is kernel +
smash (operating system = software required to "operate" your system this just mean device drivers + kernel?
Re:Java? Kernel Modules? Just kernel+/bin/sh? (Score:1)
it runs on your OS to simulate a machine which does not exist. in theory you could run another OS by using the java virtual machine.
smash(thats my take)
Re:Java? Kernel Modules? Just kernel+/bin/sh? (Score:1)
if all I want to use is echo to write and read text files, then the kernel +
smash
Correct use vs common use (Score:3)
However, the common use of the phrase seems to include all the basic tools.
Therefore, the "OS" of the average Linux box could be said to include the kernel, the shell, the basic shell and text utils, filesystem utils etc.
This is why RMS harps on about "GNU/Linux", since the FSF wrote all the GNU stuff to be part of the "GNU Operating System", and it's all in almost every Linux distribution.
IMHO, X, Window managers etc are a bit of a grey area. You *could* say they were part of the OS, but it's pushing it a bit.
As far as Windows is concerned, I the boundaries are harder to see -- isn't the GUI part of the kernel? Whatever, notepad.exe is on the CD, and that is not part of the OS.
--
Operating System (Score:3)
An Operating System is the name given to a collection, consisting of one or more programs, which:
For Multi-Processing OS', the additional are also required:
For Parallel Processing OS', a further set of requirement is present:
Exactly how any of these are implemented, or the exact interpretation, depends on what exactly the OS is trying to do, and how it's written.
Re:Kernelspace vs. Userspace (Score:1)
Operating Environment (Score:2)
The definition of an OS? (Score:2)
As such, an OS has three parts to it. The drivers deal with the hardware. The kernel deals with the software. And lastly, the interfaces deal with the user.
To my mind, something is part if the operating system if, by removing it, the machine becomes unusable. Remove the drivers, and your machine won't boot. I'd certainly love to see someone here boot Linux without a kernel. And if you remove X and all of the shells, the OS is still unusable.
Where does Linux fit in? I don't see the kernel as a total operating system. I see Linux itself as highly modular, where interfaces, kernels, and even drivers can be mixed and matched almost at will. But it still takes all three, at least in some form or another, to truly make an OS. It's a system in the truest sense of the word: many programs combine to handle mediation tasks, rather than one large program (as with MacOS or PalmOS or WinCE).
whatever a vendor packages. (Score:1)
Rather it's about what a reseller is allowed to do with your OS. I can buy Pepsi in plastic bottles by the case and sell it in paper cups and keep the plastic for my own sic fetish. Pepsi would never even blink.
MS on the other hand told OEMs to install the Browser at a time when it was an optional component. Optional means that people who don't go online ( they exist, honest ) or use Netscape could leave the MSIE CD in it's own little plastic wrapper.
Yes it's part of the OS. No you don't have to install it. Next some Linux distributor is going to tell VAReserch that they _must_ install sound support ( Part of the Kernel for you minimalists ).
Its an abstraction layer (Score:1)
Re:According to Tanenbaum & Woodhull (Score:1)
Java was initially designed to be standalone (Score:1)
Re:Java was initially designed to be standalone (Score:1)
Re:Def from operating system concepts (Score:1)
Actually, an OS can be an OS without loading user programs. Take an embedded OS. All it really needs to do is respond to IO (interact with hardware) and can have nothing at all to do with the user (a user can even be absent entirely from the equation.
As Science-Fiction (Score:2)
The concept varies widely with time. In a time, the disk system was not part of the OS. In some OSes, the graphic system or the communications is.
--
Re:Operating Environment (Score:2)
...which isn't what Sun refers to when they say "OS"; "SunOS" includes more than just "/vmunix" plus loadable kernel modules (pre-5.0) or "/kernel/{gen}unix" plus loadable kernel modules (5.0 and later) - it includes a pile of shared libraries, as well as daemons and utilities.
"Solaris" is "SunOS" plus the window system (X server, API libraries, window managers, file managers, GUI utilities, ...).
Note that the SunOS API is implemented by the shared libraries and kernel code below it - the API is more than just the system calls, and Sun may well change the implementation of those APIs in ways that would, say, cause statically-linked programs, or programs that duplicate the functions of those APIs by directly making system calls, not to work on later OS releases.
Kernelspace vs. Userspace (Score:1)
Think of a microkernel os like NT (couldn't help myself :-) ). The kernel really doesn't do that much without the userland device drivers.
So I wouldn't call a microkernel kernel an os. But there definately are microkernel os:s around so it seems an os is not completely is kernelspace.
Therefore I think that X could be considered a part of 'the Linux os', but I wouldn't go as far as to include qt or gtk - just as I wouldn't include bash.
--
Pirkka
My personal definition (Score:2)
Now, that's just the functional part of the OS proper. When I refer to Linux, I usually refer to a relatively complete operating environment - namely, the operating system and the parts that make Linux Linux, such as fvwm2 and esd and so forth, and maybe even for the more directly-used programs such as Netscape and GIMP. It also includes unique characteristics of the sum total Linux experience; you can have a Linux system without gcc/g++, but then you can't compile all that wonderful free software (though I rarely do anyway, being a die-hard Debian user with a serious apt habit).
I know, it's a very vague definition, but it's a very vague concept. That and it's 6:20 AM and my sleep schedule is fscked lately. :)
---
"'Is not a quine' is not a quine" is a quine.
Re:My own personal definition (Score:2)
Well, isn't that what an X server does? It communicates with your graphics card and makes it work. Thus, X11 (maybe I should have been more specific and said 'the X11 server') is part of the OS.
Of course, even for windows, things like drivers etc, are part of the OS. But something like explorer is not, because it allready is high enough level to do things you don't specifically tell it to do. Application that take away action/control from the end-user, are exactly that, applications and no part of the OS.
Well, XFree86 is mostly a collection of large drivers, in the form of X11 servers. :) As far as taking away action or control from the end user, mmap() takes control away from me - I can't specify which pages are loaded into memory at any given time, for example; it's an abstraction of the low-level paging code. Also, doesn't sh and ls take away my complete control? They both identify inodes and content of files and deal with them in appropriate ways, rather than allowing me to specify what happens with the bits. :)
So the OS basically entails in my definition: The runtime system, drivers and a shell to communicate with the user.
Your definition is even wider than mine, then; explorer.exe is a shell, albeit a graphical one. I classify that as part of the operating environment, the part which makes an OS useful.
---
"'Is not a quine' is not a quine" is a quine.
An Application Is... (Score:1)
IMO, an "Application" is anything that the user might want to use as an end, rather than a means. That classifies a web browser as an application, IMO. Also, Notepad, Minesweeper, etc., but not Windows Explorer. The fact that MICROS~1 merged the two functions into one
Re:An Application Is... (Score:1)
Not quite - IE4 is part application, part system utility, part graphical OS shell. IMO, Microsoft should have been slapped on the wrist for integrating it all into Win98, as that was an abuse of monopoly power to force out Netscape.
An operating system is... (Score:1)
Whatever is needed to run an addictive console game.
Under Windows, you need DOS+Windows+Solitaire.
Under Linux, you need Linux+X+Same.
=)
Chas - The one, the only.
THANK GOD!!!
Re:Correct use vs common use (Score:1)
In strict computer science terms, the kernel is the OS.
I'm wondering where you got this impression. Where would microkernel operating systems fit into this description? QNX certainly doesn't qualify as an operating system if you only load the kernel, because it can't do ANYTHING without the process scheduler loaded as well.
I have taken numerous courses on operating systems theory at the graduate and undergraduate level, and I have heard many different definitions of what an operating system is, but I've never heard anyone claim that the OS is just the kernel. (Generally, most computer scientists tend to agree that the concept of "operating system" is vague, and it is impossible to provide a single, universal definition of the term.)
The "strict computer science term" for the portion of the operating system you refer to as the kernel is . . . . . .
"The Kernel"
Re:What about $$$$NetWare$$$$? (Score:1)
Re:frontslash, backslash (Score:1)
Re:Moderators (Score:1)
Simple: Read Judge Jackson's definition. (Score:1)
Roger.
The concept is not characterized by features (Score:1)
The bottom line is that: the OS is the set of behaviors, whatever it be, that anyone can expect from any computer in a given set. Technical considerations of separation into kernel [tunes.org] and applications and drivers and daemons and whatever are mostly irrelevant here. They are relevant to internal design of an OS, not to the definition of an OS as a class of externally observable phenomena (unless of course you believe that OSes are only observable by people keen in their internal design).
As progress comes (and goes), the operating system has included an increasing (and sometimes decreasing) amount of features, and been designed in more and more complex ways. From the times of hand-switching programs into memory, to interactive monitors, to batch processors, to time-sharing systems, to virtual machine systems (even recursive virtual machines on some mainframes), there has been a lot of change in OS structure. As for features, structured persistent storage (filesystems) were sure not part of early system monitors; "disk"-managing operating systems were such an exception for micro-computers that they had to be explicitly named so in the early eighties (anyone remember Apple DOS 3.3? MS-DOS 2.x?). Today, it's taken for granted. Same goes for multiprogramming, for virtual memory, for (yuck) integrated bitmapped GUI, for TCP/IP networking, for package management, computer clustering, high-availability, device pluggability, autoconfigured wireless connectivity, palm computing, home-appliance connectivity, speech control, orthogonal persistence, process migration, automatic binary/source/specification consistency management, integrated metaprogramming, etc.
Feature- and design- based characterizations of the concept of an OS are doomed, because they are inherently short-sighted. Which is precisely what allows features to characterize specific instances of "OS" by their feature: any number can play, hence a fruitful competition (well, in absence of protection barriers such as so-called intellectual property, and of technological barriers they induce such as standardization on low-level languages like C).
-- Faré @ TUNES [tunes.org].org
Re:Nope: It's the SYSTEM that OPERATES (Score:1)
I find it difficult to believe Win2000 is nothing more then finally bringing NT code up to date... Its a hack on top of NT... a pathetic one at that, 40 million lines of code? For what? Menu shading and DirectX support... Win9x doesn't take 40 million lines of code... I guess theres alot of work to put shades on those menus... Must require alot of memory and processing power too... compared to NT4...
Actaully, I think its more along lines of Win98 is a DOS GUI application, Explorer is the shell. In the unix world, X is the GUI for the OS, and gnome in this case is nothing more then an eviroment... gnome is not a gui, it is not an os it isn't a window manager... its an enviroment that encompesses alot more then any of the singular parts. It brings the OS, GUI and WindowManager together for the end user to control, navigate and use.
Whilest everyone I think can agree that Gnome is most definatly not part of any operating system, or GUI, it is used within the GUI to provide usability to the end use... much like IE4/5 do in windows (Wheather you like it or not, IE4/5 integration DID help your average Joe NON-techie computer user). The difference between Gnome integration and IE4/5 integration is this... Gnome is optional, you choose to install and use it, and you choose what parts you want to use and what parts you don't want.
Too bad Microsoft seems to think we want to use ALL of thier crap.
"OS" vs. "System Software" (Score:2)
But I still like to think of the OS as something akin to the Tannenbaum definition (kernel, modules, and a subset of daemons). But something like a Linux distribution, which includes so much more, I prefer to think of as "System Software".
I really cringe when I see an article that says something like "RedHat Linux OS"; that just ain't so. The "OS" in RH distro is arguably the same one in Suse or Debian or Slackware, etc. It's all the "extras" and configurations that set the distros apart from eachother.
So maybe it would be neat to see something like "Debian distribution featuring Linux OS and GNU system software."
???
Re:Minimalistic (Score:1)
Re:Correct use vs common use (Score:1)
Re:Depends on how you want to look at it (Score:1)
Re:Disk Operating System vs. Operating System (Score:1)
Not only can command.com be bypassed, I would recommend replacing it by JP Software's 4DOS which offer superior facilities.
Certainly not! (Score:1)
OSs are for Wimps! (Score:1)
Chuck
Seriously - I wanna PDP-8
Re:Def from operating system concepts (Score:1)
but i've still never quite understood how the authors made the leap from operating systems to dinosaurs... and i don't recall finding any answer to that question inside the book...
Operating System is everything! (Score:1)
It controls programs.
It does everything for you.
It thinks for you.
It makes a lot of beautiful things for you.
It plays for you.
Well it does everything for you...
So why it should care for you?..
Incorrect (Score:2)
Of course, Microsoft will define anything it finds legally convinient as part of the OS, but lets face it, an OS such as Linux can perform a large number of tasks quite well without even a shell, much less such useful utilities as "ls". Of course, maintenance is more difficult in those situations, but programs designed to make our adminstrative tasks easier (or even possible) are not necessarilly a part of the operating system itself.
Perhaps the clearest example of this are some embedded systems, where one may have to boot off of a DOS disk to run a flash utility to perform maintenance or upgrades, yet these utilities (even the DOS program loader) are quite often not a part of the embedded operating system the device runs when performing day to day tasks. An external utility to allow an engineer to perform needed tasks on an as-needed basis, but having nothing to do with the OS proper.
Re:OS implies everything (Score:2)
A reasonable definition. That would mean the number of lines of Win2k that are part of the operating system equal to either NaN or 0. After all, even if you execute all 40,000,000 lines of code, you still don't have a operational system. Unless one cosiders a frozen error dump on a blue background operational.
A Matter of Perspective and Not Expecting Too Much (Score:1)
1. Bottom Up. These are the BIOS and kernel folks. They want to cover up the hardware and very little more.
2. Sideways. These are the "I fire up my computer, the OS is what I see before I start to do anything."-folks.
3. Top down. Services provided to make writing applications easier and more orderly.
This last one has a certain appeal, for it remembers that computers are extensible, that their key value is in how they can be applied in unanticipated ways.
All seem to have something going for them--if you look at the computer from their perspective. So what do we get if we try to launder out the perspective differences, what is left?
Here is my stab at a definition: The OS is the general purpose software that supports the extension of a computer's abilities.
This usually includes hardware abstraction and resource management.
It usually includes functions that each programmer isn't expected to have to write from scratch: math libraries, a GUI, file systems, networking.
It may include ways to extending the OS itself: facilities for adding shared libraries or drivers.
It may be argued to not exist: My digital cellphone has no visible OS; the folks who programmed it certainly worked with a hardware layer and likely a kernel, but once it is sealed up and handed to me the OS might as well not exist, it becomes a single use appliance and it becomes a bit silly to try point out the OS anymore.
This isn't a perfect definition, but it captures much of people think of when they think "operating system", and it is rich enough to have some conceptual value.
-kb, the Kent who has ideas about what future OSs should do too.
Operating Systems and Environments (Score:2)
I personally think that calling Windows 98 and Linux operating systems is a misnomer. Sun gets it right by calling Solaris an operating environment. Win98 and Linux should also be called environments because they contain much more than a kernel and device drivers. The system on which they operate is respective to their kernel but the interface layer is the environment you're using. Thats my take on it.
Well, let's ask Judge Jackson (Score:3)
You want to know what an Operating System is? Here's the definitive definition, from Judge Jackson:
All you software engineers can now sit down. You don't count.Re:It's simple... (Score:1)
A penguin, by any other name, would smell as sweet. (or something)
Know what an application is? (Score:2)
Yes, of course you do. The operating system is everything else.
---
It's a continuum (Score:2)
Some utilities are typically delivered with operating ststems. These utilities are basic user programs that either configure the system or allow the user to manage operating system-managed objects like files and permissions.
Middleware like Java is in between these as it exposes APIs but dosn't interact with users.
OS-like
kernel and drivers and X
Java and window managers
utilities
browsers (like IE) and games
Application-like
A Metaphor (Score:1)
(And now for a little bit of sortof self-promotiing but hopefully also interesting stuff)...
There's a metaphor I used in an OSNews article I wrote a while back [he.net]. The article was on Microsoft's claim that IE was part of their OS. The metaphor was: a radio isn't part of a car's engine. Read the article for the full effect. OK, it's true that it's flawed in some ways, but I still think that it provides some insight and food for thought.
OS != OS addons or applications (Score:1)
Quick summary of this article
To quickly summarize this article in a way we all know something about:
The "OS" can be thought of as several things
To me, the OS can be separated into several items:
One may also remember that the OS vendor may or may not include variour applications, which provides the OS user which something that can actually USE the hardware located underneath the OS.
What does this really mean?
Comparing this to the current Microsoft trial, it is pretty obvious that IE 4.0 is only a vendor-supplied application to the Windows 95/98 OS.
But when it comes to the Windows 98 product, I must admit that I know too little about that product to be really sure. However, since it has been shown in the Microsoft trial that the code behing the IE 5.0 APIs can be replaced by third-party "dummy" code without changeing the functionality of the OS, the IE 5.0 API's clearly belong to the vendor-recommended API's.
The IE 5.0 application (which allows the user to surf the net etc and uses some (most?) of the IE 5.0 API's), is only a vendor-supplied application.
The kernel and device drivers
I do not think anyone will argue that this is part of the operating system, if we only include low-level API's (read one sector of first unit on SCSI device 0, memory allocation, task management etc etc) that hide the hardware from the application.
On any Intel platform, I think that the BIOS fits perfectly into this category.
For Linux users, I believe that the /dev files fall under this category. Since the POSIX APIs are used on most UNIX systems, I think they should be classified into this as well for that kind of operating systems.
Most Amiga users also find that all .libraries present in the Kickstart ROM (the task scheduler and the utility functions of exec.library, the graphics I/O routines of graphics.library, GUI interface of intuition.library, file-systems and file-management functions of dos.library etc) are part of this category. But the Amigans probably don't think that the fopen() functions are part of the OS. They are just another level above the AmigaOS's real Open() functions.
Vendor-recommended API's
These API's and the code executed are any API's that really don't depend on the underlying hardware. The executed code just use the official API's of the Kernel and device drivers instead.
In this category of API's are the API's that the supplier of the kernel and device-driver API's also ship as a service to the application developers in order to shorten the application development time for the OS.
Since these are not actually required for the OS to work , most users might think that these can be thrown out. That is really possible! However; since the API's are supplied by the vendors of the OS at no extra cost to the application developers, it is very likely that third-party application developers will depend on them for their applications.
On the other hand - the user may replace the code with third party code which performs the same task in a different way, allowing more customization or additional features through new - third party supplied - API's.
The latter rather common amongs Amiga users thanks to the very open architecture of the AmigaOS. For Linux users, one may think of the swapping of window managers in this way.
To this group, one may also add the kind of external vendor-supplied applications (cat, sort, head etc) that performs a specific task based on input and returns a parseable result similar to an ordinary API, to be used by third-party applications.
Third party API's
These are normally not really a part of the OS, but sometimes these takes on similar responsibilities as the recommended API's, and in some cases even adds to the kernel or device driver API's.
Depending on their popularity amongs other third-party developers, they will be more or less required by third-party applications.
In the Amiga environment the ARP.library or MUI.library are perfect examples of these. For most Unix-users, metamail or PGP is a decent example. The Windows environment almost completely lacks this type of API's, or they are camouflaged into application-specific DLL's.
Software designer
Re: Then is the bios an operating system? (Score:1)
HURD is not an operating system. (Score:1)
A true geek doesn't use a mouse! (Score:1)
Re:Java? (Score:1)
Compilers (Score:1)
Re:OSs are for Wimps! (Score:1)
Re:OSs are for Wimps! (Score:1)
The Tao. (Score:1)
2. User can exist without an OS. User can exist without a computer. OS can exist without a user. But when OS can exist without a computer user is not needed any longer.
3. If OS crashes in on a computer that is never used , does it still crash?
4. You can call OS names, but there is still a W between O and S in Windows.
5. All is OS. Browser is OS, Word Processor is OS, Spreadsheet editor is OS, Real time manager of Jello production conveyer is an OS. But OS is not anymore.
6. Computer that says "No Operating System Found" is liying to you for something has written those words on the screen.
7. OS can be within OS. OS can be without OS.
8. Users are not made for OS. OS is not made for users.
9. One can create an OS.
10. There was time when OS wasn't. There will be time when OS is no more.
Re:It's all advertising (Score:2)
-Dan
Re:OS implies everything (Score:2)
So W2K will only be 30 million lines of code?
GNU/Linux is not a "marketing definiton" (Score:2)
I don't think even RMS argues that s/linux/GNU\/Linux/imgo. Rather, he uses the correct definition. Linux is the kernel, and because much of the software is part of the GNU project (to provide a free software Unix (that isn't Unix)), the entire system is GNU/Linux, or a Linux-based GNU system.
The problem is that much of the software on your average distro CD is not GNU software. GNU shouldn't get credit for all the non-kernel software in the distro. That's why I say "Linux" or "Linux distribution", depending on whether the person(s) I'm speaking to understands the difference between the operating system and the distribution.
Distinction between "Application" and "OS" (Score:1)
Most daemons, for example, could be considered part of the Linux (or *nix, *bsd...) operating systems. In the case in winnt, all its services would fall into the same class. Anything that sets up a protocol (netbios, http, etc) or allows low-level access to hardware is also part of the OS, or at least could conceivably be made to part of it in the future (since you might have to install a web server on an OS that doesn't have one)
Most things that can't be installed off the OS cd I'd consider an application until it gets included with the rest of the OS on a future version.
Anything that makes USE of said protocols or services are applications. For me, I'd consider window managers applications since they use the XServer, which I'd consider part of the OS. IE is most definately NOT part of the OS :)
This works as a general rule, but I'm sure there are some greyer areas...
Operating System (Score:1)
...Is the core-software that allows a user to operate a system.
This would involve:
Ability to run other binary executables.
Ability to perform simple file storage operations.
Ability to access standard communication ports.
Provide a structure to allow support for other devices through third party software.
Re:Def from operating system concepts (Score:1)
yes I agree, but that part was the *purpose* of the OS.
They defined the OS itself as the first lines i quoted.
Def from operating system concepts (Score:3)
Operating system concepts (dinosaur book...) by Silberschatz Galvin says:
and
Re:Distinction between "Application" and "OS" (Score:1)
Maybe not in the OS you make. But since OS is a vaguely defined term, shouldn't the creator of the OS decide what's part of the OS, and what isn't?
Does it really matter?
-- Abigail
Re:The OS is the kernel + currently loaded modules (Score:1)
Sun doesn't share your opinion. They sell you Solaris, which includes SunOS, and some packages. As the name indicates, SunOS is the OS, and it doesn't include openwin (Sun's X package). However, I do not know what else besides the kernel makes SunOS. And AFAIK, you cannot get SunOS, without getting Solaris.
-- Abigail
Java? Kernel Modules? Just kernel+/bin/sh? (Score:2)
How about kernel modules? Are they part of the operating system? Even if they just add nifty features to the computer and don't actually deal with hardware?
And to the guy that said only the kernel and a
I remember back in high-school they taught about 'application software' and 'system software' but it's a very fuzzy line and I don't think I've ever heard a definition that satisfies..
It's all relative (Score:2)
Opinions are like...well, you've all heard that one. ;-) Here's mine.
Several posters have already tried to make a distinction between "kernel" and "OS", and I think this distinction is becoming more and more accepted in the computing community. In five years it seems likely that nobody but dinosaurs will consider the two terms interchangeable.
To me, an OS is the set of software that makes hardware suitable for its intended application(s). This makes the definition very relative to what the hardware's intended applications actually are. Some examples:
Defining kernel is another problem. The standard definition is "code that runs in a privileged processor mode". This definition has a few weaknesses - it would make everything in our hard-realtime example "part of the kernel" and it doesn't distinguish between loadable and permanent code - but overall it's pretty good. Perhaps a slightly more accurate though more cumbersome definition would be "the privileged monolithic code which maps between the actual hardware and a set of well-defined abstractions of that hardware [e.g. virtual memory and device driver interfaces]".
A mathematical analogy (Score:2)
I will take a linear algebra analogy. Suppose you want to define a two dimensional space (a plane), two vectors are necessary and sufficient: every other vector is a linear combination of these two (unit) vectors. Let the cost of implementing a vector be sum of the absolute value of the coefficients. For example, (5,6)=5*(1,0)+6*(0,1): so the cost is 11=5+6. But this would be a minimilistic implementation. Suppose I observe the vector (7,43) is a useful one, I would be tempted to include (7,43) along with the unit vectors (0,1) and (1,0). This would of course bring down the cost of implementing many vectors. And in this way, we can keep adding vectors because we want to make it easy for the linear algebraist.
Mathematics stops here and engineering takes over: it turns out that implementing (7,43) costs more than one unit in the kernel; but instead of costing 50 units, it costs only 46 units to implement it within the kernel. This is a good reason as any to include it there. Over time, we find Finally, we have the vectors (0,1) (1,0) (7,43) (34, 78) (1001,590) (12347,34578) with varying costs 1,2,46,90,1200 and 40000. Now we need to implement (1023455,21314324). What is the "best way" of doing this with the current set of primitives? OK, we can solve a linear program here; but that is complex! You see, for a long, long time nobody knew that linear programming can be solved efficiently!! (No, simplex takes exponetial time.)
Do we want a browser in the OS? Do we want (1023455,21314324) as one of our primitive vectors? In the long run, this sort of ad-hoc add-ons only make a programmers life miserable.
Of course, there is a cause for adding a set of vectors into the basis in a planned fashion. For example, (1,0) (2,0) (4,0) (8,0) (0,1) (0,2) etc.. would make a nice set and allows a progrmmer to be productive.
So if Windows 2000 has 40 million lines of code, how can we react except pray...
Provide/restrict access to a computer's resources? (Score:2)
Editors, file managers, and browsers are nice to have, but are not part of the OS proper. An operating system doesn't imply any particular type of usage -- such as interactive human control. An OS that controls an embedded system, for example, is no less an OS than the OS that controls the interactive sessions on a graphical workstation. An application program is just as valid a user to the OS whether or not it has a human behind it.
The proper definition of OS is the one that matches all instances of an OS -- without extensions and exceptions. The proper definition also draws a consistent line between applications and the OS. Otherwise we can dispense with the redundant terms.
I would suggest that what marketing calls an "operating system" today is more properly called a "distribution" of applications and an operating system. Further, if the strict definition of "controlling and providing access to resources" is used, some so-called operating systems don't actually qualify for the term. I don't consider that a problem. After all, we must have some standards.
Re:Well Informed Judge Jackson/Utils are a part of (Score:2)
Think about Linux distros for a second, they sell as "Operating Systems", right?
Now, how much software is included with the full version of SuSE 6.2? The answer is 4 CDs worth, plus source.
If SuSE gets to include all that stuff as part of their O/S, then why shouldn't Microsoft fill their one measily CD?
Throwing in free apps with an O/S helps the consumer, as long as those apps are *optional* and *replacable*.
Operating Systems Concepts (Score:2)
What is an Operating System?
A program that acts as an intermediary between a user of a computer and the computer hardware.
Operating system goals:
- Execute user programs and make solving user problems easier.
- Make the computer system convenient to use.
Use the computer hardware in an efficient manner.
In general there are two definitions:
1) an OS is what makes the hardware useable
2) the OS is the environment and API in which programs are able to run
In practice it is typically both (although different components do different things within).
Re:Operating Systems Concepts (Score:2)
User space versus system space (Score:5)
Another way to look at it is that whatever your vendor includes with the base "system" release is the operating system. That means things like /bin/cat become the operating system, but at least on some system, /usr/bin/cc does not, because it's an "optional" product. If you get one CD from the vendor that says Base O/S, and another that says Development Tools, and still another that says User Contributed Software, you're probably going to end up thinking that the first CD comprises the operating system, but the other two do not. Of course, if you look carefully, you'll find that the first one contains /usr/games/rogue and /usr/games/fortune, but hey, your vendor put them on the O/S CD, so O/S they must be, eh? :-)
One more way to think of this, and one no doubt that the Evil Empire would appreciate, is that if you cannot remove it and have the system still run ok, then it's part of the O/S. If it can be removed without hurting anything, you're not talking the operating system. For example, if you wipe /dev, your system won't run anymore, so those files must be pieces of the operating system. If you remove /etc/rc* and /bin/sh and /sbin/init, you'll have problems booting, so they must be part of the operating system.
But this is really a fuzzy thing. If I remove emacs, which the system did not come with, then the O/S still runs fine, but I've got one user who would just flip. Likewise KDE.
I think most users would consider anything in the system directories to be part of the operating system, even when these programs aren't executing in kernel space. Of course, a kernel hacker isn't going to be so quick say that. He's likely to tell you that if it's in kernel mode, it's the kernel, and that's all there is. He'll run commands like:
And say that those are part of the O/S. A sysadmin will cat outSo the answer to "what's an operating system" really varies dramatically depending on the purpose of the querent and the background of the queried. I'm not trying to say that truth is relative, but rather that perspective and intent count for a lot here. You'll never convince your grandmother that that solitaire program her computer came with isn't part of the (operating) system she bought, but you'll never convince a kernel hacker that xbill is the operating system.
It might be more useful to stop thinking in terms of "operating systems" and consider instead terms such as "platform" or "environment". Why? Well, that way you can distinguish between a system with say, an a.out and libc environment and one with an elf and glibc environment, despite the fact that they might both run the same kernels. It's a useful distinction, but it's not something uname is going to tell you about.
Re:My definition (Score:2)
Hmmm... I think that's about half right. Litestep replaces the shell, but the windows and menus are still drawn the same way, etc. Maybe it's just that Litestep doesn't replace those parts. But you're right, the Windows GUI is largely replacable. I have a friend who's been using Litestep for quite some time now, and he absolutely loves it.
I admit I know nothing about the PalmOS, but I'm not so sure about that. If the operating system is designed from the ground up to be graphical, I'd call the GUI part of the OS. I have an ancient PDA (the Tandy Zoomer if anyone's interested) that has a decent GUI (GEOS), but it appears to run on top of DOS. In this case, the GUI definitely is not part of the OS.
Palms may be different, though, and if someone who knows about these things reads this comment, I'd be interested to know what the reality is. I'd think, however, that the PalmOS has nothing underneath the GUI, in which case the GUI is most definitely part of the OS.
Just remember that "Operating system" doesn't always mean "command line based." They can be graphical. And if you really wanted to, I'm sure you could create an OS based on voice recognition and speech synthesis.
Re:My definition (Score:2)
Maybe I should clarify: If you delete gcc, yes, you'll have trouble adding some applications. Why? Well, they're distributed in source form, for the most part. If you get binaries, you'll have no problem at all adding new apps without having gcc available. Therefore, gcc is not part of the OS.
But it doesn't require the compiler, does it? Just get everything in binary form and you're all set.
That, of course, isn't the point, though. Sure, it might be no good for development, but what if I want a simple little box to play MP3s for me in the car? (And maybe do a little RC5 cracking with it's spare cycles.) I don't need gcc... or vi, or emacs, or telnet, or most if any of the daemons... but it's still unarguably a linux box, isn't it?
I don't think that anybody will ever reach an agreement on this topic. The definition of "operating system" is really a pretty fuzzy one. There are some things that, no matter where you stand, you can see are not part of the OS, though, and I think gcc is one of those.
My definition (Score:3)
First off, Windows (booo, hisssss). With all of it's features, graphics showoff-ness, 40 million lines of code, and everything else... is it an operating system or an application?
I say it's both. The sad truth is, they're far too closely integrated. The actual operating system part is, basically, the MS-DOS leftovers. Those are the parts integral to the operation of the computer. It's easier to define what's *not* the operating system, though.
The OS is not the GUI. They may be tied to each other in some sort of unholy union, but it's not necessary. Anyone who's booted to DOS mode will know that. The GUI is not having menus fade in when you click them (yes, Win2K does that). The GUI is not Internet Explorer, no matter how deep in the bed they are with each other. The operating system is not "Scandisk is now checking your drive for errors. To avoid seeing this message in the future, please choose Shut Down from the Start menu" -- even when that's what I did. And in the case of Micros~1, the OS is *not* where I want to go today.
Now for Linux. Some people have said that things like vi and the gcc compiler are part of linux. On the same note, some people have claimed programs like edlin are part of DOS.
Let me ask you this -- go to your linux box, delete vi and gcc, and reboot. Does it still work? Of course it does. Might you have trouble configuring things or adding new applications? Yes, but that's not the point. Minimal linux configurations can be (I believe) stored on a single floppy disk. In other words, the OS is the kernel and the shell. I say the shell because if the OS stops working, the shell is kinda necessary to make it work again. Likewise in DOS (and not the DOS-behind-Windows), the OS is comprised of msdos.sys, io.sys, and command.com. Nothing more, and certainly nothing less.
Of couse, there are exceptions. The MacOS and PalmOS were designed from the ground up with the GUI as an integral part of it. Unlike Windows, where the GUI is really more of an afterthought than anything else, these operating systems rely on the GUI -- there's no command line (yes, there technically is on Macs... but it's nothing like DOS or bash), no other pieces that the GUI sits on top of.
So that's my take on operating systems, take it or leave it. And I admit I don't know everything, so if I've made a glaring error here, please don't flame me. A nice, friendly correction would be appreciated, though.
My personal definition -- take it or leave it :-) (Score:2)
I would have to say that the operating system itself is very minimalistic; in its strictest sense it would be the pieces that insulate the code from the unpleasant job of being aware of the hardware.
On top of that we have everything else: GUIs, toolkits, APIs for "system services", etc; and these are the platform that an application developer expects to be in place so he can say "xxx application runs on The Foo Platform(TM)".
Depends on how you want to look at it (Score:4)
However, you meantioned windwos 2000. Windows 2000 is MORE than an OS. Just like Solaris is MORE than an OS and REDHAT Linux is MORE than an OS. But when I say OS there I mean the meaning i defined above.
Without being an idiot about things just to help the DOJ beat Microsoft, I think it's safe to say that now days almost everyone considers an OS to be the OS and support applications.
Windows 2000 wouldn't be much of an OS without Explorer (an Application), IIS (an application), COM (an API), IE (an API that explorer uses) etc.
With COM, microsoft has melded the line between APIs and applications. IE itself is really just an ActiveX control - an applet if you will. However, with a small 200k exe they can make a browser out of it, add a few more plugins and they can make it explore the filesystem, and tada you have the new Windows Shell.
Remeber, OSs are targetted at end users (well, Microsoft OSs at least) and someone else mentioned that an OS is the bare minimun you need to start/run an application. An the end user can't do much with a kernel and an assembler.
Now days in the internet age, we may even need to consider a bit beyond that. Noone in their right mind would consider any OS an Internet OS without TCP/IP support etc. (you see where I'm getting at).
The OS is the kernel + currently loaded modules. (Score:3)
When the vendor comes to your office with ``the operating system'', or sells it to you in a shop, all the vendor cares about is the fact that there is an OS in all that software which they hand over. They don't care about the fact that there's heaps of other stuff there too.
In the technical sense of an operating system, things like compilers, text editors, image editors, word processors, and so forth, are not part of the operating system. The operating system is quite simply the memory resident software which controls access to system resources such as
The only real point of ambiguity here is the question of whether a device driver (or kernel module) is part of the operating system. In fact, it is easy to answer this. A kernel module (or device driver) is part of the operating system as long as it is loaded into the kernel.
A consequence of this is that linux is not GNU/linux. You can only argue that if you use the marketing definition of an OS.
Since XFree86 is effectiely the device driver for the monitor, it could be argued that XFree86 is part of the operating system. And I think personally that it is. But only while you're actually using it.
According to Tanenbaum & Woodhull (Score:2)
The micros~1 definition (Score:2)
1) operating the computer
2) frustrating users with BSOD
3) smiling paper clips
4) APIs that shift like quick-sand
5) showing the micros~1 logo during 15 min reboot.
So, like a girlfriend with herpes, an Operating System can be a joy and be defined many ways, but you just can't get rid of it. :)
It's all advertising (Score:2)
Considering how much those categories (Accessories, Communication, System Tools, etc) have grown over the various versions, and considering that Windows continues to support obsolete hardware, I have no doubt that they have stuff 40 million lines worth of stuff into Windows 2000.
To mean, the definition of an operating system is the code that must execute on a day-to-day basis to perform the tasks I request. This would exclude networking code (since the system could easily be standalone) and especially most of the driver code (since I have, at most, six or seven hardware vendors). I mean, Windows still has drivers for 9-pin dot matrix printers, and when was the last time you saw one of those? I counted at least 50MB worth of DLLs in Windows NT 4.0 that I'll never use, simply because my only printer is an HP.
As much as I admire the goal of hardware detection, I would at least like to be able to prune the drive list. I may not know WHICH S3 chipset I have installed, but I know it's not Cirrus Logic or Matrox or Diamond...so what the hell am I doing warehousing those never-to-be-used DLLs?
Most people (unless they are insanely addicted to digging around for installation CDs) are going to put a copy of the i386 directory on the local drive. With NT4, this cost you 150MB or so. What's it cost now for Win2000? 500MB? I think there is 120MB of stuff that is only there to provide foreign language support I NEVER plan to use.
All I want is the amount of code necessary to boot the system, log me in, and give me VGA mode. I can install the specific drivers I need myself, as well as better versions of any program Microsoft is going to include for free.
- JoeShmoe
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Definitions (Score:2)
here are a two definitions of what an operating system actually is:
whatis.com's definition of an operating system [whatis.com]
foldoc's definition of an operating system [ic.ac.uk]
You've got to look at the context... (Score:2)
OS implies everything (Score:2)
On the other hand the kernel is the small core that essentially brings it up from the bios, so that hardware can be accessed.
Crispin
Disk Operating System vs. Operating System (Score:2)
For that, the MS-DOS is a great DOS example. It doesn't manage memory, it doesn't do caching, it doesn't manage software (only to the extent of one tool).
In Windows, I'd guess the DOS section would be only the VFAT.VXD (if I remember well...).
If you want to compare physical space a DOS take, compare MS-DOS 6's COMMAND.COM, IO.SYS and MSDOS.SYS to the Windows VFAT.*, IO.SYS and MSDOS.SYS. Forget the COMMAND.COM, it can be bypassed completely (although really not recommended).
If you want user interaction, please add EXPLORER.* to that list since with only the driver, you couldn't do a lot of things.
In these cases, you can say that the Windows DOS is not too fat.
Now let's go more in depth with OS comparaison. A Operating System contains all the tools required to make the hardware work for you. So the barest components of Windows with the drivers are what you could say is a OS. A fair comparaison would be the Mac OS or a UNIX brand (only the kernel and drivers).
Everything else is candy. Sometimes, necessary candies but it's candy nonetheless and if it rot your Hard Disk's free space, it's not their problem.
And think about it, it's not to the advantage of Micro$oft to remove all the candy coatings from Windows. If they didn't put WordPad, people would be less enclined to buy the full version "Word". If they didn't put Outlook Express, users wouldn't get the habit of using their E-Mail technologies and they wouldn't buy Outlook (full)... not mentionning that it's ripping the competition off Netscape. Putting DOS for legacy support rips the other OSes businesses (for example DR-DOS which was quite nice) and even if they don't require it's base anymore as they could use a Win-NT like loader, they still keep it and make it virtually impossible to remove.
Their defense is to say "users asked for it". Yeah, you'd ask a user and he'd say "put everything you can fit inside for the same prize please".
... then with that way of thinking, I wonder why they don't integrate Office directly inside Windows for the same price. Weird huh? [$$$] Are they refusing something a user ask them?
Have a nice day
Mike
What about HURD? (Score:2)
Has anyone considered what part of the HURD is the "operating system"? Is only the microkernel the OS, or do you also consider the interfaces that run on top of it part of the OS too? What about the daemons that run on top of the interfaces? If we consider the interfaces and daemons as part of the OS, what would we consider a new interface that a user has built and started up?
Just something to think about... AFAIK the original designers of Mach considered the microkernel as the "OS", (and I tend to take that view as well), but it seems the distinction is rather blur when you talk about GNU/HURD which runs a UNIX interface(?)/OS(?) on top of Mach.