Aditya Chatterjee's Blog, page 110
February 28, 2022
Types of memory devices
In this article, we have covered the different types of memory devices like CD-ROM, SD card and much more.
Table of contents:
IntroductionPrimary memorySecondary memoryIntroductionA memory device is a piece of hardware used to store data. Most electronic devices such as computers, mobile phones, tablets, etc all have a storage device that stores data and/or programs.
There are two basic types of memory:
Primary/main memoryExternal/secondary memoryThe different types of memory devices ...
February 27, 2022
Firmware
In this article we discuss firmware - software that is directly programmed into hardware devices such as routers, cameras, network cards etc.
Table of contents.Introduction.Types of firmware.Firmware updates.Flashing.Summary.References.Introduction.Firmware is software directly placed inside a piece of hardware. Since it directly controls hardware it does not have to go through APIs, OS, or drivers to perform its functions.
In machines, firmware is stored in non-volatile memory such as...
BIOS (Basic Input Output System)
We discuss BIOS - firmware stored in non-volatile memory e.g EPROM, responsible for performing startup procedures such as POST before passing control to the bootloader which loads the OS.
Table of contents.Introduction.The booting sequence.Accessing BIOS.Updating BIOS.Summary.References.Prerequisites.firmware.Introduction.Power On Self Test(POST), is the self-diagnostic test that a computer will perform during startup to make sure that the hardware does not have any issues.
This te...
Types of Boot loaders
During startup, the BIOS performs initial tests after which it transfers control to the MBR where the boot-loader is stored. A bootloader is a program that loads the operating system into memory during startup.
Table of contents.Introduction.Bootloaders.Summary.References.Introduction.When a computer is powered on, hardware information is displayed on the screen, this is the boot loader firmware working.
A boot loader is the program responsible for loading an operating system into memory...
GRUB bootloader
GRUB is one of the many Linux boot loaders responsible for loading an operating system into memory during startup. In this article, we discuss the booting process involving GRUB and how to configure and customize GRUB.
Table of contents.Introduction.The boot process.Configuring GRUB.Customizing GRUB.Summary.References.Introduction.The GNU GRand Unified Boot Loader/GRUB is firmware that is used to load an operating system such as Linux into memory during startup.
It provides both a grap...
February 25, 2022
Run levels in Linux
Run levels are modes of operation for computer operating systems. We discuss the different run levels in the Linux OS and demonstrate how to change the default run level.
Table of contents.Introduction.Type of run levels.Init scripts.Changing run levels.Summary.References.Introduction.A run level is an operational level describing the state of a system with respect to the services it is currently running. For example, when we boot a Linux OS, we have two options, boot into the graphica...
Systemd Components
Systemd is a suite of utilities that provide an array of system components for the Linux OS. We look at various components within systemd.
Table of contents.Introduction.Systemd componentsSummary.References.Introduction.Systemd is responsible for initializing and managing services in Linux. With systemd, we are also able to start different processes simultaneously which results in faster booting.
Systemd components.In this section, we discuss various systemd components, they include;
sy...Unit files in Linux
A unit file is responsible for specifying how systemd starts and runs. In this article, we discuss unit files, the contents of these files, service and target unit and unit files, and how to create and edit unit files.
Table of contents.Introduction.The unit file.Service units.Target units.Creating a unit file.Summary.References.Introduction.systemd is an array of components that make up the Linux OS. Usually, the PID for this component is 1 and therefore is responsible for starting o...
Systemctl and Systemd in Linux
The systemctl command is a systemd utility used to manage services, get information about service unit files and service states, and therefore a useful utility to know for managing services on the server while systemd is an array of components for Linux OS.
Table of contents.Introduction.Managing services.Managing units.Systemctl shortcuts.Summary.References.Introduction.The systemctl command in a Linux utility is used to manage the systemd service and service manager.
systemd is an in...
February 24, 2022
Data-flow analysis in Compiler Design
All optimizations in a compiler depend on data-flow analysis.
We have three instances of data-flow problems, reaching definitions, live variables and available expressions.
3.1. Statement semantics.
3.2. Flow of control.Schemas on basic blocks.Reaching definitions.Live-variable analysis.Available expressions.Summary.References.Introduction.
Data-flow analysis is the body of techniques involved in deriving information about the flow ...