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

What makes a TLB faster than a Page Table if they both require two memory accesses?

Just going off wikipedia: The page table, generally stored in main memory, keeps track of where the virtual pages are stored in the physical memory. This method uses two memory accesses (one for the page table entry, one for the byte) to access a…
m0meni
  • 16,006
  • 16
  • 82
  • 141
5
votes
4 answers

User-space memory editing programs

How do programs that edit memory of other processes work, such as Cheat Engine and iHaxGamez? My understanding is that a process reading from (let alone writing to) another process' memory is immediate grounds for a segmentation fault.
Delan Azabani
  • 79,602
  • 28
  • 170
  • 210
5
votes
2 answers

Multithreading model in Linux and Windows

I have been following a course on Operating Systems over the past few months. However, I'd like some clarification on one point that I read. From my understanding, there are three types of multithreading models to map user level threads to kernel…
Zeokav
  • 1,653
  • 4
  • 14
  • 29
5
votes
1 answer

Theory behind bootloader

I have downloaded few bootloaders from osdev and successfully loaded a kernel. But now I want to learn theory behind bootloader. I want to know why the system boots up and everything behind the bootloader codes. Can anybody give me a link or link to…
narayanpatra
  • 5,627
  • 13
  • 51
  • 60
5
votes
3 answers

How does physical pages are allocated and freed during the malloc and free call?

Malloc allocates memory from one of the virtual memory regions of the process called Heap. What is the initial size of the Heap (just after the execution begins and prior to any malloc call)? Say, if Heap starts from X virtual address and ends at Y…
Ashish
  • 569
  • 3
  • 10
  • 18
5
votes
3 answers

Get current version OS in Windows 10 in C#

I Use C#. I try to get the current version of the OS: OperatingSystem os = Environment.OSVersion; Version ver = os.Version; I get on the Windows 10: 6.2. But 6.2 is Windows 8 or WindowsServer 2012 (Detect Windows version in .net) I found the…
Olga
  • 1,395
  • 2
  • 25
  • 34
5
votes
5 answers

Assembly Segmented Model 32bit Memory Limit

If a 32bit Operating System operated with a segmented memory model would their still be a 4GB limit? I was reading the Intel Pentium Processor Family Developer's Manual and it states that with a Segmented memory model that it is possible map up to…
user295190
5
votes
2 answers

What is the difference between nonpreemptive and preemptive kernels, when switching to user mode?

I'm reading "Understanding the Linux Kernel, 3rd Edition", and in Chapter 5, Section "Kernel Preemption", it says: All process switches are performed by the switch_to macro. In both preemptive and nonpreemptive kernels, a process switch occurs…
Mano Mini
  • 607
  • 4
  • 15
5
votes
1 answer

What is the effect of STARTUP IPI on Application Processor?

I am right now trying to understand the booting procedure and how does the processors initializes. I have read the Multiprocessor Specification section B.4.2 but it is not clear to me what INIT IPI and STARTUP IPI does to the BSP and AP.
ashish
  • 150
  • 2
  • 11
5
votes
2 answers

Where do I add a systemcall to the linux Kernel source

I am trying to add a new helloworld system call to a new version of the Linux Ubuntu kernel. I have been looking through the web but I cannot find a consistent example to show me what files I will have to modify to enable a helloworld system call…
molleman
  • 2,934
  • 16
  • 61
  • 92
5
votes
1 answer

Task management on x86

Can someone please point out some books or online resources which explain in detail and at an advanced level the task management features of x86? I'm specifically interested in understanding the relationship between x86 hardware and the OS (POSIX…
Dhruv
  • 952
  • 1
  • 11
  • 26
5
votes
7 answers

Are cores (device abstraction level) of OSs written entirely in C? (Like: "UNIX is written in C")

Are cores of OSs (device interaction level) really written in C, or "written in C" means that only most part of OS is written in C and interaction with devices is written in asm? Why I ask that: If core is written in asm - it can't be…
Ben Usman
  • 7,969
  • 6
  • 46
  • 66
5
votes
2 answers

relationship between programming language and OS APIs

there are methods in program language in c++ like cout<<"hello world" . when compiled does it invoke a system call to perform the actual work OR is it compiled directly into binary code and get executed by the kernal ? if it use the OS API ,…
danny
  • 1,095
  • 2
  • 12
  • 27
5
votes
1 answer

Equivalent of apt-get on OpenELEC

I'm currently working on a raspberry pi, which has OpenELEC as operating system. Unfortunately, apt-get can't be used on this distribution. I have a lot of things to install, and it would be way too long to do it without apt-get. So my question is…
souki
  • 1,305
  • 4
  • 23
  • 39
5
votes
3 answers

what are non-unicode applications

As we know, in windows system, we can set locale language for non-Unicode programs in "Control Panel\Clock, Language, and Region". But what does a local language mean for an application? Since to my understanding, an application is a compiled binary…
Alfred
  • 1,709
  • 8
  • 23
  • 38