os231

LINKS

Week 01

  1. Basic Linux Commands
    The link above leads to a YouTube video that explains about basic Linux commands. It is useful for beginner users like me who’s not familiar with Linux ecosystem and to help on working OS assignments.

  2. Learn REGEX in 15 minutes
    The link above leads to a YouTube video that provides brief explanation about regular expressions (regex). I found the video interesting because I currently have little to zero idea about regex and it helps me learn how to read and write my own regular expressions.

  3. BASH
    The link above leads to a YouTube video that provides a step-by-step approach on how to write a bash script. I found it useful to help with weekly OS quiz that requires students to submit a script (.sh) file.

  4. SED
    The link above leads to a pdf file that provides rich explanation about sed (stream editor). I found it useful when writing a script, especially for text transformation purposes.

  5. osp4diss
    The link above leads to a website that contains most information you need about VirtualBox. I found it useful for weekly assignments that involve VirtualBox usage.

  6. Previous Midterm Problems
    The link above leads to a pdf file that provides some midterm exam problems from previous years. I found it interesting because I can test out my OS knowledge and learn a variety of new insights.

Week 02

  1. Beginner’s Guide to Internet Safety & Privacy
    The link above leads to an article about which information you should keep private, who you’re protecting yourself from, as well as how to protect your privacy over on the internet. I found this article particularly useful for heavy internet users like me who can sometimes overlook on small privacy aspects which could potentially harm my credentials, electronic devices, or even myself.

  2. Cyber Security and Privacy
    The link above leads to an article that provides rich information about cyber security and privacy. In the article, there’s a bunch of YouTube video links that explains about zero trust environment, disaster recovery and resiliency, employee security policy, and so on. One particular topic I found interesting from the video was about how a cyber attack can be successfully carried out. There are 3 major things that need to be fulfilled: a vulnerability, a vector to the vulnerability, and an event. A lot of big companies out there turn out to have massive vulnerabilities and wide open vectors in their systems, but nobody yet has performed an attack towards them so they don’t realize how bad the issue is. Operational security plays a huge role in tackling this problem by decreasing the visibility of one’s infrastructure, making it difficult for hackers to take further actions when striking a system.

  3. What is GPG?
    The link above leads to an article that provides concise explanation about GNU Privacy Guard (GnuPG). I found it useful for contextualizing what I did during the GnuPG Key setup process for this week’s assignment.

  4. How to Use Nano, the Linux Command Line Text Editor
    The link above leads to an article about GNU nano, a text editor that is easy to use for new users. It helps me with editing files in my repo such as mylog.txt as it has all the basic functionality I’d expect from a regular text editor.

  5. C Language Introduction
    The link above leads to an article that provides an introduction to the C Language. It helps me understand the main features of the language as well as syntaxes used to run a C program. The related articles stated at the bottom part of the article also help me a lot when working on this week’s QUIZ 02.

  6. DDoS Attack Explained
    The link above leads to a YouTube video that briefly explains how a DDoS attack occurs. I found this cyber attack intriguing because it doesn’t necessarily compromise confidential or sensitive data of users, but instead may bring downfall to a business in a large scale. One example of this attack in Indonesia happened in mid 2009 where the .co.id domain experienced a disruption that lasted for 4 days, making the domain users unable to access their desired service (ex: yahoo.co.id).

Week 03

  1. OS231 Operating Systems Feb-Jun 2023 (SCeLE) > General
    The link above leads to a discussion forum on OS SCeLE page that is used for inquiries regarding assignments etc. Helps me a lot when I couldn’t remove a file with the ‘rm’ command and also when I couldn’t properly run 03-WEEK03.sh due to the ‘/anthonymrtn/’ directory not existing (SOLVED btw).

  2. An Introduction to Useful Bash Aliases and Functions
    The link above leads to an article about bash aliases; shortcuts of the majority of commands available on the command line. I find it interesting because now I know what some of the commands stand for, such as “cd” for “change-directory” and “ls” for “list”. I also learn how to declare a bash alias now thanks to this article.

  3. How to Copy Files From Linux to Windows using PowerShell
    The link above leads to a YouTube video that explains how to transfer files from a Linux guest to a Windows Host by utilizing some commands on PowerShell. It helps me when moving a .tar.xz.asc file from my Debian guest over to my Windows directory (QUIZ02 related).

  4. How to Make a TAR Directory and Compress Your Data on Linux
    The link above leads to an article which explains about how to compress files into tarball. Helps me a lot when I tried to compress my d1806185355 directory for this week’s QUIZ02.

