服务器与 Linux:难道不能直接装 Windows 吗?

服务器电脑到底长什么样?

刚开始学开发的时候,我对“服务器(Server)”一直有一种模糊的幻想。我想象中的服务器像电影 黑客帝国 里那样,绿色文字像雨一样落下,到处缠着无数电线,还有伴随着厚重机械声闪着蓝光的巨大超级计算机。

但我在工作中第一次见到的服务器机房(IDC),和我的想象完全不同。那些插在机架里的扁平机器,拆开一看,说到底也不过是有 CPU、有 RAM、有 SSD 的“普通电脑”,和我的笔记本其实没什么本质区别。

那么,究竟是什么让我的笔记本被称作“个人 PC”,却让那台外形粗犷的机器被称作“服务器”呢?

服务器不是一种特别的机器,而是一台承担特别“角色”的电脑。

提供的一方(Server) vs 索取的一方(Client)

服务器(Server)的定义其实非常简单。它就是那个“提供(Serve)”的一方。相反,客户端(Client)则是那个“请求(Request)”的一方。

换句话说,就算是我那台老旧笔记本,只要 24 小时开机并允许外部连接,它也马上就成了“服务器”。可既然如此,我们为什么不用自己的笔记本当服务器,反而要花钱去租 AWS EC2 这样的云服务器,还在上面安装看起来更难用的 Linux 呢?

为什么偏偏是 Linux?(Windows 不行吗?)

Windows 真的很方便。用鼠标点一点就行,也很直观。可为什么服务器开发者偏偏要坚持使用只有黑色界面的 Linux 呢?

1. GUI 是奢侈品(成本与效率)

Windows 启动后,会出现桌面、图标和鼠标指针。为了维持这套华丽的图形界面(GUI),电脑会不断消耗 CPU 和内存。但服务器不需要显示器。它完全可以扔在地球另一端,只负责“处理数据”。Linux 服务器(CLI)把图形部分全部剥掉,只保留文字。如果 Windows 在 100 份算力里要拿出 30 来绘制界面,那么 Linux 可以把整整 100 都投入到服务本身上。

2. 更新自由(稳定性)

只要用 Windows 用得够久,总会遇到“正在为更新重启”的情况。个人电脑倒还好,去趟洗手间回来就行。可如果一台必须 24 小时运行的服务器自己突然关机呢?那就是灾难。Linux 往往除了内核更新这种大事之外,可以多年不重启地持续运行。

3. 授权成本(钱)

Windows Server 很贵,甚至有时会按照 CPU 核心数收费。相比之下,Linux,比如 Ubuntu、CentOS 等,大多是免费的开源系统。对于要运行成千上万台服务器的企业来说,答案几乎是不言自明的。

对服务器来说,华丽的图形界面只是沉重的负担。

那能不能在 Windows 上再装 Linux?(虚拟化的前奏)

这时,初学者开发者,也就是过去的我,会冒出一个看似聪明的想法:“既然 Windows 更方便,那我装个 Windows Server,然后在里面用‘虚拟机(Virtual Machine)’跑 Linux 不就行了?”

当然可以。但这就像“在房子里再搭一顶帐篷住进去”一样。

房东(Windows)要吃饭,租客(Linux)也要吃饭,资源浪费非常严重。所以开发者们继续思考:“能不能不装一整个沉重的操作系统,只隔离并运行我们真正需要的那一点‘环境’?”

在这种思考之下诞生的,就是“Docker”,也就是“容器(Container)”技术。

下一节:没有鼠标的世界

现在我们已经明白,为什么服务器放弃了 Windows,转而选择 Linux。但脑子里理解和亲手操作是两回事。第一次连上 Linux 服务器时,迎接我们的不是 Windows 那个友好的“开始”按钮,而只是“闪烁的光标和黑色屏幕”。

下一次,我们就来看看在这个陌生的 Linux 终端(CLI)环境里,如何在没有鼠标的情况下处理文件权限、控制服务器,以及那些真正能活下来的基本技能。

發佈留言