Fact-checked by Grok 2 weeks ago

Root directory

In , the root directory is the top-level directory in a that serves as the foundational point from which all other directories, subdirectories, and files branch out and are organized. It represents the origin of the file , with no directory above it, and is essential for system navigation, storage management, and operation. In Unix-like operating systems such as and macOS, the directory is denoted by a forward slash (/) and must contain a minimal set of files and subdirectories required for , , and repair, including essentials like /bin for binaries, /etc for configuration, /lib for libraries, and /boot for boot loader data. This structure adheres to standards like the (FHS), which emphasizes keeping the filesystem small to enhance , reduce corruption risks, and facilitate mounting of additional filesystems. Access to the directory typically requires elevated privileges, often associated with the "root" user account, to prevent unauthorized modifications to critical components. In Microsoft Windows and other non-Unix systems, the root directory functions similarly but is tied to specific storage volumes, such as C:\ for the primary drive, acting as the highest-level folder for that partition from which all paths are derived. This per-drive model supports the system's multi-volume architecture, allowing independent organization of files across disks while maintaining a consistent hierarchical approach. The concept of the root directory originated in early hierarchical file systems of the and , evolving through Unix development to become a cornerstone of for efficient and portability.

Overview

Definition

In hierarchical file systems, the root directory serves as the top-most level of the , functioning as the foundational element from which all other directories and files descend in a tree-like . This positioning makes it analogous to the trunk of an inverted , providing the base for branching subdirectories and files without any enclosing parent directory. The root directory is typically represented by an empty path or a single forward slash (/), which denotes the origin point for constructing absolute paths throughout the system. It anchors the overall , either directly containing essential subdirectories or linking to them, thereby unifying access to all resources within the storage volume. To illustrate, a basic root directory structure might include subdirectories such as one for user home areas, another for system configuration files, and a third for binary executables, forming the initial branches of the hierarchy that organize files logically and efficiently. This arrangement ensures that every file or subdirectory can be reached via a path starting from the root, promoting a coherent and navigable file system.

Historical Development

The concept of the root directory emerged in the 1960s with early mainframe operating systems, particularly Multics, which was developed starting in 1965 and became operational in 1969 as a time-sharing system by MIT, Bell Labs, and General Electric. Multics introduced the first hierarchical file system, organizing files in a tree-like structure with a top-level directory serving as the root, allowing users to navigate directories and subdirectories in a structured manner. This innovation addressed the limitations of flat file systems in previous systems and laid the groundwork for modern file organization. The hierarchical model from profoundly influenced Unix, which was developed at beginning in 1969 and ported to the PDP-11 in 1971, where it adopted a single root directory denoted by "/". In early Unix versions, the root directory contained essential subdirectories for system files, user data, and commands, establishing a unified starting point for the entire tree. By the 1980s, the Portable Operating System Interface () standards, initiated in the early part of the decade and formalized in IEEE 1003.1-1988, standardized the root directory concept across systems to ensure portability and consistency in interfaces. In parallel, the root directory evolved differently in personal computing with the introduction of in 1981 by for the IBM PC, which used drive-letter prefixed roots like "A:" primarily due to the prevalence of multiple floppy disk drives (A: and B:) for and . This design accommodated the hardware limitations of the era, where hard drives were optional and floppies required distinct identifiers, diverging from Unix's single-root model but establishing per-volume roots. Key milestones in the further refined the root directory's role: the (FHS), initially released as FSSTND on February 14, 1994, by the community, defined the contents and purposes of directories under the root "/" in distributions to promote interoperability. Similarly, introduced the New Technology File System (NTFS) in 1993 with , implementing root directories at the volume level with enhanced security and reliability features. In the , the rise of technologies extended the root directory concept to isolated environments, culminating in Docker's launch in 2013, which popularized OS-level where each container operates with its own root file system mounted over the host's, enabling lightweight, reproducible application deployment without full virtual machines.

Implementation in Unix-like Systems

The Root Directory (/)

In operating systems, the root directory is denoted by a single forward slash (/), serving as the top-level directory from which the entire structure descends. All absolute paths begin at this root, allowing unambiguous of files and directories regardless of the current ; for instance, an absolute path like /home/user/file.txt starts resolution from / and navigates through the specified components. This notation ensures a unified, tree-like where every or directory can be referenced via a starting with /, contrasting with relative paths that depend on the present . The standard contents of the root directory are governed by the (FHS), which outlines a consistent layout for directories under systems to promote portability and maintainability. Key top-level directories include /bin, which houses essential user command binaries accessible to all users, such as basic utilities like and ; /etc, containing host-specific system configuration files like /etc/passwd for user accounts; /home, providing directories for individual user homes (though optional on the minimal root filesystem); /root, the for the (also optional); /var, dedicated to variable data such as logs and spool files that change during system operation; and /usr, encompassing read-only user programs, libraries, and documentation. While /bin, /etc, and /sbin form the core of the minimal root filesystem required for and repair, /usr and /var are designed for separate mounting to allow flexibility in partitioning, yet they remain integral to the overall hierarchy under /. During the boot process, the root directory plays a central operational role as the root is mounted early in initialization, establishing the foundational environment for the operating system. Initially, the extracts an initramfs (initial filesystem) into a temporary rootfs in memory, which serves as a provisional root directory containing minimal tools and drivers needed to access storage . The init process within initramfs then identifies and mounts the real root filesystem—typically on a persistent like a hard drive —over the temporary rootfs using a switch_root , transitioning control to the permanent / and executing the system init (e.g., /sbin/init). This pivot ensures the system can load necessary modules for hardware detection before fully activating the root directory. Path resolution exemplifies the root directory's practical role; for example, /etc/passwd resolves directly from / to the etc subdirectory and then to the passwd file, bypassing any current directory context. In multi-volume setups common to Unix-like systems, the root directory / may reside on one dedicated partition (e.g., for /boot and essential binaries), while other top-level directories like /home or /usr are mounted from separate partitions or even network filesystems, integrating them seamlessly into the unified hierarchy via entries in /etc/fstab. This modular mounting allows efficient resource allocation, such as placing variable data in /var on faster storage, without disrupting the single-rooted structure.

