Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Operating system
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
===File system=== {{Main|File system}} {{see also|Virtual file system}} [[File:Dolphin FileManager.png|thumb|[[File system]]s allow users and programs to organize and sort files on a computer, often through the use of [[Directory (computing)|directories]] (or folders).]] Permanent storage devices used in twenty-first century computers, unlike [[volatile memory|volatile]] [[dynamic random-access memory]] (DRAM), are still accessible after a [[Crash (computing)|crash]] or [[power failure]]. Permanent ([[non-volatile memory|non-volatile]]) storage is much cheaper per byte, but takes several orders of magnitude longer to access, read, and write.{{sfn|Anderson|Dahlin|2014|pp=492, 517}}{{sfn|Tanenbaum|Bos|2023|pp=259β260}} The two main technologies are a [[hard drive]] consisting of [[magnetic disk]]s, and [[flash memory]] (a [[solid-state drive]] that stores data in electrical circuits). The latter is more expensive but faster and more durable.{{sfn|Anderson|Dahlin|2014|pp=517, 530}}{{sfn|Tanenbaum|Bos|2023|p=260}} [[File system]]s are an [[abstraction]] used by the operating system to simplify access to permanent storage. They provide human-readable [[filenames]] and other [[metadata]], increase performance via [[Amortization (computer science)|amortization]] of accesses, prevent multiple threads from accessing the same section of memory, and include [[checksums]] to identify [[Data corruption|corruption]].{{sfn|Anderson|Dahlin|2014|pp=492β493}} File systems are composed of files (named collections of data, of an arbitrary size) and [[Directory (computing)|directories]] (also called folders) that list human-readable filenames and other directories.{{sfn|Anderson|Dahlin|2014|p=496}} An absolute [[file path]] begins at the [[root directory]] and lists [[subdirectories]] divided by punctuation, while a relative path defines the location of a file from a directory.{{sfn|Anderson|Dahlin|2014|pp=496β497}}{{sfn|Tanenbaum|Bos|2023|pp=274β275}} [[System call]]s (which are sometimes [[Wrapper function|wrapped]] by libraries) enable applications to create, delete, open, and close files, as well as link, read, and write to them. All these operations are carried out by the operating system on behalf of the application.{{sfn|Anderson|Dahlin|2014|pp=502β504}} The operating system's efforts to reduce latency include storing recently requested blocks of memory in a [[Cache (computing)|cache]] and [[prefetching]] data that the application has not asked for, but might need next.{{sfn|Anderson|Dahlin|2014|p=507}} [[Device driver]]s are software specific to each [[input/output]] (I/O) device that enables the operating system to work without modification over different hardware.{{sfn|Anderson|Dahlin|2014|p=508}}{{sfn|Tanenbaum|Bos|2023|p=359}} Another component of file systems is a [[Associative array|dictionary]] that maps a file's name and metadata to the [[data block]] where its contents are stored.{{sfn|Anderson|Dahlin|2014|p=545}} Most file systems use directories to convert file names to file numbers. To find the block number, the operating system uses an [[Database index|index]] (often implemented as a [[tree (data structure)|tree]]).{{sfn|Anderson|Dahlin|2014|p=546}} Separately, there is a free space [[map (data structure)|map]] to track free blocks, commonly implemented as a [[bitmap]].{{sfn|Anderson|Dahlin|2014|p=546}} Although any free block can be used to store a new file, many operating systems try to group together files in the same directory to maximize performance, or periodically reorganize files to reduce [[file system fragmentation|fragmentation]].{{sfn|Anderson|Dahlin|2014|p=547}} Maintaining data reliability in the face of a computer crash or hardware failure is another concern.{{sfn|Anderson|Dahlin|2014|pp=589, 591}} File writing protocols are designed with atomic operations so as not to leave permanent storage in a partially written, inconsistent state in the event of a crash at any point during writing.{{sfn|Anderson|Dahlin|2014|pp=591β592}} Data corruption is addressed by redundant storage (for example, RAIDβ[[redundant array of inexpensive disks]]){{sfn|Tanenbaum|Bos|2023|pp=385β386}}{{sfn|Anderson|Dahlin|2014|p=592}} and [[checksums]] to detect when data has been corrupted. With multiple layers of checksums and backups of a file, a system can recover from multiple hardware failures. Background processes are often used to detect and recover from data corruption.{{sfn|Anderson|Dahlin|2014|p=592}}
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)