Week 04

  1. Beginner’s Guide to Linux Programming
    The link above leads to an article that provides a brief introduction to beginners on Linux Programming. The article gave me new insights on the various uses of Linux Programming and how we can benefit it for future careers.

  2. README for code in The Linux Programming Interface
    The link above leads to a README file that provides an explanation on the code for the book TLPI. I find it useful so I can get more context on what TLPI is especially for the “dist” version, and also to learn more about the various subdirectories contained in the ‘tlpi’ directory.

  3. An Introduction to Storage Terminology and Concepts in Linux
    The link above leads to an article that helps you understand more about storage concepts in Linux. It helps me understand how Linux manages storage devices, especially the mounting block devices process which we successfully did on WEEK03 assignment.

  4. What Is Virtual Memory on Linux? How to Manage It
    The link above leads to an article about Linux Virtual Memory and how we can manage it and maximize its potential. I find it useful because I have a hard time understanding the concept of memory management in Linux. One interesting fact I found from the article is that with virtual memory, developers are able to create apps without knowing the memory organization of a computer.

Week 05

  1. How much memory (RAM) should I allocate to the Virtual Machine?
    The link above leads to a forum on how we should allocate memory to a virtual machine. I found it useful so I know that you don’t have to go overboard with your memory usage.

  2. Allocating kernel memory (buddy system and slab system)
    The link above leads to an article about strategies on how to manage assigned free memory to kernel processes. I found out that buddy system is preferrable over dynamic allocation because of easy implementation and higher efficiency.

  3. Paging vs Segmentation: Core Differences Explained
    The link above leads to an article that compares paging & segmentation from several aspects. I found it useful so that I know the advantages and disadvantages of each component.

  4. Copy on Write
    The link above leads to an article about a resource management technique called Copy on Write (COW). It made me understand fork() system call and that modifications of shared pages will be done to the copy instead. Therefore, other processes are not affected at all.

Week 06

  1. fork() in C
    The link above leads to an article about fork system call. I found it useful so that I understand how a child process can run concurrently with parent process.

  2. Multithreading and concurrency fundamentals
    The link above leads to an article that explains about multithreading and concurrency concepts in programming. I found it useful because there are examples and practical tips that can help developers avoid common pitfalls when working with multithreaded code.

  3. Difference between Process and Thread
    The link above leads to an article that provides a brief explanation on the difference between process and thread. I found the article useful because it provides several examples to demonstrate the differences between processes and threads.

  4. Understanding and Detecting Concurrency Attacks
    The link above leads to a research paper that discusses different types of concurrency attacks that can occur in multithreaded programs. It also proposes various defense mechanisms to mitigate such attacks. I found the paper useful because it gives a comprehensive overview of concurrency attacks, including data races, deadlocks, livelocks, and atomicity violations.

Week 07

  1. Introduction of Process Synchronization
    The link above leads to an article that briefly explains about process synchronization. I found that synchronization has several advantages and disadvantages, such as ensuring data consistency and integrity, but may cause deadlocks if the implementation is not done properly.

  2. Deadlock: What it is, How to Detect, Handle and Prevent?
    The link above leads to an article that gives an overview on deadlocks. I found it useful because I get to know how to prevent it from happening. One technique we can use is removal of circular wait.

  3. Simple Deadlock Examples
    The link above leads to a forum that discusses about deadlock examples. I found it useful because I get to understand deadlocks more from real life examples; one of it being a simple bank situation where there are two threads that attempt to run one particular method but with reverse order parameters.

  4. Process Synchronization: Critical Section Problem in OS
    The link above leads to an article that explains about critical section problem in operating systems. I found it useful because I get to know some solutions to the critical section, one of it being the Peterson solution. It makes sure that at a specific time, only a single process runs in the critical section.

Week 08

  1. CPU Scheduling in Operating Systems
    The link above leads to an article that explains the concept of CPU scheduling in operating systems. I found the article useful because I got to know the advantages and disadvantages of each type of CPU scheduling.

  2. Scheduling algorithms and operating systems support for real-time systems
    The link above leads to a paper about work of scheduling and operating system kernels. It gives me new insights on how this technique be applied in real life uses.

Week 09

  1. BootManager and BootLoader in Operating Systems
    The link above leads to an article that explains about Boot Loader and Boot Manager. I found it useful so that I understand how operating systems are going to be loaded. I also got to know a series of tasks a typical Boot Loader is expected to perform.

  2. Differences Between Firmware and Operating System
    The link above leads to an article that explains the differences between a firmware and an operating system. One interesting difference I found is that a firmware can’t be modified since it’s integrated into the hardware, whereas the user can modify the functionalities of an OS.

Week 10

  1. I/O Systems
    The link above leads to an article that contains a cheatsheet about I/O Systems. I found it useful for people that are trying to understand the fundamentals of OS.

  2. I/O Hardware in Operating System
    The link above leads to an article that explains the concept of I/O Hardware in Operating Systems. An interesting thing I found from the article was the daisy chain method which enables multiple I/O devices to be connected with each other through a single connection point.