Chroot Mechanism

The chroot system call, introduced in in 1979, allows a and its children to perceive a specified subdirectory as the root directory (/) of the , thereby limiting their access to only the files and directories within that subtree. This mechanism alters the resolution of absolute pathnames for the affected processes, making the parent hierarchy invisible and effectively partitioning the view of the without modifying the underlying structure. Originally restricted to the superuser, the call provides a simple form of by redefining the starting point for path searches beginning with a slash. Implementation of chroot relies on the chroot() syscall, which takes a path argument pointing to the new root directory and applies the change immediately to the calling , inheriting to all subsequent forks. To create minimal environments, it is commonly combined with mechanisms, where a privileged performs the chroot and then drops to a non-root user ID via setuid(), reducing the by limiting privileges post-isolation. However, chroot is not inherently secure for confinement, as a running as root within the chroot can potentially escape by manipulating file descriptors, symbolic links, or device files to access the parent hierarchy if those elements are present. Common use cases include isolating legacy software to prevent interference with the host system and facilitating software installation in controlled environments, such as using debootstrap to bootstrap a minimal base system within a for package building or testing. It served as an early form of "jail" for restricting untrusted processes, though limitations persist, such as the lack of built-in restrictions on access—processes can still communicate via sockets unless additional tools like or minimal /proc and /dev mounts are configured to limit capabilities. Historically, chroot predates modern container technologies by decades, offering a foundational approach to environment isolation in Unix-like systems; a typical invocation might be chroot /newroot /bin/bash to launch a shell with /newroot as the apparent root.

Super-root and Virtualization Features

In early distributed Unix systems of the 1980s, the super-root concept emerged as a mechanism to create a virtual directory above the local root, enabling transparent access to remote file systems across networked machines. A seminal implementation was the Newcastle Connection, developed in 1982 at Newcastle University, which added a software layer to interconnected Unix systems, making them appear as a single virtual system. In this setup, navigating to "/.." from the local root accessed a super-root directory, allowing paths like "/../hostname" to mount and traverse the root of a remote host named "hostname," thus aggregating distributed file trees without altering local structures. This super-root idea served as a precursor to more advanced techniques, evolving from 1980s experiments to the isolation primitives in modern cloud-native environments. By the , introduced namespaces as a feature to virtualize resources, including the mount , which allows to have isolated views of the directory hierarchy. The unshare() , added in version 2.6.16 released in March 2006, enables a to detach from its parent's namespaces and create private ones, effectively establishing a new per-process root directory for mounts. In , Linux form the foundation for , with tools like leveraging them alongside union s to provide isolated . uses mount to restrict container processes to a view, often combining it with —a (introduced in 3.18, 2014)—to layer a writable container over read-only image layers for efficient, snapshot-based . Additionally, bind mounts in extend the container's visibility by mapping host directories into the isolated , allowing selective access to external resources while maintaining boundaries. This progression from early super- to -driven containers has enabled scalable cloud-native , supporting the deployment of millions of ephemeral workloads in environments like .

Implementation in DOS and Windows Systems

DOS Root Directory

In MS-DOS, the root directory serves as the top-level container for files on each individual storage device, such as floppy disks or hard drives, with no overarching unified system root across multiple drives. This per-drive structure is accessed via drive letters followed by a , like A:\ for the first floppy drive or C:\ for the primary hard drive, reflecting the operating system's design to treat each physical volume independently. The root directory's capacity is constrained by the underlying , which limits it to a fixed size of 512 entries for files and subdirectories combined, preventing expansion beyond this threshold without reformatting or using later file systems. The root directory plays a central role in system initialization, housing essential boot files including IO.SYS, which loads the basic input/output system and device drivers; MSDOS.SYS, the core DOS system file; and , a that specifies device drivers, , and boot options processed during startup. , the command-line interpreter, is also typically placed in the root for , enabling the after the kernel loads. Due to the multi-drive , from a floppy in drive A:\ requires these files to reside in A:\ root, with the system searching only that location for initialization components before proceeding. , a for executing user-defined startup commands, is conventionally located in the boot drive's root to run automatically post-configuration. Introduced with 1.0 in 1981 alongside the IBM PC, the root directory enforced strict conventions, allowing up to eight characters for the base name and three for the extension to fit FAT12's 32-byte directory entry format. This limitation, combined with the absence of subdirectories in early versions, confined all files to the root, often leading to cluttered structures on boot media. 2.0, released in March 1983, marked a key evolution by introducing hierarchical subdirectories, allowing files to be organized beyond the root while preserving its fixed entry limit and boot primacy.

Windows Drive Roots

In Windows NT-based operating systems, each logical drive is assigned a letter (such as C:, D:, or E:) followed by a backslash to denote its root directory, for example C:\ represents the root of the primary system drive. This per-drive root structure supports multi-volume configurations, where files and directories are organized independently on each volume without a unified global root encompassing all storage. The system root, containing the core Windows installation files, is conventionally located at C:\Windows on the boot volume. A key feature enhancing multi-volume support is volume mount points, introduced in , which allow an empty on an NTFS-formatted volume to serve as an attachment point for another volume's , effectively integrating additional storage into the without requiring a separate letter. The %SystemRoot% dynamically resolves to the path of the Windows under the system 's , typically C:\Windows, facilitating portable references in scripts and applications across different installations. Junction points, a type of reparse point available since , enable root-like redirects by aliasing one to another on the same or different volumes, such as redirecting legacy paths for compatibility. During the boot process in Windows NT through Windows XP, the NT Loader (NTLDR) is loaded from the root directory of the active partition on the boot volume to initiate the operating system startup. Starting with Windows Vista, the Windows Boot Manager (bootmgr.exe) replaces NTLDR and is executed from the root of the system partition, reading configuration from the Boot Configuration Data (BCD) store typically located at \Boot\BCD in that root for single or multi-boot environments. For example, when software is installed to a non-system drive like D:, it creates subdirectories such as D:\Program Files directly under that drive's root, allowing flexible distribution of applications across volumes while maintaining per-drive isolation.

