English
[Glossary] File System

[Glossary] File System

Glossary of terms used in file system-related work

in

I realized that my knowledge of the underlying terminology was a bit lacking in my current role, so I decided to take the time to do some additional research and briefly summarize the terms I did know.

File Descriptor

  1. in Linux, Unix-like systems
  2. a type of value used by a Process when dealing with a File.

When a process opens a file, the kernel assigns it the smallest, unused value of the processor's file descriptor number, so that the next time the open file is accessed with a system call, the descriptor value can be used to refer to the file.

Default Assigned Descriptors

  1. standard input (Standard Input)
  2. standard output
  3. Standard Error

Inode

Short for Index Node, a node for quickly locating files.

An inode is a node that indexes all files in Linux and holds metadata about those files. The inode holds the metadata that is output by the list command.

Symbolic Link

A file with information pointing to the inode of the source file.

  • Internally, files are accessed via inode number

  • has a new inode that does not hold information about the original file

cf) Hard Link

  • A file with a new inode, not a file with a new inode, just the inode copied verbatim

  • The difference from a true copy is that no additional data is written, unlike copying

Block Device & Character Device

  • Classifies devices by the difference in data transfer method

  • Block: Transfers data in quantitative units such as blocks or sectors, faster IO transfer speeds

  • Character: Transfers data in bytes, IO transfer speed may be slightly slower, but performance differences exist through buffering control at the application end.

Raw Device

Device without file system set up

  • Not buffered by the OS kernel, data is transferred directly from the device, and it has its own caching system.

  • Good disk IO performance, low CPU overhead.

  • Avoids OS file system overhead and can reduce OS buffer size.

  • Used as a raw device because concurrent access is not possible when configured in the system for shared disks.

IO Scheduler

The part of the system that sorts, merges, and determines the order in which requests are processed to make disk I/O efficient.

  • Particularly useful for devices such as HDDs, where seek times are expensive and merging requests for the same location is effective; effectiveness is halved on SSDs.

  • Types.

    • noop: no-operation, used for high-performance disks

    • cfq (completely fair queueing): Give each process an IO queue and schedule them as evenly as possible, used when a large number of processes generate fine-grained IO

    • deadline: prioritizes closer to the threshold, optimizes for latency, balances all I/O, and is ideal for environments where a small number of processes generate a large amount of I/O.

    • anticipacy: Predicts the location of future I/O requests and processes the closest I/O requests first; the structure used by traditional HDDs, which aggregate input and output, may increase latency.

댓글 작성

게시글에 대한 의견을 남겨 주세요.

댓글 0