2017-2018-1 20179209《Linux内核原理与分析》第十周作业
设备与模块
设备分类
块设备
块设备可以以块为单位寻址,块大小随设备不同而不同;设备通常支持重定位操作,也就是对数据的随机访问。块设备的例子有外存,光盘等。
字符设备
字符设备不可寻址,仅供数据的流式访问,就是一个个字符,或是一个个字节。字符设备的例子有键盘、鼠标、打印机等。
网络设备
网络设备最常见的类型有时也以以太网设备来称呼,它提供了对网络的访问,这是通过一个物理适配器和一种特定的协议进行的。网络设备打破了Unix的“所有东西都是文件”的设计原则,它不是通过设备节点来访问,而是通过套接字API这样的特殊接口来访问。
模块
- Linux是“单块内核”(整个系统内核都运行于一个单独的保护域中)的操作系统。但是Linux内核是模块化组成的,它允许内核在运行时动态地向其中或从中删除代码。这些代码(包括相关的子例程、数据、函数入口或出口)被一并组合在一个单独的二进制镜像中,即所谓的可装载内核模块中,或简称为模块。支持模块的好处是基本内核镜像可以尽可能的小,因为可选功能和驱动程序可以利用模块形式再提供。
- 模块初始化函数必须符合
int my_init(void)的形式。static可有可无,一般情况下,初始化函数不会被外部函数直接调用,所以可以用static标记;int函数会返回一个int型数值(0或非0)。init函数的主要作用有注册资源、初始化硬件、分配数据结构等。 - 模块初始化函数是模块入口点,exit函数是模块的出口函数,它有module_exit()例程注册到系统,在模块从内存卸载时调用。退出函数的作用是清理资源,保证硬件的一致性。它必须符合
void my_exit(void)的形式。同样它也可以标记为static。
构建模块
放在内核源代码树中
这个方式会把你所编写的模块彻底放入linux内核,使之成为内核源代码树的一部分。不同功能的模块置于不同的位置,设备驱动程序存放于内核源码树根目录下/drivers的子目录下。
放在内核代码外
除了直接将模块添加到内核源码树这种一劳永逸的做法,还可以放在内核代码之外,把模块加载到在自己的源代码树目录下。这种方式是将模块源代码置于home目录下的某个地方,而前一种方式是直接将源代码存于/usr/src/linux下!
设备模型
kobject、ktype、kset之间的关系:kobject引入了诸如引用计数、父子关系和对象名称等基本对象道具,并且是一个统一的方式提供这些功能,它与ktype对象关联,ktype有struct kobj_type结构体表示,在kobject中,ktype字段指向该对象。kobject又归入了称作kset的集和,kset集和由struct kset结构体表示。

虚拟文件系统(sysfs)
sysfs为用户提供了kobject对象层次结构的试图。帮助用户能以一个简单文件系统的方式来观察系统中各种设备的拓扑结构。借助属性结构对象,kobject可以用导出文件的方式,将内核变量提供给用户读取写入。
可移植性
Linux之所以支持很多体系结构是因为在arch目录下存在对不同体系结构所特有的代码目录。