File System Perspectives

In FAT and exFAT

In the File Allocation Table (FAT) file systems, the root directory serves as the top-level container for files and subdirectories on a volume, positioned immediately after the file allocation tables (FATs) for FAT12 and FAT16 variants. This fixed-location structure begins at the sector calculated by adding the reserved sector count to the product of the number of FATs and their size in sectors, ensuring bootloaders can access it without parsing the entire volume. Each directory entry is 32 bytes long, encompassing details such as filename, attributes, timestamps, and the starting cluster number. The root directory in FAT12 and FAT16 is commonly configured with 512 entries in many implementations to maintain compatibility with early systems, though the specification allows up to 65,535 entries via the 16-bit BPB_RootEntCnt field, equating to 16 KB when using 512 entries and 512-byte sectors, though the boot sector's BPB_RootEntCnt field specifies the exact count as an even multiple of sectors. Unlike subdirectories, the root directory does not contain "." (current directory) or ".." (parent directory) entries, as it has no parent, and lacks explicit date/time stamps for its own metadata. In FAT32, the root directory shifts to a more flexible allocation within the data region, starting at the cluster number specified in the boot sector's BPB_RootClus field (typically 2), allowing it to function like any other and grow dynamically via cluster chains in the FAT. This removes the fixed-size constraint, supporting up to 65,536 entries, depending on the volume's cluster size and available space, thereby accommodating larger volumes up to 2 terabytes. The still adheres to the 32-byte entry format but inherits subdirectory behaviors, including the presence of "." and ".." entries if treated as a chainable structure, though traditional implementations omit them for the root to preserve legacy access. Early iterations of , as used in 1.0, lacked subdirectory support entirely, confining all files to the root without until extensions in later versions like 2.0. A key limitation of the FAT root directory in FAT12 and FAT16 is its inability to expand beyond the predefined space, which precedes the data s and can lead to fragmentation if the volume fills, as cluster allocation for files begins only after the root and FATs. These systems are prevalent in such as USB flash drives and SD cards due to their simplicity and broad across operating systems, though the fixed root size often encourages users to create subdirectories for organization. For instance, bootable FAT32 volumes, common for USB media, place bootloader files like bootmgr or in the root directory, leveraging its cluster-based location for easy access during the . Cross-operating system can introduce issues, such as varying support for long filenames or volume labels, potentially requiring reformatting when moving media between Windows, macOS, and environments. The , introduced by in 2006 specifically to address limitations in flash-based storage like USB drives and SD cards, extends principles with a dynamic directory allocated as a chain in the data heap, referenced by the FirstClusterOfRootDirectory field in the . Unlike the fixed roots in earlier variants, exFAT's has no predetermined entry limit, with its size determined by the length of the chain divided by 32 bytes per entry, enabling scalability for large volumes up to 128 petabytes and files up to 16 exabytes. It supports long filenames without the 8.3 short name restrictions of , using case-insensitive but case-preserving naming via an Up-case Table, and maintains the same 32-byte entry structure while integrating allocation bitmaps for efficient management post-root. This design enhances compatibility for cross-platform use in but inherits 's lack of journaling, making it susceptible to corruption from improper ejection.

In NTFS and ext4

In the file system, introduced with in 1993, the root directory is represented as Master File Table (MFT) entry 5, serving as the top-level index for all files and subdirectories on the volume. This entry functions as a file record segment containing attributes such as STANDARD_INFORMATION for basic [metadata](/page/Metadata) and INDEX_ROOT for directory indexing, enabling efficient navigation. supports granular through Access Control Lists (ACLs) on the root directory and its contents, allowing detailed permission assignments to files and folders. Additionally, the root directory benefits from native capabilities, which reduce storage needs for subfiles, and dynamic sizing via the MFT's attribute list mechanism, which allocates additional segments as the directory grows beyond a single record. The root, internally named $Root, is a hidden system file not directly visible to users but essential for volume structure. Reparse points can be associated with the root directory to extend functionality, such as redirecting paths through filesystem filters for links or mounts. In contrast, the , introduced in 2008 as an evolution of (which added journaling in 2001), designates inode 2 as the directory, providing the foundational structure for the filesystem . employs extents—a tree-based mapping scheme—to handle large files efficiently within the root and subdirectories, minimizing overhead by representing contiguous blocks as single extent nodes rather than indirect blocks. This feature supports volumes up to 1 EiB in size, making suitable for modern distributions and large-scale storage. Delayed allocation in defers block assignment until writeback, optimizing performance for filesystem operations by coalescing writes and reducing fragmentation. Both and permit unlimited subdirectories under the root, overcoming legacy limitations like those in by leveraging dynamic indexing and allocation strategies. For practical configuration, the root filesystem is often tuned via /etc/ entries, specifying options such as noatime for reduced updates or commit intervals to balance and during and .

Security and Access

Permissions and Ownership

In Unix-like systems, the root directory (/) is owned by the user with ID 0, known as the root user, and belongs to the root group, ensuring that only privileged processes can modify its contents. Permissions on the root directory are managed using the chmod command, which sets access modes in the format rwxrwxrwx (represented as octal 777 for full access or more restrictively as 755 for drwxr-xr-x), granting the owner read, write, and execute privileges while allowing group and others read and execute access by default. However, the root user bypasses most permission restrictions, including those on the root directory itself, due to its superuser status, enabling unrestricted access regardless of the set modes. For example, running ls -ld / typically outputs drwxr-xr-x 2 root root 4096 [date] /, illustrating the standard directory permissions owned by root. In Windows systems using , the directory of a (e.g., C:) employs Access Lists (ACLs) for granular permission management, where entries define allow or deny rules for specific users or groups, and these ACLs are inherited by subdirectories and files unless explicitly overridden. By default, the of the full to the and the Administrators group, while providing read and execute access (along with limited creation rights) to Authenticated Users and the Users group, as reflected in the descriptor D:PAI(A;OICI;FA;;;SY)(A;OICI;FA;;;BA)(A;OICI;0x1200a9;;;BU)(A;CI;LC;;;BU)(A;CIIO;DC;;;BU)(A;OICIIO;GA;;;CO). Running icacls C:\ displays these ACLs, showing inheritance flags (OI for object inherit, CI for container inherit) that propagate permissions downward. Across systems like and those using the file system, the root directory lacks native support for permissions or ownership, as does not store ACLs or user/group metadata; instead, is enforced entirely by the host operating system, such as through Windows share permissions or Unix mount options. In such environments, creating symbolic links within the root directory generally requires elevated access: in systems, write permission on / (exclusive to root), and in Windows, the SeCreateSymbolicLinkPrivilege, typically held only by administrators.

