By Muhammad Nabiel Andityo
HOME —
LINKS —
TIPS —
PUBLIC KEY —
LOG —
TARBALL —
GITHUB
Operating System Tutorial
An Operating System (OS) is an interface between a computer user and computer hardware.
An operating system is a software which performs all the basic tasks like file management,
memory management, process management, handling input and output, and controlling peripheral
devices such as disk drives and printers.
Operating system - Wikipedia
An operating system (OS) is a type of system software that controls how computer hardware
and software resources are used and offers basic services to other software applications.
Operating System Concepts, 10th Edition
This slide is a good introduction for understanding OS. With this slide I learn
more about the OS and its environment as well as the hardware
What defines an Operating System?
The operating system is a layer of software that comes preinstalled on computers
and is responsible for giving user programs a better, simpler, cleaner model of
the computer and for handling all the resources already described.
Operating Systems: Crash Course Computer Science #18
By the beginning of the 1950s, computers had become so quick that manually loading
programs using punch cards was frequently quicker than actually running them.
The operating system (or OS), which is only a program with special rights that
enables it to run and manage other programs, provided the solution.
10 Linux Terminal Commands for Beginners
There are several Linux commands that are recommended for students to understand.
In addition to these 10 commands, there are several commands that Linux has,
totaling 50. We don’t have to memorize them, only 10 commands we mush understand.
. | replaces any character
^ | matches start of string
$ | matches end of string
* | matches up zero or more times the preceding character
\ | Represent special characters
() | Groups regular expressions
? | Matches up exactly one character
Basic vi Commands
The most well-known and traditional text editor for Linux is the VI editor. The
full-screen UNIX vi editor has two modes of operation: Insert mode, which inserts
entered text into the file, and Command mode, which executes commands that cause
action to be taken on the file.
Operating System Concepts: Security
In this slide, I learn about security threats and attacks; the fundamentals of encryption,
authentication, and hashing; the uses of cryptography in computing; and the various
countermeasures to security attacks
Operating System Concepts: Protection
By reading this slide, I understand more about the goals and principles of protection in a modern
computer system, how protection domains combined with an access matrix are used to specify the resources
a process may access, capability and language-based protection systems, and Describe how protection
mechanisms can mitigate system attacks
Cyber Security Introduction by Eli the Computer Guy
By watching this video, I learn more about Point of Cyber Security is to Prevent Loss of Data,
Prevent Down Time, Prevent Systems from Being Used Nefariously, and Stay Compliant with Laws/ Regulations.
And second thing I learn from this video is Don’t Do Harm.
Employee Security Policy by Eli the Computer Guy
This video teach me about Employee Security Policy things. Employee Bonding and Buy there are several
things I learn in this segment, that are Relationships are worth more than products, People telegraph
their intentions, fire them before they become a problem, Seek to understand employee problems and
then find where we can yield, Managers are employees too, and Build a network of influencers and get their
buy-in
The Beginner’s Guide To Online Privacy
This website is very useful for beginners to online privacy. After reading this, I learn about The
Pyramid of Privacy where can teach us to protect our own data from bottom to the top. From OS to Script
and cookies. In this part, I learn about risk and solution too.
Operating System Concepts: File-System Interface
In this slide, I learn about the function of file systems; the interfaces to file systems;
file-system design tradeoffs, including access methods, file sharing, file locking, and directory structures
; and file-system protection
Operating System Concepts: File System Implementation
By reading this slide, I understand more about the details of implementing local file systems and directory
structures, block allocation and free-block algorithms and trade-offs, file system efficiency and performance issues,
recovery from file system failures, and the WAFL file system as a concrete example
Operating System Concepts: File System Internals
After reading and learning this slide, I learn more about delve into the details of file systems and their implementation,
explore booting and file sharing, remote file systems, using NFS as an example.
File Systems in Operating System: Structure, Attributes, Types
The term “file” refers to a grouping of linked data that is stored on secondary or non-volatile media, such as magnetic disks, optical disks, and tapes.
I/O support is offered for a range of storage device types. When a user signs off, the files they have stored on a disk or another type of storage remain
there. A File Structure must have a predetermined format in order for an operating system to recognize it. The capacity of the operating system to distinguish
between various file kinds, such as text files, binary files, and source files, is referred to as file type.
Learning the Linux File System
In the first Unix system, the operating system (/) and user home directories (/usr) were stored on separate disks. The numerous /usr/something folders were
created as a result of the need to relocate some files to other disks as the operating system expanded. The user home directories were transferred from /usr
to /home once they could afford a third drive.
How to encrypt and decrypt files with GPG?
To encrypt a file with GPG:
gpg --armor --output output.asc --encrypt --recipient <recipient-userid> <file>
To decrypt a file with GPG:
gpg --output file.txt --decrypt output.asc
To encrypt a file with GPG symmetric key:
gpg --armor --output output.asc symmetric file.txt
To decrypt a file with GPG symmetric key:
gpg --output file.txt -d output.asc
Operating System Concepts: Main Memory
In this slide, I learn to provide a detailed description of various ways of organizing memory
hardware; To discuss various memory-management techniques,; To provide a detailed description of the Intel
Pentium, which supports both pure segmentation and segmentation with paging. This slide also taught me
about Contiguous Memory Allocation, Paging, Structure of the Page Table, and Swapping.
What is Makefile for C program compilation and How to create Makefile?
A Makefile is a tool for organizing or streamlining compilation-related code. Makefile is a collection of
commands (similar to terminal commands) that may be used to create and delete object files. We can construct
many targets to compile and remove object, binary files in a single make file. Using Makefile, we can compile
our project (software) as many times as we want.
C library function - printf()
A cstring
is sent to stdout
by the C function printf
(print formatted). Format specifiers (starting with %
in the cstring) may be present in the given cstring
. Return Value: The total number of characters that were written
to the standard output is returned if the function is successfully invoked. A negative number is returned if there is an error.
c-string
is the string that was supplied to the function as an argument. If there are any format specifiers in the
c-string
, then there may be more arguments after it.
int printf (const char* c-string, ...);
Memory Management
The Linux memory management subsystem is in charge of overseeing the system’s memory.
This covers the implementation of demand paging and virtual memory, memory allocation for both kernel internal
structures and user space programs, mapping of files into processes address space, and many other things.
Operating System Concepts: Virtual Memory
In this slide, I learn to define virtual memory and describe its benefits; illustrate how pages are loaded into memory using demand paging;
apply the FIFO, optimal, and LRU page-replacement algorithms; describe the working set of a process, and explain how it is related to
program locality; describe how Linux, Windows 10, Solaris manage virtual memory; and design a virtual memory manager simulation in the C programming
language.
Virtual Memory in Operating System
Virtual Memory is a storage allocation scheme in which secondary memory can be addressed as though it were part of the main memory.
Program-generated addresses are automatically translated into the matching machine addresses, allowing programs to distinguish between addresses used
by the memory system to identify physical storage sites and addresses used by programs to refer to memory.
What is virtual memory? – Gary explains
In other words the physical representation of memory and virtual memory is equivalent to how inventory is shipped to a warehouse and memory is the amount
of space the warehouse can store of that shipment. Virtual memory is a shipment being processed to go either in its storage location or to be used in either
to be once again shipped out or for some function in the warehouse/facility.
Demand Paging
In computer operating systems, demand paging (as opposed to anticipatory paging) is a method of virtual memory management. In a system that uses demand paging,
the operating system copies a disk page into physical memory only if an attempt is made to access it and that page is not already in memory (i.e., if a page fault occurs).
Operating System Concepts: Processes
this slide, I learn to Identify the separate components of a process and illustrate how they are represented and scheduled in an operating system.
Describe how processes are created and terminated in an operating system, including developing programs using the appropriate system
calls that perform these operations. Describe and contrast interprocess communication using shared memory and message passing. Design programs that uses
pipes and POSIX shared memory to perform interprocess communication. Describe client-server communication using sockets and remote procedure calls.
Design kernel modules that interact with the Linux operating system.
Operating System Concepts: Threads & Concurrency
By reading this slide, I understand more how to Identify the basic components of a thread, and contrast threads
and processes. Describe the benefits and challenges of designng multithreaded applications. Illustrate different approaches to implicit threading including
thread pools, fork-join, and Grand Central Dispatch. Describe how the Windows and Linux operating systems
represent threads. Designing multithreaded applications using the Pthreads, Java, and Windows threading APIs
Operating System - Processes
A process is basically a program in execution. The execution of a process must progress in a sequential fashion.
A process is defined as an entity which represents the basic unit of work to be implemented in the system.
When a program is loaded into the memory and it becomes a process, it can be divided into four sections ─ stack,
heap, text and data. The following image shows a simplified layout of a process inside main memory
Threads in Operating System
A thread is also called a thread of execution or a thread of control because it is a single continuous flow that performs the tasks of a process.
Threads can run within processes on all operating systems. Apart from that, there can be multiple threads within a process. Each thread in the same
process uses a separate program counter and stack of startup records and control blocks. Threads are often referred to as lightweight processes.
How to Use SCP Command to Securely Transfer Files
scp [OPTION] [user@]SRC_HOST:]file1 [user@]DEST_HOST:]file2
OPTION
- scp options such as cipher, ssh configuration, ssh port, limit, recursive copy …etc.
[user@]SRC_HOST:]file1
- Source file.
[user@]DEST_HOST:]file2
- Destination file
fork() in C
Fork system call is used for creating a new process, which is called child process, which runs concurrently with the process that makes the fork()
call (parent process). After a new child process is created, both processes will execute the next instruction following the fork() system call.
A child process uses the same pc(program counter), same CPU registers, same open files which use in the parent process.
Operating System Concepts: Synchronization Tools
in this slide, I learn to describe the critical-section problem and illustrate a race condition. Illustrate hardware solutions to the critical-section
problem using memory barriers, compare-and-swap operations, and atomic variables. Demonstrate how mutex locks, semaphores, monitors, and condition variables can be used to
solve the critical section problem. Evaluate tools that solve the critical-section problem in low-, Moderate-, and high-contention scenarios
Operating System Concepts: Synchronization Examples
By reading this slide, I understand more to explain the bounded-buffer synchronization problem. Explain the readers-writers synchronization problem.
Explain and dining-philosophers synchronization problems. Describe the tools used by Linux and Windows to solve synchronization problems. Illustrate how POSIX and Java can be used to solve process
synchronization problems
Operating System Concepts: Deadlocks
this slide made me understand about Illustrate how deadlock can occur when mutex locks are used. Define the four necessary conditions that characterize deadlock.
Identify a deadlock situation in a resource allocation graph. Evaluate the four different approaches for preventing deadlocks. Apply the banker’s algorithm for deadlock avoidance.
Apply the deadlock detection algorithm. Evaluate approaches for recovering from deadlock
- Independent Process:
The execution of one process does not affect the execution of other processes.
- Cooperative Process:
A process that affects or can be affected by other processes running on the system.
Process Synchronization Problems occur in the case of cooperating processes because cooperating processes share resources.
Process Synchronization in OS
Process synchronization, or synchronization, is how the operating system manages processes that share the same memory space.
Use variables or hardware to maintain data consistency and allow only one process to modify shared memory at a time.
What is a semaphore? How do they work? (Example in C)
Semaphore is an integer variable which is used as a signal to allow or not allow a process to access the critical section of the code or certain other resources.
There are two types of semaphores: Binary - take on values 0 or 1. Counting - take on any integer value.
Deadlock Dan Starvation
Deadlock is a condition in which two or more processes wait for another process to release the resources that are currently in use. Because several processes
are waiting for each other, there is no progress in the work of these processes.
Operating System Concepts: CPU Scheduling
in this slide, I learn to Describe various CPU scheduling algorithms. Assess CPU scheduling algorithms based on scheduling criteria.
Explain the issues related to multiprocessor and multicore scheduling. Describe various real-time scheduling algorithms.
Describe the scheduling algorithms used in the Windows, Linux, and Solaris operating systems. Apply modeling and simulations to evaluate CPU scheduling
algorithms
Process Scheduling in OS: Long, Medium, Short Term Scheduler
Process scheduling allows OS to allocate a time interval of CPU execution for each process. Another important reason for using a process scheduling system
is that it keeps the CPU busy all the time. This allows you to get the minimum response time for programs.
1) CPU Burst.
2) I/O Burst.
3) CPU and I/O Burst Cycles.
1) CPU Scheduler.
2) Dispatchers.
3) Preemptive Scheduling.
4) Non-Preemptive Scheduling.
Preemptive and Non-Preemptive Scheduling GFG
Preemptive scheduling is used when a process switches from running state to ready state or from the waiting state to ready state.
Non-preemptive Scheduling is used when a process terminates, or a process switches from running to the waiting state.
Operating System Concepts: Mass-Storage Systems
in this slide, I learn to Describe the physical structure of secondary storage devices and the effect of a device’s structure on its uses.
Explain the performance characteristics of mass-storage devices. Evaluate I/O scheduling algorithms. Discuss operating-system services provided for mass storage,
including RAID
Mass-Storage Structure
Mass storage refers to systems meant to store large amounts of data. In many cases, massive storage is synonymous with peripheral storage, where external devices
or media help to manage larger amounts of information that have exceeded the capacity of a computer or device’s native storage capabilities.
Non-volatile memory
Non-volatile memory (NVM) or non-volatile storage is a type of computer memory that can retain stored information even after power is removed. In contrast, volatile memory needs constant power in order to retain data.
Non-volatile memory typically refers to storage in semiconductor memory chips, which store data in floating-gate memory cells consisting of floating-gate MOSFETs (metal–oxide–semiconductor field-effect transistors),
including flash memory storage such as NAND flash and solid-state drives (SSD).
Volatile memory
Volatile memory, in contrast to non-volatile memory, is computer memory that requires power to maintain the stored information; it retains its contents while powered on but when the power is interrupted, the stored data is quickly lost.
Volatile memory has several uses including as primary storage. In addition to usually being faster than forms of mass storage such as a hard disk drive, volatility can protect sensitive information, as it becomes unavailable on power-down.
Most general-purpose random-access memory (RAM) is volatile.
Redundant Arrays of Independent Disks
A redundant array of independent disks (RAID) is a common system for high-volume data storage at the server level. RAID systems use many small-capacity disk drives to store large amounts of data and to provide increased reliability and redundancy.
Such an array appears to the computer as a single logical unit consisting of multiple disk drives.
Firmware
Firmware is a software program or set of instructions programmed on a hardware device. It provides the necessary instructions for how the device communicates with the other computer hardware.
BIOS function on a computer, know how it works and its types
The BIOS (basic input/output system) is the program a personal computer’s microprocessor uses to start up the computer system after you turn it on. It also manages the flow of data between
the computer’s operating system and attached devices such as hard drives, video adapters, keyboards, mice, and printers.
What Is UEFI, and How Is It Different from BIOS?
BIOS is short for Basic Input-Output system. It’s low-level software that resides in a chip on your computer’s motherboard.
How to Use the chroot Command on Linux
A chroot environment provides functionality similar to that of a virtual machine, but it is a lighter solution. The captive system doesn’t need a hypervisor to be installed and configured,
such as VirtualBox or Virtual Machine Manager.
How to build Linux From Scratch 11.2 (Chap 6-7)
This series of videos shows how you can take a Windows 10 PC (or with any other version or OS) and install your own Linux operating
system by installing Linux From Scratch 11.2.
Operating System Concepts: I/O Systems
in this slide, I learn to Explore the structure of an operating system’s I/O subsystem,
Discuss the principles and complexities of I/O hardware, Explain the performance aspects of I/O hardware and software
Operating System - I/O Hardware
One of the important jobs of an Operating System is to manage various I/O devices including mouse, keyboards, touch pad,
disk drives, display adapters, USB devices, Bit-mapped screen, LED, Analog-to-digital converter, On/off switch, network
connections, audio I/O, printers etc. An I/O system is required to take an application I/O request and send it to the
physical device, then take whatever response comes back from the device and send it to the application. I/O devices
can be divided into two categories Block devices and Character devices.
Operating System - I/O Softwares
A key concept in the design of I/O software is that it should be device independent where it should be possible to
write programs that can access any I/O device without having to specify the device in advance. For example, a
program that reads a file as input should be able to read a file on a floppy disk, on a hard disk, or on a CD-ROM,
without having to modify the program for each different device.
Direct Memory Access (DMA)
Direct memory access (DMA) is a method that allows an input/output (I/O) device to send or receive data directly to
or from the main memory, bypassing the CPU to speed up memory operations.
Hardware Support for Operating Systems
Device-status table contains entry for each I/O device indicating its type, address, and state. Operating system indexes
into I/O device table to determine device status and to modify table entry to include interrupt.
How to build Linux From Scratch 11.2 (Chap 8)
This series of videos shows how you can take a Windows 10 PC (or with any other version or OS) and install your own Linux operating
system by installing Linux From Scratch 11.2.
© 2022 — Muhammad Nabiel Andityo — Version: 0032–18-Sep-2022.