By ARK
HOME —
LINKS —
TIPS —
PUBLIC KEY —
LOG —
TARBALL —
GITHUB
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.
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.
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.
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!
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
© 2022 — ARK — Version: 23 November 2022.