2017-2018-1 20179209《Linux内核原理与分析》第十周作业的更多相关文章
- 20169212《Linux内核原理与分析》第二周作业
<Linux内核原理与分析>第二周作业 这一周学习了MOOCLinux内核分析的第一讲,计算机是如何工作的?由于本科对相关知识的不熟悉,所以感觉有的知识理解起来了有一定的难度,不过多查查资 ...
- 20169210《Linux内核原理与分析》第二周作业
<Linux内核原理与分析>第二周作业 本周作业分为两部分:第一部分为观看学习视频并完成实验楼实验一:第二部分为看<Linux内核设计与实现>1.2.18章并安装配置内核. 第 ...
- 2018-2019-1 20189221 《Linux内核原理与分析》第九周作业
2018-2019-1 20189221 <Linux内核原理与分析>第九周作业 实验八 理理解进程调度时机跟踪分析进程调度与进程切换的过程 进程调度 进度调度时机: 1.中断处理过程(包 ...
- 2017-2018-1 20179215《Linux内核原理与分析》第二周作业
20179215<Linux内核原理与分析>第二周作业 这一周主要了解了计算机是如何工作的,包括现在存储程序计算机的工作模型.X86汇编指令包括几种内存地址的寻址方式和push.pop.c ...
- 2019-2020-1 20199329《Linux内核原理与分析》第九周作业
<Linux内核原理与分析>第九周作业 一.本周内容概述: 阐释linux操作系统的整体构架 理解linux系统的一般执行过程和进程调度的时机 理解linux系统的中断和进程上下文切换 二 ...
- 2019-2020-1 20199329《Linux内核原理与分析》第二周作业
<Linux内核原理与分析>第二周作业 一.上周问题总结: 未能及时整理笔记 Linux还需要多用 markdown格式不熟练 发布博客时间超过规定期限 二.本周学习内容: <庖丁解 ...
- 2019-2020-1 20209313《Linux内核原理与分析》第二周作业
2019-2020-1 20209313<Linux内核原理与分析>第二周作业 零.总结 阐明自己对"计算机是如何工作的"理解. 一.myod 步骤 复习c文件处理内容 ...
- 2018-2019-1 20189221《Linux内核原理与分析》第一周作业
Linux内核原理与分析 - 第一周作业 实验1 Linux系统简介 Linux历史 1991 年 10 月,Linus Torvalds想在自己的电脑上运行UNIX,可是 UNIX 的商业版本非常昂 ...
- 《Linux内核原理与分析》第一周作业 20189210
实验一 Linux系统简介 这一节主要学习了Linux的历史,Linux有关的重要人物以及学习Linux的方法,Linux和Windows的区别.其中学到了LInux中的应用程序大都为开源自由的软件, ...
- 2018-2019-1 20189221《Linux内核原理与分析》第二周作业
读书报告 <庖丁解牛Linux内核分析> 第 1 章 计算工作原理 1.1 存储程序计算机工作模型 1.2 x86-32汇编基础 1.3汇编一个简单的C语言程序并分析其汇编指令执行过程 因 ...
随机推荐
- 解决dubbo问题:forbid consumer(2)
线下环境经常出现类似这种异常: com.alibaba.dubbo.rpc.RpcException: Forbid consumer 10.0.53.69 access service com.ku ...
- 尝试一下markdown
尝试一下markdown 简单介绍以下几个宏: __VA_ARGS__是一个可变参数的宏,这个可变参数的宏是新的C99规范中新增的,目前似乎只有gcc支持(VC6.0的编译器不支持).宏前面加上##的 ...
- Android学习(六) 文本框边框
BorderTextViews.java package xiaosi.BorderTextView; import android.content.Context; import android.g ...
- STL源代码剖析 容器 stl_list.h
本文为senlie原创.转载请保留此地址:http://blog.csdn.net/zhengsenlie list ----------------------------------------- ...
- storage事件 js页面间通信
1.概述 https://developer.mozilla.org/en-US/docs/Web/Events/storage localStorage 或者sessionStorage存储的数据发 ...
- kafka 0.8.1 新producer 源码简单分析
1 背景 最近由于项目需要,需要使用kafka的producer.但是对于c++,kafka官方并没有很好的支持. 在kafka官网上可以找到0.8.x的客户端.可以使用的客户端有C版本客户端,此客户 ...
- .Net Framework 与 SQL Server 2005 混乱的时间最大最小值
Net Framewrok 中,DateTime.MinValue => 0001/01/01 00:00:00SqlDateTime.MinValue.Value => 1753/01 ...
- 制作rpm包报错问题
在编译生成rpm包时,报错 ERROR 0001: file '***' contains a standard rpath '/usr/lib64'这是由于代码理由hardcode导致,解决问题有两 ...
- 在CentOS 5下安装中文五笔
由于习惯使用五笔,需要在CentOS5 下安装中文五笔输入法. 刚装好的 CentOS 5默认是没有中文输入 法的.只能显示英文,有中文字符的文件名呈现乱码. 首先挂载CentOS的系统安装盘,在安装 ...
- php SSL certificate problem: unable to get local issuer certificate
加上 curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE); 就可以了 百度语音的demo: <?php header("Content-type ...