计算机科学

计算机启动过程 文件和文件系统 客户端与服务器

Linux 命令行入门

终端

目录

新建目录

新建文件

写入内容

修改内容

移动文件

复制文件

计算机启动过程

概述

引导是加载操作系统的过程。它是在我们打开计算机(使用电源按钮或通过软件命令)时开始并在操作系统加载到内存时结束的过程。在本教程中,我们将解释引导过程的每个步骤中究竟发生了什么。

1、运行 BIOS 

当我们打开计算机时,计算机的主内存(RAM)中没有程序,因此 CPU 会寻找另一个程序,称为BIOS(基本输入/输出系统)并运行它。BIOS 是位于主板上的固件,由 CPU 运行以启动引导顺序:

BIOS 芯片

2、运行 POST 

BIOS 开始运行后,它会启动一个称为POST(开机自检)的过程,该过程会测试所有硬件设备并确保没有问题。此外,如果 POST 发现硬件存在问题,启动过程将停止,计算机无法启动。

3、MBR 加载到 RAM

运行 POST 后,BIOS 继续将MBR(主引导记录)从可引导设备加载到 RAM 中。MBR 包含 512 个或更多字节,位于可引导设备(可以是 HDD、SSD 或闪存驱动器)的最开始扇区。

下面是 MBR 的简化结构:

由 QuickLaTeX.com 渲染

4、运行 引导加载程序

将 MBR 加载到 RAM 后,BIOS 运行从 MBR 加载的第一条指令。第一条指令通常是引导代码,即引导加载程序,它是用机器代码编写的程序,可将操作系统加载到 RAM 中。

每个操作系统都有自己的引导加载程序。例如,GNU GRUBLILO (Linux Loader) 和rEFInd是一些流行的 Linux 引导加载程序:

image-1658786785017.png

5、运行 操作系统

一旦操作系统被加载到内存中,操作系统就开始运行。此外,操作系统开始自己的初始化(包括加载设备驱动程序、设置库等)。最后,当操作系统初始化完成时,操作系统会启动一个 shell,向用户显示登录提示:

image-1658786555286.png

文件和文件系统

概述

我们在日常生活中使用了许多不同的文件类型,例如文本文件、图像文件和音乐文件。

在本教程中,我们将了解文件是如何工作的,以及计算机如何通过使用文件系统来处理它们的组织。

什么是文件和文件格式?

文件是一系列位、字节或记录。其含义由文件的作者和用户定义。每个文件都有一个存储或检索它的逻辑位置。文件中的数据以某种方式组织起来,我们称之为文件格式。我们也可以创建自己的格式,但是,使用现有标准(如 JPEG、PNG 和 TXT)是最简单和最好的。基本上,文件包含元数据和有效负载。让我们看看位图 (BMP) 格式,以及它的元数据如何在下一节中工作。

位图格式
在准确读取数据之前,我们应该了解比特率以及是否为单磁道等几个细节。所以,它实际上是关于数据的数据,我们称之为元数据。下面我们来看看位图格式的元数据:

image-1658787746065.png


正如我们所见,位图的元数据包括一些重要的值,如文件总大小、图像宽度、图像高度和颜色深度。与位图格式一样,所有其他文件格式(如 TXT、PNG、PPT、ZIP)都有元数据。他们都是一样的。他们有很长的数字列表,这些数字在存储设备上是二进制格式。文件格式在阅读和理解内部数据方面起着至关重要的作用。

如何存储文件?

我们已经了解了文件的工作原理,现在我们将继续讨论计算机如何存储这些文件。无论底层存储单元是磁带、鼓还是磁盘,硬件和软件抽象都允许我们将存储视为存储值的长线容器。当计算机只执行一次计算时,整个存储系统就相当于一个大文件。在早期的存储系统中,数据在存储开始时直接开始,并按照输出创建的顺序加载。重复此过程,直到存储单元已满。然而,随着存储和计算技术的进步,一次存储多个文件变得实用且有益。在这种情况下,将文件背靠背存储是第一个想法,这个想法是可行的。这就像将个人 ID 连续存储在一个整数数组中,并且没有存储有关个人 ID 大小的信息。在这种情况下,存储的数据毫无意义。这就是为什么计算机必须知道文件在哪里开始和结束的原因。存储单元没有该操作的特定部分。他们只是存储很多位。

