码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Linux操作系统——Linux 内核源码介绍&内核升级


    文章目录

    • 23 Linux 内核源码介绍&内核升级
      • 23.1 为什么要阅读linux 内核?
      • 23.2 linux0.01 内核源码
        • 23.2.1 基本介绍
        • 23.2.2 linux0.01 内核源码目录&阅读
      • 23.3 linux 内核最新版和内核升级
        • 23.3.1 内核地址:https[://www.kernel.org/](http://www.kernel.org/) 查看
        • 23.3.2 下载&解压最新版
        • 23.3.3 linux 内核升级应用实例
        • 23.3.4 具体步骤

    23 Linux 内核源码介绍&内核升级

    23.1 为什么要阅读linux 内核?

    1. 爱好,就是喜欢 linux(黑客精神)

    2. 想深入理解 linux 底层运行机制,对操作系统有深入理解

    3. 阅读 Linux 内核,你会对整个计算机体系有一个更深刻的认识。作为开发者,不管你从事的是驱动开发,应用开发还是后台开发,你都需要了解操作系统内核的运行机制,这样才能写出更好的代码。

    4. 作为开发人员不应该只局限在自己的领域,你设计的模块看起来小,但是你不了解进程的调用机制,你不知道进程为什么会阻塞、就绪、执行几个状态。那么很难写出优质的代码。

    5. 找工作面试的需要

    作为有追求的程序员,还是应该深入的了解一个操作系统的底层机制,(比如 linux/unix) 最好是源码级别的,这样你写多线程高并发程序,包括架构,优化,算法等,高度不一样的,当然老韩也不是要求小伙伴儿把一个非常庞大的 Linux 内核每一行都读懂。我觉得。你至少能看几个核心的模块。

    23.2 linux0.01 内核源码

    23.2.1 基本介绍

    Linux 的内核源代码可以从网上下载, 解压缩后文件一般也都位于 linux 目录下。内核源代码有很多版本,可以从

    linux0.01 内核入手,总共的代码 1w 行左右, 最新版本 5.9.8 总共代码超过 700w 行,非常庞大.

    内核地址:https://www.kernel.org/

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dIU0ytsk-1659016464938)(../../../Pictures/Linux/wps340.png)]

    很多人害怕读 Linux 内核,Linux 内核这样大而复杂的系统代码,阅读起来确实有很多困难,但是也不象想象的那么高不可攀。老韩建议可以从 linux0.01 入手。

    23.2.2 linux0.01 内核源码目录&阅读

    阅读内核源码技巧

    1. linux0.01 的阅读需要懂 c 语言

    2. 阅读源码前,应知道 Linux 内核源码的整体分布情况。现代的操作系统一般由进程管理、内存管理、文件系统、驱动程序和网络等组成。Linux 内核源码的各个目录大致与此相对应.

    3. 在阅读方法或顺序上,有纵向与横向之分。所谓纵向就是顺着程序的执行顺序逐步进行;所谓横向,就是按模块进行。它们经常结合在一起进行。

    4. 对于 Linux 启动的代码可顺着 Linux 的启动顺序一步步来阅读;对于像内存管理部分,可以单独拿出来进行阅读分析。实际上这是一个反复的过程,不可能读一遍就理解

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zhFH9LKi-1659016464938)(../../../Pictures/Spring/wps341.png)]

    linux 内核源码阅读&目录介绍&main.c 说明

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WEwPtui8-1659016464938)(../../../Pictures/Linux/wps343.png)]

    23.3 linux 内核最新版和内核升级

    23.3.1 内核地址:https😕/www.kernel.org/ 查看

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6ho3gnSl-1659016464939)(../../../Pictures/Spring/wps344.png)]

    23.3.2 下载&解压最新版

    wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.8.16.tar.gz tar -zxvf linux-5.8.16.tar.gz

    23.3.3 linux 内核升级应用实例

    将 Centos 系统从 7.6 内核升级到 7.8 版本内核(兼容性问题)

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-N2QaR1wc-1659016464939)(../../../Pictures/Spring/wps346.png)]

    23.3.4 具体步骤

    uname -a // 查看当前的内核版本

    yum info kernel -q //检测内核版本,显示可以升级的内核yum update kernel //升级内核

    yum list kernel -q //查看已经安装的内核

  • 相关阅读:
    南瓜科学好奇盒子上新 打造新时代玩具总动员
    day09-Tomcat01
    mysql 求分组中位数、环比、同比、中位数的环比、同比
    【RabbitMQ】docker rabbitmq集群 docker搭建rabbitmq集群
    某保险企业容器云 PaaS 平台实践经验分享
    微信公众平台-服务号
    css技巧分享(优惠券缺角样式实现)
    聊聊分布式架构02——Http到Https
    Nacos安装指南
    优化系统报错提示信息,提高人机交互(三)
  • 原文地址:https://blog.csdn.net/m0_61163395/article/details/126045290
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号