【知识预告】
- Linux背景介绍
- Linux操作系统特性
- Linux的应用场景
- Linux的发行版本
- 搭建Linux环境
1 Linux背景介绍
1.1 什么是Linux?
Linux是一种自由、开源的操作系统。严格来说,它是基于类Unix设计思想,旨在为用户提供稳定、安全、高效的计算环境。Linux诞生于20世纪90年代初,目前已广泛应用于服务器、个人电脑、智能设备等多个领域,成为现代信息社会的重要支撑。
1.2 计算机发展史
1946年2月24日,世界上第一台通用电子计算机——埃尼阿克(ENIAC)正式诞生。彼时,世界正处于美苏冷战时期,技术竞争异常激烈。计算机最初主要用于军事用途,典型应用是计算导弹弹道轨迹。
随着技术不断突破,摩尔定律(每18到24个月芯片上集成的晶体管数量将翻倍)逐渐显现,使得计算机体积迅速缩小、成本下降,计算机逐步走出军事用途,进入科研和工业领域。
由于军队本身缺乏足够的专业技术人才,政府出资,联合高校与研究机构共同进行研发。这种“出资+技术”的合作模式,大大加速了计算机技术的发展,也促进了计算机的产业化。随着技术成熟,越来越多的私人资本(如华尔街的资金和人才)进入,推动了第一批商业化计算机产品和操作系统的诞生。
政府则通过税收回流资金,形成了良性的技术创新和经济增长循环。
1.3 操作系统的故事
1.3.1 计算机硬件
早期计算机硬件主要由两大公司推动:IBM和苹果公司。
- IBM以生产面向企业、高校和科研机构的大型机和工作站为主,操作系统主要采用UNIX系统,稳定、可靠,但昂贵。
- 苹果公司则采取“软硬件一体化”的策略,自主开发硬件和操作系统(如Mac OS),以精良的设计和卓越的体验闻名,不过价格同样高昂,主要面向高端用户群体。
1.3.2 计算机软件
在软件领域,微软崛起,与英特尔(Intel)结盟,推出了兼容性更好、成本更低的个人电脑解决方案(即“Wintel联盟”)。微软主要提供操作系统(如DOS、Windows),通过授权模式迅速扩展市场,占领了大众消费市场。
1.4 Linux的诞生
在这样一个硬件和软件格局初步形成的时代背景下(一般的平民百姓都用不起电脑),1991年,芬兰赫尔辛基大学的21岁学生林纳斯·托瓦兹(Linus Torvalds)横空出世。他思考:能否开发一个免费的、人人可用的操作系统?
于是,他开始基于Minix系统的思想,自主开发一个新的内核,并将其命名为Linux(“Linux is not Unix”,取前四个字母,再加上x表示Unix家族)。
托瓦兹将Linux内核的源代码免费发布在互联网上,鼓励全球开发者共同参与修改和完善。这种开源协作模式迅速吸引了大批计算机爱好者、黑客、工程师的参与,推动了Linux快速成长。
1.5 开源 vs 闭源,谁更好
我开始认为闭源好,但是事实上,开源软件在保障质量方面具有天然优势。
首先,开源意味着源代码对所有人开放,任何开发者、黑客、研究人员都可以自由查看、审阅、测试甚至修改代码。这样一来,更多的专业人士参与其中,能够快速发现潜在的问题和安全漏洞。每多一个人审阅,系统的健壮性、安全性就增加一分。就像一个程序,如果只有少数开发者能接触到源代码,那么问题被发现和修复的速度就有限;而如果全球数百万开发者都能参与审阅和贡献,那么漏洞自然更容易暴露并被及时修补。
以Linux为例,由于其完全开源,吸引了全球范围内的优秀开发者持续关注和贡献。不仅有自由软件爱好者,还有许多曾在大型企业工作的高级工程师、研究人员也积极参与。他们有的是出于兴趣,有的是出于对现有商业模式的不满,还有的是为了推动技术进步。无论出于什么动机,开源社区中汇聚了大量具有极高专业水平的人才,这种力量远远超过了单一企业内部有限的资源。
当然,也有人认为闭源软件通过严格的内部管理、专业的测试流程,也能保持较高的软件质量。确实,像苹果、微软这样的公司拥有完善的开发和测试体系,闭源软件在某些特定场景下也非常优秀。但闭源模式下,源代码不能公开接受全球开发者的审视,问题的发现和修复主要依赖内部团队,因此在应对大规模漏洞、尤其是安全漏洞时,可能反应速度较慢,透明度也较低。
综合来看,开源并不是天然完美的,但在长期、大规模协作下,开源软件往往能实现更高的稳定性、安全性和可持续发展。Linux的发展就是最好的例证:从一个学生的小项目,成长为支撑全球互联网基础设施的核心系统,靠的正是开源模式下全球开发者共同打磨的力量。
2 Linux操作系统特性
- 开源:源代码对所有人开放,允许自由查看、修改和分发。
- 免费:绝大多数Linux发行版无需付费使用,降低了使用门槛。
- 稳定可靠:在服务器、高性能计算等应用场景中表现优异,系统崩溃率极低。
- 安全性高:由于众多开发者共同维护,漏洞能被快速发现和修复,安全性极高。
- 高效性能:占用资源少,适用于各种硬件环境。
3 Linux的应用场景
- 互联网公司的服务器后端:绝大多数网站和云服务(如谷歌、Facebook、亚马逊)后端服务器均基于Linux。
- 智能设备操作系统:如Android系统就是基于Linux内核开发的,广泛应用于手机、智能电视、车载系统等。
- 嵌入式系统:在工业控制、物联网、智能家居等领域,Linux也被广泛使用,因其高度可定制、资源占用少的特性极具优势。
- 科研与高性能计算:超级计算机集群大多采用Linux系统,如全球Top500超级计算机中,超过90%运行的是Linux或其衍生系统。
4 Linux的发行版本
4.1 商业化版本
最早,Linux诞生于个人和开源社区,但随着Linux在服务器、超级计算机和企业后台系统中的应用越来越广泛,企业客户对稳定性、安全性、长期支持、合规性等提出了更高要求。于是,许多公司基于Linux内核开发出了商业化版本,以提供更加完善、稳定、可靠的解决方案,同时配套技术支持和服务。
Linux商业化版本的代表有:
- Red Hat Enterprise Linux(RHEL):由Red Hat公司开发,是最早也是最成功的Linux商业化发行版之一。Red Hat通过提供稳定的软件版本、长期的技术支持、安全补丁和认证服务,构建了完整的企业级解决方案。Red Hat通过订阅制盈利,成为Linux商业化运营的典范。
- SUSE Linux Enterprise Server(SLES):由德国SUSE公司开发,专注于企业服务器和大型数据中心应用,强调系统的可靠性与灵活性,在欧洲市场尤其受欢迎。
- Ubuntu(特别是Ubuntu LTS版本):由Canonical公司维护,虽然基础版本免费,但Canonical通过提供企业支持服务(如服务器优化、云平台部署、安全更新)来实现商业变现,尤其在云计算领域影响力巨大。
- Oracle Linux:由甲骨文公司推出,兼容Red Hat Enterprise Linux,主要面向需要使用Oracle数据库和企业应用的客户群体,强调高性能和高可用性。
- CentOS(现已演变为CentOS Stream):虽然一开始是社区驱动的免费版本,但它是RHEL的下游版本,被许多企业作为成本更低的选择使用。现在CentOS Stream变成了RHEL的滚动开发版本,为RHEL做前期测试。
- Amazon Linux:由亚马逊AWS推出,专门针对云环境进行了优化,深度集成了AWS平台,主要用于云服务器实例(EC2)。
后续我主要用Centos,7.6/7.8/7.9版本。
4.2 技术版本
浏览器搜The Linux Kernel Archives,然后点击HTTP,可以看Linux的技术版本。
5 搭建Linux环境
5.1 Linux 环境的搭建方式主要有三种
- 直接安装在物理机上(双操作系统), 但是由于 Linux 桌面使用起来非常不友好, 不推荐。
- 使用虚拟机软件, 将 Linux 搭建在虚拟机上。(不会,bug满天飞)
- 使用云服务器, 可以直接在 腾讯云, 阿里云或华为云 等服务器厂商处直接购买一个云服务器。(氪金,成为人民币玩家,也不贵,可以多个人共用一个账号)
使用云服务器不仅环境搭建简单, 避免折腾, 同时还有一个最大的好处, 部署在云服务器上的项目可以直接被外网访问到, 这个时候就和一个公司发布一个正式的网站没有任何区别。也就能让我们自己写的程序真的去给别人去使用。
5.2 购买云服务器
以阿里云为例, 其他的服务器厂商也是类似。
- 浏览器搜索阿里云。
- 登陆网站,买个最便宜的服务器。(2G够用了)
- 右上角点击控制台,然后更改密码。
- 记住公网IP地址,再下载一个Xhell 8(必须是最新版本)。
5.3 使用 XShell 远程登陆到 Linux
5.3.1 关于 Linux 桌面
Linux 启动进入图形化的桌面,这个东西以后就可以忘记了。 以后的工作中没有机会使用图形界面。
为什么工作中不使用Linux图形界面?
在实际的生产环境中,大部分Linux服务器、后台系统、云计算平台等几乎都是以命令行界面(CLI, Command Line Interface)为主,而不是图形界面(GUI, Graphical User Interface)。主要原因有:
- 图形界面需要消耗大量的系统资源(CPU、内存、硬盘空间等),而服务器的资源非常宝贵,优先要保证业务应用的性能和稳定性。命令行界面非常轻量,不需要加载冗余的图形组件,能够最大程度地节省资源。
- 图形界面涉及更多的软件层次(窗口管理器、图形驱动等),意味着潜在的漏洞、崩溃风险也更多。纯命令行系统架构简单,出错概率更低,安全性更高。 在对稳定性要求极高的服务器环境中,去除图形界面可以大幅降低系统故障率。
- 在工作中,服务器大多放置在远程机房,管理人员通过SSH等协议进行远程登录。命令行非常适合低带宽、高延迟的远程操作环境,而图形界面需要图像传输,网络开销大,效率低下。
- 对于熟悉Linux命令行的工程师来说,CLI操作可以实现更快、更精准、更自动化的管理,比如用脚本批量处理任务、自动化部署等等。命令行体现了专业水平,而图形界面虽然友好,但操作步骤繁琐,不适合大规模、高效率的工作场景。
- 在互联网公司、金融系统、云服务提供商等行业,使用命令行管理服务器已经是公认的标准实践。为了与行业规范接轨,新人必须适应无图形界面的环境。
在以后的工作中,我们面对的Linux系统,通常都是“纯净的命令行环境”。虽然在学习初期图形界面可以帮助理解和过渡,但真正走向职业工作,必须彻底掌握并习惯于命令行操作。忘记图形界面,拥抱命令行,是成为一名合格技术人员的重要一步。
5.3.2 使用Xshell登陆主机
// ssh root@你的公网IP地址,这里我的地址是121.40.223.120
ssh root@121.40.223.120
然后就到了下一步,要你输入密码。
看到welcome就成功了。
如果要和别人共用一个账号。
// 命令行输入
adduser HYQ // 补充用户名,然后按回车键
passwd HYQ // 给新增的用户名,补充密码
// 然后系统会提示,New password:
// Retype new passworld:
注意:Linux命令行里面,密码不回显(不回显示出来)。
密码输入成功后,子账号就创建好了。
其它人就可以通过刚才创建的子账号,登陆你的云服务器了。登陆过程和上面一样,只不过这次是:
ssh HYQ@121.40.223.120 // 刚才是ssh root@121.40.223.120
密码输入成功后,和上面一样看见welcome,就可以正常使用服务器了。
// 按下Ctrl+Alt+],就可以退出子账号,就可以重新登陆root账号了
// 如果嫌弃前面的命令行太多,碍眼睛,可以输入clear清除上面的记录
如果你想更改子账号的密码,登陆root账号后,passwd HYQ就可以改密码。userdel -r HYQ就可以彻底删除这个子账号。