Linux 是怎么从实验室走向服务器的

Feng 13 阅读 操作系统

文章配图

本文是 Linux 开篇第一章,介绍通识类知识,帮助建立对操作系统发展脉络的整体认知。

计算机发展简史

埃尼阿克:王的诞生

文章配图

二战期间,美国陆军军械部面临一个致命难题:炮兵弹道计算。一枚炮弹要打中目标,必须考虑风速、气温、地球自转、炮弹质量等几十个变量。每算出一条弹道轨迹,需要人工用微分方程解数百次运算

美军急需一种能秒算弹道的机器。1946年,ENIAC 正式公开——30吨的铁柜子,计算速度却比人类快1000倍。它当场演示了:计算一条弹道只用了30秒,而人工需要20小时。

1947年9月9日,哈佛大学马克二号(Mark II)计算机总是报错。工程师格蕾丝·霍珀(Grace Hopper,后来成为 COBOL 之母)排查后发现——一只飞蛾被夹在了第70号继电器的触点之间,导致电路短路。她用镊子把飞蛾夹出来,贴在值班日志上写下:

“First actual case of bug being found.”(发现第一个实际虫子的案例。)

文章配图

这张贴有飞蛾的日志原件至今保存在美国史密森尼国家历史博物馆。从此,”Debug”从”捉飞蛾”变成了”找代码错误”的代名词。

摩尔定律:强力催化剂

1965年,英特尔联合创始人戈登·摩尔观察到:集成电路上可容纳的晶体管数量,大约每两年翻一番(后来修正为18-24个月)。

晶体管越小,成本越低。晶体管密度翻倍,意味着单位算力的成本下降约50%。这直接让计算机从”国家实验室专享”变成了”人人都能揣进兜里的智能手机”。没有成本的断崖式下降,互联网、电商、短视频等”烧算力”的应用根本活不下来。

文章配图

摩尔定律催生了一个有趣的”循环”:硬件每升级一次,软件就把多出来的性能”吃掉”。这种”硬件提升 → 软件更吃资源 → 刺激硬件再提升”的正反馈,让整个IT产业几十年来没有出现过”需求饱和”。

两派意见不合:纷争开始了

不信任者(保守派):以当时的 IBM 为代表,他们认为计算机是昂贵的、巨大的”工业母机”,只应该存在于大型企业和政府机房里。他们专注于大型计算机(Mainframe),认为普通人根本不需要、也买不起这玩意。戏剧结果:2005年,IBM 把 PC 业务卖给了联想,彻底退出了个人电脑硬件制造。

信任者(激进派):乔布斯、盖茨、诺伊斯(英特尔创始人)这些年轻人敏锐地察觉到:如果算力成本持续减半,总有一天,每个人的桌子上都能放一台电脑。于是,面向个人的微型计算机(PC)开始萌芽——英特尔提供了心脏(CPU),微软提供了灵魂(操作系统),苹果定义了交互(图形界面)。

文章配图

个人计算机需求爆发:PC 互联网时代

当计算机走进千家万户,它不再仅仅是计算工具,而变成了连接工具。计算机+互联网:这是一个化学反应。从单机办公到全球联网,我们经历了从局域网到万维网的飞跃。

Linux 操作系统的诞生

操作系统为何诞生

文章配图

摩尔定律让”操作系统”从”奢侈品”变成了”日用品”。最早的计算机根本没有操作系统,因为内存太小(几KB),装不下一个系统。摩尔定律让内存和硬盘容量每两年翻倍,成本减半。 正是因为有这种”冗余”的算力,操作系统才敢在后台做多任务调度、虚拟内存管理,而不用怕把机器拖死。

操作系统的本质上是人类为了偷懒而发明的中间层,让你不需要了解电路也能指挥电脑。

世界上最早的操作系统

双剑合璧肯·汤普森丹尼斯·里奇对”大而全”的臃肿系统深恶痛绝。于是,他俩在贝尔实验室的角落里,偷偷用一台没人用的老旧 PDP-7 小型计算机,开始写一个“精简、小巧、只要够用就好”的系统,这就是 Unix 的雏形。

文章配图

