编程基础 - 初识Linux
返回序言及专栏目录
文章目录
- 编程基础 - 初识Linux
- 前言
- 一、Linux发展简介
- 二、现代Linux
- 三、Linux系统各发行版
- 小结
前言
为什么要学习Linux呢?我这Windows用得好好的,简单易用傻瓜式、用的人还超多!但是我要告诉你的是,你用的Linux类(注意这个类字,不要抬杠)操作系统也不少,甚至很可能比Windows还多!不信你拿出手机看看,安卓、华为鸿蒙是正宗的Linux洐生产品,苹果倒是说源于Unix,但实际上还是同一个爷爷的东西。路由器几乎全是Linux系统的,所谓智能软路由系统本身就是较完整的Linux。监控摄像头、某些监控主机甚至能跑shell代码。
文中部分图片来源于网络
一、Linux发展简介
Linux是一个开源的操作系统内核。它的名字来源于最初主要作者(Linus Torvalds),由作者的名字与unix(一种操作系统)各取一半合成,之所以有unix的一半名字,是因为Linux模仿了Unix,这不是指代码的抄袭,是指功能操作上模仿,而且Unix是AT&T的东西,普通人也不敢抄它。目前Linus也还是内核代码的主要维护人、项目协调者、首席构架师。内核只提供了一些必不可少的功能,比如文件系统、磁盘控制、多任务管理等核心能力。
很多人映像中的Linux是一个黑乎乎的界面,操作要靠打字完成。这种界面其实就是shell,shell的英文意思是壳,也就是在Linux内核外面套了一层壳与内核交互,它是用户与内核的桥梁。它和Windows的前身,上世纪1995年之前的Dos(磁盘操作系统)一样的操作方式。简直是违反了自然规律,不思进取的典型。但是现代windows其实也保留了类似DOS的工具cmd(命令行Command shell)。
上图为:2020年的Linux(左) 与 1993年的Dos(右)
那么为什么会给人们这种奇怪的映像呢?无非是使用人群关注的重点不一样,大多windows用户可能都不知道内置的cmd是干什么用的,黑乎乎的好难看… 反正这玩意藏得深,咱不理它。而Linux用户不关心X Window(图形接口协议),这花里胡哨的玩意除了吃资源一无是处…咱这2G大内存干点什么不香,要拿去搞这花花绿绿的玩意干嘛!你没看错作者也没说错,对Linux来说,2G的内存,在2024年它干啥都够了!windows越做越好看、花哨,那都是资源堆出来的。
Linux的自由度很高,有人喜欢把桌面搞成这样,12年这样的桌面比windows10不差吧
图为同时代的LVWM(左)与windows3.2(右)
早期的Linux的确和前古的Dos一样的操作环境,Windows也确实比Linux更早搞出视窗桌面来。从win3.2发布后来讲,当时Linux也有了类似的程序管理器。
Windows95版本长这样
但是真正意义的视窗多媒体系统Windows95搞出来后,Linux并没有马上跟进,只是将任务管理器更完善了些,本质还是类似win3.2。直到Windows98发布,Linux才有了真正意义的视窗环境KDE1.0,但是直到今天,图形界面也只是一个软件包,与Linux内核无关。
早年的LINUX桌面长这样(GNOME)
又因为QT授权许可的问题,99年GNOME 1.0发布,这是Linux的另一个X Window界面。对的,你没看错!Linux不仅有现代视窗环境,还有两套视窗环境。现在也是一直并存的,当然各个发行版会选择其中一个来安装,也可能不安装X Window环境,那就是很多人映像中黑乎乎界面的由来。
上图为现代KDE桌面
其实Linux的自由度是极高的,你可以把它改得和Windows看起来一模一样。国内的Deepin系统甚至连操作都和windows很像。也有人把它改得和Mac OSX一样:
上图为假装是Mac OSX的Linux,当然它不是发行版,是个人改造的
真要说界面做得华丽,Linux中公认的是openSUSE,Windows有的动画效果它一个不少,甚至更漂亮。不过笔者只见过没用过,不多说它。
二、现代Linux
笔者三种系统(windows、OSX、Linux)都用过较长时间,在作者看来Windows和OSX是在不同商业模式上的成功,Linux是开源全球协作的成功(当年免费操作系统领域,Linux也有强劲对手的)。各有优缺点,也各自有了很大的用户基数。
有人说Linux性能远高于Windows,这个笔者是不认可的,给Linux套上一个图形界面,你再使劲美化一下,它甚至可能不如Windows,差距应该相对很小。让人有这种映像正是因为Linux经常不用图形界面,特别是服务器领域,因为费资源、还浪费网络带宽,又是一个月都难得去看几眼的,要图形界面干嘛呢,Linux的图形界面从根本上讲就是一个软件包,爱装不装的。给Windows去掉图形界面(虽然不可能),它也能跑得飞起。
那么为学Linux呢,也正是因为它在服务器领域的应用,后端应用一般都是建立在Linux服务器上的。具体是Linux系统的服务器多还是windows系统的多,这个问题一直都有争议,也没有太过让人信服的数据,但看历年世界排名靠前的大型服务器,基本上是用的Linux系统,Unix也经常出现,却几乎看不到windows的影子。
常见的监控主机,其实就是提供了存储服务的一台Linux服务器。路由器其实也是一个Linux服务器,我们平常所登陆的网页界面就是一个典型的服务,openwrt是uhttpd服务、梅林是httpd。对应于我们平常上网时在后端提供服务阿帕奇Web服务器(apache),或Nginx服务器。无非路由器上的功能要简单点,性能要差一些。不是很多人给路由开了smb、nfs这些存储服务吗,对于智能路由来说,拔号、发包、转发什么的正宗路由功能是顺带的…所以很多人感觉乍我这智能路由跑不过100块的TP呢?还真是很有可能的哦~
现代中高端路由的Linux相对比较完整,操作它和操作Linux服务器那是几乎没有区别。服务器做的事,路由基本上全都能干。特别是openwrt,现在发展的趋势是专注于X86-64的硬件,那么它和服务器已经没有区别了。
至于路由系统为什么才百把M这么小,而桌面Linux系统经常也是上G的,那全是因为路由器就这点硬件,而且是固定的。用户基本上不可能去增改。而桌面系统要适配几乎无尽的硬件,那全是驱动程序堆起来的体积。
相较于windows,linux具有以下几点优势,也可能是劣势:
- 稳定高效:稳定是无可争议的,当年Linux用户就喜欢嘲笑Windows用户,今天你蓝屏几回了?对,不是问有没有蓝屏!服务器大多是没有重启开关的,windows系统的电脑要是没有重启开关,售后部门能把设计部门堵在办公室打残。虽然近些年的不少品牌机也把重启开关和开机键合一了,侧面说明windows10以后稳定性大有提升。
- 几乎免费:个人用户用的都是免费发行版本,由各大Linux社区打包的。包括软件也绝大多数是免费的,嗯~ 其实Linux上是有收费软件的,大多是行业应用软件。至于效率之争,作者前面已经作了解释。
- 漏洞少且快速修补:Windows经常有新闻说,xx版本停止服务,逼你升级新系统。Linux不存在的,梅林系统的路由器还在用2.6的内核呢。主要因为开源,有漏洞早被全世界的高手发现修补了。就算新发现了漏洞,咱编译的时候改一改就是了。
- 多任务多用户:windows说我也会、我也行。Linux说你不行,你那是假装的。win95之后的操作系统都是多任务的,因为cpu跑得快了,把1秒钟分成10的-6次方为单位来用,用户感觉不到多任务的延时而已。Linux当然也是一个样,但windows确实不是多用户的,同一时间只能有一个用户登陆系统,服务器版也是。Linux是可以有多人同时登陆各干各的事的,一个用户开两个shell也是可以的。
- 更加安全的用户与文件权限策略:文件权限管理方面,虽然Linux增加了复杂度,好处就是增加了安全性。
- 适合小内核程序的嵌入系统:大小由心、丰俭由人,可以小到几M,可以大到几G。路由就是典型的例子,有些固件只有几M,有些固件有几百M。而且只要你有足够的空间,几M的固件,你也能装上几百M的工具。
三、Linux系统各发行版
细分的话这个版本就没人数得清了,主要有六大门派,找张图来说明这些门派之间的关系
常见的除开AOSP安卓以外,国人用得最多的就是红帽系和Debian系了。红帽本身是收费的,但它洐生的CentOS和Fedora是免费的,特别是CentOS是各大虚拟主机的第一选择。而Debian因为有国产的深度系统(Deepin),和国内用户非常多的Ubuntu系统的原因而广为人知。
这两派的软件安装包分别为rpm
和deb
。因为Linux的软件都是有仓库的,你直接输入命令就可以自动下载安装,绝对没有像windows上那样第三方来打个包给你加点广告的事!相应的就有了不同的软件包管理工具,比如ubuntu的apt
命令,centOS的yum
。当然你有个自己写的或别人写的软件已经在硬盘上了,也可以从本地磁盘安装的。
那么路由器的固件又是哪派的呢?以上六大派都不是,它属于嵌入式Linux领域,这个分支也极其复杂,作者也不可能全知全能。这里面有两个比较重要的开源项目:
- 一个是让arm跑上Linux的开源项目,叫ucLinux,uc是微控制器的意思,已经合并进了Linux2.6版本核心,所以这么多arm的路由器都和这个有关。
- 一个是LinkSYS(已被思科收购,后来又卖了),当年这公司搞出了一个WRT54G的路由器,后来开源了,这中间有很多故事的。
可以说目前所有的智能路由器找根子,都和这个LinkSYS的WRT54G有关。当年有人发现这个路由器竟然使用了GPL(通用公共授权许可)开源的Linux代码。这事要放在国内抄代码叫事吗?但在国外那可是戳中了自由软件的根子。最后思科没办法,斗不过自由的人民群众啊~ 也把这个路由的源代码开源了。GPL授权具有传染性,随便你用,但只要你用了,从法律上讲你就必须也开源。
包括AsusWRT、openwrt、Tomato、DD-wrt、高恪等等都是这里来的,梅林和padavan又是从Asus-wrt来的。不是说全世界么多编程高手就靠LinkSYS的这路由来改改才能搞出智能路由来,而是LinkSYS在业界的地位够高、影响力极大,自然有更多的高手去研究。
小结
Linux啥都分派系,说不定啥时候这个门派散伙了,比如著名发行版Fedora早就说散伙不干了,路由固件Tomato也不玩了,但是又不知道啥时候冒出来个版本,比如Ubuntu就是南非的一个名人找人折腾的。国内的深度Linux其实和当年著名的深度windows打包团队有关系,突然就折腾起了Linux,还干得有声有色。嗯~国内民间干Linux事业,他们搞得最出色了,至于官方半官方的版本那就更多了。实际上还有很多例子,比如前面说的两个桌面图形系统。Linux就是这样内耗严重,怪不得干不过windows~。~
返回专栏目录 <<<