os212

LINKS 🔗

🦖 Week 00

  1. Linux Vs Windows Difference: Which Is The Best Operating System?
    Why should we download Linux? There are several reasons we should consider, Linux is more open and changeable than Windows or MacOS

🦎 Week 01

  1. Learning Awk Is Essential For Linux Users
    One of my favorite command line utilities is “awk” which is a text-processing program. It is mostly used for pattern scanning and processing. In this video, I will give examples of some of the basic awk commands, and show you some of the ways that I often use awk.

🐒 Week 02

  1. Introduction to Cybersecurity
    Data is valuable. With so much sensitive information online, companies need cybersecurity pros to protect it. This course is a great starting point for anyone interested in cybersecurity, but not sure where to start. Build your foundation by learning the fundamentals of one of the fastest-growing fields today.

  2. C Programming Language Tutorial
    The C Language is developed by Dennis Ritchie for creating system applications that directly interact with the hardware devices such as drivers, kernels, etc.

  3. Symmetric vs. Asymmetric Encryption: What’s the Difference?
    Discuss the differences between symmetric encryption, a single-key encryption technique, and asymmetric encryption, also known as public-key cryptography, which uses private- and public-key pairs of encryption keys.

  4. Access Control
    Access control is a security technique that regulates who or what can view or use resources in a computing environment. It is a fundamental concept in security that minimizes risk to the business or organization.

🐣 Week 03

  1. File systems and operating systems
    Most operating systems provide a file system, as a file system is an integral part of any modern operating system. Early microcomputer operating systems’ only real task was file management — a fact reflected in their names (see DOS). Some early operating systems had a separate component for handling file systems which was called a disk operating system. On some microcomputers, the disk operating system was loaded separately from the rest of the operating system. On early operating systems, there was usually support for only one, native, unnamed file system; for example, CP/M supports only its own file system, which might be called “CP/M file system” if needed, but which didn’t bear any official name at all.

  2. Journaling and log-structured file systems
    A journaling file system is a file system that keeps track of changes not yet committed to the file system’s main part by recording the goal of such changes in a data structure known as a “journal”, which is usually a circular log. In the event of a system crash or power failure, such file systems can be brought back online more quickly with a lower likelihood of becoming corrupted. Depending on the actual implementation, a journaling file system may only keep track of stored metadata, resulting in improved performance at the expense of increased possibility for data corruption. Alternatively, a journaling file system may track both stored data and related metadata, while some implementations allow selectable behavior in this regard.

🦀 Week 04

  1. Understanding Memory Mapping
    The speed at which application instructions are processed on a system is proportionate to the number of access operations required to obtain data outside of program-addressable memory. The system provides two methods for reducing the transactional overhead associated with these external read and write operations. You can map file data into the process address space. You can also map processes to anonymous memory regions that may be shared by cooperating processes.

  2. Memory Management in C
    Programs, program variables and dynamically allocated blocks of data occupy memory within a computer. There must be careful management or memory to prevent such things as program code being over-written by variables which would result in some bizarre behaviour of the program. This management task is usually undertaken by a combination of the computer operating system, the compiler/linker and hardware features within the system processor.

  3. Logical and Physical Address in Operating System
    Physical Address identifies a physical location of required data in a memory. The user never directly deals with the physical address but can access by its corresponding logical address. The user program generates the logical address and thinks that the program is running in this logical address but the program needs physical memory for its execution, therefore, the logical address must be mapped to the physical address by MMU before they are used.

🐢 Week 05

  1. Virtual Memory
    A computer can address more memory than the amount physically installed on the system. This extra memory is actually called virtual memory and it is a section of a hard disk that’s set up to emulate the computer’s RAM. The main visible advantage of this scheme is that programs can be larger than physical memory. Virtual memory serves two purposes. First, it allows us to extend the use of physical memory by using disk. Second, it allows us to have memory protection, because each virtual address is translated to a physical address.

  2. Memory Allocation Algorithms
    This algorithm is an advanced algorithm using red-black trees to sort the free portions of the memory segment by size. This allows logarithmic complexity allocation. Apart from this, a doubly-linked list of all portions of memory (free and allocated) is maintained to allow constant-time access to previous and next blocks when doing merging operations. The data used to create the red-black tree of free nodes is overwritten by the user since it’s no longer used once the memory is allocated.

  3. Physical Memory
    Physical memory (also known as random-access memory (RAM)) is a form of very fast, but volatile data storage. RAM modules are typically measured in nanoseconds (1000− 3), and physical disks are typically measured in milliseconds (1000− 1). This makes physical memory roughly 100,000 times faster than a common physical disk. Therefore, when possible, Windows and Windows Server keep the most frequently accessed pages of memory in physical memory and rely on a disk only if needed.

