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

Python - OSError: [WinError 17] The system cannot move the file to a different disk drive:

I'm using os.rename() to try to move pdf files between drives. Attempting this I receive the error: OSError: [WinError 17] The system cannot move the file to a different disk drive Is anyone aware of a function which contains similar…
Phoenix
  • 4,386
  • 10
  • 40
  • 55
23
votes
6 answers

Difference between write() and printf()

Recently I am studying operating system..I just wanna know: What’s the difference between a system call (like write()) and a standard library function (like printf())?
CSnerd
  • 2,129
  • 8
  • 22
  • 45
23
votes
3 answers

Page number and offset

I am learning the different types of memory management. I don't understand the point of having an offset bits in a virtual address. And also why page sizes are made power of 2? My primary confusion is: give me an example of an offset being used in…
user1493786
  • 325
  • 1
  • 3
  • 13
23
votes
1 answer

Why does this Python code destroy my computer?

It claims to be MS12-020 exploit, and I tested this on my machine. Apparently, it seems to destroy the operating system that runs it. Looking just some parts of this code does not indicate any malicious code, so I asking for your help. What is it…
user1594245
  • 241
  • 2
  • 7
23
votes
5 answers

Event-driven Model in C with Sockets

I am really interested in event-driven programming in C especially with sockets so I am going to dedicate some time doing my researches. Let's assume that I want to build a program with much File and Network I/O like a client/server app, basically,…
iNDicator
  • 534
  • 2
  • 6
  • 15
22
votes
1 answer

Virtual Memory Page Replacement Algorithms

I have a project where I am asked to develop an application to simulate how different page replacement algorithms perform (with varying working set size and stability period). My results: Vertical axis: page faults Horizontal axis: working set…
Jiew Meng
  • 84,767
  • 185
  • 495
  • 805
22
votes
3 answers

How do I tell what a Linux process is waiting for?

I'm trying to track down the cause of performance bottlenecks in an application I'm debugging under Linux. The various processes involved seem to spend a lot of their time blocking on I/O requests, and I was wondering if anybody knew any Linux…
andygeers
  • 6,909
  • 9
  • 49
  • 63
22
votes
1 answer

What is the difference between file modification time and file changed time?

I am confused between the term file modification time and file changed time. Can anyone help to make it clearer?
Poh
22
votes
4 answers

Bootloader in C/C++?

Is it possible to create a bootloader in C or C++ without using some type of Assembler (and preferably without using __asm)? I'm writing an Operating System and would like it to be completely written in C and C++.
Joshua Vega
  • 598
  • 1
  • 8
  • 22
22
votes
5 answers

Tree command not found

I tried using tree command to see the directory structure but it dint work on my mac terminal, it says : command not found. I tried to install the package for command using $brew install tree. it did not work either???
Harish Thalluri
  • 331
  • 1
  • 2
  • 6
22
votes
3 answers

How do I get the Ubuntu source code?

Where can I find the source code for the latest Ubuntu release? Also, how would I view the code? Would it just be lots of .cpp and .h files I could view in Visual Studio?
Tom
  • 245
  • 1
  • 3
  • 3
22
votes
2 answers

Read multiple csv files and Add filename as new column in pandas

I have several csv files in a single folder and I want to open them all in one dataframe and insert a new column with the associated filename. So far I've coded the following: import pandas as pd import glob, os df = pd.concat(map(pd.read_csv,…
amwade2
  • 251
  • 1
  • 3
  • 6
22
votes
4 answers

Fork() function in C

Below is an example of the Fork function in action. Below is also the output. My main question has to to do with the a fork is called how values are changed. So pid1,2 and 3 start off at 0 and get changed as the forks happen. Is this because each…
Plisken
  • 423
  • 1
  • 4
  • 20
22
votes
5 answers

Comprehensive methods of viewing memory usage on Solaris

On Linux, the "top" command shows a detailed but high level overview of your memory usage, showing: Total Memory, Used Memory, Free Memory, Buffer Usage, Cache Usage, Swap size and Swap Usage. My question is, what commands are available to show…
user40626
  • 221
  • 1
  • 2
  • 3
22
votes
13 answers

How good is FreeBSD as a development platform?

I know that lots of web hosting providers are offering FreeBSD, but how good is FreeBSD as a development platform? Specifically, is Java 1.6 available in it? Is there somthing specific that it offers with regard to tools that is not available under…
Marko
  • 30,263
  • 18
  • 74
  • 108