目录文件、碎片和碎片整理
为了处理这个问题,我们需要有一个特殊的文件来记录其他文件的开始和结束位置。虽然我们称它为许多其他名称,但最了解的是目录文件。目录文件将所有其他文件的名称保存在存储中,文件开始和结束的地方。它还存储有关这些文件的元数据以及它们的长度。当我们要添加文件或删除文件时,我们必须更新目录文件中的信息。此目录系统是文件系统的一小部分,它是操作系统的一部分并管理所有存储的文件。当我们尝试向某些文件添加一些数据时,这个单级系统可能会出现问题。因为在不覆盖存储单元中的下一个文件的情况下,将没有空间来执行它。因此,现代操作系统中的现代文件系统有两种方法。第一个是它们将文件存储在块中。这种方法为修改节省了更多空间,称为slack space。它还使所有文件数据共享一个共同的大小。这简化了管理。文件系统执行的第二件事是允许将文件分成几块并存储在几个块中。我们称之为碎片化。虽然这对于磁带等许多存储技术来说可能是一个令人头疼的问题,但要在短时间内打开大文件,碎片整理就应运而生并解决了这个问题。计算机执行的是实际复制数据并尝试以正确的顺序存储它们。碎片整理后,我们可以打开我们的文件。

文件层次系统
到目前为止,我们假设所有文件都在同一个目录中,但是当然,将所有文件保持在同一级别是不切实际的。它实际上就像现实世界中的文档,将相关文件一起存储在文件夹中非常有用。然后我们可以把相关的文件夹放到其他文件夹中。这被称为文件层次系统和我们的计算机使用的东西。我们可以在下图中看到一个例子:

image-1658787852294.png

文件系统

文件系统是操作系统用来跟踪磁盘或分区上的文件的一组方法和数据结构。通过使用文件系统,存储单元中的数据可以被操作系统解释。除此之外,它只是我们不知道它从哪里开始和结束的数据的很大一部分。有很多不同种类的文件系统。让我们看看一些类型的文件系统。

磁盘文件系统
磁盘文件系统具有在短时间内随机访问磁盘存储介质上的数据的能力。有很多磁盘文件系统的例子,例如FAT、NTFS、HFS、UFS和ZFS。光盘也是磁盘文件系统的成员。ISO 9660和UDF是 CD、DVD 和蓝光光盘的常见格式。

闪存文件系统
闪存文件系统考虑了闪存设备的独特功能、性能和限制。尽管闪存设备可以使用磁盘文件系统作为底层存储介质,但最好使用专门为闪存设备实现的文件系统。

数据库文件系统
另一种类型的文件系统是基于数据库的文件系统。文件不是按层次组织的管理,而是通过文件类型、作者和主题等属性来标识的。

网络文件系统
通过网络文件系统提供对服务器上文件的访问。程序可以使用本地接口创建、管理和访问远程网络连接机器上的文件和目录。网络文件系统包括用于 FTP 和 WebDAV 的类似文件系统的客户端。

磁带文件系统
磁带文件系统是一种磁带格式和文件系统,旨在将文件存储在磁带上。它们大多采用磁带格式。磁带是连续的存储单元,访问随机数据的时间比磁盘长得多。这使得通用文件系统的创建和维护变得困难。尽管存在这些问题,IBM 可以为磁带开发一种文件系统,并将其称为线性磁带文件系统。他们将该系统作为开源 IBM 线性磁带文件系统 - 单驱动器版 (LTFS-SDE) 发布。

结论

