linux内核模块笔记】的更多相关文章

主题: 1. 嵌入式基础知识 2. linux内核介绍 3. 内核的编译和安装(x86) 4. 第一个模块 5. 模块的相关工具 6. 模块的符号导出 7. 模块的參数 1.看linux/module.h. 这个文件所在的位置:/home/zshh/work/driver/kernel/linux-3.5/include/linux 重点看module结构体(模块的计数就在module结构体中) 再module这个结构体中包括模块的状态,模块的初始化话函数指针的定义, 还由exit函数指针的定义…
简介 今天整理文件整理出了好多年前学习linux的笔记 就整理下发布在博客上怕文件形式会误删. linux入门基础对于新手而言不推荐看书!!不推荐看书!!(大牛跳过)先看视频看linuxcast的视频讲的不错下方链接即可下载  等视频看完再去跟着书的目录学一遍或者学一章内容跟着书走一章配合着来这个根据个人情况而定 如果感觉书难度大就果断抛弃书看视频!看视频!学完入门课程再看这本书 从头到尾敲(聪明的略过) 在学习过程中多加几个linuxQQ群 实在有不会不解的经过多次百度无果之后再提问 一定要学…
注:本文是<Linux设备驱动开发详解:基于最新的Linux 4.0内核 by 宋宝华 >一书学习的笔记,大部分内容为书籍中的内容. 书籍可直接在微信读书中查看:Linux设备驱动开发详解:基于最新的Linux4.0内核-宋宝华-微信读书 (qq.com) 1 简介 模块(Module)具有以下特点: 模块本身不编译进内核映像 内核加载之后,和其它内核中的部分完全一样. 一个简单的示例: #include <linux/init.h> #include <linux/modu…
内核版本:linux-2.6.11 Linux在加载一个可执行程序的时候做了种种复杂的工作,内存分配是其中非常重要的一环,作为一个linux程序员必然会想要知道这个过程到底是怎么样的,内核源码会告诉你这一切. 线性区 一个可执行程序,是经过编译器处理后的遵守一定规则的数据.符号表和指令序列的组合,当linux加载一个可执行程序的时候,会为其创建一个新的进程,其对应的进程描述符task_struct中会保存许多资源的描述符,其中的mm_struct就是这个进程的内存描述符,用来管理该进程拥有的所有…
Linux学习笔记 请切换web视图查看,表格比较大,方法:视图>>web板式视图 博客园不能粘贴图片吗 http://wenku.baidu.com/view/bda1c3067fd5360cba1adb7d 目录 Linux学习笔记... 1 请切换web视图查看,表格比较大,方法:视图>>web板式视图... 1 1.      常用命令... 3 1.1文件处理命令... 3 1.2权限管理命令... 8 1.3文件搜索命令... 12 1.4帮助命令... 19 1.5压…
第一篇博客:linux学习笔记1-ubuntu的安装与基本设置 之中,已经介绍了如何安装linux操作系统,以及一些基本的设置修改. 本篇博客主要介绍linux中的一些常用的终端命令 ============================================== 启用和禁用触摸盘  sudo rmmod psmouse 禁用触摸盘 sudo modprobe psmouse 启用触摸盘 ============================================== 连…
研究生由单片机转Linux学习 首先安装VMware虚拟机,用的是VMware 10.0 在VMware 10.0上安装视频上推荐的Red Hat Linux 5 安装后正式进入Linux学习 笔记1.1 Q:Linux系统进入桌面后如何进入终端terminal  A:1.右击桌面空白处-->open terminal   2.ctrl+alt+F1到F6,此时进入的是全黑屏的terminal,要返回图形界面的按ctrl+alt+F7. 笔记1.2 Q:Linux中怎么把[root@localh…
跟着鸟哥学Linux系列笔记0-扫盲之概念 跟着鸟哥学Linux系列笔记0-如何解决问题 跟着鸟哥学Linux系列笔记1 跟着鸟哥学Linux系列笔记2-第10章VIM学习 认识与学习bash 1. 硬件.内核与shell 2. 用户界面<=====>核心Kernal(cpu进程,内存管理.磁盘输入输出)<=====>硬件 3. Shell定义:只要能够操作应用程序的接口,狭义的shell指的是命令行方面的软件,包括bash,广义的shell则包括图形界面的软件 为何要学shell…
跟着鸟哥学Linux系列笔记0-扫盲之概念 跟着鸟哥学Linux系列笔记0-如何解决问题 跟着鸟哥学Linux系列笔记1 常用的文本编辑器:Emacs, pico, nano, joe, vim VIM-为什么选择vi编辑器 1. 所有Unix Like系统都会内置vi编辑器,而其他文本编辑器则不一定存在 2. 很多软件的编辑接口都会主动调用vi,例如contab, visudo, edquota 3. vim具有程序编辑能力,可以主动以字体颜色辨别语言正确性 4. 程序简单,编辑速度相当快速…
跟着鸟哥学Linux系列笔记0-扫盲之概念 在发生问题怎么处理: 1.  在自己的主机.网络数据库上查询How-To或FAQ -Linux 自身的文件数据: /usr/share/doc -CLDP中文文件计划www.linux.org.cn/CLDP 2. 注意信息输出,自行解决疑难杂症 3. 搜寻过后,注意网络礼节,在讨论区大胆发言吧 4. Netman给出的建议: -有系统地设计文件目录,不要随便到处保存文件以至以后不知道放哪里了,或托到文件也不知道为何物 -养成一个做记录的习惯:尤其是发…
跟着鸟哥学Linux系列笔记0-扫盲之概念 跟着鸟哥学Linux系列笔记0-如何解决问题 装完linux之后,接下来一步就是进行相关命令的学习了 第五章:首次登录与在线求助man page 1. X Window切换至命令行模式: Ctrl + Alt + F1~F6: 文字界面登录 tty1~tty6终端: Ctrl + Alt + F7: 图形界面桌面 2. 命令行模式切换至X Window [garinzhang@ss ~]$ startx 3. 退出bash界面,使用exit 4. ls…
linux内核模块基础 一.定义 Linux 内核的整体结构非常庞大,其包含的组件也非常多,如何使用这些组件呢: 方法 1:把所有的组件都编译进内核文件,即:zImage 或 bzImage,但这样会导致一个问题:占用内存过多. 2.有一种机制能让内核文件本身并不包含某组件,而是在该组件需要被使用的时候,动态地添加到正在运行的内核中. 内核模块特点: 1.模块本身并不被编译进内核文件(zImage 或者 bzImage). 2. 可以根据需求,在内核运行期间动态的安装或卸载. 3.基本上是以.k…
一. 摘要 这篇文章主要介绍了Linux内核模块的相关概念,以及简单的模块开发过程.主要从模块开发中的常用指令.内核模块程序的结构.模块使用计数以及模块的编译等角度对内核模块进行介绍.在Linux系统开发过程中,以模块的形式开发其重要性不言自明,而在嵌入式设备驱动开发中将驱动程序以模块的形式发布,更是极大地提高了设备使用的灵活性——用户只需要拿到相关驱动模块,再插入到用户的内核中,即可灵活地使用你的设备. 二. 文章提纲 1. 摘要 2. 文章提纲 3. 概述 4. 模块开发常用的指令 5. 内…
原文:linux内核笔记之进程地址空间 进程的地址空间由允许进程使用的全部线性地址组成,在32位系统中为0~3GB,每个进程看到的线性地址集合是不同的. 内核通过线性区的资源(数据结构)来表示线性地址区间,线性区是由起始线性地址,长度和一些访问权限来描述的.线性区的大小为页框的整数倍,起始地址为4096的整数倍. 下图展示了x86 Linux 进程的地址空间组织结构: 正文段 .text ,这是CPU执行的机器指令部分.通常正文段是共享的,而且是只读的,以防止程序修改其自身的指令. 数据段 .d…
原文:linux内核笔记之高端内存映射 在32位的系统上,内核使用第3GB~第4GB的线性地址空间,共1GB大小.内核将其中的前896MB与物理内存的0~896MB进行直接映射,即线性映射,将剩余的128M线性地址空间作为访问高于896M的内存的一个窗口. 引入高端内存映射这样一个概念的主要原因就是我们所安装的内存大于1G时,内核的1G线性地址空间无法建立一个完全的直接映射来触及整个物理内存空间,而对于80x86开启PAE的情况下,允许的最大物理内存可达到64G,因此内核将自己的最后128M的线…
Linux 驱动工程师需要牢固地掌握 Linux 内核的编译方法以为嵌入式系统构建可运行的Linux 操作系统映像.在编译 LDD6410 的内核时,需要配置内核,可以使用下面命令中的 一个: #make config(基于文本的最为传统的配置界面,不推荐使用) #make menuconfig(基于文本菜单的配置界面) #make xconfig(要求 QT 被安装) #make gconfig(要求 GTK+被安装) 在配置Linux 2.6内核所使用的make config.make me…
加载内核驱动的通常流程: 1.先将.ko文件拷贝到/lib/module/`uname -r`(内核版本号)/kernel/driver/...目录下, 根据具体用途的区别分为net.ide.scsi.usb.video.parport.md.block.ata等等. 2.运行depmod -a,更新模块依赖新,主要是更新modules.dep文件 3.运行modprobe加载内核模块 lsmod 功能:列出内核已载入模块的状态 用法:lsmod 描述: lsmod 以美观的方式列出/proc/…
Linux分类笔记(一) 权限管理 普通权限 文件的普通权限 对一个普通的文件使用ls -ll命令后,看到下面的输出内容   而对于文件权限中的每一位,又分别代表了以下的意思 文件类型又有以下几类: [d]:目录 [-]:文件 [l]:连接文件 [b]:可供存储的接口设备 [c]:串行端口设备,如键盘和鼠标 权限的定义: r:可读,普通文件的r代表可以读取该文件的实际内容:目录的r代表可以读取该目录结构列表的权限 w:可写,普通文件的w代表可以编辑,新增或者修改文件内容,但不能删除该文件:目录的…
Linux学习笔记第一天 Linux基本介绍 Linux的起源和发展: 简单说linux是一种操作系统,可以安装在包括服务器.个人电脑,乃至PDA.手机.打印机等各类设备中. 起源: Linux起源于1991年,于1994年发布1.0版本的正式内核.追溯到Unix,Unix起源于1969年,是贝尔实验室的一个研究项目,10年后,Unix被无偿提供给各大学,成为众多大学和实验室研究项目的基础.但是Unix仍然是收费的.此外还有很长的发展,伯克利大学的Unix完全剔除了贝尔实验室的源码形成了自己的U…
笔记目录:一.系统知识 和 基本概念                    二.常用操作                   三.系统管理(内存.设备.服务等管理)                   四.其他操作 一.系统知识 和 基本概念   1.1. linux 各个分区的作用 参考博主“沉淀”的总结:linux目录结构以及作用 1.2.swap 和 temp 区别 swap 用于普通程序的数据交换,temp 用于系统程序的数据交换 二.常用操作   2.1.软件安装.卸载.执行 详见我的…
Linux学习笔记... 参考的优秀Linux网站: http://www.w3cschool.cn/linux/ http://www.linuxeye.com/ http://linux.vbird.org/linux_basic/   Hello World! My Name Is Called Linux Linux系统从1991年至2016年将近二十五年的发展历程 学习是件苦差我不想回避这个问题——学习本是件痛苦的事情.如果学习Linux真的很简单,那么必是骗子说的谎话,起码这将不能给…
linux内核模块编程实例 学号:201400814125 班级:计科141 姓名:刘建伟 1.确定本机虚拟机中的Ubuntu下Linux的版本 通过使用命令uname -a/uname -r/uname -p来查询版本号 本机Linux的内核版本为:4.2.0-16-generic 2.编写最简单的内核模块hello 共有两个文件编写而成:hello.c 与 Makefile <1>新建空白文档,命名为hello.c.在shell下编程,截图如下: 编写过程中需要注意TAB键和空格的区别.命…
回到占占推荐博客索引 本篇文章是对自己学习Linux及在它的环境下部署工具的一个总结,以方便自己查阅,也给他人一个帮助,本文章同时会不断的更新,欢迎大家订阅! 本目录包括的内容会包括linux基础命令,redis,mongodb,node.js,.net core,kafka,rabbitmq,zookeeper,docker,nginx等工具的部署! Linux~学习笔记目录 Linux~常用的命令 Linux~上部署.net MVC出现的问题与解决 Linux~yum命令安装程序 Linux…
目录 deepin linux学习笔记(四)进不去图形界面怎么办? 前言 更换成lxde桌面 进不去图形界面怎么办? 总结 deepin linux学习笔记(四)进不去图形界面怎么办? 前言 生命不息,折腾不止. 更换成lxde桌面 deepin桌面其实还不错,就是感觉有点卡通化,没什么之感,很单薄,而且性能感觉不太好的样子(很难说清楚).据说lxde是一个性能很高的桌面环境,所以我就尝试了一下. 2019-02-19 17-45-15屏幕截图.png 首先,linux更换桌面其实很简单,只要直…
目录 deepin linux 学习笔记(二)--文本编辑器 前言 nano 小巧的命令行编辑器 通用 编辑 定位 排版 配置 vim 思路独特的超级编辑器 命令模式 插入模式 底线模式(末行模式) deepin linux 学习笔记(二)--文本编辑器 前言 今天来谈一下linux的编辑器,特别是命令行下面的文本编辑器.在视窗环境下有很多可以用,也很容易操作的文本编辑器,但是linux经常会需要在命令行下面编辑文本,比如一些配置文件的修改,这就要求要熟练相关的工具. 老实说,新手进入linux…
目录 deepin linux学习笔记 前言 linux常用命令 ls 显示文件夹内容 cd 切换当前目录 pwd 查看当前工作目录 mkdir 新建文件夹 rm 删除文件或文件夹 mv 移动文件 cp 复制文件 cat 显示文件内容 more 分页显示文件内容 less 更强大的more head 输出文件头部内容 tail 输出文件尾部内容 which 查找程序,显示文件路径 whereis 查找文件 locate 以数据库信息来查找文件 find 在磁盘中查找文件 chmod 设置文件权限…
Linux内核模块编程 编程环境 Ubuntu 16.04 LTS 什么是模块 内核模块的全称是动态可加载内核模块(Loadable Kernel Modul,KLM),可以动态载入内核,让它成为内核代码的一部分. 一个模块一般由一组函数和数据结构组成. 如何编写最简单的Hello World模块 首先要创建一个工作目录,取名叫hello,在命令行输入如下命令 mkdir hello cd hello hello.c代码如下: #include<linux/module.h> //每个模块都要…
转载请标注原链接:http://www.cnblogs.com/xczyd/p/5543731.html 第一篇博客:linux学习笔记1-ubuntu的安装与基本设置 之中,已经介绍了如何安装linux操作系统,以及一些基本的设置修改. 本篇博客主要介绍linux中的一些常用的命令(主要是shell命令) ============================================== 文件/文件夹相关操作 #在当前目录下,创建一个名为test的文件夹 mkdir test #在当…
Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 ---------------------------------接Part 14------------------------------ 例子:将网卡的ip地址设置为192.168.0.3 [root@localhost laiyu]# ifconfig eth0 192.168.1.3 [root@localhost laiyu]# ifconfig eth0      Link encap:Ether…
Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 ---------------------------------接Part 13------------------------------ 2.第二.三行为进程和CPU的信息 当有多个CPU时,这些内容可能会超过两行,内容如下 Tasks: 201 total 进程总数 2 running 正在运行的进程数 199 sleeping 睡眠的进程数 0 stopped 停止的进程数 0 zombie 僵尸进程…