Loadable Kernel Modules

  1. ● LKMs (Loadable Kernel Modules)
  2. ● Pre-compiled binary pieces
  3. ● Each piece is called “module”
  4. ● Can be loaded at runtime
  5. ● Extend the functionality of the system
  6. ● Enforce modularity
  7. ○ Easy to develop, debug and maintain
  8. ○ No need to rebuild the kernel
  9. ● Can save memory (load only the necessary)

What are LKMs used for

  1. ● Everything that is not required in the core
  2. ● 6 main categories
  3. ○ Device drivers
  4. ○ File system drivers
  5. ■ Implementation of a specific file system
  6. ○ System calls
  7. ○ Network stack
  8. ■ Interprets a network protocol
  9. ○ TTY line disciplines
  10. ○ Executable interpreters for the supported formats

Character Device Driver

  1. ● Read or Write a byte at a time
  2. ● Accessed by a stream of bytes
  3. ● Usually permit only sequential access
  4. ● Implement: open, close, read, write
  5. ● Similar to regular files
  6. ● Examples:
  7. ○ /dev/console
  8. ○ /dev/ttyS0

Block Device Driver

  1. ● Read or Write block-size multiples
  2. ● Permit random access
  3. ● Accessed in the /dev/
  4. ● File systems can be mount on top
  5. ● Handle I/O operations
  6. ● Differ with the char module in the way the manage data inside the kernel
  7. ● Different interface to the kernel than char modules

Network Drivers

  1. ● Handle any network transaction made
  2. ● Transfer packets of data
  3. ● Independent of a specific protocol
  4. ● Reception and Transmission instead of Read/Write
  5. ● Usually the interface is a hardware device but it can also be software like the loopback
  6. ○ loopback is used to communicate with the servers that run in the same node, debugging etc.
  7. ● They are not mapped to the file system; they are identified by a name

Praktikum Kernel Programming
University of Hamburg
Scientific Computing
Winter semester 2014/2015

LKMs:Loadable Kernel Modules相关推荐

  1. Ubuntu系统安装CUDA或NVIDIA驱动后出现循环登录问题的Solution (附:building kernel modules error)

    写在前面: 由于各种原因,在通过CUDA安装显卡驱动或者直接通过NVIDIA驱动程序安装显卡驱动后,有时会出现显卡驱动崩溃的情况,而这种情况的表现形式就是循环登陆(或附带屏幕分辨率异常),这时就需要进 ...

  2. 基于树莓派4b(raspberry pi 4b)内核编译流程,交叉编译环境搭建,loadable kernel module (LKM)编译方法

    树莓派4b编译Linux内核&交叉编译环境的搭建 使用树莓派4b编译内核很简单,具体可以参考以下树莓派官网中关于Build the Kernel的内容: https://www.raspber ...

  3. 成功解决 ERROR: An error occurred while performing the step: “Building kernel modules“. See  /var/log/nv

    成功解决 ERROR: An error occurred while performing the step: "Building kernel modules". See /v ...

  4. Android之如何解决Android studio运行出现的HAX kernel modules is not installed

    HAX kernel modules is not installed 很久之前,我安装了Android studio,运行时控制台打印出这个,emulator:ERROR:x86 emulation ...

  5. Linux内核学习(五):linux kernel源码结构以及makefile分析

    Linux内核学习(五):linux kernel源码结构以及makefile分析 前面我们知道了linux内核镜像的生成.加载以及加载工具uboot. 这里我们来看看linux内核的源码的宏观东西, ...

  6. Moblin: kernel编译和rpm打包(一):更换kernel

    通过moblin MIC2制作的usb启动,有两种方式,一种是liveOS的,直接boot,一种是象传统安装Linux OS的方式在设备中安装.我想将moblin2安装在MID(menlow)上,需要 ...

  7. yolov5 v3.0训练报错: torch.nn.modules.module.ModuleAttributeError: ‘BatchNorm2d‘ object has no attribute

    欢迎大家关注笔者,你的关注是我持续更博的最大动力 原创文章,转载告知,盗版必究 yolov5 v3.0版本训练报错:torch.nn.modules.module.ModuleAttributeErr ...

  8. Linux系统编程:验证kernel内核缓存区大小->4096字节

    Linux系统编程:验证kernel内核缓存区大小->4096字节 李四老师 于 2018-04-04 00:40:04 发布 2778 收藏 2 分类专栏: [Linux编程] [C/C++编 ...

  9. Linux内核学习(七):linux kernel内核启动(一):概述篇

    Linux内核学习(七):linux kernel内核启动(一):概述篇 这一篇让我们来大致的了解一下Linux内核的启动过程 这篇文章不涉及源码,重在让你知道这个linux内核的启动过程,源码详细的 ...

最新文章

  1. 最通俗的机器学习介绍
  2. LINUX共享内存使用常见陷阱与分析(转)
  3. 复现经典:《统计学习方法》第18章 概率潜在语义分析
  4. EntityFramework Core 3.x初级篇发布
  5. oracle rman 用户,对Oracle数据库进行RMAN备份的Oracle数据库用户权限
  6. 别傻了,人家离职你也离
  7. 百度吉利成立的汽车公司名称曝光,百度持股55%
  8. 女生在施工单位项目部上工作,是怎样一种体验?
  9. 展示浏览 java_java利用 cookie 进行展示你所浏览过的的商品
  10. 解决办法:C向Python传递字串数组导致进程崩溃
  11. 8月7日晚八点分享-推荐系统面试/概览
  12. 小米手机 更换app图标失败的解决方法
  13. 20种在学习编程的同时也可以在线赚钱的方法
  14. docker 删除悬空镜像
  15. 发起http请求raw格式
  16. 购买JSP空间上当的其他网友登载的地址
  17. 图片格式与设计那点事儿
  18. 【自省】线程池里的定时任务跑的可欢了,可咋停掉特定的任务?
  19. VUE“粘性”阅读进度条
  20. 肯德基餐厅查询Python代码

热门文章

  1. Spring框架----IOC的概念和作用之工厂模式
  2. h5页面调用相机功能
  3. Linux 文件与目录管理 | 菜鸟笔记收录
  4. C++学习笔记(九)——引用
  5. IBM MQ Explore使用
  6. 微信小程序Server端环境配置
  7. R 多变量数据预处理_超长文详解:C语言预处理命令
  8. c语言400行小游戏,400行代码编C语言控制台界版2048游戏,编写疯子一样的C语言代码...
  9. python 开闭原则_Python 装饰器@,对函数进行功能扩展操作示例【开闭原则】
  10. 设计灵感|元素拼接的海报到底好看在哪里?