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

9 of 325 comments (clear)

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

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


    --

  3. 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)
  4. 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.
  5. 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.
  6. 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.

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

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

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