文件系统使我们能够隐藏存储在磁盘上的原始位,它们实际上使我们能够将数据视为有序且易于访问的文件。在本文中,我们描述了文件和文件格式是什么,并且我们还详细介绍了计算机如何在存储单元中存储文件。我们还提到了文件系统并提供了有关不同类型文件系统的详细信息。

HTML

HTML 示例

<html>
<head>
<title>这是标题</title>
</head>
<body>
<p>这是段落。</p>
</body>
</html>

 

注意:在过去的几十年里,网络经历了许多变化,但 HTML 一直是用于开发网页的基础语言。有趣的是,虽然网站变得更加先进和互动,但 HTML 实际上变得更加简单。如果将 HTML5 页面的源代码与用 HTML 4.01 或XHTML 1.0编写的类似页面进行比较,则 HTML5 页面可能包含更少的代码。这是因为现代 HTML 依赖于级联样式表或JavaScript来格式化页面中的几乎所有元素。许多动态网站使用PHP或ASP等服务器端脚本语言即时生成网页。但是,即使是动态页面也必须使用 HTML 进行格式化。因此,脚本语言通常会生成发送到 Web 浏览器的 HTML。

虚拟机

虚拟机软件,可以模拟出一台电脑(虚拟机)。模拟出来的电脑称为 虚拟机 ;运行虚拟机软件的机器称为 宿主 。 用户可以像操作真实电脑一样操作虚拟机,包括 安装操作系统

因此,就算你只有 Windows / macOS电脑,一样可以安装一个 Linux系统用于学习。 虚拟机系统与宿主系统完全独立,不会相互影响,比 双系统 更有优势。

数据

任何类型的信息,通常以数字形式存储。可以包括文档、图片、密钥、程序、消息和其他数字信息或文件。

VPN

虚拟专用网络是一种将您的计算机安全地连接到 Internet 另一端的组织网络的方法。当您使用VPN时,您计算机的所有 Internet 通信都被打包、加密,然后中继到另一个组织,在那里它们被解密、解包,然后发送到它们的目的地。对于组织的网络或更广泛 Internet 上的任何其他计算机,您的计算机的请求似乎来自组织内部,而不是来自您所在的位置。

企业使用 VPN 来提供对内部资源(如文件服务器或打印机)的安全访问。它们还被个人用来绕过当地审查制度或破坏当地监控。

互联网过滤

过滤是阻止或审查互联网流量的礼貌用语。有时会使用虚拟专用网络或 Tor 等服务来访问原本会被过滤的 Internet 通信。

阻塞的地方

image-1658925402678.png

您的计算机尝试连接到https://eff.org,该地址位于列出的IP 地址(与 EFF 网站关联的服务器旁边的编号序列)。在到达https://eff.org的预期 IP 地址之前,会发出对该网站的请求并将其传递给各种设备,例如您的家庭网络路由器和 Internet 服务提供商 (ISP) 。该网站已成功加载到您的计算机。

image-1658925422689.png

(1) 在您的设备上屏蔽或过滤。这在学校和工作场所尤其常见。设置或管理您的计算机和手机的人可以在其上安装限制它们使用方式的软件。该软件改变了设备的工作方式,使其无法访问某些站点,或以某些方式进行在线交流。间谍软件可以以非常相似的方式工作。

image-1658925438619.png

(2)本地网络过滤。这在学校和工作场所尤其常见。管理您的本地网络(如 WiFi 网络)的人会对您的 Internet 活动实施一些限制,例如监控或控制您上网的位置或搜索某些关键字时。

image-1658925451217.png

(3) 互联网服务提供商 (ISP) 阻止或过滤。您的 ISP 通常可以执行与本地网络管理员相同类型的过滤。许多国家/地区的 ISP 受政府强制执行定期互联网过滤和审查。商业 ISP 可以为家庭或雇主提供过滤服务。特定的住宅互联网服务提供商可以选择直接向客户推销过滤连接,并自动将特定的审查方法(如下所述)应用于其 ISP 上的所有连接。即使政府没有要求,他们也可能会这样做,因为他们的一些客户想要这样做。

 

