LKMs:Loadable Kernel Modules
Loadable Kernel Modules
- ● LKMs (Loadable Kernel Modules)
- ● Pre-compiled binary pieces
- ● Each piece is called “module”
- ● Can be loaded at runtime
- ● Extend the functionality of the system
- ● Enforce modularity
- ○ Easy to develop, debug and maintain
- ○ No need to rebuild the kernel
- ● Can save memory (load only the necessary)
What are LKMs used for
- ● Everything that is not required in the core
- ● 6 main categories
- ○ Device drivers
- ○ File system drivers
- ■ Implementation of a specific file system
- ○ System calls
- ○ Network stack
- ■ Interprets a network protocol
- ○ TTY line disciplines
- ○ Executable interpreters for the supported formats
Character Device Driver
- ● Read or Write a byte at a time
- ● Accessed by a stream of bytes
- ● Usually permit only sequential access
- ● Implement: open, close, read, write
- ● Similar to regular files
- ● Examples:
- ○ /dev/console
- ○ /dev/ttyS0
Block Device Driver
- ● Read or Write block-size multiples
- ● Permit random access
- ● Accessed in the /dev/
- ● File systems can be mount on top
- ● Handle I/O operations
- ● Differ with the char module in the way the manage data inside the kernel
- ● Different interface to the kernel than char modules
Network Drivers
- ● Handle any network transaction made
- ● Transfer packets of data
- ● Independent of a specific protocol
- ● Reception and Transmission instead of Read/Write
- ● Usually the interface is a hardware device but it can also be software like the loopback
- ○ loopback is used to communicate with the servers that run in the same node, debugging etc.
- ● 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相关推荐
- Ubuntu系统安装CUDA或NVIDIA驱动后出现循环登录问题的Solution (附:building kernel modules error)
写在前面: 由于各种原因,在通过CUDA安装显卡驱动或者直接通过NVIDIA驱动程序安装显卡驱动后,有时会出现显卡驱动崩溃的情况,而这种情况的表现形式就是循环登陆(或附带屏幕分辨率异常),这时就需要进 ...
- 基于树莓派4b(raspberry pi 4b)内核编译流程,交叉编译环境搭建,loadable kernel module (LKM)编译方法
树莓派4b编译Linux内核&交叉编译环境的搭建 使用树莓派4b编译内核很简单,具体可以参考以下树莓派官网中关于Build the Kernel的内容: https://www.raspber ...
- 成功解决 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 ...
- Android之如何解决Android studio运行出现的HAX kernel modules is not installed
HAX kernel modules is not installed 很久之前,我安装了Android studio,运行时控制台打印出这个,emulator:ERROR:x86 emulation ...
- Linux内核学习(五):linux kernel源码结构以及makefile分析
Linux内核学习(五):linux kernel源码结构以及makefile分析 前面我们知道了linux内核镜像的生成.加载以及加载工具uboot. 这里我们来看看linux内核的源码的宏观东西, ...
- Moblin: kernel编译和rpm打包(一):更换kernel
通过moblin MIC2制作的usb启动,有两种方式,一种是liveOS的,直接boot,一种是象传统安装Linux OS的方式在设备中安装.我想将moblin2安装在MID(menlow)上,需要 ...
- yolov5 v3.0训练报错: torch.nn.modules.module.ModuleAttributeError: ‘BatchNorm2d‘ object has no attribute
欢迎大家关注笔者,你的关注是我持续更博的最大动力 原创文章,转载告知,盗版必究 yolov5 v3.0版本训练报错:torch.nn.modules.module.ModuleAttributeErr ...
- Linux系统编程:验证kernel内核缓存区大小->4096字节
Linux系统编程:验证kernel内核缓存区大小->4096字节 李四老师 于 2018-04-04 00:40:04 发布 2778 收藏 2 分类专栏: [Linux编程] [C/C++编 ...
- Linux内核学习(七):linux kernel内核启动(一):概述篇
Linux内核学习(七):linux kernel内核启动(一):概述篇 这一篇让我们来大致的了解一下Linux内核的启动过程 这篇文章不涉及源码,重在让你知道这个linux内核的启动过程,源码详细的 ...
最新文章
- 最通俗的机器学习介绍
- LINUX共享内存使用常见陷阱与分析(转)
- 复现经典:《统计学习方法》第18章 概率潜在语义分析
- EntityFramework Core 3.x初级篇发布
- oracle rman 用户,对Oracle数据库进行RMAN备份的Oracle数据库用户权限
- 别傻了,人家离职你也离
- 百度吉利成立的汽车公司名称曝光,百度持股55%
- 女生在施工单位项目部上工作,是怎样一种体验?
- 展示浏览 java_java利用 cookie 进行展示你所浏览过的的商品
- 解决办法:C向Python传递字串数组导致进程崩溃
- 8月7日晚八点分享-推荐系统面试/概览
- 小米手机 更换app图标失败的解决方法
- 20种在学习编程的同时也可以在线赚钱的方法
- docker 删除悬空镜像
- 发起http请求raw格式
- 购买JSP空间上当的其他网友登载的地址
- 图片格式与设计那点事儿
- 【自省】线程池里的定时任务跑的可欢了,可咋停掉特定的任务?
- VUE“粘性”阅读进度条
- 肯德基餐厅查询Python代码
热门文章
- Spring框架----IOC的概念和作用之工厂模式
- h5页面调用相机功能
- Linux 文件与目录管理 | 菜鸟笔记收录
- C++学习笔记(九)——引用
- IBM MQ Explore使用
- 微信小程序Server端环境配置
- R 多变量数据预处理_超长文详解:C语言预处理命令
- c语言400行小游戏,400行代码编C语言控制台界版2048游戏,编写疯子一样的C语言代码...
- python 开闭原则_Python 装饰器@,对函数进行功能扩展操作示例【开闭原则】
- 设计灵感|元素拼接的海报到底好看在哪里?