linux实验3编写内核模块,实验2.3_内核模块_实验报告

实验报告

题目: 内核模块实验

1、实验目的

模块是Linux系统的一种特有机制,可用以动态扩展操作系统内核功能。编写实现某些特定功能的模块,将其作为内核的一部分在管态下运行。本实验通过内核模块编程在/porc文件系统中实现系统时钟的读操作接口。

2、实验内容

设计并构建一个在/proc文件系统中的内核模块clock,支持read()操作,read()返回值为一字符串,其中包块一个空格分开的两个子串,分别代表http://www.doczj.com/doc/2633a01011a6f524ccbff121dd36a32d7375c7b3.html_sec和http://www.doczj.com/doc/2633a01011a6f524ccbff121dd36a32d7375c7b3.html_usec。

3、实验原理

Linux模块是一些可以作为独立程序来编译的函数和数据类型的集合。在装载这些模块时,将它的代码链接到内核中。Linux模块可以在内核启动时装载,也可以在内核运行的过程中装载。如果在模块装载之前就调用了动态模块的一个函数,那么这次调用将会失败。如果这个模块已被加载,那么内核就可以使用系统调用,并将其传递到模块中的相应函数。

4、实验步骤

编写内核模块

文件中主要包含init_module(),cleanup_module(),proc_read_clock()三个函数。其中init_module(),cleanup_module()负责将模块从系统中加载或卸载,以及增加或删除模块在/proc中的入口。read_func()负责产生/proc/clock被读时的动作。

内核编译部分过程:

0f3388505c245a4c38b0f60b879a4ed2.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/556784.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java 8 Stream Api 中的 peek、map、foreach区别

#1. 前言 我在Java8 Stream中讲述了 Java 8 Stream API 的一些内容。今天再看一下peek、map、foreach区别。 2. peek peek 操作接收的是一个 Consumer 函数。顾名思义 peek 操作会按照 Consumer 函数提供的逻辑去消费流中的每一个元素,同时有可能改变元素内部的一…

linux驱动日志格式,( 转)嵌入式Linux驱动Makefile

天气: 晴朗心情: 高兴( 转)嵌入式Linux驱动开发笔记1.1 模块的编译Linux驱动一般以模块module的形式来加载,首先需要把驱动编译成模块的形式。简单的例子,Begin of hello.c file#include #include #include static int __init test_init(void){pr…

Java 8 Stream 流用法及语法

Java 8 Stream 流用法 1.简介 Stream流 最全的用法 Stream 能用来干什么?用来处理集合,通过 使用Stream API 对集合数据进行操作,就类似于使用 SQL 执行的数据库查询,Stream API 提供了一种高效且易于使用的处理数据的方式 为什…

wapper打成linux服务,Wrapper配置详解及高级应用(转)

转自:http://286.iteye.com/blog/1921414将一个简单的程度如HelloWorld 的应用包装秤Wrapper 服务并不复杂,甚至可以认为非常简单。但是实际项目应用过程中我们的程序一般较庞大,运行环境也较复杂。通过Wrapper 配置文件的分析与配置进一步了…

Java8 Stream 流机制和 Lambda 表达式

一、Stream 流介绍与使用场景 Stream 流介绍 java8 中的stream 与InputStream和OutputStream是完全不同的概念, stream 是用于对集合迭代器的增强,使之完成能够完成更高效的聚合操作(过滤、排序、统计分组)或者大批量数据操作。stream 与 L…

嵌入式linux安装qt,树莓派上安装qt

在树莓派上安装了官方的raspbian系统。为了在能在上面开发程序,在系统上安装了qt4 。参考链接http://qt-project.org/wiki/apt-get_Qt4_on_the_Raspberry_Piapt-getFirstly I got the development tools needed by Qt Creator in the hope it would be less heavy f…

linux guide编译器,GUIDE编译器-GUIDE编程工具-GUIDE编译器下载 v1.0.2官方版-完美下载...

GUIDE编译器是款跨平台的开发环境编程工具,支持C/C 和 Pascal三种语言,具有跨平台、操作简单、跨编程语言和单文件编译调试等特点,为用户提供单文件编译、调试和运行的环境。GUIDE编译器特色1、跨平台: GUIDE 可在 linux 平台和 w…

MySQL事务隔离级别和实现原理

