首页系统综合问题Linux Kernel 6.0稳定版正式发布 新功能/新特性盘点

Linux Kernel 6.0稳定版正式发布 新功能/新特性盘点

时间2023-05-02 00:38:26发布分享专员分类系统综合问题浏览118

今天小编给各位分享通用音频驱动程序的知识,文中也会对其通过Linux Kernel 6.0稳定版正式发布 新功能/新特性盘点和Linux Kernel(LINUX 内核)这是什么?有什么用处?等多篇文章进行知识讲解,如果文章内容对您有帮助,别忘了关注本站,现在进入正文!

内容导航:

  • Linux Kernel 6.0稳定版正式发布 新功能/新特性盘点
  • Linux Kernel(LINUX 内核)这是什么?有什么用处?
  • 如何参与linux 内核开发
  • Linux 3.19 Kernel新功能一览
  • 一、Linux Kernel 6.0稳定版正式发布 新功能/新特性盘点

    没有遇到意外,Linus Torvalds 于今天推出了 Linux 6.0 稳定版。国外科技媒体 Phoenix 盘点了新版本即将引入的诸多新功能新特性。该媒体于今年 8 月中旬 Linux Kernel 6.0 合并窗口期时曾撰写过此类文章,而今天发布的文章在重新回顾了这些新功能新特性之外,还整合了之后 Linux 团队做出的调整。

    Linux 6.0 以良好的形式启动了 6.x 系列,带来了各种性能改进、新硬件支持、安全修复以及通常的文件系统调整。在 Linux 内核邮件列表上宣布发布时,Linus Torvalds 说:“希望每个人都清楚,主要版本号的变化更多是因为我手指头已经数不过来了,而不是任何重大的根本性变化”。

    他继续说道:“自然,Linux 6.0 引入了大量的改进,总计获得了超过 1.5 万个非合并 commits。因此 6.0 是较大的版本之一,至少在一段时间内的提交数量上是这样”。

    Linux 6.0 稳定版引入的新功能:

    ● A750 和 A770 等 Intel Arc Graphics 独立 GPU 可以在 Linux 6.0 内核的 i915 DRM 内核驱动程序上运行!但它在 Linux 6.0 中仍处于试验阶段,因此需要启用“force_probe”选项。但至少在 Linux 6.0 中,现在可以使用这些新的英特尔台式机独立显卡与更新的 Mesa 堆栈配对。

    ● 启用对更多 AMDRDNA3 显卡的支持,希望兼容即将推出 Radeon RX 7000 系列显卡。这些支持将在发布会上已经公布,但希望所有必要的部分都已到位。

    ● 高通骁龙8xc Gen3支持和对联想ThinkPadX13s Arm笔记本电脑的早期支持。这项工作在主线上仍处于早期形式,但至少已经可以使用,并开辟了另一个Arm Linux笔记本电脑选项。

    ● 各种调度器的变化,包括一些针对AMD Zen的NUMA平衡增强,以及AMD CPU现在倾向于MWAIT而不是HALT。

    ● 英特尔 Raptor Lake 的各种完善,如 TCC 冷却驱动、RAPL 驱动中的猛禽湖P、猛禽湖USB4/Thunderbolt,以及其他缺失的猛禽湖ID。还有一些初步的Meteor Lake支持,比如音频代码和其他地方。

    ● 对AMD Ryzen 7000"Raphael"平台的音频驱动支持。

    ● 支持IO_uring用户空间块驱动,各种IO_uring优化,以及其他有希望的I/O相关工作,如Btrfs Send Protocol v2。

    ● 对英特尔哈巴纳实验室高迪2加速器的初步支持。

    ● H.265/HEVC媒体用户空间API现在已经宣布稳定。

    ● 安全关键系统的运行时间验证。

    一、Linux Kernel(LINUX 内核)这是什么?有什么用处?

    1。linux的内核就像 windows 的 ntoskrnl.exe + hal.dll + bootiod.dll + kdcom.dll(这几个东西就“约等于”windows 32位操作系统内核);这几个东西在c:\windows\system32\目录下面。
    2。什么叫内核?
    可以简单理解为屏蔽硬件差异,统一管理计算机资源,并为“上层”提供统一使用/编程接口的操作系统核心
    3。xp的内核是nt5.1; win2000是nt5.0; vista是nt6.0; 接下去的windows7直接就是nt7.0;====而linux本身就是一个内核(现在2.6.*),而很多时候我们听到的什么什么linux操作系统严格来讲是“基于linux内核的发行版本”比如,debian,ubuntu,redhat,fedora,centos,suse,gentoo,slackware,arch,mandriva等等。。
    4。“在XP中装了LINUX内核”这是不恰当的表述;好比:“我在中国成立了**国”;当然如果是在xp上运行的某个虚拟软件上模拟是可以的,比如virtualPC,vmware等等。

    二、如何参与linux 内核开发

    如何参与Linux内核开发
    ---------------------

    这是一篇将如何参与Linux内核开发的相关问题一网打尽的终极秘笈。它将指导你
    成为一名Linux内核开发者,并且学会如何同Linux内核开发社区合作。它尽可能不
    包括任何关于内核编程的技术细节,但会给你指引一条获得这些知识的正确途径。

    如果这篇文章中的任何内容不再适用,请给文末列出的文件维护者发送补丁。

    入门
    ----

    你想了解如何成为一名Linux内核开发者?或者老板吩咐你“给这个设备写个Linux
    驱动程序”?这篇文章的目的就是教会你达成这些目标的全部诀窍,它将描述你需
    要经过的流程以及给出如何同内核社区合作的一些提示。它还将试图解释内核社区
    为何这样运作。

    Linux内核大部分是由C语言写成的,一些体系结构相关的代码用到了汇编语言。要
    参与内核开发,你必须精通C语言。除非你想为某个架构开发底层代码,否则你并
    不需要了解(任何体系结构的)汇编语言。下面列举的书籍虽然不能替代扎实的C
    语言教育和多年的开发经验,但如果需要的话,做为参考还是不错的:
    - "The C Programming Language" by Kernighan and Ritchie [Prentice Hall]
    《C程序设计语言(第2版·新版)》(徐宝文 李志 译)[机械工业出版社]
    - "Practical C Programming" by Steve Oualline [O'Reilly]
    《实用C语言编程(第三版)》(郭大海 译)[中国电力出版社]
    - "C: A Reference Manual" by Harbison and Steele [Prentice Hall]
    《C语言参考手册(原书第5版)》(邱仲潘 等译)[机械工业出版社]

    Linux内核使用GNU C和GNU工具链开发。虽然它遵循ISO C89标准,但也用到了一些
    标准中没有定义的扩展。内核是自给自足的C环境,不依赖于标准C库的支持,所以
    并不支持C标准中的部分定义。比如long long类型的大数除法和浮点运算就不允许
    使用。有时候确实很难弄清楚内核对工具链的要求和它所使用的扩展,不幸的是目
    前还没有明确的参考资料可以解释它们。请查阅gcc信息页(使用“info gcc”命令
    显示)获得一些这方面信息。

    请记住你是在学习怎么和已经存在的开发社区打交道。它由一群形形色色的人组成,
    他们对代码、风格和过程有着很高的标准。这些标准是在长期实践中总结出来的,
    适应于地理上分散的大型开发团队。它们已经被很好得整理成档,建议你在开发
    之前尽可能多的学习这些标准,而不要期望别人来适应你或者你公司的行为方式。

    法律问题
    --------

    Linux内核源代码都是在GPL(通用公共许可证)的保护下发布的。要了解这种许可
    的细节请查看源代码主目录下的COPYING文件。如果你对它还有更深入问题请联系
    律师,而不要在Linux内核邮件组上提问。因为邮件组里的人并不是律师,不要期
    望他们的话有法律效力。

    对于GPL的常见问题和解答,请访问以下链接:


    文档
    ----

    Linux内核代码中包含有大量的文档。这些文档对于学习如何与内核社区互动有着
    不可估量的价值。当一个新的功能被加入内核,最好把解释如何使用这个功能的文
    档也放进内核。当内核的改动导致面向用户空间的接口发生变化时,最好将相关信
    息或手册页(manpages),以向手册页(manpages)
    的维护者解释这些变化。

    以下是内核代码中需要阅读的文档:
    README
    文件简要介绍了Linux内核的背景,并且描述了如何配置和编译内核。内核的
    新用户应该从这里开始。

    Documentation/Changes
    文件给出了用来编译和使用内核所需要的最小软件包列表。

    Documentation/CodingStyle
    描述Linux内核的代码风格和理由。所有新代码需要遵守这篇文档中定义的规
    范。大多数维护者只会接收符合规定的补丁,很多人也只会帮忙检查符合风格
    的代码。

    Documentation/SubmittingPatches
    Documentation/SubmittingDrivers
    这两份文档明确描述如何创建和发送补丁,其中包括(但不仅限于):
    - 邮件内容
    - 邮件格式
    - 选择收件人
    遵守这些规定并不能保证提交成功(因为所有补丁需要通过严格的内容和风格
    审查),但是忽视他们几乎就意味着失败。

    其他关于如何正确地生成补丁的优秀文档包括:
    "The Perfect Patch"

    "Linux kernel patch submission format"


    Documentation/stable_api_nonsense.txt
    论证内核为什么特意不包括稳定的内核内部API,也就是说不包括像这样的特
    性:
    - 子系统中间层(为了兼容性?)
    - 在不同操作系统间易于移植的驱动程序
    - 减缓(甚至阻止)内核代码的快速变化
    这篇文档对于理解Linux的开发哲学至关重要。对于将开发平台从其他操作系
    统转移到Linux的人来说也很重要。

    Documentation/SecurityBugs
    如果你认为自己发现了Linux内核的安全性问题,请根据这篇文档中的步骤来
    提醒其他内核开发者并帮助解决这个问题。

    Documentation/ManagementStyle
    描述内核维护者的工作方法及其共有特点。这对于刚刚接触内核开发(或者对
    它感到好奇)的人来说很重要,因为它解释了很多对于内核维护者独特行为的
    普遍误解与迷惑。

    Documentation/stable_kernel_rules.txt
    解释了稳定版内核发布的规则,以及如何将改动放入这些版本的步骤。

    Documentation/kernel-docs.txt
    有助于内核开发的外部文档列表。如果你在内核自带的文档中没有找到你想找
    的内容,可以查看这些文档。

    Documentation/applying-patches.txt
    关于补丁是什么以及如何将它打在不同内核开发分支上的好介绍

    内核还拥有大量从代码自动生成的文档。它包含内核内部API的全面介绍以及如何
    妥善处理加锁的规则。生成的文档会放在 Documentation/DocBook/目录下。在内
    核源码的主目录中使用以下不同命令将会分别生成PDF、Postscript、HTML和手册
    页等不同格式的文档:
    make pdfdocs
    make psdocs
    make htmldocs
    make mandocs

    如何成为内核开发者
    ------------------
    如果你对Linux内核开发一无所知,你应该访问“Linux内核新手”计划:

    它拥有一个可以问各种最基本的内核开发问题的邮件列表(在提问之前一定要记得
    查找已往的邮件,确认是否有人已经回答过相同的问题)。它还拥有一个可以获得
    实时反馈的IRC聊天频道,以及大量对于学习Linux内核开发相当有帮助的文档。

    网站简要介绍了源代码组织结构、子系统划分以及目前正在进行的项目(包括内核
    中的和单独维护的)。它还提供了一些基本的帮助信息,比如如何编译内核和打补
    丁。

    如果你想加入内核开发社区并协助完成一些任务,却找不到从哪里开始,可以访问
    “Linux内核房管员”计划:
    /KernelJanitors
    这是极佳的起点。它提供一个相对简单的任务列表,列出内核代码中需要被重新
    整理或者改正的地方。通过和负责这个计划的开发者们一同工作,你会学到将补丁
    集成进内核的基本原理。如果还没有决定下一步要做什么的话,你还可能会得到方
    向性的指点。

    如果你已经有一些现成的代码想要放到内核中,但是需要一些帮助来使它们拥有正
    确的格式。请访问“内核导师”计划。这个计划就是用来帮助你完成这个目标的。它
    是一个邮件列表,地址如下:


    在真正动手修改内核代码之前,理解要修改的代码如何运作是必需的。要达到这个
    目的,没什么办法比直接读代码更有效了(大多数花招都会有相应的注释),而且
    一些特制的工具还可以提供帮助。例如,“Linux代码交叉引用”项目就是一个值得
    特别推荐的帮助工具,它将源代码显示在有编目和索引的网页上。其中一个更新及
    时的内核源码库,可以通过以下地址访问:


    开发流程
    --------

    目前Linux内核开发流程包括几个“主内核分支”和很多子系统相关的内核分支。这
    些分支包括:
    - 2.6.x主内核源码树
    - 2.6.x.y -stable内核源码树
    - 2.6.x -git内核补丁集
    - 2.6.x -mm内核补丁集
    - 子系统相关的内核源码树和补丁集

    2.6.x内核主源码树
    -----------------
    2.6.x内核是由Linus Torvalds(Linux的创造者)亲自维护的。你可以在
    kernel.org网站的pub/linux/kernel/v2.6/目录下找到它。它的开发遵循以下步
    骤:
    - 每当一个新版本的内核被发布,为期两周的集成窗口将被打开。在这段时间里
    维护者可以向Linus提交大段的修改,通常这些修改已经被放到-mm内核中几个
    星期了。提交大量修改的首选方式是使用git工具(内核的代码版本管理工具
    ,更多的信息可以在获取),不过使用普通补丁也是可以
    的。
    - 两个星期以后-rc1版本内核发布。之后只有不包含可能影响整个内核稳定性的
    新功能的补丁才可能被接受。请注意一个全新的驱动程序(或者文件系统)有
    可能在-rc1后被接受是因为这样的修改完全独立,不会影响其他的代码,所以
    没有造成内核退步的风险。在-rc1以后也可以用git向Linus提交补丁,不过所
    有的补丁需要同时被发送到相应的公众邮件列表以征询意见。
    - 当Linus认为当前的git源码树已经达到一个合理健全的状态足以发布供人测试
    时,一个新的-rc版本就会被发布。计划是每周都发布新的-rc版本。
    - 这个过程一直持续下去直到内核被认为达到足够稳定的状态,持续时间大概是
    6个星期。
    - 以下地址跟踪了在每个-rc发布中发现的退步列表:
    /known_regressions

    关于内核发布,值得一提的是Andrew Morton在linux-kernel邮件列表中如是说:
    “没有人知道新内核何时会被发布,因为发布是根据已知bug的情况来决定
    的,而不是根据一个事先制定好的时间表。”

    2.6.x.y -stable(稳定版)内核源码树
    -----------------------------------
    由4个数字组成的内核版本号说明此内核是-stable版本。它们包含基于2.6.x版本
    内核的相对较小且至关重要的修补,这些修补针对安全性问题或者严重的内核退步。

    这种版本的内核适用于那些期望获得最新的稳定版内核并且不想参与测试开发版或
    者实验版的用户。

    如果没有2.6.x.y版本内核存在,那么最新的2.6.x版本内核就相当于是当前的稳定
    版内核。

    2.6.x.y版本由“稳定版”小组(邮件地址)维护,一般隔周发
    布新版本。

    内核源码中的Documentation/stable_kernel_rules.txt文件具体描述了可被稳定
    版内核接受的修改类型以及发布的流程。

    2.6.x -git补丁集
    ----------------
    Linus的内核源码树的每日快照,这个源码树是由git工具管理的(由此得名)。这
    些补丁通常每天更新以反映Linus的源码树的最新状态。它们比-rc版本的内核源码
    树更具试验性质,因为这个补丁集是全自动生成的,没有任何人来确认其是否真正
    健全。

    2.6.x -mm补丁集
    ---------------
    这是由Andrew Morton维护的试验性内核补丁集。Andrew将所有子系统的内核源码
    和补丁拼凑到一起,并且加入了大量从linux-kernel邮件列表中采集的补丁。这个
    源码树是新功能和补丁的试炼场。当补丁在-mm补丁集里证明了其价值以后Andrew
    或者相应子系统的维护者会将补丁发给Linus以便集成进主内核源码树。

    在将所有新补丁发给Linus以集成到主内核源码树之前,我们非常鼓励先把这些补
    丁放在-mm版内核源码树中进行测试。

    这些内核版本不适合在需要稳定运行的系统上运行,因为运行它们比运行任何其他
    内核分支都更具有风险。

    如果你想为内核开发进程提供帮助,请尝试并使用这些内核版本,并在
    linux-kernel邮件列表中提供反馈,告诉大家你遇到了问题还是一切正常。

    通常-mm版补丁集不光包括这些额外的试验性补丁,还包括发布时-git版主源码树
    中的改动。

    -mm版内核没有固定的发布周期,但是通常在每两个-rc版内核发布之间都会有若干
    个-mm版内核发布(一般是1至3个)。

    子系统相关内核源码树和补丁集
    ----------------------------
    相当一部分内核子系统开发者会公开他们自己的开发源码树,以便其他人能了解内
    核的不同领域正在发生的事情。如上所述,这些源码树会被集成到-mm版本内核中。

    下面是目前可用的一些内核源码树的列表:
    通过git管理的源码树:
    - Kbuild开发源码树, Sam Ravnborg
    git.kernel.org:/pub/scm/linux/kernel/git/sam/kbuild.git

    - ACPI开发源码树, Len Brown
    git.kernel.org:/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6.git

    - 块设备开发源码树, Jens Axboe
    git.kernel.org:/pub/scm/linux/kernel/git/axboe/linux-2.6-block.git

    - DRM开发源码树, Dave Airlie
    git.kernel.org:/pub/scm/linux/kernel/git/airlied/drm-2.6.git

    - ia64开发源码树, Tony Luck
    git.kernel.org:/pub/scm/linux/kernel/git/aegl/linux-2.6.git

    - ieee1394开发源码树, Jody McIntyre
    git.kernel.org:/pub/scm/linux/kernel/git/scjody/ieee1394.git

    - infiniband开发源码树, Roland Dreier
    git.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git

    - libata开发源码树, Jeff Garzik
    git.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev.git

    - 网络驱动程序开发源码树, Jeff Garzik
    git.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6.git

    - pcmcia开发源码树, Dominik Brodowski
    git.kernel.org:/pub/scm/linux/kernel/git/brodo/pcmcia-2.6.git

    - SCSI开发源码树, James Bottomley
    git.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6.git

    使用quilt管理的补丁集:
    - USB, PCI, 驱动程序核心和I2C, Greg Kroah-Hartman
    kernel.org/pub/linux/kernel/people/gregkh/gregkh-2.6/
    - x86-64, 部分i386, Andi Kleen
    ftp.firstfloor.org:/pub/ak/x86_64/quilt/

    其他内核源码树可以在的列表中和MAINTAINERS文件里
    找到。

    报告bug
    -------

    bugzilla.kernel.org是Linux内核开发者们用来跟踪内核Bug的网站。我们鼓励用
    户在这个工具中报告找到的所有bug。如何使用内核bugzilla的细节请访问:


    内核源码主目录中的REPORTING-BUGS文件里有一个很好的模板。它指导用户如何报
    告可能的内核bug以及需要提供哪些信息来帮助内核开发者们找到问题的根源。

    利用bug报告
    -----------

    练习内核开发技能的最好办法就是修改其他人报告的bug。你不光可以帮助内核变
    得更加稳定,还可以学会如何解决实际问题从而提高自己的技能,并且让其他开发
    者感受到你的存在。修改bug是赢得其他开发者赞誉的最好办法,因为并不是很多
    人都喜欢浪费时间去修改别人报告的bug。

    要尝试修改已知的bug,请访问网址。如果你想获得
    最新bug的通知,可以订阅bugme-new邮件列表(只有新的bug报告会被寄到这里)
    或者订阅bugme-janitor邮件列表(所有bugzilla的变动都会被寄到这里)。




    邮件列表
    --------

    正如上面的文档所描述,大多数的骨干内核开发者都加入了Linux Kernel邮件列
    表。如何订阅和退订列表的细节可以在这里找到:

    网上很多地方都有这个邮件列表的存档(archive)。可以使用搜索引擎来找到这些
    存档。比如:

    在发信之前,我们强烈建议你先在存档中搜索你想要讨论的问题。很多已经被详细
    讨论过的问题只在邮件列表的存档中可以找到。

    大多数内核子系统也有自己独立的邮件列表来协调各自的开发工作。从
    MAINTAINERS文件中可以找到不同话题对应的邮件列表。

    很多邮件列表架设在kernel.org服务器上。这些列表的信息可以在这里找到:


    在使用这些邮件列表时,请记住保持良好的行为习惯。下面的链接提供了与这些列
    表(或任何其它邮件列表)交流的一些简单规则,虽然内容有点滥竽充数。


    当有很多人回复你的邮件时,邮件的抄送列表会变得很长。请不要将任何人从抄送
    列表中删除,除非你有足够的理由这么做。也不要只回复到邮件列表。请习惯于同
    一封邮件接收两次(一封来自发送者一封来自邮件列表),而不要试图通过添加一
    些奇特的邮件头来解决这个问题,人们不会喜欢的。

    记住保留你所回复内容的上下文和源头。在你回复邮件的顶部保留“某某某说到……”
    这几行。将你的评论加在被引用的段落之间而不要放在邮件的顶部。

    如果你在邮件中附带补丁,请确认它们是可以直接阅读的纯文本(如
    Documentation/SubmittingPatches文档中所述)。内核开发者们不希望遇到附件
    或者被压缩了的补丁。只有这样才能保证他们可以直接评论你的每行代码。请确保
    你使用的邮件发送程序不会修改空格和制表符。一个防范性的测试方法是先将邮件
    发送给自己,然后自己尝试是否可以顺利地打上收到的补丁。如果测试不成功,请
    调整或者更换你的邮件发送程序直到它正确工作为止。

    总而言之,请尊重其他的邮件列表订阅者。

    三、Linux 3.19 Kernel新功能一览

    Linux
    3.18

    2014
    年发布的最后一个内核版本,而合并窗口刚刚关闭的
    Linux
    3.19
    理所当然成为
    2015
    年发布的一个内核。根据刚刚发布的
    3.19r1,Phoronix
    例举了新版的新功能:AMDKFD
    HSA(异构系统架构)内核驱动;改进英特尔
    Skylake
    支持;
      Radeon
    DRM
    加入动态电源管理风扇控制,改进风扇控制和减少噪音;Nouveau
    驱动开始了支持
    NVIDIA
    Maxwell
    GPU
    架构的工作;Btrfs
    文件系统改进
    RAID5
    /
    RAID6
    支持;SquashFS
    支持
    LZ4
    压缩;
    减少
    Flash
    友好文件系统的启动时间;改进多重触摸支持;改进
    ThinkPad
    和戴尔笔记本支持等等。

    关于通用音频驱动程序的问题,通过《如何参与linux 内核开发》、《Linux 3.19 Kernel新功能一览》等文章的解答希望已经帮助到您了!如您想了解更多关于通用音频驱动程序的相关信息,请到本站进行查找!

    爱资源吧版权声明:以上文中内容来自网络,如有侵权请联系删除,谢谢。

    通用音频驱动程序
    Firefox 火狐浏览器终于获得原生翻译功能 手机的文件夹为什么全是英文?哪些是可以删除的?今天总算清楚了