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.
Before reading this article I strongly recommend to read this article about processes, threads and dispatcher.
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.
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:
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.
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.
-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.
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.
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.
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:
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.
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.
To view the main partitions, you just need to perform one of two methods:
To view all partitions, you need a superuser rights or TWRP recovery.
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.
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.
This article intersects with programming, so let’s also consider some example code. Today we have a classic object-oriented programming language — Java.
Open the Task Manager — you will see the processes tab. You can see the familiar programs such as Discord, Firefox, and etc.