Please create an account to participate in the Slashdot moderation system

 



Forgot your password?
typodupeerror
×
Technology

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".
This discussion has been archived. No new comments can be posted.

How do you Define "Operating System"?

Comments Filter:
  • by Anonymous Coward

    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.

  • ... i.e. the GUI as well for anyone who needs such
    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+
  • What the hell's an eteet? An udder connected to the Internet?

    - A.P.
    --


    "One World, one Web, one Program" - Microsoft promotional ad

  • 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?

  • If it's an "application", it's not part of the operating system. Thus, text editors shouldn't count.

    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

  • It's a kernel.


    ...phil
  • by gavinhall ( 33 )
    Posted by cookieman.k:

    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.
    My definiton here:
    The OS is (at least) the part of code wich handle the hardware exceptions and manages processes.
    Next we'll have the following question: How would you define an API ?
    !! This post have been evaluated as: Offtopic/Inflammatory/Inappropriate/Illegal/Offens ive/Redundant/Troll/Flamebait. !!
  • A computer runs programs, not Operating Systems. Therefore, and OS is just a program.

    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.
  • Maybe, but since io.sys (or earlier msdos.sys, they frickin' merged them in Windows '95) directly looks for command.com, you'd need to get a shell replacement. I mean, come on, DOS had one built-in shell, and without that you couldn't do much, except for replacing that file with the application you wanted to run, or another shell.

    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.
  • 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.

  • >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.

    Even tho it doesn't run in kernel space? I'm
    not sure I agree with you on at least this point.
  • by sjames ( 1099 ) on Friday November 12, 1999 @05:04AM (#1540042) Homepage Journal

    The definition of an OS is a very murky and grey thing. A look at seperable componants would be in order here.

    • hardware
    • bootstrap (eg. BIOS)
    • loader (eg. LILO)
    • kernel (eg. Linux)
    • system libraries (eg. libc)
    • initial process (eg. inin)
    • system utilities (eg. ls, tar, gcc)
    • user interface (eg. bash, X, WindowMaker)
    • user applications (eg. Quake, vi, WordPerfect)

      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.

  • >I would define Operating System to be everything
    >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? :)
  • if we go to one extreme, we could say that the operating system is the one thing which is required before any applications will run.

    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 + /bin/sh

    smash (operating system = software required to "operate" your system this just mean device drivers + kernel? :)
  • the java virtual machine is not an OS.

    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)
  • you dont necessarily need all the stuff than init runs to use your machine ;)

    if all I want to use is echo to write and read text files, then the kernel + /bin/sh will do ;)

    smash
  • by slim ( 1652 ) <john.hartnup@net> on Friday November 12, 1999 @01:25AM (#1540047) Homepage
    In strict computer science terms, the kernel is the OS.

    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.


    --
  • by jd ( 1658 ) <imipak@yahoGINSBERGo.com minus poet> on Friday November 12, 1999 @02:41AM (#1540048) Homepage Journal
    This is my definition, based on what I can remember from my degree course & assorted text books:

    An Operating System is the name given to a collection, consisting of one or more programs, which:

    • Manages memory access, for applications
    • Manages disk access, for applications
    • Compartmentalises storage devices
    • Provides basic, common services
    • Provides mechanisms for accessing devices
    • Provides mechanisms for user access
    • Provides low-level protection against clashes

    For Multi-Processing OS', the additional are also required:

    • Mechanisms to prevent application collisions
    • Mechanisms to share processor time between applications
    • Mechanisms to ensure applications are independent of where they're loaded
    • Mechanisms to prevent devices being accessed "simultaneously" by two or more applications

    For Parallel Processing OS', a further set of requirement is present:

    • Mechanisms to communicate between processes
    • Mechanisms to communicate between processors
    • Mechanisms to prevent deadlock

    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.

  • So if X is part of the Linux OS, and I don't install X on my webserver, then what am I running my web server on? And if the webserver + cgi = total OS configuration interface, then is Apache part of the OS?
  • As others have posted, the OS, in technical terms, is really only the kernel and a few libraries. The "marketing" definition is quite a bit more expansive. I think the correct terminology would be as follows: the Kernel is the OS. The Kernel plus the bundled applications, default configurations, server daemons, etc. is the "operating environment". Sun uses this terminology when talking about Solaris, and I think they have a point. So, the Windows OS would be nothing but the kernel (not much really). The Windows Operating Environment would included the Kernel, IE, all the Win32 API's for everything from telephony to directx, Notepad, wordpad, etc. A decent argument could even be made for a definition of the Windows Operating Environment that included Office, since its so damned common. Remember, originally operating systems were nothing but a bunch of libraries that abstracted access to the hardware. The thing is that, today, the libraries bundled have gone /far/ beyond just abstracting the hardware.
  • I think there's a reason that it's called an operating system. It's more than just one thing. An OS, as I see it, has three tasks to fulfill. It is a mediator between the hardware, the other software, and the user.

    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).
  • An OS is whatever a vendor packages and calls an OS. This question only came up because MS went to court and claimed the charge was about deciding what an OS was.

    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 ).
  • An operating system is a piece of software that presents an abstract interface to running applications that is identical regardless of the details of the hardware it is running on.
  • By that definition (which I accept) it would also include the basic libraries that provide access to system calls, and Xlib to provide access to the accelerated and high resolution graphics.
  • That's why it looks like an operating system. The important thing here is to recognize what an operating system isn't - scroll bars are not part of the operating system. Web browsers are not part of the operating system. Indeed, some kernel modules may not be part of the operating system. Only software which is concerned with creating an abstract interface to the computer hardware.
  • Don't get so upset! Just because you don't consider something to be part of the OS doesn't mean you can't have it.

  • 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.
  • "Operating System" is what Operating System makers deliver.

    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.
    --
  • At some point I noticed Sun called Solaris an "Operating Environment", and I've started using this convenient term to mean everything including utilities, window system etc. That way "OS" can just refer to the kernel.

    ...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.

  • Infact the more I think of his answer the better it seems.. let's see:

    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 is that the OS proper is the sum total of the kernel and hardware abstraction (such as, in the case of UNIXen, the wonderful memory/paging abstraction accessed with mmap(), which is the foundation of what is usually used to execute a program). Thus, X11, being a hardware abstraction, is part of the operating system, by my definition, even though you can have a fully-functional UNIX without it (as I do on my main server). Similarly, in Windows, GDI is kinda-sorta part of the OS, since it abstracts the hardware video card driver, though it does lots of other stuff too (such as button drawing, if I'm not mistaken).

    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.

  • And, of course, this is all opinion, as you and I both stated. :) (Oh, and I'm a commandline freak too, I just happen to use commandlines within graphical environments; right now, of the 12 windows I have open, 10 are xterms, the other two being Emacs and Netscape.)

    ...OS is the collection of software needed to communicate with the hardware, and make the hardware work.

    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.

  • The trickier question is deciding what is and is not an "application"

    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 .EXE file is their problem.
  • You call Windows Explorer not an application but you all the replacement Windows/IE explorer hybrid an application?

    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.
  • 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!!!

  • From "slim":

    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"

  • For what they charge it seems that they could provide an OS optimized to work with the NOS.

  • When they bought DOS it already used frontslashes for switches, but they don't have that excuse with close boxes. I read somewhere that they did a survey while designing 95 and half of the subjects didn't want tochange and the other half didn't care. Now I know why they changed it anyway, but that still doesn't explain why they made it so easy to accidently close the window you're trying to maximize (unless they secretly despise their customers, now *that* would explain a lot!)

  • I'm beginning to think Rob has 2 moderator teams, one composed of normal (for around here, that is)people and one composed of the truly troubled, and that he alternates between them. That would help to explain why moderation seems to come in alternating waves of reasonable and baffling. Of course since I was moderator a few days ago and the baffling brigade seems to be in place today some may question the objectivity of my theory. And since "those other guys" are the ones currently empowered, this post will probably be moderated down 'til I'm in negative karma land.

  • It's a legal fact now, The Findings of fact by Judge Jackson in the Microsoft case has a good definition of "operating system".

    Roger.
  • Some time ago, I began an article on what is an OS [tunes.org], and what it should be: Why a New OS? [tunes.org].

    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

  • WinNT and 2000 are STILL extensions to old OSes that were NOT gui based. In my opinion, they have just a GUI onto the OS much like win9x... the difference here is that NT has a different codebase from win9x... so it appears to be a different OS... it is different from win9x... but code that was used in VMS is STILL in windows 2000... Doesn't that place it in the same catagory as Win9x... a GUI built into and ontop of a NON-GUI based OS.

    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.
  • I used to like Apple's term of "System Software" in reference to their Mac operating system. (although now it's MacOS; go figure ;-)

    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."

    ???
  • Even under MSDOS (version >1), the user interface shell(command.com) was not part of the OS it was just another application. It could be replaced by one giving similar functionality (eg 4DOS) or any other application (eg a game or a turnkey application)
  • I would say that even the shell is not part of the Operating System. It is possible to build a turnkey system running *nix (or other OS) which has no shell at all.
  • edit was/is not part of the DOS operating system. The DOS operating system consisted of 2 files, msdos.sys (or pcdos.sys for the IBM version) and IO.SYS. The status of himem.sys & emm386.sys in later DOS versions is a little greyer. Everything else, including command.com, was just bundled applications.
  • 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).
    Not only can command.com be bypassed, I would recommend replacing it by JP Software's 4DOS which offer superior facilities.
  • Not that these kind of articles/questions bother me much, but I have always said Windows 95 is an application an not an OS. Same goes for NT. Perhaps the package includes a kernel and so on, but most of it is actually fancy packaging rather than anything else.
  • real users toggle an application boot loader in with switches!

    Chuck
    Seriously - I wanna PDP-8
  • We used the dino book at ND for cse 341 -- the undergrad OS class...

    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...

  • It controls devices.
    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?..
  • A utility, even one you might consider to be critical, is not necessarilly a part of the operating system. If it were, we wouldn't refer to it as a utility at all.

    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.
  • I would define Operating System to be everything that is needed to bring the System into an Operattional state

    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. :-)
  • Depending on how you look at it, there seem to be three approaches to defining an OS.

    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.
  • Ths arguments I've seen about browsers and such being "part" of an operation system are completely idiotic. The "operating system" of a computer is the software that acts as a buffer between the machine's hardware and the software that is going to be run on that hardware. A definition of operating system would be the kernel, device drivers, and APIs. Without a kernel every piece of software on your system would need all of its own hardware controls and functions programmed in. This is how things like Furbys are programmed, they don't have a kernel yet run a program through the processor. Everything else that comes on your floppies and CDs is superflous to the actual operation of the computer, it merely gives the silison something to do. This second layer is the environment. Shells, windowing systems, applications, ect. are all part of this second layer. Many people will classify X or shells as part of the operating system but if I choose a hash or c shell on a Linux kernel I'm still using Linux, if I use AccelX rather than FreeX86 I'm still using Linux. The stuff that comes in an environment can be classified as programs, scripts, shells, sources, and files for the most part. Programs are compiled binary instructions that perform a function or more than one function, scripts on the other hand aren't compiled and require and interpreter (or just run on the kernel like a shell script) in order to work. We all should know what sources are and shells provide users with shortcuts to system commands. Files are the output of programs.
    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.
  • by doom ( 14564 ) <doom@kzsu.stanford.edu> on Friday November 12, 1999 @01:43AM (#1540086) Homepage Journal

    You want to know what an Operating System is? Here's the definitive definition, from Judge Jackson:

    2. An "operating system" is a software program that controls the allocation and use of computer resources (such as central processing unit time, main memory space, disk space, and input/output channels). The operating system also supports the functions of software programs, called "applications," that perform specific user-oriented tasks. The operating system supports the functions of applications by exposing interfaces, called "application programming interfaces," or "APIs." These are synapses at which the developer of an application can connect to invoke pre-fabricated blocks of code in the operating system. These blocks of code in turn perform crucial tasks, such as displaying text on the computer screen. Because it supports applications while interacting more closely with the PC system's hardware, the operating system is said to serve as a "platform."
    All you software engineers can now sit down. You don't count.
  • So you're saying that every single package on my Redhat 6.1 cd is part of the operating system (i.e. Linux) And therefore, should not have names of their own, and only be referred to collectively as linux. (Where as most people call the windows 95 GUI, windows 95, rather than a shell, same idea) Of course, I could be really cliche and say:

    A penguin, by any other name, would smell as sweet. (or something)

  • Yes, of course you do. The operating system is everything else.


    ---
  • There are no hard and fast rules. OS-type software deals with hardware and exposes APIs for other programs. Thic includes drivers and daemons. Application programs use exposed APIs and interact with users.

    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
  • (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.

  • Coming from the Amiga, as I do, probably biases my opinion on what an OS is and is not.

    Quick summary of this article

    To quickly summarize this article in a way we all know something about:

    • IE 4.0 is not part of the OS's Windows 95 or Windows 98
    • IE 5.0 should be thought of as two separate items; the IE 5.0 application and the IE 5.0 API
    • The IE 5.0 application is not part of the Windows 98 OS
    • The IE 5.0 API's are a set of API's recommended by the vendor of the Windows 98 OS to the developers of applications to that OS.
    • The IE 5.0 API's are not required for the Windows 98 OS to work.

    The "OS" can be thought of as several things

    To me, the OS can be separated into several items:

    • The kernel and device drivers
    • Vendor-recommended API's.
    • Third party API's.

    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.

    /Fredrik
    Software designer

  • > Well, basically the OS manages the resources > available to it. So anything that can manage > the system's resources can be considered an OS. Oh, yeah? iMac is a colorful and stupid computer. So, anything that is colorful and stupid is an iMac. Wow, a perfect syllogism. Spelling seems to be correct, next time run logic check.
  • It doesn't have any "packaging" fancy or not.
  • *that's it folks*
  • Java is not an OS because everyone here at least agrees that OS is supposed to be between hardware and applications or should include that piece. In case of Java, it is inherently incapable of running by itself. VM as you know stands for *virtual* machine.
  • IMHO every person who wants to call himself a programmer should write a compiler of something. Everybody who wants to call himself a real programmer should write a compiler for language of his own design. I am not a programmer.
  • He toggled in his copy of IE.
  • Strange... Where would you put it. Or do you have a house THAT big? I, personaly, would like an O2
  • 1. You cannot define an OS. OS is the definition. OS is the meaning and the program.
    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.
  • The reason why anyone would copy the i386 directory is for flexibility. I may never use a matrox video card in my machine, but, i may have one in a machine that i'm working on that appears to not be working. To verify that it doesn't work, i'd put it in my machine and try it out. I now know that i'll have drivers for it. maybe it's an old card out of a 486 i want to try... I won't use the card for more than 30 minutes, but i need the drivers. who knows what else i might put in my machine to verify that it works. Right now, i can't see using scanner drivers, but if i'm working on a scanner and am not sure if it's a problem with the scanner itself, or the machine it's connected to, i'd plug it into my machine to check it out. all that is there with good reason.

    -Dan
  • I would define Operating System to be everything that is needed to bring the System into an Operattional state

    So W2K will only be 30 million lines of code?

  • 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.

    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.

  • I think the best distinction between "OS" and "Application" is whether or not the peice of software provides a service or not.

    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...

  • Here's my perhaps lame attempt:

    ...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.
  • yes I agree, but that part was the *purpose* of the OS.


    They defined the OS itself as the first lines i quoted.

  • by Ripat ( 19963 ) on Friday November 12, 1999 @01:19AM (#1540107) Homepage

    Operating system concepts (dinosaur book...) by Silberschatz Galvin says:


    "An operating system is a program that acts as an intermediary between a user of a computer and the computer hardware."

    and


    The purpose of an operating system is to provide an environment in which a user can execute programs in a convenient and efficient manner.
  • IE is most definately NOT part of the OS

    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

  • it could be argued that XFree86 is part of the operating system

    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

  • How about the Java VM? Is that an operating system? It loads applications, it handles everything outside the program that is needed for it to interact with the rest of the computer.

    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 /bin/sh, what about other stuff that usually goes along with it like INIT, the login/authentication system, even inetd, is there really a line that can be drawn?

    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..
  • 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:

    • For an embedded hard-realtime control system, there might be little or no OS to speak of. The hardware is already adequate for its "application" which consists of hardware-specific monitoring and control code.
    • For a "softer" kind of embedded system such as a touch-screen ATM, the OS consists of some hardware abstraction and some tools to write a very limited class of applications.
    • For a general-purpose workstation or PC, the OS has to provide a very high level of abstraction and functionality to support a very broad class of applications.
    Since nobody here ever seems to care about or even recognize the existence of computers that aren't on the desktop, I'll expand a little on that last example. I think a desktop OS can and should include things like libraries for GUI and sophisticated IPC functionality, because those are now elements of the dominant application paradigm for that class of devices. Some might think that something like a JVM is also included, but I don't agree...not for a couple more years. Editors, compilers, etc. are definitely _not_ part of the OS in my opinion; they are the applications that define what an OS for that platform is or should be. Think of it as a tree formed by application dependencies on libraries or services, library dependencies on kernels or other libraries, etc., with the hardware as the root. That part of the tree extending from the root and required by the majority of leaves is what I'd call the OS.

    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]".

  • 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...

  • Operating Systems are those programs that provide, and control, access to a computer's resources.

    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. ;)

  • 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*.

  • According to Operating Systems Concepts (by Addison-Wesley) :

    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).
  • oops...everything including and after the line starting with "In general..." is my comment, not the book's...
  • One way to look at the OS is as follows:
    $ time a.out
    2.37 real 2.07 user 0.22 sys
    In that listing, the operating system look 0.22 seconds of the time, and the user's program a bit over two seconds. Certainly there are no end to "systems programmers" who would agree with you if you did this. But alas, systems programmers represent an imperceptibly miniscule portion of those people who use computers.

    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:

    $ cat /proc/modules
    autofs 8996 1 (autoclean)
    nfsd 144060 8 (autoclean)
    lockd 30952 1 (autoclean) [nfsd]
    sunrpc 52356 1 (autoclean) [nfsd lockd]
    opl3 11176 0
    sb 33236 0
    uart401 5968 0 [sb]
    sound 57240 0 [opl3 sb uart401]
    soundlow 300 0 [sound]
    soundcore 2372 5 [sb sound]
    And say that those are part of the O/S. A sysadmin will cat out /etc/inetd.conf and tell you that those programs are part of the operating system, especially if they're running as root. Those sysadmins may get a bit fuzzy if you point out that one of the services is just a little add-on script that you wrote, but they'll eventually say that you simply added to the operating system.

    So 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.

  • I would like to add, re: the GUI, it is ABSOLUTELY NOT part of the os, as it can be replaced, in 95, 98 AND NT. See LiteStep. I have not seen Litestep mentioned in any of these threads, and it is a really nice GUI replacement.

    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.

    As far as palms and the like, they are very proprietary systems, built for proprietary hardware, though, I don't doubt if you had the means, you could create an alternative GUI for 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.

  • I would argue that adding applications is, minimally, one of the points. If all the OS was capable of doing was allowing _access_ to the disks, KB, framebuffer, et al., without actually being able to write to the disk and making that binary (or script) executable, what would be the point?

    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.

    If the system requires a compiler to be useable, then a compiler can logically be assumed to be part of the system.

    But it doesn't require the compiler, does it? Just get everything in binary form and you're all set.

    It would make a useless development box though

    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.

  • by CrayDrygu ( 56003 ) on Friday November 12, 1999 @03:28AM (#1540162)
    I think that "operating system," as clear-cut as it may once have been, is now a really, really fuzzy term. Let's look at two examples you'll know:

    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.
  • 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)".

  • by TummyX ( 84871 ) on Friday November 12, 1999 @01:19AM (#1540207)
    I mean, operating systems have always been considered something more than just the kernel. They're also at least a set of APIs and some utils. DOS had edit for example.
    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).
  • Some people think that the operating system is that big bunch of software which comes from the OS vendor on CD-ROMs (nowadays) or floppy disks, tape cartridges or reel-to-reel tapes (in the old days). That is the marketing definition of an operating system.

    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

    • CPU
    • RAM
    • monitor, keyboard, mouse
    • disk drives, CD-ROM drives
    • tape drives, printers and other peripherals and ports
    • network access.
    Most importantly, the operating system has the function of loading software into RAM and running, while giving that software access to the above resources. This has been true for decades. There was a time before operating systems, when each set of punch-cards or roll of punch-tape had to have its own instructions to perform all system functions. But it became obvious after a while that it would be better to first load in some general purpose software which would stay resident during the days jobs. This resident operating software developed into the operating systems of today.

    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 the book "Operating systems - design and implementation" by Andrew S. Tanenbaum and Albert S. Woodhull and operating system is both an extended- or virtual machine (that is easier to program than the underlying hardware) and a resource manager (Hardware, Files, Memory, users, etc). In the linux context that would mean the kernel and the modules.
  • Acording to micros~1, an operating system can be made to include almost anything: MSOS= An operating system (sometimes abbreviated as "OS") is the program that, after being initially loaded into the computer by a bootstrap program, manages all the other programs in a computer whos functions include, but not limited to:

    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. :)

  • I think what Microsoft considers "operating system" is anything that shows up on the "Windows Setup" tab of the "Add/Remove Programs" control panel and any hardware drivers.

    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

    -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= -=-=-=-=-=-=-=-
  • I agree with those who say that GUI, applications and such are not to be considered part of the actual operating system...

    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]

  • What some of these posts have but many do not is a proper context for the definition. Most of us here seem to agree that the definition of an operating system is something like a kernel, a shell, some services and libraries, or basically whatever bare minimum it takes to start a program. Now, in the context of DOS, it may be just 3 files (io.sys and msdos.sys, and command.com). For Linux, it may be the kernel, a few kernel modules, a shell, and some init scripts to get the ball rolling. However, in the context of Win2k, all that code may well, in this context at least, fall under the definition of the bare minimum it takes. Therefore, if you stop looking at the definition of an OS as a static definition, but rather one that changes with context (as all definitions of all words do), it will become clear that all of that code does indeed fall under the definition of an OS
  • I would define Operating System to be everything that is needed to bring the System into an Operattional state, obviously for Microsoft, and their bloatware, 40 million lines of code seems about right, but I do not think that the misc text editors etc are part of the OS, but the browser, seeing as it is now built in, probably is.

    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
  • Many people seem to forget that DOS means Disk Operating System. It is a subset of Operating System, which is whatever is required to make the system work, software-wise.

    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
  • 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.

"Look! There! Evil!.. pure and simple, total evil from the Eighth Dimension!" -- Buckaroo Banzai

Working...