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
37
votes
1 answer

What does the concept of "worker" mean in programming?

I want to know What does the concept of "worker" mean in programming? I've recently started Java and have seen in so many places where they are used but don't get the idea. Examples would be great.
Hossein
  • 40,161
  • 57
  • 141
  • 175
37
votes
8 answers

difference between dynamic loading and dynamic linking?

Routine is not loaded until it is called. All routines are kept on disk in a re-locatable load format. The main program is loaded into memory & is executed. This is called Dynamic Linking. Why this is called Dynamic Linking? Shouldn't it be…
Luv
  • 5,381
  • 9
  • 48
  • 61
36
votes
4 answers

What is a Kernel thread?

I am just started coding of device driver and new to threading, went through many documents for getting an idea about threads. I still have some doubts. what is a kernel thread? how it differs from user thread? what is the relationship between the…
tijin
  • 707
  • 1
  • 6
  • 12
36
votes
4 answers

What is the overhead of a context-switch?

Originally I believed the overhead to a context-switch was the TLB being flushed. However I just saw on wikipedia: http://en.wikipedia.org/wiki/Translation_lookaside_buffer In 2008, both Intel (Nehalem)[18] and AMD (SVM)[19] have introduced tags…
user997112
  • 29,025
  • 43
  • 182
  • 361
36
votes
3 answers

Ctrl + C interrupt event handling in Linux

I am developing an application that uses C++ and compiles using Linux GNU C Compiler. I want to invoke a function as the user interrupts the script using Ctrl + C keys. What should I do? Any answers would be much appreciated.
mozcelikors
  • 2,582
  • 8
  • 43
  • 77
36
votes
7 answers

Programmatically get parent pid of another process?

I tried google, but found getppid() which gets the parent pid of the current process. I need something like getppid(some_other_pid), is there such a thing? Basically takes the pid of some process and returns the parent process' pid.
hasen
  • 161,647
  • 65
  • 194
  • 231
36
votes
2 answers

Why Does the Leap Second Cause Problems?

So at this moment (but most likely not for long) Reddit, Meetup, Fark, LinkedIn, Yelp, 4Chan are all down. Netflix apparently was out for a while too. According to Reddit's tweet, they are having issues relating to the Leap Second from 6/30/2012:…
K2xL
  • 9,730
  • 18
  • 64
  • 101
35
votes
2 answers

What do these strace system calls mean?

I need to profile the performance of an application for which I am using strace. However, I do not really know how to interpret the various system calls the strace emits. Examples of a few of them are below: (A) lseek(3, 1600, SEEK_SET) …
Ketan Maheshwari
  • 2,002
  • 3
  • 25
  • 31
35
votes
7 answers

How to program an Operating System?

I love to code, but I am currently only doing web development. I'd like to do something that will be unique and fun and very different from web programming. Yeah, this might be a dumb question, but I think it would be really cool to build a really…
Kevin
  • 379
  • 1
  • 3
  • 4
35
votes
2 answers

What does os.path.abspath(os.path.join(os.path.dirname(__file__), os.path.pardir)) mean? python

In several SO's question there is these lines to access the parent directory of the code, e.g. os.path.join(os.path.dirname(__file__)) returns nothing and os.path.join(os.path.dirname(__file__)) returns nothing import os, sys parentddir =…
alvas
  • 115,346
  • 109
  • 446
  • 738
35
votes
6 answers

Is it possible to make an operating system using java?

I wanna know is it possible to make an operating like windows-xp which is written in C language like can I write that in java so that I will have same features as written in C
giri
  • 26,773
  • 63
  • 143
  • 176
35
votes
13 answers

Developing an operating system for the x86 architecture

I am planning to develop an operating system for the x86 architecture. What options of programming languages do I have? What types of compilers are there available, preferably on a Windows environment? Are there any good sources that will help me…
Jeff
  • 351
  • 4
  • 3
34
votes
3 answers

Memory mapped IO - how is it done?

I've read about the difference between port mapped IO and memory mapped IO, but I can't figure out how memory mapped Io is implemented in modern operating systems (windows or linux) What I know is that a part of the physical memory is reserved to…
paulAl
  • 949
  • 2
  • 10
  • 17
34
votes
4 answers

What's the differences between blocking with synchronous, nonblocking and asynchronous?

I am reading 'Operation System Concepts With Java'. I am quite confused by the concept of blocking and synchronous, what are the differences between them?
diligent
  • 2,282
  • 8
  • 49
  • 64
34
votes
2 answers

Understanding Ruby and OS I/O buffering

How does IO buffering work in Ruby? How often is data flushed to the underlying stream when using the IO and File classes? How does this compare to OS buffering? What needs to be done to guarantee that given data has been written to disk, before…
jrdioko
  • 32,230
  • 28
  • 81
  • 120