肯·汤普森最开始写 Unix 雏形,其实是为了移植一个自己写的太空旅行游戏(Space Travel)。为了在缺乏高权限的 PDP-7 上玩这个游戏,他不得不自己写了一套文件系统、进程管理器和命令行解释器(Shell)。

丹尼斯·里奇为了能更方便地重写 Unix,在研究 BCPL 和 B 语言的基础上,发明了 C 语言。他用 C 语言把 Unix 重写了一遍。

小型化与计算机走进校园

与此同时,摩尔定律让计算机从昂贵的科研工具变成了学校实验室里的配置。机器不再需要专门的制冷机房,这让它能够下放到大学。 这种”物理上的接近”,让新一代的年轻人有机会接触到最前沿的系统逻辑。

文章配图

Linux 的诞生

1991年,芬兰赫尔辛基大学的学生林纳斯·托瓦兹,买了一台 Intel 386 兼容机。他想用当时教学用的 MINIX(一个小型 Unix 教学系统),但 MINIX 有收费限制,且功能残缺(比如没有很好的终端模拟器)。他纯粹为了能在自己的电脑上流畅地读写文件、看新闻组(Usenet),决定自己动手写一个内核。

他在 Usenet 上发了一条著名的帖子:

“我正在做一个(免费的)操作系统,只是个人爱好,不会像 GNU 那样搞出那么庞大专业的东西……它大概在8月底就能有点样子了。欢迎提建议,但我不能保证会回答所有问题。”

文章配图

Unix 是操作系统的”蓝图”和”老祖宗”,它定义了现代操作系统的基本范式;而Linux 是那张蓝图上最成功的一座”摩天大楼”,它用开源和社区的力量,让 Unix 的思想免费、稳定地走进了全世界的服务器、手机(安卓)和云端,完成了对 Unix”商业封闭”历史宿命的终结。

Linux 系统最大特点——开源

开源和闭源的定义

  • 闭源操作系统(如 Windows)依赖的是”商业契约”:你付钱,我给你一个黑箱子,承诺你不出错。
  • 开源操作系统(如 Linux)依赖的是”社会契约”:大家共同维护,出了问题你可以改,改完了再分享给别人。

文章配图

操作系统开源的原因

  • 个人愿景:代码是”人类公地”(斯托曼的执念),任何人都有权阅读、修改、分享。
  • 财务自由:顶尖黑客的”声望经济”,他们不缺钱,缺的是”技术话语权”。
  • 对抗垄断:工程师的”叛逆与尊严”,上世纪90年代,微软的 Windows 系统几乎垄断了个人电脑。很多工程师反感微软”通过捆绑浏览器”等手段消灭对手的霸权行为。
  • 法律层面的制度——GPL(通用公共许可证):它要求任何基于开源代码修改后的版本,也必须开源

对比稳定性与安全性

大家普遍认为”收费的更稳”,但逻辑告诉我们,开源在性能、稳定性、安全性上更强,核心在于对 Bug 的处理:闭源系统依赖厂商修复,开源系统全球社区共同维护。

文章配图

企业为什么必选 Linux

  • 极致降本与无锁定:零授权费,且彻底摆脱对微软或单一商业厂商的依赖,避免未来被”卡脖子”或利润抽成。
  • 极致稳定与快速响应:底层内核极度坚韧,极少宕机;遇到高危漏洞时,全球社区可”几小时内”提供补丁,保障业务连续性。
  • 云原生生态的绝对统治:当今所有主流云计算、容器(Docker)、编排(Kubernetes)及大数据/AI 底座,原生只跑在 Linux 上,用 Linux 是进入现代互联网技术栈的入场券
  • 极致定制与自主可控:能够针对业务场景进行精细裁剪(去掉不需要的组件),在安全合规和国产化信创趋势下,掌握完全的代码修改权。
  • 极广的硬件适配力:支持从 x86、ARM 到 RISC-V 等全系 CPU,无论底层硬件如何变迁,应用层都能无缝迁移。

Linux 版本与版号

版本

文章配图

  • 红帽家族(Red Hat):主打企业级服务器。包含 RHEL(红帽企业版,纯商业付费)CentOS(RHEL 的免费克隆版)Fedora(RHEL 的上游测试版,主打新技术)
  • Debian 家族:主打开源社区与易用性。包括 Debian 本身、Ubuntu(基于 Debian 的明星发行版)、Linux Mint(基于 Ubuntu)以及 Kali Linux(基于 Debian 的渗透测试版)。
  • 其他重要家族SUSE 家族(openSUSE,主打欧洲企业与 SAP)、Arch 家族(Manjaro,主打滚动更新与极客桌面)。

