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".
Please. Have you nothing better to do with your time?
Moderators - How difficult would it be to filter out all posts with "first post" && "37337"?!?
154. In conclusion, the preferences of consumers and the responsive behavior of software firms demonstrate that Web browsers and operating systems are separate products.
When you consider that the basics of the "intel" machine hasn't changed all that much since the days of 640KB memory and a whopping 10MB hard drive....look at DOS.
Take a look at the linux kernel. Compile in a whole lot of stuff, and it still comes in at ~1MB. Put in *only* what you need and it's a LOT less.
From that you can add what you need.
The *absolute* minimum you need is something to handle information to/from the processor, memory, and hard drive, and probably the low-level text-mode VGA stuff to the video card.
All DOS was was two files, io.sys and msdos.sys
command.com was simply a shell pasted on top of that.
Surely this is something which a certain famous corporation has been redefining through out it's history? Whilst I agree that OS services can be precisely deliniated, it is in the OS industry's interest to blur the distinction between OS and application space, especially if an industry player already has good control of the OS market!
Once people learn to expect more, the "barrier to entry" is raised, and it becomes increasingly difficult to compete. Some might see it as increased value for the consumer, others might see it as leveraging success in one domain (OS) into another (application space). And let's face it, we could all get together and say GNU/Hurd is the minimalist's OS (or whatever) but if the public at large has been led to believe than an OS should have browsers / apps, then you've got to provide them. Witness every single popular Linux distro.
On the more serious side, is it necessary to define what 'operating system' is? You already know, what is a kernel and what is an application. So let's call 'operating system' all the packages, that are on installation media...
I agree. Strictly speaking on a UNIX system, the OS is the kernel and shell utils. In a contemporary context however, you must include X and possibly at least one toolkit. After all, for most non techies, the GUI supplants the shell. My question, however is has anyone actually tried to define what the Linux OS actually is? We all read references to this mythical thing every day, yet in actual fact it does not exist. I think this is an interesting and important issue. We know what the FreeBSD OS is, and we can probably narrow down the GNU OS, but there is no official Linux .. The LSB is working towards answering this to a very limited degree, but I dont think it is going to provide a definitive answer to this question. So what IS the linux OS ?
wow, everyone uses that book. (assuming you are not from Carleton...)
all software is an abstraction of the hardware. by your definition every interpreter on a given system is part of the OS. however, taking my computer for example, i don't believe that /usr/bin/guile is part of my operating system, but /bin/sh is. /bin/sh is necessary for almost any unix system to bootup into a useable state. i think most people would agree that the Bourne shell is a part of the unix OS, but guile isn't. why is that? if my init scripts were rewritten to use guile would it be a part of my OS?
Remember that computers once didn't have OSes at all. They were programmed with jumper cables or switches. This is more or less what you would do with a tiny embedded chip today, just a CPU and an EPROM.
:-)
Later more and more features have been added so that people can forget about the hardware layer (imagine moving the hard disk head manually to it's proper location in order to read data). Memory management, I/O, process control, "multitaksing" and so on have evolved out of necessity when the physical resources have allowed them to exist. If you read the history of OSes it gets a lot clearer. If you read the Microsoft trial hearings, you are told that a web browser is an integral part of the OS...
This is constantly evolving; today we are talking about "network operating systems" (NOS). The network is currently the best candidate for an integral part of the "OS", whatever it is.
If you look at Linux, I would say that the kernel is the real "OS" part. Still I would feel very disappointed if that's all I got. That's why you get standard GNU utilities to be able to do anything, distribution-specific programs to make it all a bit nicer to use and, if you buy a shrink-wrapped distribution, some commercial products.
what hardware engineers think we need and what software engineers think we need.
OS = kernel + user interface (CLI/GUI) + Tools (text editors(vi,ed),ls,rm,cp,ifconfig,ping,route,etc) OS is NOT just the kernel, an OS must have a way to let users execute commands (CLi or GUI) also, an OS should have tools to help users take full advantage of its capabilities (configuration tools like ifconfig and route for example), text editors to edit configuration files, file utilities (ls,rm,mv,cp,etc).. the user interface is a part of an OS absolutely!! whether its Graphical (GUI-based ala Windows) or CLI based ala (*nixes /bin/sh) Windows is attempting to redefine the user interface by integrating the Browser and the UI... so if anyone asks whether a Browser should be a part of an OS the answer is NO. take note the word "should".... CAN it be a part of an OS? YES!! definitely! why not? if the Browser is integrated to its UI then it is a part of an os. "should" a GUI be a part of an OS? no..its not a requirement..."CAN" it be part of an OS? sure.. why not?
Hmm, good point: about device drivers.
Maybe then, the operating system is the mediating framework between the virtual system and the physical system. On the upper edge of this, common virtual system support can be added (gui's, cut'n'paste, desktops, cryptographic and data manipulators, etc). On the lower edge of this, common physical system support can be added (device drivers, protocol stacks, etc).
So then, the important thing about the operating system is that it defines clear interfaces at upper and lower boundaries, and provides a well defined mediating behaviour (e.g. the behaviour of installing a new device driver is to somehow find a signature, then fetch the device driver [which conforms to the device driver protocol], then install the device driver).
Interesting thread ! M.
As far as I know, there is no possibility to actually run programs from LILO, therefore it cannot be an OS.
Mikael Jacobson
(OS used to mean Output Spy (way back))
HTML is not a "language" in that sense. It lacks capabilities such as iterations and conditions.
HTML is a "mark-up language" for text, and they are all cryptic and not intended to be non-geek-readable. Compare with PostScript or RTF. Or some weird format like Word 8.0.
An OS is something that I can boot up. This includes the BIOS. Ever tried to boot the BIOS and couldn't?
It's whatever they force you to buy when you get the PC.
An OS does many things:
1. It allows access to your hardware
2. It allows a platform for running apps
3. It acts as a go between for the apps and the hardware.
Your hardware won't do anything without an OS. Your software won't run without an OS. Linux, Be, and Windows 9x/NT are all OS's. Win 3.1 is technically an app.
Open Source. Closed Minds. We are Slashdot.
An OS is a program that provides gives other programs an interface for indirectly controlling the hardware (i.e. not writing directly to it). I never heard of an operating system that is limited only to this, but this is the minimum as far as I am concerned.
Conceptual map:
Level 0: Hardware (fixed and distributed devices, mass storage, network, display, input, output, etc).
Level 1: Hardware Binding (device drivers and hardware vendor supplied software to connect Hardware to HAL)
Level 2: Hardware Abstraction Layer (common interface and features to provide abstract access to Level 0 using items from Level 1).
Level 3: Hardware Abstraction Layer Services (caching, performance, relability, protocol stacks, and other sorts of general services provided above Level 2).
Level 4: Mediation (scheduling, buffering, memory management, resource management; needed to support Layers 2, 3, 5, 6, and to mediate between layers 3 and 5).
Level 5: Application Access Layer (higher level object management, persistence; the kind of very basic things needed to support software in the application layer)
Level 5: Application Services Layer (optional things like command line tools, o/s diagnostic tools, system performance rules and tuning, maybe also networking and addressing services, etc )
Just some ideas. M.
Yep. Nearly everything has to have some kind of operating system. It is the abstraction layer between the hardware and the user-level programs. For example, in Unix, the shell is NOT part of the operating system. The kernel and a handful of supporting libraries like libc are the "OS". Technically you don't NEED a shell or a window manager or X or utilities to interface to the kernel to let you do "top" and "ls" and "ps". These are all additional programs to help the USER interface with the OS. So, technically yes, the bios is an operating system at the very lowest levels. Gnome and KDE aren't "operating systems" in the sense that they don't interact with hardware.. they're more userlevel kludges or, at most, provide a standard api between user-level programs and lower-kernel operating system routines by providing a set of libraries to program against. Gnome and KDE by themselves are completely useless without --- tada, an operating system. Which is why GNU/Linux is a misnomer. GNU/Linux is the distribution of all the applications bundled with the operating system, Linux. Windows98 is the distribution of all the applications and mini-apps bundled along with the core dll's and kernel. I guess another way to define it is, the OS is the part of the distribution that, if replaced, makes the OS a totally seperate system. For example, if you replaced bash for tcsh on a Linux system, you'd still be running Linux. If you replaced the Linux kernel with FreeBSD's... you'd have a FreeBSD distribution. If you replaced explorer.exe with progman.exe you'd still be running Windows9x, but if you replaced all all the kernel libraries and the kernel itself you may very well be running some DOS based Windows emulation thing.
Welcome to Amiga OS 1.3.
Windows95 is not an OS. It is program that runs ontop of DOS. If they split MS up, the OS dept would be doing nothing other than making DOS.
According to Microsoft, the definition of operating system is:
"operating system - n. - The software that controls the
allocation and usage of hardware resources such as memory,
central processing unit (CPU) time, disk space, and
peripheral devices."
- from The Microsoft Press Dictionary, 3rd Edition 1997 p341
I've had this tidbit around for a while because Microsoft kept redefining what they considered an operatings system. I don't mean to be too pedantic, but we have to start somewhere with understanding the terms.
vi, gcc, bash, tcsh, etc. is NOT part of Linux. If you want to be an RMS-ite you can say they are part of a GNU/Linux distribution but there is NO GNU/Linux OS! You do NOT need a compiler or a text editor or even a shell to run an operating system. You can easily setup Linux to boot up and run some custom program you've written as the first process. I guess that is a better definition. If it can be a process running in user space, it is NOT part of the OS because it can be replaced by the user.
The term 'Operating System' has become too floppy... The general users of computers regard windows as an 'operating system', when the average techie regards a kernel as an OS. The windowsthing has become a HUGE, monolithic kernel that does everything and (imho) is responsible for blurring the boundary between OS and application.. Techies will undersatnd what you mean (with little-to no ambuguity) if you refer to kernel, drivers, applications, etc.. users will look at you blankly at most of these terms, and will assume you're a computer god.. The only comment I really have is choose your terms carefully, and tailor them to the audience steve.
Windows explorer and internet explorer are TWO different executables, They happen to share DLL's.
Windows explorer is c:\windows\explorer.exe, and internet explorer is c:\Program Files\Internet Explorer\iexplore.exe
Their "tied to the OS" is merely sharing DLL's.
There is also a distinction between theory and practice.
The conceptual and theoretical model can be laid out as an 'ideal' idea of an O/S. This can include 'necessary' parts (e.g. resource management, hardware and application access layers), and then 'optional' parts (e.g. containers, objects, file systems, etc)
The practical implementation will vary. In the case of an embedded system with PIC device, there are parts of this ideal present, but not 'strongly' organised and conceptualised. In the case of a embedded system microkernel like VRTX, or a desktop operating system (Windows, Linux); the ideal model is present with strong layer separations, very organised and flexible manner, and so on.
Java itself can be considered a sort of O/S (i.e. with threading, protection, etc).
M.
These terms are some of the fundamentals of computer science and shouldn't anymore be defined by the "market" than the president should be chosen by throwing darts at a list of candidates. It is stupid. What compaq is selling is a DISTRIBUTION, a bundle, call it whatever you want. Today, yes, we mix up "Operating System" and substitute it for a distribution, but when you get down to the very fundamental CIS principles, an operating system is the layer between the lowest-level user level PROGRAMS and the hardware itself. Linux can boot up and launch any program as its first process. That is the point where the OS ends its definition and a bundled distribution begins.
"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?" "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. " I agree completely with the first paragraph quoted up there, but I've spent most of a week trying to do what you imply is so easy in the second paragraph -- finding and installing specific drivers after corrupted the boot sector on my hard disk. I think it would be nice if we could just install the drivers we need and nothing else but sometimes it helps the poor innocent fool to have everything handy
Browser today...
...Wordprocessor tomorrow.
Before long, the wordprocessor, spreadsheet, database and presentation tools would be integrated in to the Operating System...
IMO, the argument Microsoft used to include the web browser as part of Windows can be used should they wish to include Office as a part of Windows.
Just my $0.02 worth.
It's the system that operates the links to hardware, not necessarily the GUI.
Win98 is a GUI, Win NT and 2000 is an operating system. This is because the GUI is designed into the OS from the beginning.
With Win9x, DOS is the OS. As Gnome is for Linux. But then X must be the OS for Gnome, and Linux is the OS for X?
Eh.... nevermind.
Well if you have to define every aspect of what should be an OS. You would end up having to manually classify every piece of code, because its pretty hard trying to set up good universal rules about what is an OS and what is an application. I do think however that win9x or MS-dos, for that matter, is not an OS, because it doesnt make a difference between User- and kernel-mode. This means of course that programs can manage memory allocation and processor time, so you wouldnt strictly dont need the kernel, the programs could run themselves if you want em to :)..... PO
How do you split MS into MSApp and MSOS?
Do you draw the line between NT and the other products they sell at Best Buy?
Or do you also remove "applications" that come with windows?
If not, what prevents MSOS from buying MSApp's MSOffice and making it part of the OS like Notepad, Write and the rest?
I think you're doubly wrong. You can tell if something's part of the OS if it is essential within a week's usage and upkeep of a system, part of an operating environment otherwise (i include apps in OE). By that definition, plain text editors are part of the OS, because they let you fix crucial init files (config.sys and ~/.profile-esque stuff) if they get messed up. (Can't cowards have sigs? Anonymous Coward is a name, too!)
Whoa, we use the dinosaur book, too...
But in lecture they told us that the OS has two functions (ok more like 1.5 functions):
1). Load and execute a user program
2). Provide an abstraction for the machine's hardware so that a user program can access it.
This seems to make sense to me. The shell is not part of the OS; in fact, the shell is a program like any other. All a shell does is
1). Write its prompt to the console
2). Read use input from console (using the abstraction)
3). Parse what it read
4). Ask the OS to execute some program
This is pretty simplistic, of course, but fairly accurate. My point is, there is nothing magical about the shell (besides the fact that it is the first user application that is run on the system, of course).
Yes, but by your definition, the browser could be considered part of the OS. Isn't the web browser required to run/execute web based applications (ala forms, java, javascript, etc) More reasonably, the Operating System is what is required to load native applications and provide hardware drivers.
WE operate THEM for OUR purposes. Long may it stay that way...
Plain and simple: The OS is basically reponsible for the allocation of the system resources (memory, hardware, software), and the scheduling and prioritization of tasks, processes and applications. To put it in a nutshell, it is basically a "traffic cop". A Distribution consists of the OS and any applications, utilities, drivers, etc that are packaged with the basic OS. There is a tendency nowadays to refer to a distribution as an OS...WRONG ANSWER!!!
yr Ju5+ j3@1o\/5 +|-|@+ 1 b3@+ u 2 ph1r5+ p05+ u l@m3r!!!!!!!!!!##########################&^*&%**^% *%*%&*^
In the 'Findings of Fact - United States of America v. Microsoft Corporation' from last Friday I read: ... 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." ...
It seems to me that anything with the M$ logo could barely be called a semi-operating system, or an S.O.S. I just realized this could be considered offtopic...damn
I use a quasi slink/potato box at home, (I'm on dial-up, so I can't "ride the unstable wave") and I find it frustrating how Debian takes so long to come out with new version.
Instead of having so many applications which need to be integrated into a huge system, I wish they would just decide on what should be a core OS which could be stabilised more frequently and just let the application developers/packagers aim for compliance with that core OS.
JoshuaK
According to this, most of the users don't have an
operating system, not having a compiler.
A compiler is an application. One is needed to create the OS in the first place, but the OS can exist without one very nicely afterwards. Anyway, how about scripting? if you wrote a fully featured shell you could write anything you wanted using only it.
This is questionable.
An operating system manages the system's resources, whether it is memory, cpu, harddrive, whatnot. A GUI is a human interface to the OS.
True, those OSes you listed is designed with a GUI in mind. The GUI is closely integrated with the OS, but it is not the OS. What is the OS, you can't see, because the GUI hides it from you.
Any GUI-only OS can be converted to a text type OS. All you need is a shell. A shell is comparable to a GUI in its functionality - a interface to the OS. Blah blah blah, I am repeating my self now, time to go.
Laters,
Have you heard of M$ Office 97 ???
probably they build in flightsimulators and pinballgames as well in w2000.
And of course the "native" software detection, which is needed for the crash-controller, as well as the user blocker (someone knows a Jackson?) is.
Of course some extra code to make it impossible to run it with pc older than 1 year...
The rest (20 mln) of the code is all just comment... (the programming part that Bill does)
Yep quite impressive...
Wow! I remember when the debate on "is DOS/CPM/...an operating system?" was a point of contention. Back then, I remember the formal definition was something like;
An operating system controls the core hardware of a computer and provides an abstracted interface to programs for that hardware.
So, using that defition as a knife, you can seperate the apps from the OS it self. Not well in some case, but you can. For example, any module/device driver -- including X or Mac or Windows display drivers -- become part of the OS in this definition.
I see no problem with this, though the kernel can be defined seperately from the operating system. Let's see if anyone out there has a good definition for that....
The Java-Virtual Machine, in my opinion can be considered an OS. An OS running within another OS...guess that's called an emulator? (JVM *is* basically an emulator that emulates Sun's *ideal* machine. You don't need the actual hardware to exist for its emulator to exist! It doesn't matter to your SNES9x program if your Super Nintendo is broken does it?) Well, basically the OS manages the resources available to it. So anything that can manage the system's resources can be considered an OS. In the case of JVM, it manages the resources that was given to it by Linux or Windows, whatever you're running. (Who said an OS has to manage real physical resources right? It can manage virtual resources as well. :)) Anyway, to summarize, an OS is a resource manager... sort of the "boss" of all the other programs.
The Java-Virtual Machine, in my opinion can be considered an OS. An OS running within another OS...guess that's called an emulator? (JVM *is* basically an emulator that emulates Sun's *ideal* machine. You don't need the actual hardware to exist for its emulator to exist! It doesn't matter to your SNES9x program if your Super Nintendo is broken does it?)
:))
Well, basically the OS manages the resources available to it. So anything that can manage the system's resources can be considered an OS. In the case of JVM, it manages the resources that was given to it by Linux or Windows, whatever you're running. (Who said an OS has to manage real physical resources right? It can manage virtual resources as well.
Anyway, to summarize, an OS is a resource manager... sort of the "boss" of all the other programs.
The Java-Virtual Machine, in my opinion can be considered an OS. An OS running within another OS...guess that's called an emulator? (JVM *is* basically an emulator that emulates Sun's *ideal* machine. You don't need the actual hardware to exist for its emulator to exist! It doesn't matter to your SNES9x program if your Super Nintendo is broken does it?)
:))
Well, basically the OS manages the resources available to it. So anything that can manage the system's resources can be considered an OS. In the case of JVM, it manages the resources that was given to it by Linux or Windows, whatever you're running. (Who said an OS has to manage real physical resources right? It can manage virtual resources as well.
Anyway, to summarize, an OS is a resource manager... sort of the "boss" of all the other programs.
Ahh... excuse me, but Linux will run just fine without GCC... I can load up the default kernel and run just fine without ever compiling anything.
Built In OPERATING SYSTEM. Anything can be the OS. All you have to do is make sure that whatever program is going to be the O/S is attached in some way to the machine, so as to be run first when the machine is turned on, allowing for the machine to function where it otherwise would not. An OS can be a small thing or a big thing -- modern computers , IMO, have several different OS's working together as one. dev..
A lot of people here don't understand that DOS is only used to boot Win9x and to provided backward compatibility for older (16 bit) apps. Once Win32 is loaded it takes over and handles everything.
Therefore using your definition Win9x is an OS since it provides "simple" access to I/O.
In Win32, GDI32 (Graphical Device Interface) abstracts the video driver *or* the printer driver though a standardized interface. Button drawing, font rendering, and other core UI tasks are done throught USER32. More advanced UI controls are contained in COMCTL32, COMDLG32 and friends. Memory management/multitaking is done in KERNEL32, and registry access is done with ADVAPI32. Maybe the KERNEL32/GDI32/USER32/ADVAPI/Explorer.exe and support drivers/libraries combo counts as and OS
---Quote---
This is a more tricky part. Which applications are required? I'd include some sort of text editor at least. I mean, edlin is definitely a part of MS-DOS, just as vi is a part of any "standard" unix operating system. GUI might be part of an operating system - if the OS can't be run without it, or if the GUI can't be changed. Linux can't really be used if there is no compiler, therefore I'd say gcc is a part of GNU/Linux.
---End Quote---
This is totally wrong. The OS is a resource manager. A text editor should be considered the resource that the OS manages. edlin is a part of MS-DOS because it is a program that came with MS-DOS, but it is not part of the operating system. You can still run other programs even if you delete edlin. I can delete vi from linux as well, and have linux still working.
As for your comment on compilers... compiler is GOD. Without a compiler, you cannot even build the OS (well, you can do it by hand hehe). But the compiler is not a part of the OS. I can still run linux if I delete gcc from my computer. So I can't install any additional program from source (I can always find the binary, or hand compile the source.) So your statement "Linux can't really be used if there is no compiler" is totally wrong.
So why do all these programs - text editor, compiler, etc. comes with the OS? The answer is usability. A human must be able to interact with the OS, and that's through the applications. But the OS can run standalone given that you program it properly.
First it was "Micro$oft", then "Microsloth" and now "Micros~1" (which I guess is supposed to be clever, but isn't). Time for some originality, people.
in the case of windows 95/98, this means dos.
Maybe that should read DOS+Win32. Win95/98 apps can't run unless Win32 is installed.
when you install NT it is from a text interface. once you boot up off that first floppy, i think it is running the NT kernel and their is no gui.
also, you can write win32 console programs that have no gui.
just wondering.
> leaving the definition up to marketing weenies that is pathetic. that is why marketing weenies are rich, and the rest of the people are not (or not as rich.) because they're the ones telling you what you want. We should be defining what we want, and have them bring what we want to us in order for them to get our money. Anyway, your definition of OS means that everybody is running a different OS. Everyone has different programs installed... some may be using MS Office, others Lotus Suite. some may be using Notepad. Others Emacs. The OS should be defined as the minimum software needed to keep the hardware moving, operating. The rest of the programs are applications. You do not need Notepad or Solitaire in order for your machine to boot up. It is true that the OS, in this definition, is not a very useful thing. You have to remember that the OS manages resources, so you have to give it resources to manage, ie user applications. Laters,
> leaving the definition up to marketing weenies
that is pathetic. that is why marketing weenies are rich, and the rest of the people are not (or not as rich.) because they're the ones telling you what you want. We should be defining what we want, and have them bring what we want to us in order for them to get our money.
Anyway, your definition of OS means that everybody is running a different OS. Everyone has different programs installed... some may be using MS Office, others Lotus Suite. some may be using Notepad. Others Emacs.
The OS should be defined as the minimum software needed to keep the hardware moving, operating. The rest of the programs are applications. You do not need Notepad or Solitaire in order for your machine to boot up. It is true that the OS, in this definition, is not a very useful thing. You have to remember that the OS manages resources, so you have to give it resources to manage, ie user applications.
Laters,
that's what my mamma use to tell me.
I'm posting this as an AC 'cause I forgot my password :), My definition of an operating system comes from what you do everyday on your computer, you get a new application and then you say "I need (win95/NT/linux/etc) to run this", Well, that you need to run an app. is the operating system. Now, is win95 an OS?, Yes, and you know why?, because the name "windows 95" was given to what whould be DOS 7.0, that's the OS!, and then, in top of it you load the GUI we all know and love (yeah right!). Well thats my opinion.
usuario: "Habla computadora"
computadora: "Yo no hablo, computo"
So, according to your daffynition, the MacOS is also an application, not an OS?
Why? I could MAYBE understand Windows 95/98, because they do have some form of DOS underlying them. But NT/Windows 2000/MacOS (until OSX) don't...
OSX, OTOH, like Win9X, could be assumed to be an application.
Have you actually tried Windows 200, or are you just practicing "Linux Advocacy" by ripping what you don't know?
and for all the people who tried it, apparently YOU never did.
Since you have only cynical comments, I have to believe you've never even seen it run, let alone used it yourself.
Which disagreed with Jackson when he said this before.
Your definition is still too much.
Here is my definition:
A Kernel, and a punch card acceptor (hardware)
now that's an OS.
NOT!
To be convenient means to be able to type in the command in 10 key strokes. That is also efficient. Clicking through 5 menus, (and waiting for those menus to load up) is not efficient, and, to me, is not convenient either. Therefore a GUI is not a part of the OS.
...and beholder.
in general, it's the software that makes the difference between a device that does nothing and a device that does something.
action device response
---------------------------------
remove software. nothing.
apply power. nothing useful.
restore software. something useful.
for example, there are pieces of software out there that run in 256 bytes (or less) of space, and call themselves a "real time os".
the issue has been debated for years -- along issues like how much ram, volatility, rom, disks, subprocess support etc.
it's pretty gray in the final analysis.
Sorry but Win9x is an OS because Win32 (not DOS) handles memory management and IO. DOS is only there to boot Win32 and provide backwards compatibility for older apps.
I suppose you think that Novell NetWare is just a application because it requires DOS to boot?
Now go back to work. Your company is in trouble and you can't be wasting time posting trivial messages on Slashdot.
beaten material.. but having spent many years in both *nix and 'doze, i found this to be an interesting question.. personally, i think the operating system is basically defined by the level of configurability possible.. you cant compile out options you dont need from the windows kernel, so you have to count everything included towards the sum total. doze also becomes basically useless without the gui, so you really have to count it towards the total as well.. linux, on the other hand, is a completely functional OS without X or any other gui, and you CAN custom-tailer the core of the operating system to your machine, and not include anything but what you really need to run (basic unix tools)..... its all about choices. where do YOU want to go today? (psst THIS WAY) uuu AgentZ - Signoff(Leaving.....) "nothing is sacred"
Yep. Sounds right. Windows is a non-operating system. I couldn't agree more.
beaten material.. but having spent many years in both *nix and 'doze, i found this to be an interesting question.. personally, i think the operating system is basically defined by the level of configurability possible.. you cant compile out options you dont need from the windows kernel, so you have to count everything included towards the sum total. doze also becomes basically useless without the gui, so you really have to count it towards the total as well.. linux, on the other hand, is a completely functional OS without X or any other gui, and you CAN custom-tailer the core of the operating system to your machine, and not include anything but what you really need to run (basic unix tools).....
its all about choices.
where do YOU want to go today? (psst THIS WAY)
uuu AgentZ - Signoff(Leaving.....)
"nothing is sacred"
Would windows/linux still be considered OSes if they are running on VMWare? http://www.vmware.com Then in that case, would VMWare be considered an OS?
The definition of an OS is best seen as a moving target. It never stays the same. In 1994 no one considered the GUI part of the OS but in 1995 the GUI became inseperarable from the OS. In 1995 HTML renderers were not considered a part of the OS, in 1998 it did. Once a music or nmovie player would have been considered an application, today I suspect more and more people EXPECT to see such on their machines. At best we can say that an OS the part of the computer we want to work invisibily, like the stage crew that supports an opera. We don't want to see the people moving the sets, we want to pretend that they're not there but we know they are and have to be.
:)
The definition of an OS is best seen as a moving target. It never stays the same. In 1994 no one considered the GUI part of the OS but in 1995 the GUI became inseperarable from the OS. In 1995 HTML renderers were not considered a part of the OS, in 1998 it did. Once a music or nmovie player would have been considered an application, today I suspect more and more people EXPECT to see such on their machines. At best we can say that an OS the part of the computer we want to work invisibily, like the stage crew that supports an opera. We don't want to see the people moving the sets, we want to pretend that they're not there but we know they are and have to be. None the less we can make some distincting between OSes and Applications. I liked the idea presented in an earlier posting that applications that we can or would delete. Of course that's a variation of the "an OS is what I'm pointing to when I say OS" definition. But notice that while an operating system does need a text editor and a document viewer Microsoft only provides Notepad and Wordpad for these functions, not Word. While modern useage calls for an HTML renderer that should not mean that we have to install all of Internet Explorer 5 just to read HTML e-mailings. Microsoft's "line in the sand" the power to "innovate" is a claim for the power to make the OS what they will, and to an extent they do need that power since it's hard to anticipate what the next big thing will be. So it's always going to be a little difficult to decide when MS is adding a feature customers are demanding and when they're adding features to stifle some competitor. Judge Jackson finding of facts continually returns to how Microsoft used licensing of windows to control distribution of other products by OEMs. I don't think you can define an OS in terms to prevent monopolistic actions but I think you can define how Microsoft licenses Windows to get it from stifling competition. Brian Brown beb01@sprynet.com
An operating system is a piece of software that manages the hardware and software resources of a computer. The operating system is responsible for providing and limiting access to the computer's resources. An operating system should provide a programming and user interface to the resources.
i made a typo, *cough*, sorry i meant,
:)
1 m@d3 @ tyP0, 5u3 m3!?###
1'/\/\ 0bv10u5ly n0t +|-|@t 31337 @f+3r @11
I agree.
I think that on a Linux system the operating system sets up all the hardware and then calls the init program. The init program is the first user application that runs and all processess are forked from this process after that. By controlling the init process a developer can run any application that one chooses to run.
You don't even need any shells if you have a specialized program that controls the hardware in a computer appliance. You could have Linux control a scanner where the only application that is ran is init which in reality is a speciallized program to interface the scanner to a scsi bus or USP port.
This example makes the disctintion between os and application very clear. The operating system provides services, the application uses these services to accomplish specific tasks.
The Linux operating system never runs as a seperate process. Anything that runs as a process is not part of the operating system.
Therefore, the kernal module once loaded is part of the operating system, but the application that is used to load the kernal modual is not part of the operating system.
In the first place, isn't a computer a machine which is controllable in multiple ways by a set of software instructions, which by nature could be controlled by anything as simple as a BIOS, or as complex as someone deigns to design? Secondly, if the point is to define for criticism sake, can't an OS be anything the designer(s) want, and a successful OS merely one that users decide to make use of regularly? Why the need for definition here? -Jn-
An OS is just the minimal software required for interaction of the hardware and any software above it. Put another way, its the univeral dependicies for almost all API's. So if everything used http, then httpd could be considered a part of the OS. If not, then its an app running on top of the OS. That simple
To Unix-Weenies, of course, code is part of the OS until it's been shown not to work. Then, magically, it's Not Really Part Of The Operating System At All.
Actually the OS is written by systems programmers to allow application programmers access to the underlying hardware. The only thing that the Linux OS does is run a single process (init) and answer system calls. The libraries that people use are written on top of the operating system calls. The applications are written using a combination of system calls and library calls. But actually any application could be written directly in terms of system calls.
OS'es beyond DOS work by _abstracting_ the hardware layer with device drivers to allow you to install a printer driver once that will work with all your applications. Anyone remember the nightmare days of MSDOS where you had to configure the printer driver for each of your 20+ software packages?
Xerox invented the GUI, not Apple. Apple stold the idea from Xerox and MS stold the idea from Apple. You have been able to browse files on your local machine with a web browser since about 1991...
Interprocess comunication (IPC) standards are written to allow multiple programs across multiple platforms to work together as one. Distributed computing is the future, we are so bad at it because no-one has simpified the theory enough to explain it to an eight year old...
All OS'es act as the intermediary between the applications that run on a system and the hardware of the system. The difference between an OS and an application is that an application needs the OS to run.
And by the way, the GUI isn't really built into the Windows OS. You can run other programs at boot time to replace the GUI with other tools, including a shell...
I don't think that Lilo the bootloader meets the definition for an OS because lilo is replaced by the program that it loads.
According to _Operating System Concepts_ by Silberschatz and Gavin "The operating system provides certain services to programs and to the users of those programs in order to make the programming task easier."
They later infer that these tasks include; system calls, process management, CPU scheduling, process synchronization, deadlocks, memory management, virtual memory, file system interface, protection, and security.
Of which lilo provides only a file system interface.
This is a definition from the book _Operating System Concepts_ by Silberschatz and Galvin:
The book is a very good resource for anyone who is studying operating systems because it covers the concepts from a historical perspective and objectively covers a variety of solutions to the problems of Processes, CPU Scheduling, Process Synchronization, Deadlocks, Memory Management, Virtual Memory, File System Interfaces, Protection, Security, Networking, Distributed Systems and Distributed File Systems. It also gives a 50 page case study of the UNIX system.
The only way to make the fifth edition better is to add a case study of Linux to demonstrate how a free OS solved these problems.
A computer system can be divided roughly into four components: The hardware, the operating system, the applications programs, and the users.
The hardware [is] the CPU, memory, and I/O devices which provide the basic I/O devices.
The applications programs [are the] compilers, database systems, games, [text editors,] and business programs [that] define the ways in which the hardware will be used...
The operating system controls and coordinates the use of the hardware among the various applications programs for the various users.
The other box is running OS/2.
...and another is BeOS...
...and FreeBSD...
Actually this guy is quite right. If you are talking to the computer users who are only competent to run a windows machine then of course everything is part of the OS.
Funny how most UNIX users are smart enough to know that their OS is called Linux and their distribution is called Redhat, SuSE, Caldera, Slackware, Debian, etc...
Seems that the latter group is actually using the computer terms as used by computer scientists, as opposed to computer term used by computer illiterates...
I suggest that you take a look at the number of kernels are fetched every day from kernel.org and its mirrors.
MS is the only vendor that sell an "O/S" that need a third party memory manager to fix their problems. e.g. qemm....
You're forgetting that the user has to train for quite a long time in order to know how to do complex operations in 10 keystrokes. GUI is meant to be easier to use /and/ learn.
The primary interface between hardware and software. A common set of functions which provides hardware functionality as services to software developers.
CPM was an OS. Any extras are not. Said well, but a few distinctions. Lets look at MVS, which has about 200 SVC, supervisor calls/ primatives in its kernel/nucleus. Pretty much same number now, as back in 1960! You must have a kernel, and some drivers, that handle primitive io. That is your OS. That its.MS pretends Windows is big, but it is really, mostly a huge set of drivers and fonts, and a few dozen bloated applications. You need nothing else. Efficiently running a program from here is easy - just drop the cards into the stacker, or slide in a cassette tape, or use a slim client - 3270, or sunray - seems dumb terminals are back. On to this you bolt on some key operating system services (Master scheduler, Security(RACF) TCPIP stack/Comms Services, and a shell for people to log on. All text all character sets. Back in the 70's, with a color graphics character set, you could still design a spiffy airline reservation system, that worked FAST on a 4800 baud line. Management insisted on more, so IBM threw in assembler , a system logger, and FLIH for free. JES2, or a print spooler is not OS- and costed extra. In fact, any extras from here - IBM got done for 'bundling'- Then said to MS, been there, did that - you can't do that cause we could not.. So we come down to a minimum set of core primatives, plus some base tools. Come to think of it.. VTAM, or the Network OS was an 'extra' - as you really dont need it.... Graphics/Windows is NOT OS. Browser is an Application. You get the picture MS has a few mistakes. Not all of its core routines live in the kernel, and lets applications call non-kernel supervisory code. If MS fixes this, plus builds in parm checks on the 200 or so core routines - then it will run slower. Think what would happen if it chopped the windows bit out, so it can run on its own CPU. I says to myself LInux got it right first time. DOJ shouyld ask why MS went to the non-modular model, and now com files. A take it or leave it approach???
If my computer starts self developing, I'm unplugging it from the wall...
Init will still run just fine. For an embedded system you replace init with the program of your own design and let this program do what you need. You don't need any shells or GUI's or anything else for Linux to be useful.
It's called DR-Dos, originally from digital research. Download it from the Caldera Website (Caldera is a spin off from Novell, according to the Cue book)
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+
- 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?"
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?
Contrary to the popular belief, there indeed is no God.
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
...phil
"For a list of the ways which technology has failed to improve our quality of life, press 3."
It's a kernel.
...phil
...phil
"For a list of the ways which technology has failed to improve our quality of life, press 3."
Posted by cookieman.k:
s ive/Redundant/Troll/Flamebait. !!
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/Offen
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.
Have you read my journal today?
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.
pb Reply or e-mail; don't vaguely moderate.
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.
It's not enough to bash in heads, you've got to bash in minds. - Captain Hammer
>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.
The definition of an OS is a very murky and grey thing. A look at seperable componants would be in order here.
In some systems, various items above are combined into one (for better or worse), or an item may become mostly a stub. It is also possable to have more than one of some of the items stacked together such as bash->X->WindowMaker or xdm->X->WindowMaker.
In an embedded systym, some custom program replaces init and provides every layer above the kernel.
Some systems violate the layering by sprinkling callbacks all over the place or through inconsistant policy wrt. what handles what (*cough* Windows *cough*) That doesn't make the model go away (as much as MS's legal department wants it to), it just makes a system ill-defined and kludgy. Even those systems can (with herculian effort) be seperated. Win '95 HAS been run on top of DR DOS (I don't have the references handy) and the browser HAS been split out of Win '98 (with great difficulty).
It IS vaguely possable to split the 'window manager' out of Win '95 and insert another though MS certainly goes out of it's way to make that hard to do. You can boot Win '95 into 'DOS mode' which is actually a conglomerate of DOS itself, and a few 32 bit extensions from Windows itself.
A well integrated system doesn't have to be sloppy like Windows. For example, I consider O2 with IRIX and 4dwm to be a well integrated system, but it is quite easy to replace the system utilities and shell with parts of the GNU system, and still have a nice, well integrated system. It's also possable to use a different window manager if for some odd reason you don't like 4dwm.
Now that we;ve defined a few basic terms, we get to decide which of the basic componants make up an Operating System. Personally, I would call it kernel + init + system libraries +system utilities. That does NOT include the shell! (be it text or GUI).
I'm done rambling now.
>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.
/bin/sh
:)
this basically narrows down to the kernel.
i personally count "operating system" to mean the kernel + a shell.
in the case of windows 95/98, this means dos.
in the case of windows nt 4.0, this counts the gui i guess.
in the case of linux/unix, i would say a minimalistic operating system is kernel +
smash (operating system = software required to "operate" your system this just mean device drivers + kernel?
I run: Windows, OS X, Linux, FreeBSD. Just because you have a hammer, doesn't mean everything is a nail.
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)
I run: Windows, OS X, Linux, FreeBSD. Just because you have a hammer, doesn't mean everything is a nail.
you dont necessarily need all the stuff than init runs to use your machine ;)
/bin/sh will do ;)
if all I want to use is echo to write and read text files, then the kernel +
smash
I run: Windows, OS X, Linux, FreeBSD. Just because you have a hammer, doesn't mean everything is a nail.
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.
--
An Operating System is the name given to a collection, consisting of one or more programs, which:
For Multi-Processing OS', the additional are also required:
For Parallel Processing OS', a further set of requirement is present:
Exactly how any of these are implemented, or the exact interpretation, depends on what exactly the OS is trying to do, and how it's written.
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)
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.
-- Slashdot sucks.
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 ).
--= Isn't it surprising how badly I spell ?
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.
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.
--
__
Men with no respect for life must never be allowed to control the ultimate instruments of death.
GW Bu
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
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?
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?
The trickier question is deciding what is and is not an "application"
.EXE file is their problem.
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
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!!!
Chas - The one, the only.
THANK GOD!!!
I see even classic Slashdot is now pretty much unusable on dial up anymore.
I see even classic Slashdot is now pretty much unusable on dial up anymore.
I see even classic Slashdot is now pretty much unusable on dial up anymore.
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.
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 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.org
-- Faré @ TUNES.org
Reflection & Cybernet
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)
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.
Wealth is the product of man's capacity to think. -Ayn Rand
real users toggle an application boot loader in with switches!
Chuck
Seriously - I wanna PDP-8
try { do() || do_not(); } catch (JediException err) { yoda(err); }
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.
The Future of Human Evolution: Autonomy
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
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.
I'm a loner Dottie, a Rebel.
You want to know what an Operating System is? Here's the definitive definition, from Judge Jackson:
All you software engineers can now sit down. You don't count.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.
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
(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. 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.
Tweet, tweet.
Quick summary of this article
To quickly summarize this article in a way we all know something about:
The "OS" can be thought of as several things
To me, the OS can be separated into several items:
One may also remember that the OS vendor may or may not include variour applications, which provides the OS user which something that can actually USE the hardware located underneath the OS.
What does this really mean?
Comparing this to the current Microsoft trial, it is pretty obvious that IE 4.0 is only a vendor-supplied application to the Windows 95/98 OS.
But when it comes to the Windows 98 product, I must admit that I know too little about that product to be really sure. However, since it has been shown in the Microsoft trial that the code behing the IE 5.0 APIs can be replaced by third-party "dummy" code without changeing the functionality of the OS, the IE 5.0 API's clearly belong to the vendor-recommended API's.
The IE 5.0 application (which allows the user to surf the net etc and uses some (most?) of the IE 5.0 API's), is only a vendor-supplied application.
The kernel and device drivers
I do not think anyone will argue that this is part of the operating system, if we only include low-level API's (read one sector of first unit on SCSI device 0, memory allocation, task management etc etc) that hide the hardware from the application.
On any Intel platform, I think that the BIOS fits perfectly into this category.
For Linux users, I believe that the /dev files fall under this category. Since the POSIX APIs are used on most UNIX systems, I think they should be classified into this as well for that kind of operating systems.
Most Amiga users also find that all .libraries present in the Kickstart ROM (the task scheduler and the utility functions of exec.library, the graphics I/O routines of graphics.library, GUI interface of intuition.library, file-systems and file-management functions of dos.library etc) are part of this category. But the Amigans probably don't think that the fopen() functions are part of the OS. They are just another level above the AmigaOS's real Open() functions.
Vendor-recommended API's
These API's and the code executed are any API's that really don't depend on the underlying hardware. The executed code just use the official API's of the Kernel and device drivers instead.
In this category of API's are the API's that the supplier of the kernel and device-driver API's also ship as a service to the application developers in order to shorten the application development time for the OS.
Since these are not actually required for the OS to work , most users might think that these can be thrown out. That is really possible! However; since the API's are supplied by the vendors of the OS at no extra cost to the application developers, it is very likely that third-party application developers will depend on them for their applications.
On the other hand - the user may replace the code with third party code which performs the same task in a different way, allowing more customization or additional features through new - third party supplied - API's.
The latter rather common amongs Amiga users thanks to the very open architecture of the AmigaOS. For Linux users, one may think of the swapping of window managers in this way.
To this group, one may also add the kind of external vendor-supplied applications (cat, sort, head etc) that performs a specific task based on input and returns a parseable result similar to an ordinary API, to be used by third-party applications.
Third party API's
These are normally not really a part of the OS, but sometimes these takes on similar responsibilities as the recommended API's, and in some cases even adds to the kernel or device driver API's.
Depending on their popularity amongs other third-party developers, they will be more or less required by third-party applications.
In the Amiga environment the ARP.library or MUI.library are perfect examples of these. For most Unix-users, metamail or PGP is a decent example. The Windows environment almost completely lacks this type of API's, or they are camouflaged into application-specific DLL's.
Software designer
> 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.
Everybody Lies. But it doesn't matter since nobody listens.
It doesn't have any "packaging" fancy or not.
Everybody Lies. But it doesn't matter since nobody listens.
*that's it folks*
Everybody Lies. But it doesn't matter since nobody listens.
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.
Everybody Lies. But it doesn't matter since nobody listens.
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.
Everybody Lies. But it doesn't matter since nobody listens.
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.
Everybody Lies. But it doesn't matter since nobody listens.
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
So W2K will only be 30 million lines of code?
Gates' Law: Every 18 months, the speed of software halves.
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.
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...
No one can be told what an OS is, you have to see it for yourself.
If you have ever written (or ported) an OS, you know exactly what it is. You just know it in your gut when you finally get all the bits and pieces working and all your API/syscalls/exception-handlers are good and happy and clean and consistent, and you get to the point where you can write apps and do other development. Yes this means smaller "apps" like ls and cp and rm and a rudimentary "app" downloader is part of the OS itself, but again, if you wrote the OS you know exactly the moment when your baby becomes useful.
To the rest of you who have never done this, you will always be able to make a guess, but trust me, until you've done it yourself you can't possibly know what it means. As long as you are an luser you will never know. Oh, and far as Microsoft as a reliable source goes... when was the last time you saw anything from an actual developer in the form of a press release? Marketing droids are OS designers now? Chuckle. Please.
It sounds elitist, but every OS designer/developer I know has a good feeling for where the line is (it may not be precise, but it is good enough), and everybody else likes to wave their arms about and make crap up while their stinking pie hole blathers on and on about shifting paradigms and niche filling.
Its sorta like asking a layman to tell you when the plane somebody else just built has just enough functionality to fly... if I were you I'd ask the engineer if he'd climb aboard himself.
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.
Operating system concepts (dinosaur book...) by Silberschatz Galvin says:
and
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
Given that I can replace everything on my Linux box with something else, including the kernel, does that mean, there is no Linux operating system?
-- 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.
/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?
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
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.
/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?
How about kernel modules? Are they part of the operating system? Even if they just add nifty features to the computer and don't actually deal with hardware?
And to the guy that said only the kernel and a
I remember back in high-school they taught about 'application software' and 'system software' but it's a very fuzzy line and I don't think I've ever heard a definition that satisfies..
An operating system is defined as the set of instructions that interface between the user and the hardware. At least that's what I remember from my old operating systems course back in college.
The stuffy technical definition says, I think, that an operating system is a program (or collection of programs -- a system) that allows you to manage your coupter's resources.
Once you get past the point of "managing resources," everything else is an application.
The question is: What's a resource?
In general, a resource is a piece of hardware. The operating system should, for instance, manage your disks, manage your programs (in memory, and on disk), manage your video hardware, at least to the point where it writes stuff on the screen, and probably provide interfaces for your programs to do the same. (Note that this specifically excludes program loaders, like lilo -- and in my opinion bios, from being an operating system)
Your idea of managing resources might be different than mine, though.
By that definition, W2K is probably more like 50 million. The catch is that 10 million of those just don't exist.
(Alternate punchline: 40 million + format c: + 1 linux CD)
Everything's definition
Greg
According to Operating Systems: Design and Implementation (Tannenbaum and Woodhull, Second Edition 1997) an operating system is the system that manages the system resources and provides a base to write applications on. An OS functions as an extended machine (or machine abstraction, if you will) and a resource manager. Anything more than this defies the idea/theory of an Operating System. So, no web browsers, no GUI's are actually part of an OS.
I wish I had a kryptonite cross, because then you could keep Dracula and Superman away.
In my opinion, the operating system is the part between hardware, and applications, which you cannot see.
The operating system itself is the invisible layer, which provides a representation of the hardware to any aplication.
It depends- how integrated have you created it to be? What does it need to function properly? For instance, we have:
Linux/Unix, where it could just be the kernel and a shell,
Mac OS, where the GUI is tightly integrated with everything, and you must load it (AFAIK),
Windows 95/98, where the GUI and a web browser is built in, but if you have to you can boot into dos.
Each one is an operating system: Linux, where it can be as stripped down as you want it to be (though I really wouldn't want to go without bash, an editor, and a compiler/liberaries), Windows where you have to at least install the GUI (and are pretty machocistic if you are going to use just DOS for anything heavy duty), and Mac where the GUI is completely inseperable with the rest of the OS. Things like wordpad and vim don't really count as part of the OS, but they are included beacuse an editor is usually needed. Then again, I have no idea why Windows had to ship with IE integrated- the file manager as a seperate app worked just fine for me.
Of course, this is all bullocks, because in reality all an OS is is the Microkernel that runs EMACS!
Still not dead.
I would say that, according to your logic, Win2000 will be the smallest operating system on earth - None of the lines of code bring the system into an operational state :)
just to add to the confusion:
my definition of an operating system is software that exports an API to allow applications to access the computer hardware atop an abstraction layer.
my definition, in the case of linux, would include the kernel and the shared libraries. in the case of win95/98, it would include the dos kernel and the windows drivers/dlls.
to me, the interface is seperate from the operating system. applications can run without an interface (in the case of servers, especially)...you just won't be able to interact with the applications much.
this definition gains more acceptance when you take into account embedded devices. a stereo receiver (although it doesn't need to run an operating system, but assume it does) doesn't have a software-driven interface. you interface with your stereo using the buttons on its face. the interface, therefore, is not part of the operating system, because you could rip the face off and your stereo would continue to play music when you applied power.
I know I always considered it a sort of portal to playing video games. Sort of like Zsnes is to snes roms; only on a larger scale. I never considered windows an actual operating system.
Even back with 3.1, the only thing people really used it was to play solitaire and minesweeper.
My guess is that the OS is any particular abstraction of whatever underlying hardware (or software) is there, as seen by applications. To the user that might be "windows and menus and buttons and stuff", but technically its more like the set of APIs and components that applications make use of.
The key idea of this definition is that the "OS" exposes this abstraction to the applications (eg by making an API available), but an application doesn't expose any APIs or anything of that sort to anything else. You can remove applications, since no other applications depend on them, but remove any of the core components or APIs of the OS and applications will break.
According to that definition, though, any application which exposes some sort of API to anything else (e.g. the GIMP or Netscape, with plug-in models, or a JVM running on anything) is in itself an operating system.
Sorry, that definition doesn't win. Your idea of a browser is being applied across-OSs therefore it's invalid.
Even worse still, I'm sure you can find 10k people who think "windows 98" incl. GUI is an OS, not a cockup^Wapplication...
~Tim
--
Rushing on down to the circle of the turn
I don't think running in kernel mode is quite that definitive. For example, the paging software on the Michigan Terminal System ran in user mode, not system mode. ;)
I think the definition of OS depends on how you view it, and the boundaries get very fuzzy. XFree86 would be inside the OS for someone who is GUI-centric and outside the OS for someone who is CLI-centric.
Another cheap shot. If it was written by the OS group it is part of the OS. If it was written by the Applications group it is not part of the OS. Of course the OS group tries to add user functionality and someone in the applications group thinks (s)he knows more about OS things than the OS group. The preceeding is a disfunctional analysis
Operating System is a very vague term to represent an environment for applications. The Java Virtual Machine + API can be considered as an Operating System in itself. Gnome and Kde are nearly operating systems. Smart cards have operating systems.
. . . . . . .
may u!sh 2 sm!le at dz!z bad nn.!m!tat!ion
Actually the windows msdos.sys in not part of the OS in the sense that msdos.sys used to be. It's actually text, along the lines of:
[Paths]
WinDir=C:\WINDOWS
WinBootDir=C:\WINDOWS
HostWinBootDrv=C
[Options]
BootMulti=1
Logo=1
BootGUI=1
DoubleBuffer=1
AutoScan=1
WinVer=4.10.1998
plus padding.
My definition is that an operating system is the piece of software which 1) interacts and controls the hardware and 2) provides the ability for other software to be run without needing to directly control the hardware.
GUI's are thus not part of the operating system. Now would be a good time to dig up the label of "operating enviroment" (I've only heard it attributed to windows 3.x, but the concept is pretty much the same whether you're referring to X, the Presentation Manger/Workplace Shell, etc. The system running underneath is still capable of controlling/interacting with the hardware).
The web browser is an application. Just because they're moving towards becoming the catch-all text presentation system (html/xml, online help, command references, etc. ) does not change the fact that other pieces of independent software are still capable of running without their presence.
My basic rule for determining what is part of the operating system: if you can replace a component with a third-party alternative, with the operating system as a whole still being able to fit the previous definition, it is not part of the OS. Thus, internet explorer is not part of the windows operating system, as you could replace it's html viewing abilities with mozilla, netscape, opera, etc., you could replace it's ability to run java applications with another java-capable browser, or a standalone jvm. There are a wealth of applications that won't care whether or not you have any sort of browser installed. X is not a part of *nix as an operating system, as you could replace it with berlin (or you will have the opportunity as the berlin project makes more progress). Of course, not every alternative has the same feature set as the original, but you are not compromising the abilities of the operating system itself.
-transiit
- manages memory (allocating and deallocating memory for processes, and taking care of virtual memory paging)
- provides mechanisms to access the computer hardware (isolating them from the application -- think of the same OS running in different hardware platforms)
- Manages the processes themselves (scheduling them, etc)
- Manages the file system.
and is usually made up of a kernel and a set of utilities to tune and set up its operating parameters. (Perhaps this definition is a bit UNIX-centric but anyway.) So in the GNU/Linux case the kernel, a shell and the file utilities are part of the operating system, but X certainly is not. Following the definition strictly, I see the text utilities as a set of applications bundled with the operating system, but not part of the system itself.Applying it to Windows, the GUI seems to be just a graphics application running in kernel mode, unless it is monolithically integrated to the memory management system. Would it be possible to remove the GUI (not in the final product of course) and still have windows booting and managing it memory and talking to the hardware and opening and reading files, i.e., would it be possible to write a console version of windows without rewriting its core management units? I wouldn't say that Windows' "OS" is just the old DOS underneath because the old DOS doesn't have the memory management capabilities used by Windows, but OTOH saying that Solitaire is part of the OS doesn't sound reasonable.
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.
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...
Very good comment.
;^)
Speaking as a systems programmer, I would not say that the inetd operations are part of the "operating system", but I would say it is part of the "system for operation"
I have had numerous debates with a colleague of mine about whether or not Windows 95 is an operating system, or just something that sits on top of a hidden DOS. We finally agreed, that it is more of an "Extension" of DOS since Windows 95 was needed for certain apps and operations. We then started debating if X is an opertating system, or is that an "extension" too?
Operating System is a ambiguous term now a days. If you want to talk about the thing that controls the hardware, you should say "kernel". If you talk about all the apps you need to get operations done, you should say "distribution", although I agree that "environment" is an equal term, although I do think that "platform" can be as ambiguous as OS.
"You say tomAto, I say tomaato, you say LIEnux I say Lynnucks."
Steven Rostedt
Steven Rostedt
-- Nevermind
There! Isn't that clearer? ;-)
To the original point, it is a sufficiently broad statement that the size of the OS code is irrelevant.
-XDG
operating system: that which lies between the hardware and the applications running on the hardware. the purpose for this is to abstract the hardware from the applications software so as to provide: device independence, scalablitiy, and portability for applications. they also provide basic system-wide resources such as: fonts, device drivers, and file-systems, sound, video, printer, and power-management. operating systems that still maintain hardware-dependencies are imperfections.
As someone who is employed to write an OS, when I read this last Fri I was impressed. This definition leaves little to be argued with. He has defined what an OS is better than half the computer books available. Personally I think that an OS is also the set of utilities used to give the user control over the resource allocation, but this is a weak statement and only applies in certain instances. I define the OS as the kernel+ basic utilities+ libs. These utils can be file management utilities, and utilities to control how much RAM, CPU, disk space, IO, etc an application has access to.
I give M$ room on what is considered a basic utility. Things like regedit are required for real system administration and as long as windows continues to use flat text files to store some configuration information (boot.ini file or whatever its called now) I consider notepad/edit a necessary feature. On the other hand things like wordpad, wang imaging etc, are not part of the OS and M$ really should have moved them into that crappy little bonus pack they try to sell for more than its worth.
My take on the IE issue is that as soon as people began to use HTML as a help format a HTML viewer should have been included somewhere in the libs. This boils down to whether or not you believe that the old winhelp.exe should be considered part of the OS. Is the help function prevalent enough to have a consistent API/Format for applications to create consistent looking help? The real solution probably would have been much like the KDE one. Install a 'light' browser by default and then if people want a better browser they have to get it separately.
All the crap that comes on some of those linux distros is _NOT_ the OS. That's why its not called the 'Red Hat OS' or the 'SuSE OS'. Its the linux OS with Red Hat's additions.
A free OS with free applications is a completely different animal than a commercial OS with applications, that compete with other companies offerings, being bundled with the OS. They could ship windows with every piece of software they currently make. What would happen to the market if every M$ OS came with M$ Office/Backoffice etc? Someone has to pay for all that 'free' stuff. Who pays the salary of the programmer who wrote wordpad/Wang imaging/Paint etc? You do, everytime you buy a copy of windows. The 'free' stuff being distributed with your favorite linux distro is really free because it doesn't usually cost the distro any money to include. It still may hurt a potential application company but the distributor is not gaining anything from it.
I wrote a preemptive thread switcher in about 250 lines of C. It ran a 68hc11. I didn't have any sync primitives, but you could just use globals and suspend interrupts. I'm sure it could be shrunk to 175 with little trouble. Is it an os?
As far as I can tell the 68hc11 has no test-and-set instruction (!!!).Is this true?
Lilo is an application that builds an bootloader (also called lilo).
Lilo is a bootloader. A program started by the BIOS. An operating system, IMHO.
By contrast: loadlin is an application and a bootloader, which runs under DOS.
(you may want to subsitute 'application' for 'system utility')
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.
Geeky modern art T-shirts
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.
Maybe Rob should add some code which looks for unclosed lists and closes them for those too lazy (or clumsy, or forgetful, or whatever) to do so.
-- $SIGNATURE
I would say that the Operating System is the very core of what's running on your system. The barest minimum without which nothing would run.
That part of the OS is called the kernel.
That's about how I'd define operating system. (The kernel + required applications to run programs.).
It does not include a browser, text editor, compiler or even the GUI (sorry Bill).
This is a more tricky part. Which applications are required? I'd include some sort of text editor at least. I mean, edlin is definitely a part of MS-DOS, just as vi is a part of any "standard" unix operating system. GUI might be part of an operating system - if the OS can't be run without it, or if the GUI can't be changed. Linux can't really be used if there is no compiler, therefore I'd say gcc is a part of GNU/Linux.--
It has to work - rfc1925
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?
"An operating system is a program that acts as an intermediary between a user of a computer and the computer hardware. The purpose of an operating system is to provide an enviroment in which a user can execute programs in a convientient and effiecient manner." Galvin, Operating System Concepts 5th Edition.
So even Windows 9x/2000 fit under this, except convientient and efficient are relative terms.
---- aut viam inveniam aut faciam
well... on the GUI line of thought, what about PalmOS. PalmOS, symbian, and other operating systems were designed with the graphical interface from the ground up. Now for a server class operating system, i'd agree that the GUI probably isnt important. The core services of *nix, netware, and nt dont rely on the gui interface for anything other than changing settings/installing/configuring (and not even then most of the time). For lots of other OS's ( embedded, desktop, webtv etc) the GUI IS a fundamental part of the operating system.
IIRC the PalmOS GUI talks directly to the hardware(screen), there arent separate drivers or a separate layer as per a desktop operating system.
To start my own question, do shared libraries (glib, clib, mfc) count as part of the operating system?
--
As risk of sounding synical...
The best way to learn what an "operating system" is is to take an Operating Systems course where you actually write a kernel.
An operating system itself consists of the kerenel, plus some service layers. That is there are "application programs" that ARE part of the OS. This is because anything that is implemented in the kernel has to be justified as needed in the kernel. In the posix standard only about 100 or so function calls are considerd to be part of this. While this makes for one bitchin kernel, it doesn't make for an OS. The OS must also consist of a bootstrap code, loader code, and some kind of "kernel thread" or initial user process (as a minium). In modern desktop operationg systems, this level of service layer code has grown. It is very possible that Win2K has that many lines of code, although I will agree that it's probably wastefull and still doesn't work (but that's a different story).
Another way to look at it is that whatever your vendor includes with the base "system" release is the operating system. That means things like /bin/cat become the operating system, but at least on some system, /usr/bin/cc does not, because it's an "optional" product. If you get one CD from the vendor that says Base O/S, and another that says Development Tools, and still another that says User Contributed Software, you're probably going to end up thinking that the first CD comprises the operating system, but the other two do not. Of course, if you look carefully, you'll find that the first one contains /usr/games/rogue and /usr/games/fortune, but hey, your vendor put them on the O/S CD, so O/S they must be, eh? :-)
One more way to think of this, and one no doubt that the Evil Empire would appreciate, is that if you cannot remove it and have the system still run ok, then it's part of the O/S. If it can be removed without hurting anything, you're not talking the operating system. For example, if you wipe /dev, your system won't run anymore, so those files must be pieces of the operating system. If you remove /etc/rc* and /bin/sh and /sbin/init, you'll have problems booting, so they must be part of the operating system.
But this is really a fuzzy thing. If I remove emacs, which the system did not come with, then the O/S still runs fine, but I've got one user who would just flip. Likewise KDE.
I think most users would consider anything in the system directories to be part of the operating system, even when these programs aren't executing in kernel space. Of course, a kernel hacker isn't going to be so quick say that. He's likely to tell you that if it's in kernel mode, it's the kernel, and that's all there is. He'll run commands like:
And say that those are part of the O/S. A sysadmin will cat outSo the answer to "what's an operating system" really varies dramatically depending on the purpose of the querent and the background of the queried. I'm not trying to say that truth is relative, but rather that perspective and intent count for a lot here. You'll never convince your grandmother that that solitaire program her computer came with isn't part of the (operating) system she bought, but you'll never convince a kernel hacker that xbill is the operating system.
It might be more useful to stop thinking in terms of "operating systems" and consider instead terms such as "platform" or "environment". Why? Well, that way you can distinguish between a system with say, an a.out and libc environment and one with an elf and glibc environment, despite the fact that they might both run the same kernels. It's a useful distinction, but it's not something uname is going to tell you about.
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
So for Linux 5000 man pages and 50 hours of downloads are part of the OS?
A deep unwavering belief is a sure sign you're missing something...
Ha ha funny. IE is just a user space applications that does double duty as the shell. And its a pretty damn good idea too, becuase forward and back buttons on explorer make a lot of sense. I find myself wishing that Netpositive would replace tracker. (Just for file browsing though.) And remember, until the Linux GUI is smaller than the Windows GUI (or the linux kernel) linux people are in no position to poke fun at IE.
A deep unwavering belief is a sure sign you're missing something...
Thats what you are doing! Unless your Win98 directory is coppied to your hard drive, Windows only installs drivers for stuff you have. (Why do you think they ask for the Windows CD whenever you install something?)
A deep unwavering belief is a sure sign you're missing something...
Actually, in the process of writing that shell you would have to write a lot of kernel code as well. I think what the other guy was trying to say is that the Palm GUI does NOT talk to something else, it talks directly to hardware, so if you wanter to replace it with a shell, you would have to rewrite a bunch of what the gui was doing besides interface.
A deep unwavering belief is a sure sign you're missing something...
Although you have a good point, (personally I define OS that provides services to other applications. No one would want to run part of the OS by itself. Ie. Winsock would be considered part of the OS, but not AOL?) I think what the meaning of the original author was that 3Com pulled some OS code into the GUI, or that the OS and GUI were not seperate at all, thus if you wanted to replace the GUI, you would have to rewrite the code that had been pulled into it.
A deep unwavering belief is a sure sign you're missing something...
First, Unlike windows it needs to OPERATE. I would also have to set a time limit for how long a system OPERATES before it can be considered a .. hold on I need to reboot my windows machine.
Having seen many definitions of Operating Systems over time, I would like to add my own definition here, including some resoning. Top-down, I would say that a reasonable definition is:
... daemons (just applications)
"An Operating System is a software layer that offers services that facilitate the running of applications on some kind of (hardware) platform."
Using this definition it is obvious that there is neither an upper nor a lower limit to operating system functionality. And exactly that is the main problem with the question "What is an operating system". Maybe there is no proper top-down definition.
Let's take a look at my (recent) history to find a bottom-up definition:
1984: The first operating system I ever actively worked with was the builtin OS on a Commodore 64. It offered IO functionality for all provided hardware interfaces (External storage, CRT, Keyboard, Aux), it offered timing and timers and native 2dgfx support.
1986: Later I worked with MSDOS for a while. This OS offered basic IO (CRT, Keyboard,Aux) Advanced Disk IO (hierarchical directory structures) Timing, (very) basic graphical video routines and interrupt handlers. Also it allowed for drivers to extend the basic functionality with, for example, CD-ROM support, Mouse support and later even VMEM and High Memory.
1992: Somewhere in the nineties I discovered the joys of Unix. I worked with some commercial Unix-es (Linux came later for me, sorry). These OSes offerd advanced IO, including terminal connections, timing, very advanced file system support including permissions etc, multi-user support, multi-tasking (later threading), cd-rom, mouse support, virtual memory support, etc. etc.
Fun thing is that most these unix-es were shipped with a windowing system as well, usually X with a window manager. However, with respect to unix these can be considered to be 'just applications'.
Also, MS-DOS 3 had a windowing extension, called Windows [2, 3, 2.11]. I can not remember that Microsoft called it an operating system by then. This could be seen like just another application, Like X, but then again Windows adds virtual memory and (a very rudimentary form of) multi-tasking to the system.
As of 1995 I worked with windows 95 which basically is just MS-DOS with a fancy version of Windows 3.11 on top of it. However, something funny occured and that is that a WIN32 API was extended with some typical operating system functionality like multi-threading, virtual memory, permissions and so on.
Also as of 1996 I work with Windows NT, (even looked deeply into the internals). Here there is no clear separation between DOS and Windows anymore. It is just another Unix-like (don't shoot) operating system providing much functionality Unix also provides like muti-tasking and threading, virtual memory, etc.
Well, by now we should see a pattern. If we look at the basic functionality of all operating systems in this list then we see they all supply:
* Basic IO to CRT, Input devices, Dis[ck] and AUX
* Task / Application management [At least one]
* Interrupt Services
* Timing and Timers
(Even my PalmPilot and HP48 have all this)
And more advanced features such as
* One or more File System(s)
* Task and Thread-Scheduling [+locks, semaphores etc.]
* Virtual Memory
* Multi-User support, including security
* NIC Support [is really just IO?]
* TCP/IP Protocol Stack, Sockets
* Basic GFX support
* Mouse/Pen support
* Extensibility with Drivers (Modules/WDM)
* Dynamic Linking Support
I think this is where I would really draw the line for an operating system. So, for me the following items are not part of the operating system:
* GUI Calls (just an add-on library, for me, could be many. The fact that M$ integrates this in the kernel does not influence this)
* FTP, Telnet, SMTP,
* File System Browser / Explorer (Is just an application, offers no real services to other applications and is in that way not very different from an appplication like Ghostscript)
* Internet Browser (same level as Solitaire and Mine Sweeper. Way down the list, does not offer services to many applications at all, which is I think a pre-condition for being part of the OS)
The fun thing is that I tried to put the limit on the bare minimum. If we put the bare minimum routines on a system then it should be reasonably possible to run an application nowadays. SO, maybe that is the bottom up definition then:
"An operating system is a software layer that provides the bare minimum functionality needed to write and run applications with reasonable effort."
Obviously the limit of what is reasonable will differ per person (no VMEM could already be called unreasonable...), per application (Playstation vs PC) and it will change over time. In the 1980s we were already very happy is we had basic screen and keybaord IO. I bet in ten years noone will take a machine seriously when it does not have a graphical interface, so by then I would say that GUI calls are part of the OS.
Just my $0.05,
Pieter-Bas
--
Common sense is not so common - Voltaire
However, to muddy the waters even further: Microsoft has been shoving graphics functions into kernel mode for a while now.
The cake is a pie
Just to be pedantic, I think you've got to buy office to get that damn paper clip.
It does come with its own simple word processor, though. (Wordpad, which is under appreciated, as it deals Word documents with Word's bloat.)
4) APIs that shift like quick-sand
I've seen the future, and it is CoInitializeExExExExEx();
The cake is a pie
I think that people need to realize what a OS is for, it is not for booting the system. OS's were written by people for people, it is to make life easier for some one else. OS do this a number of way.
Most OS's try and make the hardware look the same, but not all OS care about this, PalmOS doesn't really do this, it doesn't have changing hardware(yet). DirectX is part of a OS, it's goal is to make the hardware look different!
Mac's invented the ideal of making a common UI, this makes things easier for the user. It also greatly increased the potential size, because UI is not a task that can be captured in a few iocrtl's. MS took this ideal and said that the web shouldn't look that strange compared to the local machine, and folded a web browser into the file manager.
OLE/COM/CORBRA/... Were invented to make the task of talking between programs easier, this is a really hard task of course that has been mostly noted by how poorly it has been figured out.
All computers have OS, but there is a wide range of scales of OS. a OS doesn't have to be multi-tasking, preemptive, and protected. It has to make other peoples lives easier, Unix has been popular because it has made programmers lifes easier, Windows has made drooling moron's lives easier.
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)".
My definition of an Operating system is whatever provides you with simple access to I/O.
On Unix this is the kernel, in MS terms with is DOS.
Anything else is an application. I don't consider Windows 95 to be an OS. Thats a GUI shell.
The most basic OS ever was probably CP/M. It let you enter commands from a keyboard, load things off floppy disks, and to send things to a printer or a screen. THis is what an OS has to achieve - on these blocks you can build anything else.
Technically, the NT/2K GUI is NOT part of the OS.
In practicality it is.
Why?
Because with ERD you can boot to a native NT command line.
http://www.sysinternals.com/erdcmndr.htm
But I don't see too many apps using the native NT API. I'm NOT talking about the Win32 API which sits on TOP of the native NT API. If you've have ever done any NT device driver work, you'll know what I mean. Surf on over here for more info:
http://www.sysinternals.com/ntdll.htm
Cheers
> but memory management was required
> (and therefore MS DOS isnt an OS in that defitition).
Not True.
Proof:
http://www.ctyme.com/intr/rb-2965.htm
http://www.ctyme.com/intr/rb-2891.htm
Therefore DOS _IS_ an OS.
> Its sorta like asking a layman to tell you when the plane somebody else just built has just enough functionality to fly... if I were you I'd ask the engineer if he'd climb aboard himself.
Nice analogy.
Moderators, why the heck was this post moderated down as flamebait. He didn't flame anyone, and had something interesting to say, unlike those "First Posts"
Yeah, I don't know what gives either.
Like you said, 'bout 1/2 of the moderators are spot on, and the other 1/2 have flamebait,troll attached to a good thought-provoking comment.
Moderators: Just because you don't personally believe what someone is saying, doesn't mean that person is incapable of having a good comment. READ the post, then before making a snap judgement, critically analyze if the post added anything to the discussion. And if a post "shoots the messanger but not the message", i.e. a person makes personal attacks instead of a civil debate, THEN mark them down.
Watch this post get moderated down. =P
I agree with the fellow you're replying to... kinda. I don't define "Operating System." I leave that definition up to those who care (not me). I think of my computers in terms of the operating environment they provide me with, not in terms of the OS installed on them.
The solaris systems I have accounts on seem cold and distant (probably because I always access them remotely). My Linux boxes seem pretty warm and friendly (this maybe has to do with the penguin). Windows is mostly aggravating.
I guess my definition of "OS" is what the vendor packages. MS-Windows includes whatever's on the installation CD. Linux varies, each distribution is a different OS. When you customize your system, that's your own personal OS. You still refer to it as "Linux," or maybe "Debian Linux" - the name given to it by the vendor (a.k.a. the distributor). I guess I'm thinking more in terms of operating environment though.
As an afternote, it's not lame to leave the definition up to others. You're just saying that it's not a big deal to you. I am defining what I want, I just don't care so much about semantics. Does this make sense?
-Matthead
>Yes, GUI can be part of the operating system. Look at the Mac.
umm no... you can remove and/or replace the gui on a mac. given it's not too useful or even worth it, but you can get rid of it and the computer will run.
don't mean to nit pick, but someone has to do it...
dead angel
'i am strange people'
dead angel
i am strange people. -me
spreading linux lovin' since 1998!
Just because Windows components are 'built in' so that Windows will not function if they are not present does not mean they are _necessary_ for the Operating System to function. I could put in some sort of hook that would make Windows look for notepad.exe, and if it didn't exist in the right place, crash. This makes notepad.exe necessary for Windows to function. Notepad is not necessary an integral part of the operating system.
"Because Windows won't work without it" is not justification that the component is part of the OS.
Hey, we'd never even know if M$ had such code existing already.... But I guess we do, don't we? "You don't have IE components on the system? Screw You: BSOD"
"OS - a control program that provides for running multiple processes on a computer" I've also hear d other people add something about multiple users somewhere in that clause. Of course if that were the case we couldn't say any of the windows "OSes" were real OSes :)
The operating system should give applications access to standard services via its API. The key word here is standard, as in published, widely available, preferrably with multiple independent implementations.
When Windows 95 came out with TCP/IP built in, nobody threw an anti-trust fit for the poor third-party vendors who had been selling it as an add-on. The reaction I remember was It's about damn time they did that.
This is the reason why "integrating" the browser into the OS is a bad idea. Browsing is too young and the standards are still not settled enough.
If Microsoft had been serious about providing browser services from the OS, they should have published an API that other browsers could hook up to via COM/OLE/flavor-of-the-month. That way they could have claimed to be "open", while extending that API and having Explorer be compatible ahead of the pack, their usual way of leveraging their ownership of Windows. Instead, they made a brain-dead technical decision whose sole purpose was obviously to kill off any other browsers.
To a Lisp hacker, XML is S-expressions in drag.
I don't think that this topic need be a pissing contest between how big dos or windows is and how small linux is. Most of us know already, so the point is moot.
Quid rides ignare?
Why don't we look at the pieces of software out there that people install and consider to be operating systems. Let's accept that when a minimum of 10,000 people have installed software and consider it to be an operating system, it fits the definition of operating system.
Next, of all the operating systems found above, let's list the features, according to an acceptable classification list of features.
Next, let's take the minimal set of features, to be found in all operating systems, as found to be used. This minimal set then defines the today concept of operating system. The feature list may change, but I don't think it will change that rapidly.
Does a browser belong to the operating system? According to the definition above, no. You can easily find operating systems installed by 10,000 people or more, that do not come with a browser.
My old college professor made us memorize a definition of an 'OS' and tested us on it every friggin' chance he got. It comes as close as anything I've ever come across.
'A collection of system software that acts as an interface between the user, hardware, and application software. It is also a resource manager.'
See, Bob I still remember!
As far as I can remember from my time studying computer science, there is a DIN standard in Germany that also defines what an OS is. I dont remember the details any more, but mermory management was required (and therefore MS DOS isnt an OS in that defitition).
Maybe there is an ISO or ASCII definition for this as well?
In Korea, all your base are Only For Old People
Manages hardware
Allocates memory
Looks after secutity
etc...
But as well as this operating system part, Windows consists of a lot more, for instance the GUI, the apps, the drivers that are not installed, the help files....
Does this make Lilo an operating system in its own right? Maybe just part of Lilo is an operating system and another part of it is a application (the menu displaying stuff).
Does it matter if Lilo falls in the definition of an operating system?
This is definately nit picking, but the distribution would include all the software on the computer, such as MS Office. This is different than even the MS version of the OS. I don't think you can define the OS as just the kernel and a few user level routines. You then have the OS being something that can't be used or even configured by itself. I understand that some people feel that that's the proper definition, but I don't agree. I feel the OS is the package of software you can buy from the vendor. Yes, I know that mean's I'm including things like IE, notepad, and even solitare as part of the OS, and leaving the definition up to marketing weenies.
My personal view on this would be that an operating system is the "layer" operating between the hardware and applications. The content is not that important, be it mere BIOS wrapper rutines or advanced filesystem rutines - the fact that it works as an intermediate between hardware and other software is what makes it an OS in my eyes.
Ofcourse - you could argue that this includes device drivers. This is where the definition gets harder, one could point out that drivers simply extends the abillity of an allready functioning OS and therefor belongs among the applications. On the flip side, ofcourse, drivers DO act as an intermediate between hardware and software.
If forced at gunpoint to take a stand on this, I would say that drivers are os-addons.
-- gunzip-howto.tar.gz
I would say that the Operating System is the very core of what's running on your system. The barest minimum without which nothing would run.
i.e. it's the bit that talks directly to the hardware, and which applications, services etc require to run.
It does not include a browser, text editor, compiler or even the GUI (sorry Bill).
Sorry this isn't terribly technical or even coherant, not had much caffeine yet today...
Listening for the sound of the coming rain...
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).
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.
Regarding Silberschatz and Galvin's Operating System Concepts the AC wrote:
"The only way to make the fifth edition better is
to add a case study of Linux..."
Your wish is granted. Chapter 22.
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. :)
Censorship is not the way to end first posting, especially not the "banned words" kind.
= -=-=-=-=-=-=-=-
Or did you miss the recent story about New York schools?
Let me remind you that censoring "first post" and "37337" would have dumped your post off the system! I myself like to make the occastion joke about 37337 d00dz so I am quite content to just set my threshold to 0 and let the moderators do their jobs. If you watch, you'll notice that 90% of the first posts are moderated down to -1 within minutes. The system, in my opinion, works.
- JoeShmoe
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-- I wonder which will go down in history as the bigger failure: the War on Drugs or the War on Filesharing
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
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!
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
Before beginning my story I'd like to say that I'm a commandline freak. I love command lines, naturally this colours my view of what an OS is.
In my humble opinion a OS is the collection of software needed to communicate with the hardware, and make the hardware work. For me this does not include X-window, or Windows NT/95/98 graphical enviroments (I admit NT is least obvious of the four to not be included in 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.
So the OS basically entails in my definition: The runtime system, drivers and a shell to communicate with the user. But specifically not any functionality that shell has beyond receiving, interpretting and excuting commands. In this defenition the "looking good" part of shells is not part of the OS.
Beware of Wight Supremacists!
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
On pages 3-5 of his book Operating Systems, Andrew S. Tannenbaum states rather clearly that an operating system performs 'two basically unrelated functions, and depending who is doing the talking, you hear mostly about one function or the other'.:
The Operating System as an Extended Machine ... In this view, the function of the operating system is to present the user with the equivalent of an extended machine or virtual machine that is easier to program than the underlying hardware.
Just as the operating system shields the programmer from the disk hardware and presentes a simple file-oriented interface, it also conceals alot of unpleasant business concering interrupts, timers, memory management, and other low-level features. In each case, the abstraction offerred by the operating system is simpleer and easier to use than the underlying hardware
The Operating System as a Resource Manager ... In short, this view of the operating system holds that its primary task is to keep track of who is using which resource, to grant resource request, to account for usage, and to mediate conflicting requests from different programs and users.
In addition, the job of the operating system is to provide for an orderly and controlled allocation of the processors, memories, and I/O devices among the various programs competing for them
I struggled the same as you all seem to be struggling until I read this clear explanation in Andy's Operating Systems book. Following this lead here are some definitive conclusions:
That being said, there are a few practical statements that can be made:
- DOS is an incomplete operating system. Old DOs programs like Word Perfect, DBASE III, Lotus 123 all supplemented DOS by filling in the missing roles -- printer and windowing abstraction and resource management. This was the big big selling point for Windows 2.0 -- you didn't have to write your own windowing or printer support code.
- XWindows is part of the operating system. Certainly you can boot without it... however, if you want to run multiple applications that use the screen realistate it is essential.
- A web browser is not part of the operating system. First, it does not abstract hardware; and second, it does not manage resources. It is clearly an application -- much more of an application than WP 5.1 or Lotus 123 ever were.
- The Java VM plays many operating system roles. First, it acts as a resouce manager and second, it provides a hardware abstraction. The existence of a JavaOS is in clear support of this assertion.
I hope this clears things up for people. Those who would claim it to be "subjective" are falling for Microsoft FUD.The JRE (Java Runtime Environment) does manage resources, load code, run it, provide hardware abstraction, API, etc... JRE part of the OS?
MAME (multiple arcade machine emulator) does load software in Ram, and runs it. It gives that software access to resources (CPU, RAM, monitor, keybd). Would that make MAME an OS, or part of the OS?
I dropped a class that I was taking in windows networking (about a year ago, before I knew better) because of an argument that my instructor and I had over this very topic. He maintained that the gui(shell), kernel, networking, utilities, and other assorted bundled crap were all part of the OS. My argument was that it had to be just enough (kernel, scheduler, maybe a bit more) to run a process, regardless of whether a user could interact with it at all.
I now (about 1 year later) define an OS, personally (No, I'm not a computer scientist, just a computer practicalist) as the following:
1. What is needed to run a process (Application)
2. Control over hardware installed in the machine.
3. Some form of basic I/O
I'm probably talking out my ass, but that is about all that I can think of that would be needed.
The rest is icing.
The Linux Kernel (2.2.13) has 1,850,281 lines of code as found by a simple:
find -name "*.[ch]" | xargs cat | wc --lines
Note that this includes code for all architectures Linux supports and every single driver in the 2.2.13 kernel.
Since what we're talking about here is Windows, it might make sense to redefine the question.
By your definition of a shell, I'd think that what the casual observer thinks of as Windows (the icons and taskbar, etc.) is not an OS at all, but a shell. In the DOS/Win9x world, that's painfully obvious, but it applies to NT as well.
So, what besides program lanuching, file copying, etc is legitimately part of a shell?
Posted from my Android phone. Oh, I can change this? There, that's better...
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.
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.
Then we have "distributions" which include applications as well as the OE, although of course when everything's free the distinction is a little fuzzy.
As a technical entity, one can reasonably exclude (for example) the graphical shell. But if you tried to ship a consumer OS without one, the consumers in your target market would certainly regard it as crippled.
As a technical definition, I would say that the operating system is the minimal set of interrelated software components which do two things:
- Manage the available hardware resources in order to make the system usable for the user; and
- Provide a common set of services for application programs to use.
This definition would include the following components in the OS:- The kernel
- The device drivers
- The network protocol stack (unless it is a stand-alone machine)
- The shell
By "the shell" I simply mean at least one mechanism for the user to launch applications. It can be a command-line shell or a graphical shell, but if there is no shell at all, the system is unusable (excluding embedded systems, of course).This definition excludes all sorts of things commonly included in most OS products such as text editors, compilers, linkers, PPP dialers, web browsers, etc. All of these things are applications in the technical sense that each runs in its own process in user space. But they are applications also in the sense that they are particular uses of the computer which a particular user may or may not need, whereas the OS includes that functionality which must be there for any of the applications to run.
Also, advertising features (even when they don't work at ALL!) is more effective in sales than simply offering them (see practically any Microsoft product for examples). (-8
I have read a number of the comments here, including the one which regurgitates a definition memorized in College. In so many of the responses, the shell, or user interface, be it a GUI or not is included as part of the Operating System. To my thinking, an operating system is that which provides low level services to the various basic devices which comprise the system. This could include hardware drivers as required, but not the shell or user interface. I take my thinking from old MS-DOS, where MSDOS.SYS, and IO.SYS as well as the BIOS comprised the OS, and Command.com comprised the default user interface. As Command.com could be replaced with an alternate shell (albeit one written to work with the OS)it should not be considered part of the OS itself. But hey, all in all, it's semantics ;-)and I just wanted to post something!
Going on means going far
Going far means returning
I believe an OS to be the collection of processes and drivers needed to make the hardware useful and a good OS to be a collection of processes to make the most of that hardware. Without them, the hardware is useless. I think an application is software to make the OS and the hardware actually useful.
And how many of those lines do you suppose are just leftovers from pervious attempts by MS and are not actually used anymore but the programmers were to scared to remove them 'just in case'?
If you compare GNU/Linux to 40 Millions of code-lines Windows 2000 Code, how many lines of code sum up if you take the basic applications except for the Linux kernel into account. Add a comparable user interface (GNOME, KDE) and the basic system commands. 2 Milllions for the kernel (including all drivers) and another 1 Million for the rest, or more....? What's your estimation, a tenth of Microsoft code size with same functionality?