【内核驱动】Linux概述

00. 目录

01. Unix简介

UNIX系统是一个分时系统。最早的UNIX系统于1970年问世。此前,只有面向批处理作业的操作系统,这样的系统对于需要立即得到响应的用户来说是太慢了。在60年代末,Kenneth Thompson和Dennis Ritchie都曾参加过交互方式分时系统Multics的设计,而开发该系统所使用的工具是CTSS。这两个系统在操作系统的发展过程中都产生过重大影响。在此基础上,在对当时现有的技术进行精选提炼和发展的过程中,K.Thompson于1969年在小型计算机上开发UNIX系统,后于1970年投入运行。 [2]

1972年,DennisRitchie开发出C语言,用来改写原来用汇编语言编写的UNIX,由此产生了UNIX VersionV。1974年,Kenneth Thompson和Dennis Ritchie合写的“The UNIX Time-Sharing System”在Communication of ACM上发表,正式向外界披露了UNIX系统。

当时,PDP-11系列小型计算机在世界各地已经得到广泛应用,UNIX系统一开发后便广泛配备于美国各大学的PDP-11系列计算机上,由此为UNIX的广泛应用创造了物质条件。

1978年,UNIX Version VI发表,随后又于1979年用于VAX-11超级小型机。以后,不断地出现各种新的版本。美国电话电报公司分别于1981年和1983年发表AT&T UNIX SystemII和UNIX SystemV。美国加州大学伯克莱分校也先后发表了UNIX的版本BSD4.1,BSD4.2和BSD4.3。

UNIX系统的用户日益增多,应用范围也日益扩大。无论在各种类型的微型机、小型机,还是在中、大型计算机,以及在计算机工作站甚至个人计算机上,很多都已配有UNIX系统。不仅新推出的机型配有UNIX系统,而且一些历史较久的生产厂商,也竞相将原有机型配上UNIX系统以便打开销路、争取市场。

2020年,苹果发布操作系统升级版本,将UNIX操作系统的强大功能和苹果电脑的易用性相结合,提高了电脑的运行速度和电池寿命。

02. Linux简介

Linux,一般指GNU/Linux(单独的Linux内核并不可直接使用,一般搭配GNU套件,故得此称呼),是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹(Linus Benedict Torvalds)于1991年10月5日首次发布,它主要受到Minix和Unix思想的启发,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。它支持32位和64位硬件,能运行主要的Unix工具软件、应用程序和网络协议。

Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。Linux有上百种不同的发行版,如基于社区开发的debian、archlinux,和基于商业开发的Red Hat Enterprise Linux、SUSE、Oracle Linux等。

2022年11月20日,Linux 提交了最后一批 drm-intel-next 功能补丁,Linux 6.2将迎来对英特尔锐炫独显的正式支持。

扫描二维码关注公众号,回复: 16673439 查看本文章

03. Linux发展史

1991

8月25号 : 21岁的芬兰学生Linus Benedict Torvalds 在comp.os.minix 新闻组上宣布了它正在编写一个免费的操作系统。

9月1号 : Linux 0.01在网上发布。

2007

6月6号 : 华硕在2007的台北电脑展上展出了两款“易PC”(Eee PC):701和1001。第1批易PC预装的是Xandros Linux,这是一个基于Debian,轻量级的为适应小屏幕进行过优化的Linux发行版。

8月8号 : 2007年Linux基金会由开源发展实验室(OSDL)和自由标准组织(FSG)联合成立。这个基金会目的是赞助Linux创始人Linus的工作。基金会得到了主要的Linux和开源公司,包括富士通,HP,IBM,Intel,NEC,Oracle,Qualcomm,三星和来自世界各地的开发者的支持。

11月5号 : 与之前大家推测的发布Gphone不同,Google宣布组建开放手机联盟(Open Handset Alliance)和发布Android,它被称为“第一个真正开放的综合移动设备平台”。

2011

5月11号 : 2011年Google I/O大会发布了Chrombook。这是一款运行着所谓云操作系统Chrome OS的笔记本。Chome OS是基于Linux内核的。

6月21号 : Linus Torvalds 发布了Linux3.0版本。

2013

12月13号 : Valve公司发布基于Linux的SteamOS操作系统,这是一个视频游戏控制台系统。

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逐渐成为功能完善、稳定的操作系统,并被广泛使用。

2021年6月,根据Linux 5.14刚刚进入合并队列的char-misc-next提交,Linux 5.14正式移除了RAW驱动。

2022年6月,基于 Ubuntu 22.04 的 Linux Lite 6.0 正式版发布,提供最新的浏览器,最新的办公套件,最新的定制软件,代号“Fluorite”。

2022年11月6日消息,微软将为 Linux 带来嵌套式虚拟化支持,可运行多个 Windows。

2022年11 月,微软在 GitHub 上线了 WSL 1.0.0 版本,宣布 Windows 11/10 的 Linux 子系统删除 Preview 标签,迎来正式版。

