OS
.ini is the file extension for initialization files. These files are used to store configuration settings for various programs, including operating systems, applications, and web servers. The format of a .ini file is simple and easy to read, with sections and properties separated by equal signs (=). A .ini file typically consists of sections, which are […]
What is Virtualization? Virtualization is the means by which we create a virtual counterpart of an actual item, by software or hardware & software. The virtualized item could be another hardware, operating system (OS), storage device or network. As defined above we have,Hardware virtualization for virtualizing any hardware device. Mostly this refers to PC.Desktop virtualizing isfor desktop, […]
What is Cross Compilation? Typically any desktop or server application have almost the same development platform (CPU + OS — that runs your build) and the target platform (CPU + OS — that runs your production application) are the same. Platform is nothing but the combination of CPU architecture, and Operating System. The process of building […]
Most of us know about design patterns. But let me give the crux of — what a design pattern is? before getting into the topic. Design Patterns are the set of solution to typical and most commonly occurring problems in designing software program. They are mostly related to object orient design but not restricted to OOD. […]
OS development over time We all know that kernel is the core part of any OS. It is the set of code running in privileged mode (kernel mode or Ring3 security level). Operating Systems can be classified based on the architecture of their kernel as below: Monolithic kernel OS This is the old style of […]
What is RCU? Read-Copy-Update(RCU) is way of implementing wait-free synchronization between multiple processes/threads (alternative to lock mechanism). It works well in multiple reader and writer scenarios (especially ready heavy scenario). The key idea in RCU is doing a write/update operation in 2 steps namely ‘removal’ and ‘reclaim’.In step 1 (removal step), we have to remove references to […]
OOPS — Abstraction One of the core concept in object oriented paradigm is ‘Abstraction’. As most of us know Abstraction is nothing but hiding complete technical details (how its implemented or working) from the user (client code using the system/object/module) and exposing only necessary details for interacting with system/object/module. Static Function & Variables I guess […]
Let us try to create a toy system call to do add operation, which takes 2 arguments and return their added value. Following are the steps in adding a new system call to Linux Kernel: Step 1: Unzip and untar the latest Linux kernel source (https://www.kernel.org currently 3.14 is the stable version) into /usr/src/ directory. Step […]
System calls are used by user programs in order get service from the operating system. Some of the popular system calls are we normally use are open, read, write, close, wait, exec, fork, exit, and kill. There are usually 100’s of system call available in OS. For example, Linux has 300+ system calls. Why we […]