经常提到数据库的事务,那你知道数据库还有事务隔离的说法吗,事务隔离还有隔离级别,那什么是事务隔离,隔离级别又是什么呢?本文就帮大家梳理一下。 MySQL 事务 本文所说的 MySQL 事务都是指在 InnoDB 引擎下&#xff0…

Linux如何清除last信息,linux清除last、lastb和history记录

清除登录系统成功的记录,也就是last命令看到的记录[rootlocalhost root]# echo ""> /var/log/wtmp 此文件默认打开时乱码的,里面可以看到ip等等信息[rootlocalhost root]# echo "">/var/log/wtmp[rootlocalhost root]# last此…

超级全面的MySQL优化面试解析

推荐阅读(点击即可跳转阅读) 1. SpringBoot内容聚合 2. 面试题内容聚合 3. 设计模式内容聚合 4. Mybatis内容聚合 5. 多线程内容聚合 超级全面的MySQL优化面试解析 本文概要 概述 为什么要优化 系统的吞吐量瓶颈往往出现在数据库的访问速度上随着应用程序的运行&#…

mysql linux导入csv主键,MySQL导入csv文件内容到Table及数据库的自增主键设置

写在前面目的是测试将csv文件内容导入到表中, 同时记录一下自增主键的设置.测试采用MySQL8.0.新建表customer_info如下, 未设置主键.修改上表, 添加主键id, 并设置为自增.ALTER TABLE customer_info ADD COLUMN id INT AUTO_INCREMENT NOT NULL PRIMARY KEY;导入步骤1.为了模拟…

mysql 优化方法有哪些?

MySQL索引 MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTree索引,因为这…

linux shell脚本判断文件行数,判断文件是否存在的shell脚本代码

实现代码一、#!/bin/sh# 判断文件是否存在# lilSzqFnk:www.jb51.net# date:2013/2/28myPath"/var/log/httpd/"myFile"/var /log/httpd/access.log"# 这里的-x 参数判断$myPath是否存在并且是否具有可执行权限if [ ! -x "$myPat…

Linux下多功能编辑器,Linux下的编辑器——vi大全

xp 交换两个字符位置ddp 上下两行调换J 上下两行合并dG 删除所有行d$ 从当前位置删除到行尾y$ 从当前位置复制到行尾, 如果要粘贴到其他地方 p就可以了:ab string strings例如 ":ab usa United States of America" ,当你在文见里插入 usa 时United States of America…

Mysql中几种插入效率的实例对比

前言 最近因为工作的需要,要在Mysql里插入大量的数据大约1000w,目测会比较耗时。所以现在就像测试一下到底用什么插入数据的方法比较快捷高效。 下面就针对每一种方法分别测试不同数据量下的插入效率。 测试数据库的基本与操作如下: mysq…

linux第三方模块参数,nginx 的第三方模块ngx_http_accesskey_module 来实现下载文件的防盗链步骤(linux系统下)...

nginx 的第三方模块ngx_http_accesskey_module 来实现下载文件的防盗链步骤(linux系统下),安装Nginx和HttpAccessKeyModule模块(参考LNMP环境搭建:第一步:在/usr/local/src/下下载模块压缩包:wget http://wiki.nginx.org/images/5…

Java基础面试题与答案

八种基本数据类型以及包装类 八种基本数据类型默认值?大小?范围区间?包装类的缓存区间? 序号类型名称默认值大小最小值最大值包装类缓冲区间1booleanfalse1B0(false)1(true)Boolean无2byte(byte)01B-128127Byte-128 ~ 1273char‘…

学习vim的linux游戏,PacVim:一个学习 vim 命令的命令行游戏 | Linux 中国

作者 | Sk 译者 | geekpi 💎 💎 共计翻译:735 篇 贡献时间:1691 天你好,Vim用户!今天,我偶然发现了一个很酷的程序来提高 Vim 的使用技巧。Vim 是编写和编辑代码的绝佳编辑器。然而&#x…

Java多线程面试题与答案

线程 线程与进程的区别是什么? 进程指的是应用程序在操作系统中执行的副本(系统分配资源的最小单位),线程是程序执行的最小单位;进程使用独立的数据空间,而线程共享进程的数据空间。 线程状态图 多线程会…

用linux集成电路版图设计,集成电路版图设计报告.doc

集成电路版图设计报告集成电路版图设计实验报告班 级:微电子1302班学 号:1306090226姓 名:李根日 期:2016年1月10日一:实验目的:熟悉IC设计软件Cadence Layout Editor的使用方法,掌握集成电路原…