Top 10 List of Week 03

  1. File Systems in User Space
    This page covers about how hard it is to build file systems, and how File Systems in User Space (FUSE) can fix a lot of challenges of building file systems. FUSE is a framework in which a kernel component interacts with an application program – the user-mode file system – and presents it to applications so that it looks much like a file system.

  2. File Allocation Methods
    I didn’t know file allocation is THAT complicated, how files can be stored in disk blocks like that. I learnt that there are three main file allocation methods, which are Contiguous Allocation, Linked Allocation, and Indexed Allocation. Even though these three are different, the main idea is the same: to utilize efficient disk space and to provide fast access to file blocks.

  3. Partitions, Formatting, and Mounting
    I remember when I built my first PC, I had to set up my SSD and HDD and set up the partitions, or something. A friend helped me through it so I didn’t understand 100% what was going on. After reading this page, I understand more about how partitions work on disks. This page also explains about how to format and mount a disk.

  4. Directory and Disk Structure in OS
    I learnt that directory is a container that is used to contain folders and files, in a hierarchical maner. There are several structures of a directory, which are single-level directory (the simplest of all), two-level directory (separated for different users), tree-structured directory (every user can create subdirectories), acyclic graph directory (directories can be shares amongst users), and general graph directory structure (multiple directories can be derived from more than one parent directory).

  5. File System Implementation in OS
    A file is a collection of related information. To make it easy and convenient to access these files, a file system implementation is needed: it provides efficient and convenient access to the disk by allowing data to be stored, located, and retrieved. The file system is organized in many layers, which is in this order: application programs, logical file system, file organization module, basic file system, I/O control, and devices.

  6. Virtual Filesystems in Linux
    This page accentuates that virtual filesystems are the magic abstraction that makes the “everything is a file” philosophy of Linux possible. It then tells us about what distinguishes a filesystem to others like VFAT, Git, Cassandra, and the likes. I honestly doesn’t understand all about filesystems (yet), but this page tells me bits about how Linux works, which for me (a Windows user), is pretty interesting.

  7. Network File System
    Network File System, or Distributed File System, was apparently the start of distributed computing, according to this page. It consists of one (or more) server(s) and multiple client machines, so those client machines can ask for data that’s stored on the server(s). Real handy. I also learnt from this page that if a server crashes, the entire system goes down, which is pretty obvious, but somehow kinda funny to me since right now cs.ui.ac.id is down.

  8. Directory Implementation in OS
    Turns out implementing directory is really hard, and it can affect the entire performance of a system. Even though there are many algorithms to impelement directory, this page tells that there are mainly two: linear list and hash table. In linear list, all the files in a directory are maintained as singly lined list. In hash table, a key-value pair for each file in the directory gets generated and stored in the hash table.

  9. How Does File Compression Work?
    I’ve always been fascinated by file compression; a 36MB folder can become just 25MB compressed, but goes back to 36MB after being unzipped, amazing! I never knew how that could work though, so I looked it up and found this page. Turns out there are two types of file compression: lossy and lossless. Lossy compression reduces file size by removing unnecessary bits of information. Though, the more heavy a file is compressed, the quality will drop. Lossless compression, on the other hand, reduces file size so that you can perfectly reconstruct the original file. It essentially removes redundancy.

  10. What is Tarball
    I had no idea what tarball means and was confused when I saw the word being used on this week’s to-do list, so I GSGSed it. I learnt that the word “tarball” is often used to describe the type of file used to back up a select group of files and join them into a single file. The tar command is used to group files together and then those files become a .tar file.