当前位置: 首页 > news >正文

【解答】关于Linux内核的一些疑问

GNU计划是什么

       GNU计划是由理查德·斯托曼在1983年9月27日公开发起的自由软件集体协作计划,其目标是创建一套完全自由的操作系统GNU。这个操作系统的内容软件完全以GPL方式发布,意味着用户拥有运行、复制、分发、学习、修改和改进该软件的自由。

       GNU的命名是"GNU's Not Unix"的递归缩写,因为它的设计与Unix相似,但并不包含具有著作权的Unix代码。尽管GNU计划下有许多项目和工作被完成,如核心的gcc和glibc,但由于缺少操作系统内核,原定的内核叫HURD一直未能完成。

       理查德·斯托曼最早是在net.unix-wizards新闻组上公布该消息,并附带一份《GNU宣言》等解释为何发起该计划的文章。他是一位知名的计算机科学家,曾在哈佛大学和麻省理工学院人工智能实验室工作,毕业后留在该实验室继续工作。他也是开源运动的重要推动者,被誉为“开源之父”。

UNIX系统的发展历史

       UNIX系统在计算机操作系统的发展史上占有重要的地位。它起源于20世纪60年代末期,由AT&T的贝尔实验室开发。Unix系统的设计思想是“小而美”,即尽量简化系统内核,以便更好地支持应用程序的开发和移植。

       从Unix操作系统的发展历史来看,又可以分为古典Unix,近代Unix和现代Unix。1979年,UNIX V7发布。这是历史上第一个完整意义上的UNIX版本,也是最后一个广泛发布的研究型UNIX版本。20世纪80年代相继发布的8、9、10版本只授权给了少数大学。

      1983年,4.2BSD发布。它是UNIX历史上第一个包含TCP/IP协议栈以及rcp、rsh、rlogin和rwho等网络工具的系统。此后这个方向上的研究导致了九号计划的出现,这是一个新的分布式操作系统。注:贝尔实验室九号项目(Plan 9 from Bell Labs,常简称为Plan 9)是一个分布式操作系统,由贝尔实验室的计算科学研究中心在1980年代中期至2002年开发,以作为UNIX的后继者。它现在仍然被操作系统的研究者和爱好者开发使用。

       除了贝尔实验室之外,其他机构也对Unix系统做出了重要贡献。例如,加州大学伯克利分校开发了BSD UNIX;卡内基梅隆大学开发了System V UNIX;麻省理工学院开发了CTSS和Multics。

POSIX标准是什么

      POSIX标准,全称可移植操作系统接口(Portable Operating System Interface of UNIX),是由电气和电子工程师学会(IEEE)为在各种UNIX操作系统上运行的软件定义的一系列API标准的总称。这个标准源于一个大约开始于1985年的项目。

       其正式称呼为IEEE Std 1003,而国际标准名称为ISO/IEC 9945。这个标准定义了操作系统应该为应用程序提供的接口标准。它的主要目的是使得应用程序能够在不同的操作系统上运行,从而提高软件的可移植性和兼容性。

       POSIX标准涵盖了很多方面,包括文件系统、目录和文件、进程管理、信号、系统调用、库函数等等。由于其广泛的应用,POSIX已经成为了一个重要的行业标准,被广泛应用于各种UNIX和类UNIX系统中。

Linux 内核是免费软件吗

       Linux 内核是免费软件。术语“自由软件”是指一种软件许可证,允许用户出于任何目的运行、研究、共享和修改软件。Linux 内核是在 GNU 通用公共许可证 (GPL2.0) 下发布的,GPL 是最受欢迎的自由软件许可证之一。这意味着任何人都可以下载、使用和分发 Linux 内核,而无需支付任何费用或同意任何限制。

我听说 Linux 附带了非自由的“blobs”

       在许多设备能够与操作系统通信之前,必须首先使用设备制造商提供的“固件”对其进行初始化。此固件不是 Linux 的一部分,也不会由内核“执行”——它只是在驱动程序初始化阶段上传到设备。

       虽然一些固件映像是从自由软件构建的,但其中很大一部分只能以二进制形式重新分发。为了避免任何许可混淆,固件 blob 已从主 Linux 树移动到名为 linux-firmware 的单独存储库中。

       在没有任何非自由固件二进制文件的情况下使用 Linux 是可能的,但通常以使大量硬件无法运行为代价。此外,许多在驱动程序初始化期间不需要固件 blob 的设备已经预装了非自由固件。如果你的目标是运行 100% 自由设置,则通常需要走得更远,而不仅仅是避免可加载的仅二进制固件 blob。

