Questions tagged [operating-system]

An operating System (OS) is a software program whose role is to be an abstract layer between software requisitions for resources and the hardware available, manage input/output, memory allocation/deallocation, file systems, among other basic tasks a device (not necessarily a computer) should do.

An operating system (OS) is a basic software whose role is to be an abstract layer between software requisitions for resources and the hardware available. The basic components of an operational system can be listed as:

  • Boot loader

Although some may say it is not part of the OS, it's the starting point where the hardware after doing booting routines transfers the control to a small procedure that will bring up the entire system

  • User interface

Can be graphical or text-based, is the central point of communication between the user and the OS

  • Kernel

The core of the OS that manages all the resources of the hardware according to the requisitions. Kernels can be either a micro kernel or a monolithic kernel. Both types include the following functionality:

  • Process management (scheduling, multitasking, pseudo-parallelism, and so on)
  • Memory (and virtual memory) management
  • Inter-process communications (IPC)
  • Interrupt management

Monolithic kernels include these additional features:

  • File system and disk access organization
  • Device management (with the aid of device drivers, plug-and-play routines, dynamic modules, and so on)

These features are not included directly in a micro-kernel, but are instead implemented in tasks. One example of a fairly widely used micro-kernel is QNX. As well, many hypervisors are micro kernel designs. A major argument for micro-kernels is that their small size makes them easier to analyze and more secure.Tanenbaum

Most well known operating systems are monolithic. In fact, the majority of commercial and Open source OS's are monolithic. Generally they allow faster hardware response.

Book : Operating System Concepts by Abraham Silberschatz

Recommended preliminary reading before posting a question: OSDev Wiki

See also: .

13710 questions
5
votes
2 answers

How to differentiate between Vista SP1 and Server 2008 at install

I have a Wix installer which should be allowed to run on Windows Server 2008 but not on Vista. According to Microsoft's Operating System Properties page, this is not possible using the parameters they provide for this purpose (VersionNT and…
5
votes
1 answer

How can I suspend/resume a running program from command line in Windows?

I am trying to pause a running program using an OS command script in Windows 7. After searching StackOverflow/Search-Engines, it seems most suggestions involve the use of sysinternals process explorer in which programs can easily be suspended and…
Lee
  • 29,398
  • 28
  • 117
  • 170
5
votes
1 answer

linking and paging in the system without virtual memory support

First of all, is virtual memory a hardware feature of the system, or is it implemented solely by OS? During link-time relocation, the linker assigns run-time addresses to each section and each symbol, in the generated executable Do those…
5
votes
4 answers

Pure assembly - no linked C functions

I want to try to write an operating system in assembly. PLEASE, don't just say "Idiot, you have to get a lot better at %s, %s, %s, %s, etc to even think about that." I know it's normally not a learn-by-doing thing and it will take months of work,…
5
votes
3 answers

Python: Get Mount Point on Windows or Linux

I need a function to determine if a directory is a mount point for a drive. I found this code already which works well for linux: def getmount(path): path = os.path.abspath(path) while path != os.path.sep: if os.path.ismount(path): …
noahd
  • 842
  • 2
  • 13
  • 25
5
votes
1 answer

How do Video Game Emulators Work?

I am curious as to how emulators work. What are they written in? Does it have to emulate even the graphics? How do people get the games uploaded as roms? Do they simulate the systems OS?
user1327203
5
votes
3 answers

What are the differences between .NET in 32 or 64 bit systems?

Imagine a pure .NET application which do not uses COM components nor PInvoke. Does it matters if the target system is 32 or 64 bits?
Jader Dias
  • 88,211
  • 155
  • 421
  • 625
5
votes
3 answers

How does the operating system know how much memory my app is using? (And why doesn't it do garbage collection?)

When my task manager (top, ps, taskmgr.exe, or Finder) says that a process is using XXX KB of memory, what exactly is it counting, and how does it get updated? In terms of memory allocation, does an application written in C++ "appear" different to…
Jeff Meatball Yang
  • 37,839
  • 27
  • 91
  • 125
5
votes
2 answers

Why address of variable remain same in fork() system call after it is modified

Consider the following code snippet. if (fork() == 0) { a = a + 5; printf("%d, %d \n", a, &a); } else { a = a - 5; printf ("%d, %d \n", a,& a); } AFAIK, when fork() is made, the virtual address space of parent is copied to the…
Green goblin
  • 9,898
  • 13
  • 71
  • 100
5
votes
4 answers

Can someone explain what virtual machines are and why they're useful?

I hear the term thrown around a lot and I'm sort of confused. Is it just a software application built on an operating system that could simulate another operating system? When someone codes a virtual machine, do they basically set out to make an…
JDS
  • 16,388
  • 47
  • 161
  • 224
5
votes
3 answers

How can a program compiled to machine language run on different machines?

In school we've been taught that compilers compile a computer program to machine language. We've also been taught that the machine language consists of direct instructions to the hardware. Then how can the same compiled program run on several…
Jencel
  • 722
  • 7
  • 17
5
votes
1 answer

Using `splice` for Linux... what else for other systems?

On recent Linux kernels, afaict, the fastest way of copying a file or a subset of a file to another file is through the use of the very nice splice system call. This system gets the kernel to manage the transfer (almost) directly, without ever…
Yoric
  • 3,348
  • 3
  • 19
  • 26
5
votes
5 answers

Generating a pure (or flat) binary

How can you generate a flat binary that will run directly on the CPU? That is, without an Operating System; also called free standing environment code (see What is the name for a program running directly without an OS?). I've noticed that the…
Hawken
  • 2,059
  • 19
  • 34
5
votes
1 answer

Restrictions while kernel is running an ISR routine

What are some of the important do's and dont's inside a kernel mode and ISR Routine ? For example - Is context-switching disabled while running an interrupt handler ? Can a context switch happen when a process is inside a critical section ? What…
5
votes
4 answers

Where does the Transport Layer operate?

I'd like to know where the Transport Layer of the OSI model is running in a computer system. Is it part of the Operating System? Does it run in its own process or thread? How does it pass information up to other applications or down to other layers?…
Sotirios Delimanolis
  • 274,122
  • 60
  • 696
  • 724