当前位置:首页 > 嵌入式 > 嵌入式教程
[导读]文件是允许操作系统记录和存储信息的常规结构。 与其他操作系统不同,类UNIX操作系统将所有内容都视为一个通用文件。 这意味着不仅分区以文件形式提供,而且某些设备(例如RAM,智能手机,外部硬盘驱动器和光盘驱动器)的目录也是文件。 另外,套接字和管道也是文件!

文件是允许操作系统记录和存储信息的常规结构。 与其他操作系统不同,类UNIX操作系统将所有内容都视为一个通用文件。 这意味着不仅分区以文件形式提供,而且某些设备(例如RAM,智能手机,外部硬盘驱动器和光盘驱动器)的目录也是文件。 另外,套接字和管道也是文件!

此外,每个 TTY 终端(使用CTRL ALT F1打开的终端)都是系统眼中的"文件"。

目录 /dev

如果浏览 /dev 目录,您将看到相对于其他媒体对应系统装载的所有文件。就好像你把手机插入电脑,一个外部硬盘驱动器,甚至一个U盘,都变成了操作系统的"文件"。

系统分区是在 /dev 文件夹中使用"sd"启动的文件。在同一文件夹中,TY 是远程打字机设备,由"CTRL +ALT+F1"命令访问的外壳终端。光学媒体系统(DVD、CD 等)使用的程序集块也在此文件夹中,所有文件都在这里列出。

特殊设备

在文件夹/dev中有4个特殊的文件目录:full,zero,random和null。 它们的共同之处在于它们是"特殊档案",而不仅仅是目录。

设备空:/dev/nullnull 设备(设备 null)通常用于丢弃由于某种原因结果无关紧要的进程的输出流。它还可用作一个空的便利文件。通常,此操作通过系统控制台上的重定向命令执行。发送到设备"/dev/null"的任何文件都将因操作方式而永久消失,并立即丢弃数据。

它就像一个大黑洞,一个永远也不填满的垃圾堆。

程序员因为这种特殊性而对/dev/null开很多玩笑。

请尝试以下命令:$echo "hello world" ,你会会看到"hello world"作为命令输出。

现在尝试:$ echo "hello world"> /dev/null将返回空输出。

也就是说,什么都不会发生。因为命令输出"hello world"被丢弃了,它被黑洞吞没了。/dev/null 基于 UNIX 的系统的工作方式类似于黑洞:那里发送的东西不会回来!基本上,所有的命令输出没有存储,它是直接丢弃,就好像它从未生成过一样。

设备已满:/dev/full在 Linux 上,/dev/full是一个特殊的文件,在访问时始终返回相同的错误代码:ENOSPC -这意味着"设备上没有可用空间"。此外,它还有另一个函数:因为它始终已满,因此它为以读取形式访问它的任何进程提供无限数量的空字符 (NULL)。此设备通常用于测试程序在遇到由于内存磁盘而出错时的行为!

请尝试以下命令:$echo "hello world">/dev/full它将给这个设备完全错误,模仿一个拥挤的硬盘!bash:echo:write error:No space left on device

零设备:/dev/zero在类似 Unix 的操作系统上,/dev/zero 是一个特殊的文件,它提供从其中读取的空字符数 — ASCII 表的 NULL,0x00;而不是"零位"、"0"字符,其值为 0x30*。例如,此设备生成的空字符流可用于覆盖磁盘上的信息(以清理它)或生成大小为 X 到无穷大的干净文件。BSD 系统通过 mmap 函数实现共享内存,该函数将 /dev /zero 映射到 RAM 来使用它。

创建称为"test"的大型空文件:$ dd if=/dev/zero of=/home/ $user/test count=1000 bs=1000

如果不对命令施加限制,则获取为"dd if=/dev/zero=/home/$user/test",您将看到一个文件,该文件将无限制增长直到磁盘写满,它才会停止增长,从而导致"无磁盘空间可用"错误。当您要恢复分区表已损坏且无法恢复的笔驱动器时,此命令很有趣。

dd命令强制写入,和 /dev /zero 将填充每个存储块,zero。它将处于新制造状态,要求您稍后使用程序(如磁盘或 Gparted)来重建分区表!请注意此命令,如果输出为 of=/dev/sda1,则对整个 sda1 磁盘(用零填充)归零,从而使文件无法恢复。

随机设备:/dev/random它的工作原理和使用 of=/dev/zero 相同的逻辑,填充磁盘,使用随机值创建大小 n 的文件,这些文件由计算机处理生成、收集 GPU 信息字符、RAM 内存等。/dev/random 适用于需要高质量随机数(如 SSH 和其他共享网络的一次性键盘或公钥生成)的用途。