我可以使用“Linux”一词或 Tux 徽标吗   

        Linux 是 Linus Torvalds 的注册商标,其使用受 Linux 商标协会的约束。有关详细信息,请参阅以下页面:
       Tux 企鹅标志由 Larry Ewing 使用 Gimp 软件创建。它可以免费使用,包括商业用途,只要你给拉里·尤因适当的信用(“如果有人问”)。如需任何其他许可,请直接联系 Larry Ewing 先生。

“稳定/EOL”和“长期”是什么意思

当内核从“主线”进入“稳定”类别时,可能会发生两件事:

       在一些错误修复修订后,它们可以达到“生命周期结束”,这意味着内核维护者将不再发布此内核版本的错误修复,或者它们可以投入“长期”维护,这意味着维护者将在更长的时间内为这个内核修订版提供错误修复。
        如果你使用的内核版本标记为“EOL”,你应该考虑升级到下一个主要版本,因为你正在使用的内核版本将不再提供错误修复。

为什么 LTS 内核在首页被标记为“稳定”

        如果当前没有其他稳定内核版本,则在发布页面上宣布的长期支持(“LTS”)内核将在首页上标记为“稳定”。这样做是为了避免破坏自动解析器监视 kernel.org,并期望始终有一个标记为“稳定”的内核版本。

Linus 已经标记了新版本,但它没有列在首页上

       Linus Torvalds 为所有新的主线内核版本添加 PGP 签名 git 存储库标签,但是稳定版本团队需要生成一组单独的 PGP 签名才能创建可下载的 tarball。由于 Linus 和稳定团队成员之间的时区差异,在标记新的主线版本和 PGP 签名的压缩包可用之间通常会有几个小时的延迟。该过程完成后,首页将更新。

是否有最新内核版本的 RSS 提要

是的,你可以在 https://www.kernel.org/feeds/kdist.xml 找到它。

我们还发布了一个包含最新发布信息的 .json 文件,你可以从此处提取:https://www.kernel.org/releases.json。

我在哪里可以找到内核 3.10.0-1160.45.1.foo

       带有破折号的内核版本由发行版打包,并且经常进行大量修改。请联系相关发行版以获取确切的内核源代码。

有关分发内核的更多信息,请参阅发布页面。

如何报告内核问题

       如果你运行的是 Linux 发行版附带的内核,那么正确的起点是通过发行版支持渠道报告问题。以下是一些流行的选择:

  • Ubuntu
  • Fedora Project
  • Arch Linux
  • Linux Mint
  • Debian GNU/Linux
  • Red Hat
  • OpenSUSE
  • SUSE

如果你确定问题出在上游内核上,请参考以下文档,该文档描述了如何向开发人员报告错误和回归:

  • Reporting issues

如何参与 Linux 内核开发

好的起点在这里​​​​​​​Linux_Kernel_Newbies - Linux Kernel Newbies 。

我可以在 kernel.org 上拥有一个账户吗

       Kernel.org 帐户通常保留给子系统维护人员或知名开发人员。除非你直接向 Linus Torvalds 提交拉取请求,否则绝对没有必要在 kernel.org 上拥有帐户来为 Linux 内核的开发做出贡献。

如果你被列入 MAINTAINERS 文件,或者相信有理由根据你的贡献值,应该在 kernel.org 上拥有一个账户。

相关文章:

【解答】关于Linux内核的一些疑问

GNU计划是什么 GNU计划是由理查德斯托曼在1983年9月27日公开发起的自由软件集体协作计划,其目标是创建一套完全自由的操作系统GNU。这个操作系统的内容软件完全以GPL方式发布,意味着用户拥有运行、复制、分发、学习、修改和改进该软件的自由。 GNU的命名…...

状态设计模式是什么?什么是 State 状态设计模式?Python 状态设计模式示例代码

什么是 State 状态设计模式? 状态设计模式是一种行为型设计模式,它允许一个对象在其内部状态发生改变时改变其行为,使其看起来好像改变了其类。状态模式主要解决的问题是:当一个对象的行为取决于它的状态,并且在运行时…...

电力感知边缘计算技术网关产品设计方案-硬件方案

网关硬件架构设计图: 1.配置方案 配置差异 A类网关 B类网关 CPU...

【线性代数与矩阵论】坐标变换与相似矩阵

坐标变换与相似矩阵 2023年11月4日 #algebra 文章目录 坐标变换与相似矩阵1. 基变换与坐标变换2. 相似变换下链 1. 基变换与坐标变换 坐标变换与基变换都要通过过渡矩阵 A A A 来实现。设有一向量 f ⃗ \vec f f ​ , x x x 是在基 α \alpha α 下该向量的坐标…...