阻塞的发生

IP 地址封锁。“IP 地址”是 Internet 上计算机的位置。通过 Internet 发送的每条信息都有一个“收件人”地址和一个“发件人”地址。Internet 服务提供商或网络管理员可以创建与他们想要阻止的服务相对应的位置列表。然后,他们可以阻止网络上传送到或来自这些位置的任何信息。

这可能导致过度阻塞,因为许多服务可以托管在同一位置或 IP 地址。同样,许多人最终共享任何给定的 IP 地址以访问 Internet。

image-1658925469130.png

在此图中,Internet 服务提供商将请求的 IP 地址与被阻止的 IP 地址列表进行交叉检查。它确定 eff.org 的 IP 地址与被阻止的 IP 地址匹配,并阻止对网站的请求。

DNS 阻塞。  您的设备会询问站点所在的名为“DNS 解析器”的计算机。当您连接到 Internet 时,您的设备使用的默认 DNS 解析器通常属于您的 Internet 服务提供商。ISP 可以对其 DNS 解析器进行编程,使其在用户尝试查找被阻止站点或服务的位置时给出错误答案或不给出答案。如果您更改了 DNS 解析器,但您的 DNS 连接未加密,您的 ISP 仍然可以选择性地阻止或更改被阻止服务的答案。

image-1658925484700.png

在此图中,对 eff.org 的 IP 地址的请求在 Internet 服务提供商级别进行了修改。ISP 干扰 DNS 解析器,并重定向 IP 地址以给出错误答案或没有答案。

关键字过滤。如果流量未加密,互联网服务提供商可以根据其内容阻止网页。随着加密网站的普遍增加,这种类型的过滤变得不那么流行了。

需要注意的是,如果用户安装了设备管理员提供的受信任“CA 证书” ,管理员可以解密加密活动。由于设备的用户必须安装证书,这对于工作场所和学校的本地网络来说是一种更常见的做法,但在 ISP 级别不太常见。

image-1658925503721.png

在未加密的网站连接上,互联网服务提供商 (ISP) 能够根据其被阻止的内容类型检查网站的内容。在此示例中,提及言论自由会导致网站自动被屏蔽。

HTTPS站点过滤。通过 HTTPS 访问站点时,除站点名称外,所有内容均已加密。由于他们仍然可以看到站点名称,因此 Internet 服务提供商或本地网络管理员可以决定阻止访问哪些站点。

image-1658925518531.png

在此图中,计算机尝试访问 eff.org/deeplinks。网络管理员(由路由器表示)能够看到域 (eff.org),但不能看到斜线后的完整网站地址。网络管理员可以决定阻止访问哪些域。

协议和端口阻塞。防火墙或路由器可能会尝试识别某人正在使用哪种互联网技术进行通信,并通过识别他们如何通信的技术细节来阻止某些技术(协议和端口号是可用于识别正在使用的技术的信息示例)用过的)。如果防火墙可以正确识别正在发生的通信类型或正在使用的技术,则可以将其配置为不传递该通信。例如,某些网络可能会阻止某些VoIP(互联网电话呼叫)或VPN应用程序使用的技术。

image-1658925544023.png

在此图中,路由器识别出尝试连接到 HTTPS 站点的计算机,该站点使用端口 443。端口 443 在此路由器的阻止协议列表中。

其他类型的阻塞

通常,阻止和过滤用于阻止人们访问特定的站点或服务。然而,不同类型的阻塞也变得越来越普遍。

网络关闭。网络关闭还可能涉及从物理上拔下网络基础设施,如路由器、网络电缆或蜂窝塔,以使连接在物理上被阻止或严重到无法使用。

这可能是 IP 地址封锁的一种特殊情况,其中所有或大部分 IP 地址都被封锁。因为通常可以知道 IP 地址在哪个国家/地区使用,所以一些国家/地区还尝试暂时阻止所有或大部分外国 IP 地址,允许该国境内的某些连接,但阻止大部分连接到该国以外的连接。