各发行版定位

  • CentOS:曾经的企业免费服务器王者。完全仿照 RHEL,免费且一样稳定。但在2021年官方已宣布停止维护
  • Ubuntu:全能型入门首选。既适合桌面开发、AI 深度学习,也大量用于云服务器。对新手最友好,驱动支持最好。
  • RHEL:企业核心生产环境的”定海神针”。极度保守稳定,经过大量商业软件认证(如 Oracle、SAP),有官方付费的技术兜底和认证培训(RHCSA/RHCE)。
  • Fedora:前沿技术的试验田。软件包非常新,适合开发者和技术发烧友尝鲜。它验证通过的新技术,最终会沉淀到 RHEL 中。
  • Kali Linux:网络安全与渗透测试专用。内置数百种黑客/白帽工具(WiFi 破解、数据库审计等),是安全工程师和黑客的标配。

Linux 系统搭建学习环境

文章配图

方案 优点 缺点 适合人群
虚拟机 完全模拟 Linux 系统,环境独立 占用电脑资源(需分配内存/硬盘) 新手、想深入学习系统配置
Windows Subsystem for Linux (WSL2) 与 Windows 无缝衔接,无需重启 部分系统功能不完整(如少数硬件驱动) Windows 用户、快速上手命令行
云服务器(如阿里云/腾讯云) 真实服务器环境,可远程操作 需付费(学生有优惠套餐) 学习服务器配置、网络相关

Xshell 使用提示

  • Xshell 中的复制Ctrl + Insert粘贴Shift + Insert
  • 如果意外切断网络连接,Xshell 终端会回到 [C:/~] 状态,需要再次登录
  • 连接云服务器:ssh root@你的云服务器公网IP,再输入密码

用户与创建/删除新用户

文章配图

普通用户与超级用户

普通用户 (User) → 大楼里的”普通住户”

  • 权限:你有自己套房的钥匙(家目录)。你可以在自己的房间里随意装修、开派对、存放东西。
  • 限制:你动不了整栋楼的水电总阀门、消防管道和承重墙(系统核心目录如 /etc/bin 等)。
  • 目的:如果你在家煮饭把厨房点着了,最多烧掉你一户,绝对不会导致整栋楼断电或垮塌。

超级用户 (Root) → 大楼里的”物业总工程师”

  • 权限:他拥有整栋大楼的万能钥匙,可以无限制地打开任意一户的门,甚至控制总电房的开关。
  • 风险:他虽然能铲平整栋大楼(比如执行 rm -rf / 格式化整个系统),但也正因为风险极大,所以绝对不能把这把钥匙给不懂行的实习生。
  • 目的:只有遇到大楼承重结构出问题(底层系统 Bug),或者需要整体更换水管电网(安装核心驱动/优化内核)时,才会请总工出马。操作完之后,他必须立刻交出万能钥匙,退回到”普通住户”状态。

日常操作时,一定要用一个普通用户,只有当命令爆出”Permission denied”需要更高权限时,才加 sudo 临时借用 Root 力量,执行完立即失效——这就是 Linux 日常运维最核心的安全自保意识。

新建用户

# root 账号下,新建用户
-bash-4.2# adduser user01

# 给新用户设置密码(密码不能少于8位,输入时不会回显)
-bash-4.2# passwd user01
Changing password for user user01.
New password: 
Retype new password: 
passwd: all authentication tokens updated successfully.

删除用户

# 只删"户主",不拆"房子"
sudo userdel 用户名

# 连"房子"一起拆除
sudo userdel -r 用户名

常用指令

whoami —— 确认自己是谁

打印当前登录操作的用户名。看提示符的暗号:如果结尾是 #,说明你是超级管理员(Root);如果结尾是 $,说明你是普通用户

users —— 看现在谁在线上

查看此时此刻正登录在这台机器上的所有用户名。它只显示当前通过远程/本地终端连接着的活跃用户

Feng
这位作者很神秘,还没有填写简介。