OS222: Operating Systems 2022-2

By ARK

HOMELINKSTIPSPUBLIC KEYLOGTARBALLGITHUB


LINKS

WEEK 01 🚩

  1. Symmetric vs. Asymmetric Encryption – What are differences?
    It is about differences between symmetric and asymmetric encryption in cyber security. It helps to differentiate and better understand the concept of using keys to encrypt data.

WEEK 02 🚩

  1. Unix Permissions — The Easy Way
    It is about file permissions in Unix operating systems (Linux is also derived from Unix), including the explanation of the codes and examples. The explanation is quite simple and easy to understand, so that we could read the codes by ourselves and understand its meaning.

  2. SHA-256 Cryptographic Hash Algorithm
    It explains the implementation of SHA-256 cryptographic hash in data security. This site could improve your knowledge on hashing and its difference compared to encryption which is a two-way function.

WEEK 03 🚩

  1. Computer Operating Systems: OS Families for Computers
    So you have learned about OS, but you might only know that there are only 3 operating systems that exist in this world (Windows, MacOS, and Linux). Here you can see a lot of other operating systems that exist (or existed) in this world and also the history behind it.

  2. PIONEERS OF SEMICONDUCTOR NON-VOLATILE MEMORY (NVM): THE FIRST FOUR DECADES
    A deep history of non-volatile memory from the oldest to the newest technology that we use right now. This might be great for those history geeks out there. Do you love history? World War II history? Meh, now try this kind of history!

  3. Disk Partitioning: The Good, The Bad, And The Techy
    Pros and cons of applying disk partition to a storage system. This could help us to decide whether we need to use disk partition or not. So please adjust the storage according to your needs. Nevertheless, it is not a necessary thing to do.

WEEK 04 🚩

  1. Difference Between C and Java
    Are you new to C programming language? If you’ve learned Java, then you might say that it almost looks the same (based on the syntax). The truth is that the two are very different in terms of program orientation. The purpose of this site is only to compare C to Java and not to give you the introduction to C language. For more learning materials, I suggest you to read “The C Programming Language (2nd Edition)” by Brian Kernighan and co-authored by the man who created the C language himself, Dennis Ritchie.

  2. Paging in Operating System
    The solution to external fragmentation caused by contiguous allocation of memory. It implements moving memory pages in RAM to the secondary storage when the RAM is full.

  3. Why use double indirection? or Why use pointers to pointers?
    Why do we need a pointer to point a pointer that points to a variable with value in it? Is the question already confusing enough? Then try to read this to understand the purpose of it and how do you implement it in your program.

WEEK 05 🚩

  1. Why should I use “HashKnownHosts yes” in ssh_config?
    The importance of keeping your ssh known hosts in hashed text. An attacker might peep into your unhashed known host and try to access your account.

  2. Belady’s Anomaly in Page Replacement Algorithms
    An anomaly might occur in some page replacement algorithms. You might think that if we increase the amount of page frames, it would surely decrease the chance of a page fault. Turns out, it is not always the case.

  3. Don’t Panic! Everything You Need to Know About Kernel Panics
    In this week’s OS assignment, you must have encountered a rebooting error with “kernel panic” as an error message. Kernel panic is raised to prevent any further damage to your operating system. For those of you who use Windows, BSOD is also an example of a kernel panic.

WEEK 06 🚩

  1. fork() in C
    Think of this as forks you see on the road, but instead of picking one lane to go to, you go to both lanes (assuming you can duplicate yourself like amoebas lol 😂). Each forked process will execute the process below it. You will also get some explanations about parent and child concept in forks.

  2. Getting a Process’ Child Processes
    Need to reference child processes of a process? Here are multiple ways to get the child processes using Linux command.

  3. Multiprogramming vs Multiprocessing vs Multitasking vs Multithreading
    Multi-what??? Don’t even get me started with the multiverse 🙄. Straighten up your knowledge of all the multis in the realms of computer science.

WEEK 07 🚩

  1. Semaphores in Process Synchronization
    It is not too far from semaphores that you might know from scouts training. Simply put, it is a tool used in process synchronization to allow other process to be executed following a signal. Semaphores help to prevent collision between processes.

  2. Deadlock, Livelock and Starvation
    All types of process waiting scenarios that could happen during multiprogramming. Generally, we don’t want these scenarios to happen as it would reduce the efficiency of multiprogramming.

  3. Mutex vs Semaphore
    Mutex, an alternative to semaphore synchronization. Instead of giving signal for processes to be executed, mutex (mutual exclusion) controls and keeps the gate to a shared resource. Once the process running in shared resource is done, mutex will release the process to give other process a space or resource to work with.

WEEK 09 🚩

  1. How to build Linux From Scratch 11.2
    Here’s the playlist of video tutorials for creating LFS if you feel that the tutorial book wasn’t enough. For me, it really helps to visualize the steps.

© 2022 — ARK — Version: 23 November 2022.