如果我们将 /dev/zero的内容发送到 /dev/null会发生什么事情。

$ sudo dd if=/dev/zero of=/dev/null

此命令将生成一个趋向于无穷大的文件,该文件将记录在无限空间设备中 – 我们的黑洞!实际上,它不会损坏硬件磁盘,因为实际上不会生成数据并将其写入磁盘。但是,在内核的角度来看,有数据传输:它将产生高CPU消耗,这将选择其中一个内核来占用100%cpu。这种类型的命令用于性能测试,例如,检查计算机在 CPU 中 100% 的性能表现。

挂载分区

1. 使用 DD 命令创建充满zero的 4Gb 文件。

$ dd if=/dev/zero of=~/test bs= 1M count=40962

现在,让我们格式化此文件,选择具有 EXT4 格式!

$mkfs.ext4 -m .005 ~/test

命令中的 -m 标志会导致我们默认将 EXT4 设置为 05 的"根"空间。这对于安装系统和防止 EXT4 在默认情况下占用大量磁盘空间甚至很有用。现在你有一个4GB的文件类型"unkown"的"test"在你的/home目录下。把它装成分区!

$ sudo mkdir /media/test

$ sudo mount -rw ~/test/media/test/

这样我们就创建好了一个EXT4 格式文件,并且创建了一个 EXT4 分区,我们可以在这里面创建其它文件或者写入东西。

我们可以针对任何文件格式执行相同的过程:EXT2、FAT32、NTFS 等。一切都只取决于我们的需求!但是,不要认为您可以在其上安装 Windows,因为它是分区内的分区,在 EXT4(或 btrfs 或 xfs)下管理它,具体取决于您的系统)。将其作为分区安装在 Windows 上也比较棘手,因为系统不作为基于 UNIX的设备运行,将块设备读取为文件,而是以不同的方式对待它们。

一切都是一个文件

也就是说,文件夹、目录、分区(即存储事物的东西)都不过是定义在磁盘或 SSD 扇区中的"索引文件"。

当他们讨论基于UNIX的系统的时候,为了简单话理解,我们就说一切都只是一个文件,当然这么理解有一定的偏颇,但是对于我们理解操作系统却有着非常大的帮助。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

为了满足日益增长的数据处理需求,铁威马NAS推出了全新的性能巅峰2024年旗舰之作F4-424 Pro,并搭载了最新的操作系统--TOS 6。这款高效办公神器的问世,无疑将为企业和专业人士带来前所未有的便捷与效率。

关键字: 存储 Linux 服务器

双系统将是下述内容的主要介绍对象,通过这篇文章,小编希望大家可以对双系统的相关情况以及信息有所认识和了解,详细内容如下。

关键字: 双系统 Windows Linux

安装Linux操作系统并不复杂,下面是一个大致的步骤指南,以帮助您完成安装。1. 下载Linux发行版:首先,您需要从Linux发行版官方网站下载最新的ISO镜像文件。

关键字: Linux 操作系统 ISO镜像

计算机是由一堆硬件组成的,为了有限的控制这些硬件资源,于是就有了操作系统的产生,操作系统是软件子系统的一部分,是硬件基础上的第一层软件。

关键字: Linux 操作系统 计算机

Linux操作系统是一套免费使用和自由传播的类Unix操作系统,通常被称为GNU/Linux。它是由林纳斯·托瓦兹在1991年首次发布的,并基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。Lin...

关键字: Linux 操作系统

所谓进程间通信就是在不同进程之间传播或交换信息,它是一组编程接口,让程序员能够协调不同的进程,使之能在一个操作系统里同时运行,并相互传递、交换信息;还可以让一个程序能够在同一时间里处理许多用户的需求。

关键字: Linux 进程通信 编程接口

串口通信作为一种最传统的通信方式,在工业自动化、通讯、控制等领域得到广泛使用。

关键字: Linux 串口通信 通讯

2023年11月16日: MikroElektronika(MIKROE) ,作为一家通过提供基于成熟标准的创新式硬软件产品来大幅缩短开发时间的嵌入式解决方案公司,今天宣布推出一款基于单线设备的软硬件开源解决方案Cli...

关键字: 嵌入式 Linux 操作系统

Linux是一种免费使用和自由传播的类Unix操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布。它主要受到Minix和Unix思想的启发,是一个基于POSIX的多用户、多任务、支持多线程和多CP...

关键字: Linux 操作系统

本文中,小编将对嵌入式予以介绍,如果你想对它的详细情况有所认识,或者想要增进对它的了解程度,不妨请看以下内容哦。

关键字: 嵌入式 Linux
关闭
关闭