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
3 answers

Which IPC is more efficient here?

I have a system application, that runs as a collection on 12 processes on unix. There is a monitor process , which exchanges data from with 11 other processes. The IPC requirement is to make these 11 processes communicate with the monitor process,…
sbr
  • 4,735
  • 5
  • 43
  • 49
5
votes
1 answer

What is parent process of all the processes in iOS?

Just as in UNIX based system the init process is the parent of all the processes and similarly, the zygote process in Android OS has the sole purpose of launching other processes. What is the name of the iOS equivalent process?
Sohel Shaikh
  • 400
  • 1
  • 8
  • 18
5
votes
2 answers

fork(), pipe() and exec() process creation and communication

I have to write program that create process using pipe(). My first task is to write a parent process that generates four child processes using the fork() function. Once the fork() is successful, replace the child process with another process…
cool
  • 89
  • 1
  • 2
  • 9
5
votes
1 answer

how to choose chunk size when reading a large file?

I know that reading a file with chunk size that is multiple of filesystem block size is better. 1) Why is that the case? I mean lets say block size is 8kb and I read 9kb. This means that it has to go and get 12kb and then get rid of the other extra…
user3732361
  • 377
  • 8
  • 13
5
votes
3 answers

Why the size command didn't list a stack or heap segment for any executable or object file?

while using the size command in Unix systems with the executable or object files, we get output in the form of the size of text segment and data segment. Why doesn't it show the output for heap or stack segment? Below is the output of size command …
5
votes
1 answer

Preemptive & Nonpreemptive Kernel VS Premptive & Nonpreemptive Scheduling

I'm struggling to understand the difference between between preemptive and nonpreemptive kernels, and premptive & nonpreemptive scheduling. From Operating System Concepts (Ninth Edition), Silberschatz, Galvin and Gagne: A preemptive kernel is where…
Physco111
  • 217
  • 2
  • 7
5
votes
2 answers

Fastest way to copy a large file locally

I was asked this in an interview. I said lets just use cp. Then I was asked to mimic implementation cp itself. So I thought okay, lets open the file, read one by one and write it to another file. Then I was asked to optimize it further. I thought…
user3732361
  • 377
  • 8
  • 13
5
votes
1 answer

How to create a memory dump of a Mac OS Application

How can I create a memory dump of a process under Mac OS? --> dump all occupied memory of a process into a file for analysis.
wachschaf
  • 51
  • 1
  • 1
  • 2
5
votes
3 answers

How many GB can malloc allocate for your program

I used the following code to find it out but I always get 1 as the answer. is there something wrong. Thanks #include #include int main(){ int mult = 0; int chk =8; do{ mult+=1; int *p =…
user465983
  • 115
  • 5
  • 13
5
votes
3 answers

What's going on (in the OS level) when I'm reading/writing a file?

Let's say one program is reading file F.txt, and another program is writing to this file at the same moment. (When I'm thinking about how would I implement this functionality if I were a system programmer) I realize that there can be ambiguity…
Roman
  • 64,384
  • 92
  • 238
  • 332
5
votes
3 answers

Content Type vs MIME Type

Can someone explain to me what's the difference between Content-Type and the MIME Type? I can't find a clear answer on the net. If Content-Type usually used inside the Browser. And MIME type is used by the os?
user1187968
  • 7,154
  • 16
  • 81
  • 152
5
votes
1 answer

What is `x/24x $esp` mean?

I'm running xv6 - operating system made from MIT. I'm running gdb to check the stack pointer(?). And I'm running gdb to see the value of stack pointer registers. My professor said "Let's look at the stack" then typed x/24x $esp. Question: What is…
merry-go-round
  • 4,533
  • 10
  • 54
  • 102
5
votes
1 answer

Stop signal propagation in child process making exec

I’m currently making a shell and i encounter trouble when it come to launch a processus that need to work in background, and when i press CTRL-C after the launch. Basically all is working fine, but if i press CTRL-C while my forked-execvp process…
LenweSeregon
  • 132
  • 1
  • 10
5
votes
2 answers

How to load kernel or be able to use more space in own bootloader?

I've been following this: ( http://www.codeproject.com/KB/tips/boot-loader.aspx ) But not sure what and how to do next. How to load self written kernel in it? Or how to make more place than in single segment? And what to do with binaries? I have to…
Neomex
  • 1,650
  • 6
  • 24
  • 38
5
votes
1 answer

Getting OS build version from Win32 Api C++

I am trying to find the build version of Windows Server 2016 machines, for example RS1 or RS3. There was an API to do this - GetVersionEx() - but is now deprecated. MSDN says to use Version Helper Functions instead. I want the build version, for ex:…
anon
  • 367
  • 1
  • 4
  • 18