zoukankan      html  css  js  c++  java
  • linux内核分析实践二学习笔记

    Linux实践二——内核模块的编译

    标签(空格分隔): 20135328陈都


    理解内核的作用

    Linux内核[kernel]是整个操作系统的最底层,它负责整个硬件的驱动,以及提供各种系统所需的核心功能,包括防火墙机制、是否支持LVM或Quota等文件系统等等,如果内核不认识某个最新的硬件,那么硬件也就无法被驱动,你也就无法使用该硬件。
    计算机真正工作的东西其实是硬件,例如数值运算要使用到CPU、数据储存要使用到硬盘、图形显示会用到显示适配器、音乐发声要有音效芯片、连接Internet 可能需要网络卡等等。内核就是控制这些芯片如何工作。

    • 内核各个模块之间的映射

    编写内核模块代码

    image_1ajemqt5sias7vo185ul6s49fm.png-132.6kB
    image_1ajemuk65bol3vb9fep55pql1j.png-18.9kB

    编译模块

    makefile
    image_1ajg5kugtkqm13bpfap1m991n7c2t.png-57.2kB

    • 执行一下 make 命令
      image_1ajg5moq8116cn2v1jqq5431mql3a.png-202.9kB

    实际操作

    加载

    • sudo insmod 模块名.ko
      image_1ajg5sncvsehbebjka11v46013n.png-35.9kB

    测试

    • dmesg
      image_1ajg5v6qlnrv1q4qa3h11kc8q844.png-502.1kB

    卸载模块

    -sudo rmmod 模块名
    运行完毕后再运行dmesg
    image_1ajg63sit1avd1mgh1jo7obeahp4h.png-62.8kB
    成功

    需要注意的问题

    • 如何查看内核版本模块版本号
      image_1ajg67mgl1gig1gcu1oe618m6kpg4u.png-113.5kB

    • 文件名不要起module这种系统有定义的名字

  • 相关阅读:
    ndoejs解析req,伪造http请求
    ndoejs创建多重文件夹
    路径path的正则通配符-nodejs
    例题1.5 快速排序
    例题1.3 整数划分问题
    sdcf day4 qaq模拟赛总结
    P1168 中位数
    浅谈LCA
    sdcf day1 qwq比赛题解
    2019山东夏令营划水记
  • 原文地址:https://www.cnblogs.com/cdcode/p/5522329.html
Copyright © 2011-2022 走看看