Root Privileges and Isolation

In Unix-like operating systems, the root user, designated by user ID () 0, holds supreme authority, bypassing all standard file permission checks to access, modify, or delete contents in the root directory and elsewhere. This design ensures administrative tasks can proceed without hindrance but necessitates careful control to prevent abuse. To delegate these privileges securely, the command, first developed in 1980 at SUNY/ and further enhanced at institutions like the in the late 1980s and early 1990s, allows non-root users to execute specific commands as 0 after verifying their own credentials, avoiding the need for sharing the password. In Microsoft Windows, the built-in account functions analogously, granting elevated rights to manage drive and system resources equivalent to Unix capabilities. Direct root access, however, exposes systems to severe vulnerabilities, as exploits can grant attackers unrestricted control over the root directory and beyond. Notable examples include CVE-2021-3156, a heap-based buffer overflow in sudo that enables local privilege escalation to root on affected Unix systems. Similarly, CVE-2025-32462 in sudo versions 1.8.8 through 1.9.17 permits unauthorized root access via policy bypass flaws. Adhering to the principle of least privilege—restricting entities to only the minimum authorizations required for their functions—serves as a core best practice to curb such risks and contain potential breaches. Contemporary mitigations enhance root isolation through policy enforcement. SELinux, publicly released by the in December 2000, implements (MAC) via kernel-enforced policies that label objects like the root directory, restricting even UID 0 processes from unauthorized operations unless explicitly permitted. , initially designed in 2000 and widely adopted in distributions like by the mid-2000s, complements this by applying path-based confinement profiles to root-level applications, limiting their interactions with the filesystem including the root directory. In Windows, (UAC), debuted in 2007 with , interposes consent prompts for Administrator actions, isolating everyday tasks from full root privileges to reduce exposure. Commands like exemplify root elevation: invoking su without arguments launches an interactive root shell, inheriting the caller's environment unless the - option simulates a full login for a clean root context. For oversight, the auditd daemon in Linux systems records root-driven modifications, such as writes to root directory files, generating logs queryable via tools like ausearch to track and investigate privileged activities.

Mount Points and Boot Process

In Unix-like operating systems, the root filesystem is mounted at the directory / during system initialization, serving as the primary mount point for the entire directory hierarchy. The kernel initially mounts the root filesystem in read-only mode for integrity checks, after which the init process remounts it as read-write and processes the /etc/fstab file to mount additional filesystems under the root tree. The /etc/fstab configuration defines persistent mount points, device identifiers (such as UUIDs or labels), and options for filesystems like /home or /var, ensuring they integrate seamlessly into the root structure upon boot. In Windows systems, the root directory corresponds to the highest-level directory on a volume, typically assigned a drive letter such as C:\ through the Mount Manager, which associates volumes with letters based on unique identifiers stored in the registry under HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices. Additional volumes can be mounted as folders within volumes rather than separate drive letters, configured via Disk Management or the registry for integration under the system root. The boot process begins with the bootloader locating the root filesystem using parameters like root=UUID=... or labels specified in its configuration, loading the and an initial RAM disk (initrd) as a temporary root . The initrd contains essential drivers and tools to access the real root filesystem, which the mounts onto a temporary within initrd before invoking pivot_root to switch the root mount point to the actual filesystem, enabling full system initialization. In Windows, the legacy boot process for pre-Vista systems uses the boot.ini file in the system 's root to specify the root via ARC paths (e.g., multi(0)disk(0)rdisk(0)partition(1)\WINDOWS), directing to load the operating system from that location. Multi-root setups in extend the root concept using technologies like Logical Volume Manager (LVM), which allows logical volumes to act as pseudo-root filesystems mounted at /, or subvolumes, which provide independent directory hierarchies sharing the same physical storage and can be designated as the root via mount options like -o subvol=@. For instance, systems mount the /system partition as read-only under the root to protect core files, requiring root privileges and commands like mount -o remount,rw /system for modifications. Practical examples include remounting the root filesystem read-write with mount -o remount,rw / after for maintenance, or editing boot.ini in Windows to change the entry (e.g., updating the rdisk value) and rebuilding the for the changes to take effect.

Virtual File Systems and Containers