image-1658925557184.png

一台计算机尝试连接到 eff.org 的美国 IP 地址。在 Internet 服务提供商的级别,请求被检查:eff.org 的 IP 地址与被阻止的国际 IP 地址列表进行检查,并被阻止。

节流。互联网服务提供商可以选择性地限制或减慢不同类型的流量。许多政府审查员已经开始减慢与某些网站的连接速度,而不是完全阻止它们。这种类型的阻止更难识别,并且让 ISP 否认它正在限制访问。人们可能会认为他们自己的 Internet 连接速度很慢,或者他们连接的服务无法正常工作。

image-1658925572024.png

一台计算机尝试连接到 eff.org。他们的互联网服务提供商减慢了他们的连接速度。

 

元数据

是描述一条信息的数据,除了信息本身。因此,消息的内容不是元数据,而是由谁发送、何时发送、从何处发送、发送给谁,都是元数据的示例。法律系统通常比元数据更能保护内容:例如,在美国,执法部门需要手令才能接听某人的电话,但声称有权更轻松地获得您打电话给谁的名单。但是,元数据通常可以揭示很多信息,并且通常需要像它所描述的数据一样小心保护。

 

元数据通常被描述为通信内容之外的所有内容。您可以将元数据视为信封的数字等价物。就像信封包含有关消息的发送者、接收者和目的地的信息一样,元数据也是如此。元数据是有关您发送和接收的数字通信的信息。元数据的一些示例包括:

从历史上看,元数据在某些国家(包括美国)的法律规定的隐私保护少于通信内容。例如,许多国家的警察可以更容易地获得您上个月打电话给谁的记录,而不是他们可以安排窃听您的电话线以听到您实际在说什么。

那些收集或要求访问元数据的人,例如政府或电信公司,认为披露(和收集)元数据没什么大不了的。不幸的是,这些说法是不正确的。即使是很小的元数据样本也可以提供一个深入了解一个人生活的镜头。让我们看看向收集它的政府和公司透露元数据的实际情况:

保护您的元数据免受外部收集可能很困难,因为第三方通常需要元数据来成功连接您的通信。就像邮政工作人员需要能够阅读信封的外部才能传递您的信息一样,数字通信通常需要标记来源和目的地。移动电话公司需要大致知道您的电话在哪里,以便将呼叫路由到它。Tor 等服务希望限制通过常见的在线通信方法产生的元数据的数量。在更新法律以更好地处理元数据并且将其最小化的工具变得更加普遍之前,您能做的最好的事情就是了解您在交流时传输的元数据,谁可以访问该信息,以及它可能是怎样的用过的。

操作系统

在计算机或设备上运行所有其他程序的程序。Windows、Linux、Android 、macOS 和 iOS 都是操作系统的示例。

传输加密

在数据通过网络传输时对其进行加密,以便其他人在网络上进行间谍活动(例如咖啡店的黑客或您的 ISP)无法读取它。

加密

一个过程,它接收消息并使其不可读,除非知道如何将其“解密”回可读形式。

解密

使加扰的消息或数据易于理解。加密的目标是使消息只能由打算接收它们的人解密。

密钥

在密码学中,一段数据使您能够加密或解密消息。

密码学

设计密码的技术,让您可以在其他人无法理解消息的情况下向收件人发送和接收消息。

密码

旨在被记忆或以其他方式保护并保持私密的秘密,旨在限制对某些内容的访问,以便只有知道密码的人才能获得访问权限。它可能会限制对在线帐户、设备或其他东西的访问。基于多个单词的长密码也可以称为“密码短语”,以提醒我们它不仅仅是一个“单词”。主密码是用于在密码管理器或密码安全应用程序中解锁其他密码的主密码。

公钥

表示公钥的字母或数字序列。某些隐私工具可让您检查您的设备和他们的设备看到的某人的密钥指纹之间的匹配。此检查的目的是防止中间人攻击,其中有人欺骗您使用错误的密钥。