C语言编译过程再解析

多年以前,分析过编译过程,并写了一篇博客,现在对编译过程有了更广阔的认识,记录在此 编译过程 中的 链接与 编译 编译过程分为1. 预处理2. 编译3. 汇编4. 链接其中有 2个过程比较特殊,1. 编译2. 链接对于C程序来说,链接分为提前链接(静态链接)对应下图第1行运行时链接(动态链…...

GeoTrust证书

GeoTrust证书的特点与优势: 1,广泛的浏览器兼容性: GeoTrust证书得到了各大主流浏览器的广泛支持,确保您的网站能够在用户使用的任何浏览器上获得正常的安全连接。 2,强大的加密技术: GeoTrust采用先进的…...

肾合胶囊 | 冬不养肾春易病,若出现了这六大表现,小心是肾虚!

冬季作为一年中最寒冷的季节,自然万物皆静谧闭藏,而肾具有潜藏、封藏、闭藏精气的特点,是封藏之本,肾的脏腑特性与冬季相通应,所以在冬季更应该重视养肾。 而现在正值初冬,正是开始养肾的最佳时间。此时培…...

IDEA中常用快捷键

整理了一些IDEA开发常用的快捷键: 快捷键组合实现效果psvm Tab键 / main Tab键public static void main(String[] args)sout Tab键System.out.println()Ctrl X删除当前行Ctrl D复制当前行AltInsert(或右键Generate)生成代码(如get,set方法,构造函数等)CtrlAltT…...

注解之@Configuration、@Bean、@Component

目录 前言 Component:通用的注解! Bean 引入第三方的类 Configuration 前言 首先:我们先简单描述一下这三个的作用 Component注解表明一个类会作为组件类,并告知Spring要为这个类创建bean。 Bean注解告诉Spring这个方法将会…...

【Web安全】sql注入绕过技法

sql注入绕过技法 1. 注释符号绕过 原理:SQL注释符号(如--, /* */)可以用来忽略查询的一部分,特别是在注入点之后的部分。这对于绕过需要闭合的查询或移除查询余下部分的情况特别有用。 -- 注释内容 # 注释内容 /*注释内容*/ ;2…...

Axios使用方式

ajax是JQUERY封装的XMLHttprequest用来发送http请求 Axios简单点说它就是一个js库,支持ajax请求,发送axios请求功能更加丰富,丰富在哪不知道 1.npm使用方式 vue项目中 npm install axios 2.cdn方式 <script src"https://unpkg.com/axios/dist/axios.min.js">…...

kotlin 内置函数对数组进行各种操作

以下是一些常见的用法示例&#xff1a; plus() 函数将两个数组合并成一个数组。plus() 函数是 Kotlin 标准库中的一个扩展函数&#xff0c;可以用于合并两个同类型的数组。 fun main() {val array1 arrayOf(1, 2, 3)val array2 arrayOf(4, 5, 6)val mergedArray array1.plu…...

力扣labuladong——一刷day54

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、力扣1660. 纠正二叉树二、力扣100. 相同的树三、力扣572. 另一棵树的子树四、力扣101. 对称二叉树 前言 判断树是否相等&#xff0c;就直接遍历就可以。判断…...

3、MSF使用

文章目录 一、利用ms17-010漏洞对靶机执行溢出攻击二、后渗透模块meterpreter的使用 一、利用ms17-010漏洞对靶机执行溢出攻击 分别输入以下命令&#xff0c;使用ms17_010_eternalblue模块对目标机的ms17-010漏洞进行利用&#xff1a; use exploit/windows/smb/ms17_010_eter…...

34970A 数据采集 / 数据记录仪开关单元

34970A 数据采集 / 数据记录仪开关单元 产品综述&#xff1a; Keysight 34970A 数据采集/数据记录仪开关单元由一个 3 插槽主机和一个内置的 6 1/2 位数字万用表组成。每个通道可以单独配置&#xff0c;以测量 11 种不同功能之一&#xff0c;这样既不会增加成本&#xff0c;也…...

BUUCTF刷题之路-web-[GXYCTF2019]Ping Ping Ping1

启动环境后&#xff0c;是一个简简单单的页面&#xff1a; 看样子是能够触发远程执行漏洞的。尝试下ping 127.0.0.1&#xff0c;如果有回显说明我们的想法是对的。 最近才学习的nc反弹shell。想着是否能用nc反弹shell的办法。控制服务器然后输出flag呢&#xff1f;于是我测试下…...

一、深入简出串口(USRT)通信——基本概念。

一、前言 串口到底是什么&#xff1f;简单来说一句话就可以解释&#xff0c;串口就是一种通信协议。 看到这里可能大家会觉得你这不是放屁么&#xff0c;说了跟没说一样。所以这里做前言来描述&#xff0c;大家要先对通信协议有一个下意识地认识才能在学习串口的时候不至于迷茫…...

采用connector-c++ 8.0操作数据库

1.下载最新的Connector https://dev.mysql.com/downloads/connector/cpp/&#xff0c;下载带debug的库。 解压缩到本地&#xff0c;本次使用的是带debug模式的connector库&#xff1a; 注&#xff1a;其中mysqlcppconn与mysqlcppconn8的区别是&#xff1a; 2.在cmakelist…...

【Java数据结构 -- 时间和空间复杂度】

时间和空间复杂度 1. 算法效率2. 时间复杂度2.1 时间复杂度的概念2.2 大O的渐进表示法2.3 推导大O阶方法2.4 常见时间复杂度计算举例例1例2例3例4 计算 bubbleSort的时间复杂度例5 计算binarySearch的时间复杂度&#xff1f;例6 计算阶乘递归factorial的时间复杂度&#xff1f;…...

【每日一题】1457. 二叉树中的伪回文路径-2023.11.25

题目&#xff1a; 1457. 二叉树中的伪回文路径 给你一棵二叉树&#xff0c;每个节点的值为 1 到 9 。我们称二叉树中的一条路径是 「伪回文」的&#xff0c;当它满足&#xff1a;路径经过的所有节点值的排列中&#xff0c;存在一个回文序列。 请你返回从根到叶子节点的所有路…...

Admin.Net中的消息通信SignalR解释

定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...

电脑插入多块移动硬盘后经常出现卡顿和蓝屏

当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时&#xff0c;可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案&#xff1a; 1. 检查电源供电问题 问题原因&#xff1a;多块移动硬盘同时运行可能导致USB接口供电不足&#x…...

零基础设计模式——行为型模式 - 责任链模式

第四部分&#xff1a;行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习&#xff01;行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想&#xff1a;使多个对象都有机会处…...

数据库分批入库

今天在工作中&#xff0c;遇到一个问题&#xff0c;就是分批查询的时候&#xff0c;由于批次过大导致出现了一些问题&#xff0c;一下是问题描述和解决方案&#xff1a; 示例&#xff1a; // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...

Java入门学习详细版(一)

大家好&#xff0c;Java 学习是一个系统学习的过程&#xff0c;核心原则就是“理论 实践 坚持”&#xff0c;并且需循序渐进&#xff0c;不可过于着急&#xff0c;本篇文章推出的这份详细入门学习资料将带大家从零基础开始&#xff0c;逐步掌握 Java 的核心概念和编程技能。 …...

【Oracle】分区表

个人主页&#xff1a;Guiat 归属专栏&#xff1a;Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...

RabbitMQ入门4.1.0版本(基于java、SpringBoot操作)

RabbitMQ 一、RabbitMQ概述 RabbitMQ RabbitMQ最初由LShift和CohesiveFT于2007年开发&#xff0c;后来由Pivotal Software Inc.&#xff08;现为VMware子公司&#xff09;接管。RabbitMQ 是一个开源的消息代理和队列服务器&#xff0c;用 Erlang 语言编写。广泛应用于各种分布…...

淘宝扭蛋机小程序系统开发:打造互动性强的购物平台

淘宝扭蛋机小程序系统的开发&#xff0c;旨在打造一个互动性强的购物平台&#xff0c;让用户在购物的同时&#xff0c;能够享受到更多的乐趣和惊喜。 淘宝扭蛋机小程序系统拥有丰富的互动功能。用户可以通过虚拟摇杆操作扭蛋机&#xff0c;实现旋转、抽拉等动作&#xff0c;增…...

go 里面的指针

指针 在 Go 中&#xff0c;指针&#xff08;pointer&#xff09;是一个变量的内存地址&#xff0c;就像 C 语言那样&#xff1a; a : 10 p : &a // p 是一个指向 a 的指针 fmt.Println(*p) // 输出 10&#xff0c;通过指针解引用• &a 表示获取变量 a 的地址 p 表示…...

【C++】纯虚函数类外可以写实现吗?

1. 答案 先说答案&#xff0c;可以。 2.代码测试 .h头文件 #include <iostream> #include <string>// 抽象基类 class AbstractBase { public:AbstractBase() default;virtual ~AbstractBase() default; // 默认析构函数public:virtual int PureVirtualFunct…...