码农知识堂 - 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 //查看已经安装的内核

  • 相关阅读:
    jquery 事件和事件对象
    【驱动开发】创建设备节点、ioctl函数的使用
    指针深入了解——函数指针,函数指针数组,指向函数指针数组的指针。
    springboot实战(四)之整合mybatis-plus
    实现稳定可靠的消息通信:Paho MQTT Android
    golang正则regexp包使用-04-使用正则替换(ReplaceAll(),ReplaceAllLiteral(),ReplaceAllFunc())
    LeetCode—1. 两数之和—python
    SaaSBase:K2是什么?
    【日常记录】Connection reset
    Git——IDEA集成Git(详细)
  • 原文地址:https://blog.csdn.net/m0_61163395/article/details/126045290
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号