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

以上的两点问题对应着OS实现的两个机制
多进程对CPU的分时复用(Multiplexing)
物理内存的隔离性(Isolation)
隔离性(易理解版)
本小节gpt生成,见后面小节GPT:角色扮演
操作系统(OS)就像电脑的大管家,帮助电脑里的东西有序地工作在一起。它是一种特殊的软件,它帮助硬件和应用程序协调工作。
现在,让我们来想象一下,如果没有操作系统会发生什么。首先,我们来看看 CPU,它就像电脑的大脑,负责处理各种任务。如果没有操作系统,多个程序会争夺 CPU 的时间,就像小朋友们争抢玩具一样。这就会导致问题,比如一个程序可能会一直占用 CPU,其他程序就没有机会运行了。就好像一个小朋友一直玩着玩具,其他小朋友都没法玩。
再来看看内存,就像电脑的记事本,用来存储程序需要的信息。如果没有操作系统,程序之间没有明确的界限,就像没有盒子把不同的玩具分开一样。这就会导致问题,因为一个程序可能会不小心覆盖掉另一个程序的信息,就像一个小朋友可能会不小心弄乱了别人的玩具一样。
为了解决这些问题,操作系统有两个很重要的工作:
多进程对CPU的分时复用:这就是说,操作系统帮助不同的程序分享 CPU 的时间,确保每个程序都有机会运行,就像轮流玩玩具一样。这样,没有一个程序会霸占 CPU。
物理内存的隔离性:这就是说,操作系统帮助不同的程序在内存中有自己的地方,就像每个小朋友有自己的玩具盒一样。这样,一个程序不会影响到其他程序,它们的信息会被安全地分开存储。
所以,操作系统就像电脑的好朋友,帮助电脑变得更有秩序,让不同的程序可以和平共处,不会互相干扰。这样,电脑就可以更好地工作
从Unix到Linux
本小节为科普向,可以直接观看视频
Linux是一个类Unix的OS(BTW,MacOS也是类Unix),那么Unix是什么?
关于Unix到Linux的历史,有一个b站视频讲得非常好
安装Linux虚拟机
本小节1,2步骤由gpt生成
PC以Windows和MacOS为主, Linux多用于服务器,如何使用Linux是一个问题,
我们可以通过
连接远程的Linux服务器
这是一个常见的用法,尤其是在开发、运维和云计算领域。你可以通过SSH(Secure Shell)等远程协议连接到远程Linux服务器。以下是一些连接到远程Linux服务器的步骤:
打开终端或SSH客户端。
使用以下命令连接到服务器(请将
<username>替换为你的用户名和<server>替换为服务器的IP地址或域名):
ssh <username>@<server>输入密码(如果服务器要求密码验证),然后你就可以在远程服务器上执行命令和管理文件了。
使用Docker for Mac
Docker for Mac使用一个轻量级的虚拟机来运行Linux容器,因此你可以在Mac上开发、测试和运行Linux应用程序。以下是一些步骤来在Mac上使用Docker和Linux容器:
安装Docker: 如果尚未安装Docker,你可以从Docker官方网站下载并安装Docker Desktop for Mac。安装完成后,启动Docker Desktop。
配置Docker为Linux容器: 默认情况下,Docker Desktop配置为使用Windows容器。要切换为Linux容器,请点击Docker Desktop的菜单栏图标,在菜单中选择"Switch to Linux containers"(切换到Linux容器)。这将会切换Docker环境以支持运行Linux容器。
验证Docker配置: 打开终端,运行以下命令以验证Docker是否正常工作:
docker --version如果你看到Docker的版本信息,则表示Docker已成功安装并配置为Linux容器。
拉取并运行Linux容器: 现在你可以使用Docker命令来拉取和运行Linux容器,就像在Linux服务器上一样。例如,你可以运行一个简单的Ubuntu容器:
docker run -it ubuntu这将在Docker中创建一个交互式的Ubuntu容器。
执行Linux操作: 一旦你在Docker容器中,你可以执行各种Linux操作,安装软件包、运行应用程序等等。
请注意,虽然Docker for Mac允许你在Mac上运行Linux容器,但它仍然使用了一个虚拟化层。这意味着Linux容器运行在一个轻量级虚拟机中,而不是直接在Mac上。因此,性能和一些特定的容器设置可能会有所不同于在纯粹的Linux环境中运行容器。但总体来说,它是在Mac上进行Linux开发和测试的有力工具。
如果是Windows用户,还可以使用WSL安装How to install Linux on Windows with WSL
考虑到第二学期,大家依然需要学习使用VMware安装虚拟机,下面介绍(初学者建议使用ubuntu)
Mac安装 warning: M系芯片的Mac需要使用ubuntu的ARM版本
Last updated