In virtual file systems, specialized pseudo-file systems are mounted under the root directory to provide access to and information without relying on physical storage. The /proc filesystem, for instance, serves as an interface to internal data structures, allowing to query and modify details such as status and memory usage through files like /proc/stat and /proc/meminfo. Similarly, exposes objects and their attributes hierarchically under /sys, enabling userspace tools to interact with device drivers and subsystems, such as retrieving hardware topology via /sys/devices. These mounts integrate seamlessly into the root hierarchy, presenting dynamic, in-memory representations rather than persistent files. Complementing these, provides a temporary, volatile storage layer often mounted at /tmp or other root subdirectories, where all data resides in and is discarded on unmount or , supporting short-lived operations like caching without disk I/O. Containers leverage union filesystems to construct layered, isolated directories, combining a read-only base with writable overlays for efficient resource sharing. In , the overlay2 storage driver uses to merge a lower layer (immutable image data) with an upper layer (container modifications), presenting a unified filesystem that isolates changes while preserving the original layers across instances. containers similarly employ union mounts to overlay a container's rootfs atop host directories, creating a virtual that inherits host visibility selectively without altering the underlying filesystem. This approach enables multiple containers to share common components, reducing storage overhead and facilitating rapid deployment. Kubernetes extends by incorporating ephemeral filesystems in , where the rootfs is transient and tied to the pod's lifecycle for temporary workloads. allocate ephemeral storage for the filesystem, tracked by the kubelet to enforce usage limits, ensuring that , logs, and caches are automatically purged upon pod termination without persistent impact. This design supports stateless applications by treating the as disposable, often backed by or emptyDir volumes for volatility. Advanced virtualization environments further adapt root directories through cross-OS mappings and snapshotting. Introduced in 2016, the (WSL) virtualizes a root filesystem within Windows, storing it in a virtual hard disk while allowing seamless access to Windows drives via mounts under /mnt, effectively bridging the two ecosystems for hybrid development. On macOS, the (APFS) supports snapshots of the root volume, enabling point-in-time clones that capture the entire directory structure for recovery or testing without duplicating data, as changes to the clone diverge efficiently from the original. Practical implementations highlight these concepts, such as using Docker's bind mounts with docker run -v /host/path:/container/[root](/page/Root) to overlay host directories directly into a container's root, providing shared access while maintaining isolation. (Filesystem in Userspace) facilitates user-space virtual roots by allowing non-privileged users to implement and mount custom filesystems under the root hierarchy, such as emulating remote storage as local directories via modules. These techniques, often combined with for process isolation, underscore the flexibility of virtual roots in contemporary computing.

