初识Linux

  • Definition 1 : Linux

    Linux是一种开源的OS(Operating System),OS是一种重要的Computer system

为什么需要OS?

隔离性(Isolation)

本小节(隔离性)整合自操作系统课程MIT6.S081 Lecture2

操作系统(OS)是硬件(hardware)和应用程序的中间体。

下面将假想没有OS的情况下,从隔离性的角度简单讲述为什么需要OS。

CPU

如下图,多个程序需要使用CPU时,需要保证协同调度(Cooperative Scheduling)的机制,即shell运行一段时间后,需要让echo也能有机会运行。可下图没有OS的设计不能保证这种机制,比如shell程序中有死循环,那么echo永远也无法获取CPU。

Memory

如果应用程序直接运行在硬件资源如物理内存上,shellecho的内存之间是没有边界的。比如内存地址0x1000被shell占有,如果echo程序将数据存储在0x1000,echo就会覆盖shell程序内存的内容。

以上的两点问题对应着OS实现的两个机制

  1. 多进程对CPU的分时复用(Multiplexing)

  2. 物理内存的隔离性(Isolation)

隔离性(易理解版)

本小节gpt生成,见后面小节GPT:角色扮演

操作系统(OS)就像电脑的大管家,帮助电脑里的东西有序地工作在一起。它是一种特殊的软件,它帮助硬件和应用程序协调工作。

现在,让我们来想象一下,如果没有操作系统会发生什么。首先,我们来看看 CPU,它就像电脑的大脑,负责处理各种任务。如果没有操作系统,多个程序会争夺 CPU 的时间,就像小朋友们争抢玩具一样。这就会导致问题,比如一个程序可能会一直占用 CPU,其他程序就没有机会运行了。就好像一个小朋友一直玩着玩具,其他小朋友都没法玩。

再来看看内存,就像电脑的记事本,用来存储程序需要的信息。如果没有操作系统,程序之间没有明确的界限,就像没有盒子把不同的玩具分开一样。这就会导致问题,因为一个程序可能会不小心覆盖掉另一个程序的信息,就像一个小朋友可能会不小心弄乱了别人的玩具一样。

为了解决这些问题,操作系统有两个很重要的工作:

  1. 多进程对CPU的分时复用:这就是说,操作系统帮助不同的程序分享 CPU 的时间,确保每个程序都有机会运行,就像轮流玩玩具一样。这样,没有一个程序会霸占 CPU。

  2. 物理内存的隔离性:这就是说,操作系统帮助不同的程序在内存中有自己的地方,就像每个小朋友有自己的玩具盒一样。这样,一个程序不会影响到其他程序,它们的信息会被安全地分开存储。

所以,操作系统就像电脑的好朋友,帮助电脑变得更有秩序,让不同的程序可以和平共处,不会互相干扰。这样,电脑就可以更好地工作


从Unix到Linux

本小节为科普向,可以直接观看视频

Linux是一个类Unix的OS(BTW,MacOS也是类Unix),那么Unix是什么?

关于Unix到Linux的历史,有一个b站视频讲得非常好


安装Linux虚拟机

本小节1,2步骤由gpt生成

PC以Windows和MacOS为主, Linux多用于服务器,如何使用Linux是一个问题,

我们可以通过

  1. 连接远程的Linux服务器

    这是一个常见的用法,尤其是在开发、运维和云计算领域。你可以通过SSH(Secure Shell)等远程协议连接到远程Linux服务器。以下是一些连接到远程Linux服务器的步骤:

    1. 打开终端或SSH客户端。

    2. 使用以下命令连接到服务器(请将 <username> 替换为你的用户名和 <server> 替换为服务器的IP地址或域名):

    ssh <username>@<server>
    1. 输入密码(如果服务器要求密码验证),然后你就可以在远程服务器上执行命令和管理文件了。

  2. 使用Docker for Mac

    Docker for Mac使用一个轻量级的虚拟机来运行Linux容器,因此你可以在Mac上开发、测试和运行Linux应用程序。以下是一些步骤来在Mac上使用Docker和Linux容器:

    1. 安装Docker: 如果尚未安装Docker,你可以从Docker官方网站下载并安装Docker Desktop for Mac。安装完成后,启动Docker Desktop。

    2. 配置Docker为Linux容器: 默认情况下,Docker Desktop配置为使用Windows容器。要切换为Linux容器,请点击Docker Desktop的菜单栏图标,在菜单中选择"Switch to Linux containers"(切换到Linux容器)。这将会切换Docker环境以支持运行Linux容器。

    3. 验证Docker配置: 打开终端,运行以下命令以验证Docker是否正常工作:

      docker --version

      如果你看到Docker的版本信息,则表示Docker已成功安装并配置为Linux容器。

    4. 拉取并运行Linux容器: 现在你可以使用Docker命令来拉取和运行Linux容器,就像在Linux服务器上一样。例如,你可以运行一个简单的Ubuntu容器:

      docker run -it ubuntu

      这将在Docker中创建一个交互式的Ubuntu容器。

    5. 执行Linux操作: 一旦你在Docker容器中,你可以执行各种Linux操作,安装软件包、运行应用程序等等。

    请注意,虽然Docker for Mac允许你在Mac上运行Linux容器,但它仍然使用了一个虚拟化层。这意味着Linux容器运行在一个轻量级虚拟机中,而不是直接在Mac上。因此,性能和一些特定的容器设置可能会有所不同于在纯粹的Linux环境中运行容器。但总体来说,它是在Mac上进行Linux开发和测试的有力工具。

  3. 如果是Windows用户,还可以使用WSL安装How to install Linux on Windows with WSL

考虑到第二学期,大家依然需要学习使用VMware安装虚拟机,下面介绍(初学者建议使用ubuntu

Last updated