Slashdot Mirror


How do you Define "Operating System"?

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

45 of 325 comments (clear)

  1. You are one of the "eteet"? by Wakko+Warner · · Score: 2
    What the hell's an eteet? An udder connected to the Internet?

    - A.P.
    --


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

    --
    "Remember when the U.S. had a drug problem, and then we declared a War On Drugs, and now you can't buy drugs anymore?"
  2. Re:The OS is the kernel + currently loaded modules by V. · · Score: 2

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

  3. Fundamental divisions by sjames · · Score: 3

    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.

  4. Re:OS implies everything by hawk · · Score: 2

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

  5. Correct use vs common use by slim · · Score: 3

    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.


    --

  6. Operating System by jd · · Score: 3
    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.

    --
    It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
  7. Operating Environment by Amphigory · · Score: 2

    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.

    --
    -- Slashdot sucks.
    1. Re:Operating Environment by Guy+Harris · · Score: 2
      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.

  8. The definition of an OS? by Millennium · · Score: 2

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

  9. As Science-Fiction by Pseudonymus+Bosch · · Score: 2

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

    --
    __
    Men with no respect for life must never be allowed to control the ultimate instruments of death.
    GW Bu
  10. My personal definition by Pascal+Q.+Porcupine · · Score: 2
    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.

    --
    "'Is not a quine' is not a quine" is a quine.
    Quine "quine?
  11. Re:My own personal definition by Pascal+Q.+Porcupine · · Score: 2
    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.

    --
    "'Is not a quine' is not a quine" is a quine.
    Quine "quine?
  12. "OS" vs. "System Software" by joeslugg · · Score: 2

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

    ???

  13. Incorrect by FreeUser · · Score: 2

    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.

    --
    The Future of Human Evolution: Autonomy
  14. Re:OS implies everything by FreeUser · · Score: 2

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

    --
    The Future of Human Evolution: Autonomy
  15. Operating Systems and Environments by Graymalkin · · Score: 2

    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.

    --
    I'm a loner Dottie, a Rebel.
  16. Well, let's ask Judge Jackson by doom · · Score: 3

    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.
  17. Know what an application is? by Sloppy · · Score: 2

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


    ---
    --
    As copyright owner of this comment, I authorize everyone to defeat any technological measure which limits access to it.
  18. It's a continuum by Royster · · Score: 2

    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

    --
    I have discovered a truly marvelous sig, unfortunately the sig limit is too small to contain i
  19. Re:It's all advertising by MoToMo · · Score: 2

    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

  20. Re:OS implies everything by Imperator · · Score: 2
    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?

    --

    Gates' Law: Every 18 months, the speed of software halves.
  21. GNU/Linux is not a "marketing definiton" by Imperator · · Score: 2
    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.

    --

    Gates' Law: Every 18 months, the speed of software halves.
  22. Def from operating system concepts by Ripat · · Score: 3

    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.
  23. Java? Kernel Modules? Just kernel+/bin/sh? by roddy · · Score: 2

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

  24. It's all relative by Salamander · · 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:

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

    --
    Slashdot - News for Herds. Stuff that Splatters.
  25. A mathematical analogy by ainvy · · 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...

  26. Provide/restrict access to a computer's resources? by Sun+Tzu · · Score: 2

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

  27. Re:Well Informed Judge Jackson/Utils are a part of by Chandon+Seldon · · 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*.

    --
    -- The act of censorship is always worse than whatever is being censored. Always.
  28. Operating Systems Concepts by Hard_Code · · Score: 2

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

    --

    It's 10 PM. Do you know if you're un-American?
    1. Re:Operating Systems Concepts by Hard_Code · · Score: 2

      oops...everything including and after the line starting with "In general..." is my comment, not the book's...

      --

      It's 10 PM. Do you know if you're un-American?
  29. User space versus system space by Tom+Christiansen · · Score: 5
    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.

  30. Re:My definition by CrayDrygu · · Score: 2
    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 personal[ly] think Unix is "superior" because on LSD it tastes like Blue." -- jbarnett

  31. Re:My definition by CrayDrygu · · Score: 2
    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.

    --

    --
    "I personal[ly] think Unix is "superior" because on LSD it tastes like Blue." -- jbarnett

  32. My definition by CrayDrygu · · Score: 3

    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 personal[ly] think Unix is "superior" because on LSD it tastes like Blue." -- jbarnett

  33. My personal definition -- take it or leave it :-) by Zigg · · 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)".

  34. Depends on how you want to look at it by TummyX · · Score: 4

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

  35. The OS is the kernel + currently loaded modules. by Swordfish · · Score: 3
    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.

  36. According to Tanenbaum & Woodhull by iburger · · Score: 2

    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.

  37. The micros~1 definition by Money__ · · Score: 2
    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. :)

  38. It's all advertising by JoeShmoe · · Score: 2

    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 wonder which will go down in history as the bigger failure: the War on Drugs or the War on Filesharing
  39. Definitions by steelhawk · · Score: 2
    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

    foldoc's definition of an operating system

    --
    Ner lbh sebz gur HFN? Gura lbh'ir whfg ivbyngrq gur QZPN!
  40. You've got to look at the context... by Matt+Bridges · · Score: 2

    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

  41. OS implies everything by cehf2 · · Score: 2

    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

  42. Disk Operating System vs. Operating System by The_Compact · · Score: 2

    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

  43. What about HURD? by Gurlia · · 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.

    --
    mikre he sophia he tou Mikrosophou.