References

  1. [1]
    root directory - Microsoft Style Guide
    Jun 24, 2022 · Use root directory, not home directory, to refer to the directory or folder from which all other directories or folders branch.
  2. [2]
    Classic SysAdmin: The Linux Filesystem Explained
    Feb 27, 2022 · The / in the instruction above refers to the root directory. The root directory is the one from which all other directories branch off from.
  3. [3]
    hier(7) - Linux manual page - man7.org
    A typical Linux system has, among others, the following directories: / This is the root directory. This is where the whole tree starts. /bin This directory ...
  4. [4]
    Chapter 3. The Root Filesystem - Linux Foundation
    The root filesystem contains many system-specific configuration files. Possible examples include a kernel that is specific to the system, a specific hostname, ...Missing: definition | Show results with:definition
  5. [5]
    Filesystem Hierarchy Standard - Linux Foundation
    Mar 19, 2015 · This standard consists of a set of requirements and guidelines for file and directory placement under UNIX-like operating systems.
  6. [6]
    Linux Directory Structure - HPC - New Mexico State University
    The directory at the highest level of hierarchy in a file system is called the root directory. The root directory contains all other folders and files.
  7. [7]
  8. [8]
    Root File System - an overview | ScienceDirect Topics
    1. The root directory, denoted as "/", serves as the top-level directory in the file system hierarchy, from which all other directories and files branch. 2. Its ...Structure and Components of... · Types, Implementations, and...Missing: authoritative | Show results with:authoritative
  9. [9]
    Features - Multics
    Multics was the first to provide a hierarchical file system. The influence of that innovation can be found in virtually every modern operating system.
  10. [10]
    What is MULTICS? - GeeksforGeeks
    Jan 2, 2024 · Hierarchical file structure: The first operating system to provide the required files a hierarchical structure or tree-like structure is Multics ...
  11. [11]
    Unix Notes from 1972 - Nokia
    Each of the directories under the root also can contain files and directories, and so on. In UNIX, files are named by giving a sequence of directories, ...
  12. [12]
    A Guide to POSIX | Baeldung on Linux
    Mar 19, 2025 · The work on POSIX began in the early 1980s to standardized the rapidly developing UNIX system interface. It covers a variety of systems in ...
  13. [13]
    DOS 1.0 and 1.1 | OS/2 Museum
    DOS 1.0 could read and write 160KB floppy disks, start .COM and .EXE applications, and process batch (.BAT) files. It could keep track of date and time.
  14. [14]
    How to Change Drives in MS-DOS and Windows Command Line
    Sep 7, 2025 · To change the drive letter in MS-DOS, type the drive letter followed by a colon. For example, to switch to the floppy disk drive, you would type ...
  15. [15]
    Background of the FHS | Filesystem Hierarchy Standard
    The FSSTND, a filesystem hierarchy standard specific to the Linux operating system, was released on February 14, 1994.
  16. [16]
    What is NTFS and how does it work? - Datto
    Aug 1, 2022 · First introduced in 1993 as part of the Windows NT 3.1 release, NTFS has since become the default and most widely used file system in modern ...
  17. [17]
    A Brief History of Containers: From the 1970s Till Now - Aqua Security
    Jan 10, 2020 · The history of virtual container technology since the 70s with chroot & Unix, through the rise of Docker, Kubernetes' take over, ...
  18. [18]
    path_resolution(7) - Linux manual page
    ### Summary of Root Directory and Absolute Paths from path_resolution(7)
  19. [19]
    Ramfs, rootfs and initramfs - The Linux Kernel documentation
    Oct 17, 2005 · If found, this init process is responsible for bringing the system the rest of the way up, including locating and mounting the real root device ...
  20. [20]
    Chapter 16. Mounting file systems | Red Hat Enterprise Linux | 9
    These are the basic concepts of mounting file systems on Linux. On Linux, UNIX, and similar operating systems, file systems on different partitions and ...
  21. [21]
    [PDF] time-sharing system: - unix programmer's manual
    Jan 10, 1979 · Page 1. UNIX. TM. TIME-SHARING SYSTEM: UNIX PROGRAMMER'S MANUAL. Seventh Edition, Volume 2A. January, 1979. Bell Telephone Laboratories ...
  22. [22]
    chroot(2) - Linux manual page - man7.org
    chroot() changes the root directory of the calling process to that specified in path. This directory will be used for pathnames beginning with /.Missing: v7 | Show results with:v7
  23. [23]
  24. [24]
    chroot(2) - OpenBSD manual pages
    The chroot () system call first appeared in Version 7 AT&T UNIX. CAVEATS. There are ways for a root process to escape from the chroot jail. Changes to the ...Missing: v7 | Show results with:v7
  25. [25]
    What chroot() is really for - LWN.net
    chroot() is not meant to be a security-oriented access control mechanism. It is, instead, a way to run processes with a partitioned view of the filesystem.
  26. [26]
    [PDF] The Newcastle Connection
    Jul 21, 1982 · In this paper we describe a software subsystem that can be added to each of a set of physically interconnected UNIX or UNIX look-alike ...
  27. [27]
    Revisiting the History of Virtual Machines and Containers
    This survey covers key developments in the evolution of virtual machines and containers from the 1950s to today, with an emphasis on countering modern ...
  28. [28]
    unshare system call — The Linux Kernel documentation
    Jan 11, 2006 · unshare() can be used to implement polyinstantiated directories using the kernel's per-process namespace mechanism. Polyinstantiated ...
  29. [29]
    unshare(2) - Linux manual page - man7.org
    Unshare the IPC namespace, so that the calling process has a private copy of the IPC namespace which is not shared with any other process. Specifying this flag ...
  30. [30]
    Digging into Linux namespaces - part 1 - Quarkslab's blog
    Nov 16, 2021 · Namespaces are a Linux kernel feature released in kernel version 2.6.24 in 2008. ... Namespaces can also be created using the unshare syscall. The ...
  31. [31]
    Isolate containers with a user namespace - Docker Docs
    For containers whose processes must run as the root user within the container, you can re-map this user to a less-privileged user on the Docker host.About Remapping And... · Prerequisites · Enable Userns-Remap On The...
  32. [32]
    OverlayFS storage driver - Docker Docs
    OverlayFS is a union filesystem. This page refers to the Linux kernel driver as OverlayFS and to the Docker storage driver as overlay2 .<|separator|>
  33. [33]
    How to Use Linux Namespaces and cgroups to Control Docker ...
    Mar 4, 2024 · This article discusses how docker uses Linux namespaces. Earthly uses namespaces to make your build reproducible. Check it out.
  34. [34]
  35. [35]
    FAT File System - Keil
    ... directory must not be larger than 2,097,152 bytes). A root directory on FAT12 and FAT16 can hold max 512 files/folders (there is no such limitation for FAT32) ...
  36. [36]
    A Guide to DOS Startup Files - DOS Days
    The DOS boot code searches the root directory of the device being booted for the operating system files (the three mentioned above). IO. SYS is executed first, ...
  37. [37]
    Autoexec.bat and Config.sys
    sys and autoexec.bat configure the PC in a certain way, depending on their contents. These files must be in the root directory on the boot drive, typically C:\.
  38. [38]
    MS-DOS: A Brief Introduction - The Linux Information Project
    Apr 25, 2004 · When IBM launched its revolutionary personal computer, the IBM PC, in August 1981, it came complete with a 16-bit operating system from ...
  39. [39]
    DOS 8.3 Filenames - DOS Days
    8.3 Filenames are so-called because of the limitation of a file's name to be 8 characters plus a 3 character file extension. This is often referred to as Short ...Missing: root | Show results with:root
  40. [40]
    MS-DOS 2 - BetaWiki
    Aug 22, 2025 · MS-DOS 2.00 was released in March 1983 and introduced support for subdirectories and hard drives (with capacity up 10 MB). · MS-DOS 2.01 was ...
  41. [41]
    File path formats on Windows systems - .NET - Microsoft Learn
    As result, the first is an absolute path from the root directory of drive C: , whereas the second is a relative path from the current directory of drive C: .
  42. [42]
    Naming Files, Paths, and Namespaces - Win32 apps - Microsoft Learn
    Aug 28, 2024 · All file systems follow the same general naming conventions for an individual file: a base file name and an optional extension, separated by a period.
  43. [43]
    Recognized environment variables | Microsoft Learn
    Jan 29, 2025 · The Windows directory or system root path. This value corresponds to the %WINDIR% or %SYSTEMROOT% environment variables. A typical path is C:\ ...
  44. [44]
    The Systems Internals Newsletter Volume 2, Number 5
    Nov 30, 2000 · Part 1 describes reparse points, directory junctions, volume mount points, quota support, and consolidated security settings.
  45. [45]
    Junction - Sysinternals - Microsoft Learn
    Jul 4, 2016 · Windows 2000 and later support junction points, where a directory serves as an alias to another directory on the computer.
  46. [46]
    troubleshoot "NTLDR Is Missing" error - Windows Server
    Jan 15, 2025 · Method 1: Use a boot disk to start the computer · Create a Windows 2000 boot disk that contains the following files: Ntldr · Modify the Boot.
  47. [47]
    About the BCD WMI Provider | Microsoft Learn
    May 30, 2018 · The boot manager reads the boot entries from the Boot Configuration Data (BCD) store so they are available to the loader and displays a boot ...
  48. [48]
    "Bootmgr is missing Press Ctrl+Alt+Del to restart" error when you ...
    This error indicates that the boot sector is damaged or missing. Resolution: To fix this, use the following methods to troubleshoot this Windows Start error.Missing: NTLDR root
  49. [49]
    How to make programs save/run in other than C drive - Microsoft Learn
    Dec 24, 2011 · Most programs let you choose the folder to install them in - when it asks where to install, just change it to a folder on the other drive.
  50. [50]
    [PDF] Microsoft FAT Specification - CBA
    Aug 30, 2005 · NOTE: FAT file system drivers must ensure that they update this field when the volume label file in the root directory has its name changed or.
  51. [51]
    Understanding File Systems - Kingston Technology
    The two major versions of this system are FAT16 and FAT32. FAT uses a file allocation table to keep track of file locations on the disk. However, it lacks ...
  52. [52]
    exFAT File System Specification - Win32 apps - Microsoft Learn
    The root directory shall always be described with a cluster chain in the active FAT, as if the root directory were described with a directory entry with the ...
  53. [53]
    Master File Table (Developer Notes) - Win32 apps | Microsoft Learn
    Jan 6, 2021 · The master file table (MFT) stores the information required to retrieve files from an NTFS partition. A file may have one or more MFT records, and can contain ...
  54. [54]
    NTFS overview - Microsoft Learn
    Jun 18, 2025 · Granular access control with ACLs: NTFS enables you to assign detailed permissions to files and folders using Access Control Lists (ACLs).
  55. [55]
    NTFS Overview | Microsoft Learn
    May 3, 2017 · NTFS is the primary file system for recent Windows and Windows Server, providing security, encryption, disk quotas, and rich metadata.
  56. [56]
    . (Root Directory) (5) - File - NTFS Documentation
    The Root Directory of an NTFS, called . (dot) is an ordinary directory. If the volume has Reparse Points then the directory will have a Named Data Stream ...
  57. [57]
    2.3. Special inodes - The Linux Kernel documentation
    2. Root directory. 3. User quota. 4. Group quota. 5. Boot loader. 6. Undelete directory. 7. Reserved group descriptors inode. (“resize inode”). 8. Journal inode ...
  58. [58]
    [PDF] Anatomy of Linux journaling file systems - IBM
    Jun 4, 2008 · The ext3fs has been supported in Linux since 2001. Finally, the ReiserFS journaling file system blazed many new trails when it was introduced ...
  59. [59]
    Chapter 31. Getting started with an ext4 file system | 8
    Using extents: The ext4 file system uses extents, which improves performance when using large files and reduces metadata overhead for large files. Ext4 ...
  60. [60]
    About the Ext File System - Oracle Help Center
    Large file system support: Ext4 can theoretically support volumes with sizes up to 1 EiB and single files with sizes up to 16 TiB. Use of extents instead of ...
  61. [61]
    2.4. Block and Inode Allocation Policy
    A second related trick that ext4 uses is delayed allocation. Under this scheme, when a file needs more blocks to absorb file writes, the filesystem defers ...
  62. [62]
    Chapter 30. Getting started with an ext4 file system | 9
    Chapter 30. Getting started with an ext4 file system. As a system administrator, you can create, mount, resize, backup, and restore an ext4 file system.
  63. [63]
    5. Files and File system Security
    Unix separates access control on files and directories according to three characteristics: owner, group, and other. There is always exactly one owner, any ...
  64. [64]
    path_resolution(2) - Linux man page - Die.net
    On a traditional Unix system, the superuser (root, user ID 0) is all-powerful, and bypasses all permissions restrictions when accessing files. On Linux ...
  65. [65]
    Linux file permissions explained - Red Hat
    Jan 10, 2023 · $ ls -l drwxr-xr-x. 4 root root 68 Jun 13 20:25 tuned -rw-r--r--. 1 ... Lacking execute permission on a directory can limit the other permissions ...
  66. [66]
    Understanding Windows File And Registry Permissions
    Sep 10, 2019 · Here, members of the users group are allowed to create folders and append data to files in the root of the system drive. If you click the Edit ...
  67. [67]
    icacls | Microsoft Learn
    Jun 9, 2025 · Displays or modifies discretionary access control lists (DACLs) on specified files and applies stored DACLs to files in specified directories.
  68. [68]
    Overview of FAT, HPFS, and NTFS File Systems - Windows Client
    Jan 15, 2025 · FAT partitions are limited in size to a maximum of 4 Gigabytes (GB) under Windows NT and 2 GB in MS-DOS. For further discussion of other ...
  69. [69]
    Create symbolic links - Windows 10 | Microsoft Learn
    Apr 18, 2017 · Symbolic links are designed to aid in migration and application compatibility with UNIX operating systems. Microsoft has implemented symbolic ...
  70. [70]
    Verify Only Root Has UID 0 - Datadog Docs
    An account has root authority if it has a UID of 0. Multiple accounts with a UID of 0 afford more opportunity for potential intruders to guess a password for a ...<|separator|>
  71. [71]
    Does the root account always have UID/GID 0? - Super User
    Aug 1, 2013 · Yes. As is pointed out by Rich Homolka in a comment, there's code in the kernel which explicitly checks for uid 0 when needing to check for the root user.Why do I get permission denied even as root? - Super UserHow to reassign uid:gid to all users and automatically fix all file ...More results from superuser.comMissing: bypass | Show results with:bypass
  72. [72]
    A Brief History of Sudo
    Sudo was conceived around 1980, enhanced at CU-Boulder, had a Root Group version in 1991, and the "CU" prefix was dropped in 1999.Missing: 1993 | Show results with:1993
  73. [73]
    Sudo for Windows | Microsoft Learn
    May 19, 2025 · Sudo for Windows is a new way for users to run elevated commands (as an administrator) directly from an unelevated console session on Windows.
  74. [74]
    Sudo Vulnerability CVE-2021-3156: Root Access Risk - Qualys Blog
    Jul 30, 2025 · The Qualys Research Team has discovered a heap overflow vulnerability in sudo, a near-ubiquitous utility available on major Unix-like operating systems.
  75. [75]
    12-Year-Old Sudo Vulnerability CVE-2025-32462 Allows Root ...
    Jul 3, 2025 · A critical 12-year-old Sudo vulnerability (CVE-2025-32462) lets attackers escalate privileges to root on Linux and macOS systems.
  76. [76]
    least privilege - Glossary - NIST Computer Security Resource Center
    Least privilege is a security principle where a system restricts access to the minimum necessary for assigned tasks, or where each entity is granted the ...
  77. [77]
    [PDF] Understanding the Security Features of SELinux - GIAC Certifications
    Jan 20, 2005 · Introduction. Since its public release in December of 2000, SELinux has experienced increased acceptance in the open source community. It has ...
  78. [78]
    SELinux — The Linux Kernel documentation
    ### Summary: How SELinux Provides Isolation for Root
  79. [79]
    Introducing AppArmor | Security and Hardening Guide | SLES 12 SP5
    Describes the initial design and implementation of AppArmor. Published in the proceedings of the USENIX LISA Conference, December 2000, New Orleans, LA. This ...
  80. [80]
    User Account Control (Authorization) - Win32 apps | Microsoft Learn
    User Account Control (UAC) enables users to perform common tasks as nonadministrators, called standard users, and as administrators without having to switch ...Missing: 2007 | Show results with:2007
  81. [81]
    su(1) - Linux manual page - man7.org
    su allows commands to be run with a substitute user and group ID. When called with no user specified, su defaults to running an interactive shell as root.Description Top · Options Top · Config Files Top
  82. [82]
    Chapter 11. Auditing the system | Red Hat Enterprise Linux | 8
    Audit can track whether a file or a directory has been accessed, modified, executed, or the file's attributes have been changed. This is useful, for example, to ...
  83. [83]
    Logging root actions by capturing execve system calls - Linux Audit
    Mar 12, 2025 · Use `auditctl` commands to enable logging of root actions by capturing `execve` system calls, and search with `ausearch -k root-commands`.
  84. [84]
    Chapter 18. Persistently mounting file systems
    Use the /etc/fstab configuration file to control persistent mount points of file systems. Each line in the /etc/fstab file defines a mount point of a file ...
  85. [85]
    Fstab - ArchWiki
    Sep 22, 2025 · The fstab(5) file can be used to define how disk partitions, various other block devices, or remote file systems should be mounted into the file system.
  86. [86]
    Mount a drive in a folder - Windows Server - Microsoft Learn
    Jun 11, 2025 · Go to Action > All Tasks > Change Drive Letter and Paths, then choose Add. Select Mount in the following empty NTFS folder option. Select the ...
  87. [87]
    10.4. Using GRUB to Set Up the Boot Process - Linux From Scratch!
    Some online resources may instruct you to use root=UUID= <filesystem UUID> instead of root=PARTUUID= <partition UUID> , but doing so will require an initramfs, ...
  88. [88]
    Using the initial RAM disk (initrd) - The Linux Kernel documentation
    initrd provides the capability to load a RAM disk by the boot loader. This RAM disk can then be mounted as the root file system and programs can be run from it.Missing: pivot UUID
  89. [89]
    Manually edit Boot.ini file - Windows Server - Microsoft Learn
    Jan 15, 2025 · Summary. The Ntldr file uses information in the Boot.ini file to display the bootstrap loader screen from which you select the operating system.Missing: process | Show results with:process
  90. [90]
    Choose between Btrfs and LVM-ext4 - Fedora Magazine
    Dec 30, 2020 · While Btrfs supports multiple volumes in a given computer, many of the nice features expect a single volume with multiple subvolumes. The user ...Advantages Of Lvm-Ext4 · Advantages Of Btrfs · Key Btrfs Features
  91. [91]
    btrfs-subvolume(8) - BTRFS documentation!
    A BTRFS subvolume is a part of filesystem with its own independent file/directory hierarchy and inode number namespace. Subvolumes can share file extents. A ...
  92. [92]
    How to mount /system rewritable or read-only? (RW/RO)
    May 31, 2015 · There are a few methods how you can mount your /system directory RW or RO. However, it will require root.System partition locked to read-only in Android 10adb - why is my file system suddenly read only?More results from android.stackexchange.com
  93. [93]
    How do I remount a filesystem as read/write? - Ask Ubuntu
    Aug 14, 2012 · The correct syntax is: sudo mount -o remount,rw /partition/identifier /mount/point Where mount/point is /partition/identifier 's corresponding mountpoint.How do I remount a filesystem read/write?usage of mount -o remount rw /More results from askubuntu.com
  94. [94]
    The /proc Filesystem - The Linux Kernel documentation
    The proc file system acts as an interface to internal data structures in the kernel. It can be used to obtain information about the system and to change certain ...
  95. [95]
    sysfs - _The_ filesystem for exporting kernel objects
    Sysfs internally stores a pointer to the kobject that implements a directory in the kernfs_node object associated with the directory. In the past this kobject ...
  96. [96]
    Tmpfs — The Linux Kernel documentation
    Tmpfs is a file system which keeps all of its files in virtual memory. Everything in tmpfs is temporary in the sense that no files will be created on your hard ...
  97. [97]
    Containers: Just Because Everyone Else is Doing Them Wrong ...
    Feb 21, 2016 · Then, the union mount becomes your LXC container's root. It automatically has read access to everything that is available on the host, unless ...
  98. [98]
    Resource Management for Pods and Containers - Kubernetes
    Aug 6, 2025 · Pods use ephemeral local storage for scratch space, caching, and ... The kubelet will only track the root filesystem for ephemeral storage.
  99. [99]
    Ephemeral Volumes - Kubernetes
    Sep 14, 2024 · Ephemeral volumes in Kubernetes are designed for applications that don't need persistent storage, and are created and deleted with the Pod.CSI ephemeral volumes · Generic ephemeral volumes · Lifecycle and... · Security
  100. [100]
    Working across Windows and Linux file systems - Microsoft Learn
    Mar 3, 2022 · Learn about the considerations and interop commands available when working across Windows and Linux file systems with WSL.
  101. [101]
    View APFS snapshots in Disk Utility on Mac - Apple Support
    Go to the Disk Utility app on your Mac. If Disk Utility isn't open, click · Choose View > Show APFS Snapshots. · In the sidebar, select a volume. The APFS ...Missing: root | Show results with:root
  102. [102]
    FUSE — The Linux Kernel documentation
    FUSE is a userspace filesystem framework, consisting of a kernel module, a userspace library, and a mount utility, allowing secure, non-privileged mounts.
  103. [103]
    Filesystem mounts in user namespaces - LWN.net
    Jul 29, 2015 · The list of such filesystems is short; it includes /proc, sysfs, ramfs, tmpfs, and not much more. Restricting mounts to these filesystems ...