In this article I will tell you how the OS manages the I/O devices. We know that I/O devices are slower than CPU or RAM, by this reason the OS developers came up with ideas to add special schedulers, caches and buffers.

Windows, Linux and Mac OS

Before reading this article I strongly recommend to read this article about processes, threads and dispatcher.

DMA and I/O bus

We all know that CPU, RAM and GPU are connected to a system bus. In hardware the bus is PCI-Express bus that can transfer gygabytes of data by the very small time.

Look the diagram below:

In this article I will tell you about multithread support in modern operating systems. Scientists discussed the problem of slow singlethread systems back in the 70s, but when implementing a multithread system, the developers faced a number of problems.

Windows, Linux and Mac OS

I strongly recommend to read my article OS Design: Threads and dispatcher before reading this article.

Let’s start with basic terms you must know before reading this article:

  1. Atomic operation is the smallest available operation in the system. This operation must be performed without suspensions
  2. Critical section is a block of the program (for example, block of the code, instructions) in…

In all operating systems, including Linux, the term “command” means either a command-line utility or a specific feature built into the system’s command shell. You enter a command in the terminal emulator and get the result of its execution.

BASH — the bourne-again shell

Now let’s look at some basic utilities that everyone needs to know in order to effectively use BASH. Let’s go!


LS is an utility for viewing the contents of directories. Displays the current directory by default. If you specify the path to a folder in the parameters, it displays the contents of this folder.

Useful options:

-a shows all files and…

If you have hardware 3D acceleration, you use a graphics processor instead of a CPU to create 3D images. CPU is forced to render everything on its own without hardware 3D acceleration, using Mesa library.


What is Mesa

Mesa is an open source implementation of the OpenGL, Vulkan, OpenCL, and other graphics APIs, as well as a set of user-space video drivers for AMD, Intel, Nvidia, and Qualcomm GPUs. Written in C, C++ and Assembler. Project site.

Implemented APIs:

  1. OpenGL / OpenGL ES is a cross-platform, industry standard graphics programming API for 3D graphics.
  2. Vulkan is the next-generation graphics programming API from The…

In this article I will tell you about the most known bug in Linux distributions.

Most likely, during your time using Linux, you have at least once faced the problem that when you run a large number of programs or heavy loads on the file system, the computer “freezes”, often to the point of no return, when nothing but a forced reboot helps. This is a consequence of Linux kernel bug 12309.


The source of the problem is the high load I/O bus. …

Many android users wondered why updates arrive with a long delay on smartphones with the Android operating system. And if iPhone devices receive updates almost immediately after the release of the new iOS, then in the case of Samsung’s flagmans, Oneplus, the OS update comes at best in a month or two, if at all. In the budget segment the situation is the most deplorable: very few phones are supported by the manufacturer.


In this article I will tell you about Project Treble, which will decrease updates delay totally.

Project Treble

Bootloader is a low-level program which manages boot modes and then calls kernel to load the OS or recovery kernel to load recovery ramdisk.

You know that bootloader controls boot modes. In this article I will tell you about them. Here they are:

  1. Android OS boot
  2. Recovery menu
  3. Fasboot mode
  4. EDL

In this article I won’t tell you about default boot mode (boot to Android OS), but you will be able to read about it in my next articles.

What is recovery menu

In this article, I will tell you about partition tables for MTK and QCOM devices.
Unlike the OS on computers, smartphones don’t have dynamic partition table.


How to view partitions

To view the main partitions, you just need to perform one of two methods:

  1. Install Device Info HW and view partitions
  2. Download Termux and enter mount command

To view all partitions, you need a superuser rights or TWRP recovery.

  1. Install Device Info HW and view partitions
  2. Reboot to TWRP, open terminal and enter mount command


Bootloader is a low-level program which manages boot modes and then calls kernel to load the OS or recovery…

In this article, you will discover what virtual memory is and how processes and threads access your computer’s RAM.
Virtual memory is a virtual layer between threads and RAM, providing controlled interaction between threads and RAM.

Windows, Linux and Mac OS

Threads and virtual memory

In this article I said about threads that every thread has pointers to memory.

Since often a lot of memory is required, the OS developers decided to divide the memory for each thread into pages. Each page of memory has its own page number.

But pages can be large, so they introduced another concept: offset, which indicates the position of the desired memory area…

Programmers are people who write programs. Have you ever thought about where and in what form programs are presented in operating systems? In this article, we will learn what processes and threads are, how the OS manages them.

Windows, Linux and Mac OS

This article intersects with programming, so let’s also consider some example code. Today we have a classic object-oriented programming language — Java.

Processes and threads

Open the Task Manager — you will see the processes tab. You can see the familiar programs such as Discord, Firefox, and etc.


throw new NoSuchElementException("Bio is not found");

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store