Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布,它主要受到Minix和Unix思想的启发,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。Linux有上百种不同的发行版,如基于社区开发的debian、archlinux,和基于商业开发的Red Hat Enterprise Linux、SUSE、Oracle Linux等。
2022年11月20日,Linux 提交了最后一批 drm-intel-next 功能补丁,Linux 6.2将迎来对英特尔锐炫独显的正式支持
发展历程
播报
Linux操作系统的诞生、发展和成长过程始终依赖着五个重要支柱:Unix操作系统、MINIX操作系统、GNU计划、POSIX标准和Internet网络。
20世纪80年代,计算机硬件的性能不断提高,PC的市场不断扩大,当时可供计算机选用的操作系统主要有Unix、DOS和MacOS这几种。Unix价格昂贵,不能运行于PC;DOS显得简陋,且源代码被软件厂商严格保密;MacOS是一种专门用于苹果计算机的操作系统。此时,计算机科学领域迫切需要一个更加完善、强大、廉价和完全开放的操作系统。由于供教学使用的典型操作系统很少,因此当时在荷兰当教授的美国人AndrewS.Tanenbaum编写了一个操作系统,名为MINIX,为了向学生讲述操作系统内部工作原理。MINIX虽然很好,但只是一个用于教学目的的简单操作系统,而不是一个强有力的实用操作系统,然而最大的好处就是公开源代码。全世界学计算机的学生都通过钻研MINIX源代码来了解电脑里运行的MINIX操作系统,芬兰赫尔辛基大学大学二年级的学生Linus Torvalds就是其中一个,在吸收了MINIX精华的基础上,Linus于1991年写出了属于自己的Linux操作系统,版本为Linux0.01,是Linux时代开始的标志。他利用Unix的核心,去除繁杂的核心程序,改写成适用于一般计算机的x86系统,并放在网络上供大家下载,1994年推出完整的核心Version1.0,至此,Linux逐渐成为功能完善、稳定的操作系统,并被广泛使用。 [1]
2021年6月,根据Linux 5.14刚刚进入合并队列的char-misc-next提交,Linux 5.14正式移除了RAW驱动。 [7]
2022年6月,基于 Ubuntu 22.04 的 Linux Lite 6.0 正式版发布,提供最新的浏览器,最新的办公套件,最新的定制软件,代号“Fluorite”。 [8]
2022年11月6日消息,微软将为 Linux 带来嵌套式虚拟化支持,可运行多个 Windows。 [12]
2022年11 月,微软在 GitHub 上线了 WSL 1.0.0 版本,宣布 Windows 11/10 的 Linux 子系统删除 Preview 标签,迎来正式版。 [13]
2022年11月,在本周的 platform-drivers-x86 提交合并中,Linux 6.1 新增支持了微软 Surface Pro 9 和 Surface Laptop 5 两款设备。 [14]
2022年12月12日,Linus Torvalds 抢在圣诞假期之前发布了最新的 Linux 6.1 内核稳定版,从此开启了 Linux 6.2 合并窗口。目前大家已经可以在内核官网找到相应的文件。 [16]
2022年12月14日,Linux 6.2 合并窗口扩展了对 Arm SoC 的支持并更新了 DeviceTree。本次更新在内核中新增了对 7 款高通骁龙处理器的支持,还在 Mainline 中初步支持苹果的 M1 Pro / M1 Ultra / M1 Max 型号处理器。 [17]
2022年12月15日,Linux 6.2 合并窗口期内已经确认将会合并大量网络子系统更新。和以往版本相同,Linux 6.2 内核更新周期在网络功能上有大量的改进,更多的细节可以访问这条 pull。 [18]
2022年12月 28 日消息,在 Linux 6.2 合并窗口期,英特尔工程师提交的线性地址掩码(Linear Address Masking,简称 LAM)提案遭到了 Linus Torvalds 的拒绝。英特尔工程师今天再次提交第 13 个版本,希望在 Linux 6.3 或者更高版本中合并该功能。 [19]
2023年1月9日消息,Linus Torvalds 推出了 Linux Kernel 6.2 的第 3 个候选版本更新。 [20]
特点
播报
Linux,全称GNU/Linux,是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。伴随着互联网的发展,Linux得到了来自全世界软件爱好者、组织、公司的支持。它除了在服务器方面保持着强劲的发展势头以外,在个人电脑、嵌入式系统上都有着长足的进步。使用者不仅可以直观地获取该操作系统的实现机制,而且可以根据自身的需要来修改完善Linux,使其最大化地适应用户的需要。 [1]
Linux不仅系统性能稳定,而且是开源软件。其核心防火墙组件性能高效、配置简单,保证了系统的安全。在很多企业网络中,为了追求速度和安全,Linux不仅仅是被网络运维人员当作服务器使用,甚至当作网络防火墙,这是Linux的一大亮点。 [2]
Linux具有开放源码、没有版权、技术社区用户多等特点,开放源码使得用户可以自由裁剪,灵活性高,功能强大,成本低。尤其系统中内嵌网络协议栈,经过适当的配置就可实现路由器的功能。这些特点使得Linux成为开发路由交换设备的理想开发平台。 [3]
主要特性
播报
基本思想
Linux的基本思想有两点:第一,一切都是文件;第二,每个文件都有确定的用途。其中第一条详细来讲就是系统中的所有都归结为一个文件,包括命令、硬件和软件设备、操作系统、进程等等对于操作系统内核而言,都被视为拥有各自特性或类型的文件。至于说Linux是基于Unix的,很大程度上也是因为这两者的基本思想十分相近。
完全免费
Linux是一款免费的操作系统,用户可以通过网络或其他途径免费获得,并可以任意修改其源代码。这是其他的操作系统所做不到的。正是由于这一点,来自全世界的无数程序员参与了Linux的修改、编写工作,程序员可以根据自己的兴趣和灵感对其进行改变,这让Linux吸收了无数程序员的精华,不断壮大。
完全兼容POSIX1.0标准
这使得可以在Linux下通过相应的模拟器运行常见的DOS、Windows的程序。这为用户从Windows转到Linux奠定了基础。许多用户在考虑使用Linux时,就想到以前在Windows下常见的程序是否能正常运行,这一点就消除了他们的疑虑。
多用户、多任务
Linux支持多用户,各个用户对于自己的文件设备有自己特殊的权利,保证了各用户之间互不影响。多任务则是现代电脑最主要的一个特点,Linux可以使多个程序同时并独立地运行。
良好的界面
Linux同时具有字符界面和图形界面。在字符界面用户可以通过键盘输入相应的指令来进行操作。它同时也提供了类似Windows图形界面的X-Window系统,用户可以使用鼠标对其进行操作。在X-Window环境中就和在Windows中相似,可以说是一个Linux版的Windows。
支持多种平台
Linux可以运行在多种硬件平台上,如具有x86、680x0、SPARC、Alpha等处理器的平台。此外Linux还是一种嵌入式操作系统,可以运行在掌上电脑、机顶盒或游戏机上。2001年1月份发布的Linux 2.4版内核已经能够完全支持Intel64位芯片架构。同时Linux也支持多处理器技术。多个处理器同时工作,使系统性能大大提高。
优点
播报
1.Linux由众多微内核组成,其源代码完全开源;
2.Linux继承了Unix的特性,具有非常强大的网络功能,其支持所有的因特网协议,包括TCP/IPv4、TCP/IPv6和链路层拓扑程序等,且可以利用Unix的网络特性开发出新的协议栈;
3.Linux系统工具链完整,简单操作就可以配置出合适的开发环境,可以简化开发过程,减少开发中仿真工具的障碍,使系统具有较强的移植性;
系统功能
播报
系统内核的路由转发
Linux操作系统嵌入了TCP/IP协议栈,协议软件具有路由转发功能。路由转发依赖作为路由器的主机中安装多块网卡,当某一块网卡接收到数据包后,系统内核会根据数据包的目的IP地址,查询路由表,然后根据查询结果将数据包发送到另外一块网卡,最后通过此网卡把数据包发送出去。此主机的处理过程就是路由器完成的核心功能。 [3]
通过修改Linux系统内核参数ip_forward的方式实现路由功能,系统使用sysctl命令配置与显示在/proc/sys目录中的内核参数。首先在命令行输入:cat /proc/sys/net/ipv4/ip_forwad,检查Linux内核是不是开启IP转发功能。如果结果为1,表明路由转发功能已经开启;如果结果为0,表明没有开启。出于安全考虑,Linux内核默认是禁止数据包路由转发的。在linux系统中,有临时和永久两种方法启用转发功能。 [3]
临时启用:此种方法只对当前会话起作用,系统重启后不再启用。临时开启的命令格式:sysctl–wnet.ipv4.ip_forward=1。 [3]
永久启用:此种永久性的启用IP转发功能,通过更改配置文件/etc/sysctl.conf中的语句行“net.ipv4.ip_forward=0”,修改为“net.ipv4.ip_forward=1”,保存配置文件后执行命令sysctl–p/etc/sysctl.conf,配置便立即启用。 [3]
开发工具
Linux已经成为工作、娱乐和个人生活等多个领域的支柱,人们已经越来越离不开它。在Linux的帮助下,技术的变革速度超出了人们的想象,Linux开发的速度也以指数规模增长。因此,越来越多的开发者也不断地加入开源和学习Linux开发的潮流当中。在这个过程之中,合适的工具是必不可少的,可喜的是,随着Linux的发展,大量适用于Linux的开发工具也不断成熟。 [5]
容器
放眼现实,如今已经是容器的时代了。容器既极其容易部署,又可以方便地构建开发环境。如果针对的是特定的平台的开发,将开发流程所需要的各种工具都创建到容器映像中是一种很好的方法,只要使用这一个容器映像,就能够快速启动大量运行所需服务的实例。 [5]
版本控制工具
如果正在开发一个大型项目,又或者参与团队开发,版本控制工具是必不可少的,它可以用于记录代码变更、提交代码以及合并代码。如果没有这样的工具,项目几乎无法妥善管理。 [5]
文本编辑器
如果没有文本编辑器,在Linux上开发将会变得异常艰难。当然,文本编辑器之间孰优孰劣,具体还是要取决于开发者的需求。 [5]
集成开发环境
集成开发环境(Integrated Development Environment,IDE) 是包含一整套全面的工具、可以实现一站式功能的开发环境。 [5]
文本比较工具
有时候会需要比较两个文件的内容来找到它们之间的不同之处,它们可能是同一文件的两个不同副本(例如有一个经过编译,而另一个没有)。这种情况下,肯定不想要凭借肉眼来找出差异,而是想要使用像Med这样的工具。 [5]
嵌入式Linux
对Linux进行适当的修改和删减,并且能够在嵌入式系统上使用的系统,就是嵌入式Linux操作系统。具有如下的特点: [6]
Linux系统是完全开放、免费的。正是开放性,它才能和其他系统互相兼容,进而实现信息的互联。而且它可以任意修改源代码,这是其他系统所不具备的。 [6]
Linux操作系统的显著优势是多用户和多任务。保证了多个用户使用互不影响;多任务独立开后,互不干扰,使得效率方面大大提高,可以充分把性能发挥出来。 [6]
设备是独立的。只要安装驱动程序,在驱动程序的支持和帮助下,任何用户都可以像使用文件一样,对任意设备进行使用和操作,这使得人们完全不用考虑设备存在的具体形式。 [6]
Linux服务器
Linux服务器是设计出来进行业务处理应用的,在网络和计算机系统当中有广泛的应用,可以提供数据库管理和网络服务等内容,是一种性能非常高的和开源的服务器,在我国的计算机系统的客户端当中,有很多采用的就是Linux系统,其使用的范围非常广泛,用户体验反应较好。但是对于一些希望计算机应用性能比较高的单位而言,windows系统需要经常进行资源整合和碎片化管理,系统在配置的时候经常需要重新启动,这就无法避免产生停机的问题。同时,由于Linux系统的处理能力非常强悍,具备不可比拟的稳定性特征,因而Linux系统就不用经常进行重启,Linux系统的变化可以在配置的过程中实现,所以Linux服务器出现故障的概率比较小,所以很多企业组织在计算机配置的过程中经常使用Linux系统,从而降低服务器发生崩溃的可能性,很多企业在配置Linux系统的时候,都是通过减少服务器的故障发生率,实现企业业务的高效运转。 [4]
Linux贡献
播报
华为贡献的 1399 个补丁,涵盖了ARM64 SPE perf event、ACPI CPPC 支持 ARM64 CPU 超频、虚化热迁移页标脏优化、CPU 休眠调控器默认可根据场景调整等系统特性,以及网络、文件系统、perf 调测、安全等关键子系统的 bugfix 补丁,均为 Linux 能够正常运行所需的基础功能,对于 Linux 非常重要。 [10]