安全证书

一种自动确认公钥正确的方法(实际上是特定实体使用的公钥),以防止中间人攻击。网站最常使用它来向您的浏览器证明您与真实站点的安全连接,而不是与篡改您连接的其他系统的连接。

加密

以数学方式打乱信息或消息,使其看起来毫无意义,但仍然可以由拥有可以解密它的数据(密钥)的人或设备恢复到其原始形式。这限制了谁可以访问信息或消息,因为没有正确的密钥,几乎不可能逆转加密并恢复原始信息。加密是构成密码学领域的几种技

公钥加密

传统的加密系统使用相同的秘密或密钥来加密和解密消息。因此,如果我使用密码“bluetonicmonster”加密了一个文件,您将需要文件和密码“bluetonicmonster”来解码它。公钥加密使用两个密钥:一个用于加密,另一个用于解密。这会产生各种有用的后果。一方面,这意味着您可以将加密消息的密钥分发给您,并且只要您将另一个密钥保密,任何拥有该密钥的人都可以安全地与您交谈。您广泛分发的密钥被称为“公钥”:因此是该技术的名称。公钥加密用于加密电子邮件和文件非常好的隐私( PGP )、用于即时消息传递的OTR和用于 Web 浏览的 SSL/TLS。

指纹

公钥密码学的密钥是非常大的数字,有时长达一千位或更多位。指纹是一个小得多的数字或一组数字和字母,可用作该键的唯一名称,而不必列出所有密钥的数字。因此,举例来说,如果您和朋友希望确保您拥有相同的钥匙,您可以花很长时间阅读钥匙中的所有数百位数字,或者您可以各自比较您钥匙的指纹。密码软件提供的指纹通常由大约 40 个字母和数字组成。如果您仔细检查指纹是否具有正确的值,您应该可以安全地防止使用假密钥进行冒充。一些软件工具可能会提供更方便的替代方法来验证朋友的密钥,但需要进行某种形式的验证以防止通信提供商轻易地窃听。

能力

攻击者的能力(在我们在本指南中使用的意义上)是它能够实现其目标的能力。例如,一个国家的安全部门可能有能力接听电话,而邻居可能有能力从他们的窗口监视你。说攻击者“具有”能力并不意味着他们一定会使用该能力。这确实意味着您应该考虑并为这种可能性做好准备。

风险评估

在计算机安全中,风险分析是计算威胁可能成功的机会,因此您知道要花费多少精力来防御它们。您可能会以多种不同的方式失去对数据的控制或访问权限,但其中一些的可能性比其他的要小。进行风险评估意味着决定您将认真对待哪些威胁,哪些威胁可能太罕见或太无害(或太难对付)而无需担心。请参阅威胁建模。

Cookie

是一种网络技术,可让网站识别您的浏览器。Cookie 最初旨在允许网站提供在线购物车、保存偏好或让您登录网站。它们还支持跟踪和分析,因此网站可以识别您并了解更多关于您的去向、您使用的设备以及您感兴趣的内容——即使您没有该网站的帐户或未登录.

企业内联网

电子邮件、Web 以及对文件和打印机的访问等服务可从公司或大型机构的本地网络访问,但不能通过更广泛的 Internet 访问。大多数公司认为这足以保护其内部文档,但这意味着任何可以连接到 Intranet 的攻击都可以访问或干扰本地保存的所有信息。这种攻击的一个例子是欺骗员工在他们的笔记本电脑上安装恶意软件。为了允许员工通过更广泛的 Internet 访问 Intranet,公司通常会提供自己的虚拟专用网络( VPN ),它可以从世界任何地方创建与 Intranet 内部的安全连接。

开源软件

开源软件或自由软件是可以以允许其他人修改和从头开始重建的形式自由分发的软件。虽然它被称为“免费软件”,但它不一定像零成本那样免费:FLOSS程序员可以要求捐款,或收取支持或复制费用。Linux 是免费、开源程序的一个例子,Firefox 也是如此和托尔。