2022年11月,在本周的 platform-drivers-x86 提交合并中,Linux 6.1 新增支持了微软 Surface Pro 9 和 Surface Laptop 5 两款设备。

2022年12月12日,Linus Torvalds 抢在圣诞假期之前发布了最新的 Linux 6.1 内核稳定版,从此开启了 Linux 6.2 合并窗口。截止到2023年初大家可以在内核官网找到相应的文件。

2022年12月14日,Linux 6.2 合并窗口扩展了对 Arm SoC 的支持并更新了 DeviceTree。本次更新在内核中新增了对 7 款高通骁龙处理器的支持,还在 Mainline 中初步支持苹果的 M1 Pro / M1 Ultra / M1 Max 型号处理器。

2022年12月15日,Linux 6.2 合并窗口期内已经确认将会合并大量网络子系统更新。和以往版本相同,Linux 6.2 内核更新周期在网络功能上有大量的改进,更多的细节可以访问这条 pull。

2022年12月 28 日消息,在 Linux 6.2 合并窗口期,英特尔工程师提交的线性地址掩码(Linear Address Masking,简称 LAM)提案遭到了 Linus Torvalds 的拒绝。英特尔工程师2023年初再次提交第 13 个版本,希望在 Linux 6.3 或者更高版本中合并该功能。

2023年1月9日消息,Linus Torvalds 推出了 Linux Kernel 6.2 的第 3 个候选版本更新。

2023年3月27日消息,Linus Torvalds 发布了 Linux Kernel 6.3 的第 4 个维护版本更新,这意味着 6.3 的开发周期已经走过了一半路程。 [20]

2023年5月3日,IT之家消息:Uri Herrera于4月底发布了 Nitrux 2.8 系统,这是基于 Debian 和 systemd-free 的 GNU / Linux 发行版,重点是 KDE 软件和 Plasma 桌面。

2023年5月29日,MX Linux 开发人员宣布,MX Linux 23“Libretto”版本 Beta 版公开测试已全面推出。

2023年6月26日,Linux 6.4 内核已正式发布,这次更新带来了许多改进,比如对苹果 M2 芯片的初步支持、存储性能的提升、传感器监控的改善,以及更多的 Rust 代码。

04. 单内核与微内核区别

单内核:所有内核从整体上作为一个单独大过程实现,运行于内核地址空间,内核通信简单。内核通常以单个静态二进制文件存放于磁盘上。简单性能高,大多数Unix都是单内核。

微内核:微内核功能划分为多个过程,各个过程运行在单独地址空间,需要通过进程间通信IPC处理微内核通信,只有请求强烈的过程才运行在内核态,其他过程在用户态。IPC开销大,且涉及用户态和内核态上下文切换。所以多数的微内核实现(Windows NT、OS X)将所有微内核过程都运行于内核态

05. Linux内核

Linux是单内核,但吸取微内核精华:模块化涉及,抢占式内核,支持内核线程,可动态装载内核模块

Kernel即是Linux内核,Linux内核采用宏内核架构,即Linux大部分功能都会在内核中实现,如进程管理、内存管理、设备管理、文件管理以及网络管理等功能,Linux在发展的过程中,引入了内核模块(Loadable Kernel Module,LKM)机制,内核模块全称为动态可加载内核模块,就是在内核运行时可以动态加载一组目标代码来实现某些特定的功能,在这过程中不需要重新编译内核就可以实现动态扩展。

06. Linux内核组成

Linux内核主要由5部分组成,分别为:进程管理子系统,内存管理子系统,文件子系统,网络子系统,设备子系统。

在这里插入图片描述

1、进程管理

负责进程的创建和销毁,进程的调度。

2、内存管理

负责内存的分配和回收,记录哪些内存被哪些进程使用,管理虚拟内存,将内存的物理地址和逻辑地址做一个映射,主要由MMU进行转换,页表的方式。

3、文件系统

这里的文件系统不仅仅只是硬盘的抽象管理,它也可以是某些io口的抽象;文件系统屏蔽了底层的细节,为上层提供统一的接口;linux中一切皆文件。

4、设备管理

设备管理功能主要由驱动程序提供,主要任务是控制设备完成输入或输出操作;linux把设备看作是特殊的文件,系统通过处理文件的接口(虚拟文件系统VFS)来管理和控制各种设备。

5、网络功能

网络功能值的是除了驱动程序提供的基本硬件操作外,还有系统提供的机制和功能,比如TCP协议,地址解析等。

07. Linux官方网站

网址:https://www.kernel.org/
在这里插入图片描述

在这可以下载最新版本的内核文件,但是大部分是没适配相应芯片的,适配芯片是芯片原厂适配好了。

08. 附录

猜你喜欢

转载自blog.csdn.net/dengjin20104042056/article/details/132795796