🐍 Week 06

  1. Processes
    A process is basically a program in execution. The execution of a process must progress in a sequential fashion. To put it in simple terms, we write our computer programs in a text file and when we execute this program, it becomes a process which performs all the tasks mentioned in the program.

  2. Process Scheduling
    Process scheduling is the activity of the process manager that handles the removal of the running process from the CPU and the selection of another process on the basis of a particular strategy. Process scheduling is an essential part of a Multiprogramming operating systems. Such operating systems allow more than one process to be loaded into the executable memory at a time and the loaded process shares the CPU using time multiplexing.

  3. Multi-Threading
    A thread is a flow of execution through the process code, with its own program counter that keeps track of which instruction to execute next, system registers which hold its current working variables, and a stack which contains the execution history.

🐹 Week 07

  1. Synchronization
    In this tutorial, we will be covering the concept of Process synchronization in an Operating System. Process Synchronization was introduced to handle problems that arose while multiple process executions.

  2. Process Synchronization: Critical Section Problem in OS
    Process Synchronization is the task of coordinating the execution of processes in a way that no two processes can have access to the same shared data and resources.

  3. Introduction of Deadlock in Operating System
    Deadlock is a situation where a set of processes are blocked because each process is holding a resource and waiting for another resource acquired by some other process. Consider an example when two trains are coming toward each other on the same track and there is only one track, none of the trains can move once they are in front of each other. A similar situation occurs in operating systems when there are two or more processes that hold some resources and wait for resources held by other(s). For example, in the below diagram, Process 1 is holding Resource 1 and waiting for resource 2 which is acquired by process 2, and process 2 is waiting for resource 1.

  4. Difference between Starvation and Deadlock
    Deadlock: Deadlock is a situation where no process got blocked and no process proceeds. Starvation: Starvation is a situation where the low priority process got blocked and the high priority processes proceed.

🐬 Week 08

  1. Multiple-Processor Scheduling in Operating System
    In multiple-processor scheduling multiple CPU’s are available and hence Load Sharing becomes possible. However multiple processor scheduling is more complex as compared to single processor scheduling. In multiple processor scheduling there are cases when the processors are identical i.e. HOMOGENEOUS, in terms of their functionality, we can use any processor available to run any process in the queue.

  2. What is Multiprocessor?
    A multiprocessor is a system with several processors. Well with the presence of multiple processors it becomes complex to design a scheduling algorithm.

  3. Welcome to Linux From Scratch!
    Linux From Scratch (LFS) is a project that provides you with step-by-step instructions for building your own custom Linux system, entirely from source code.

  4. Chapter 5. Compiling a Cross-Toolchain
    This chapter shows how to build a cross-compiler and its associated tools. Although here cross-compilation is faked, the principles are the same as for a real cross-toolchain.

👾 Week 09

  1. What is RAID?
    RAID or redundant array of independent disks is a data storage virtualization technology that combines multiple physical disk drive components into one or more logical units for data redundancy, performance improvement, or both.

  2. Storage Structure in Operating Systems
    Storage devices consists of Registers, Cache, Main-Memory, Electronic-Disk, Magnetic-Disk, Optical-Disk, Magnetic-Tapes. Each storage system provides the basic system of storing a datum and of holding the datum until it is retrieved at a later time. All the storage devices differ in speed, cost, size and volatility. The most common Secondary-storage device is a Magnetic-disk, which provides storage for both programs and data.

  3. What is Firmware?
    Firmware is programming that’s written to a hardware device’s nonvolatile memory. Nonvolatile memory is a form of static random access memory whose contents are saved when a hardware device is turned off or loses its external power source.

  4. What is a bootloader?
    A bootloader, also known as a boot program or bootstrap loader, is a special operating system software that loads into the working memory of a computer after start-up. For this purpose, immediately after a device starts, a bootloader is generally launched by a bootable medium like a hard drive, a CD/DVD or a USB stick. The boot medium receives information from the computer’s firmware (e.g. BIOS) about where the bootloader is. The whole process is also described as “booting”.