自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(55)
  • 收藏
  • 关注

原创 1.5 驱动设备类文件创建

(3)在加载模块的时候,用户空间中的udev会自动响应device_create(…)函数,去/sys下寻找对应的类从而创建设备节点。(1)内核通过class_create(…)函数,创建一个类,这个类存放于/sys中。(2)device_create(…)函数来在/dev目录下创建相应的设备节点。

2024-04-20 15:09:57 213

原创 1.4 简单的LED驱动

静态映射:内核移植时直接使用编码的方式,如果需要修改地址映射则要修改内核源代码,还要重新编译内核。驱动操作硬件时需要用到硬件物理地址在内核虚拟地址空间相对应的虚拟地址。动态映射:驱动根据需要动态建立映射。

2024-04-14 12:15:42 196

原创 1.3 字符设备驱动

向内核注册字符设备,也就是在内核中登记,让内核中分配一个设备号,标识该驱动。mknod /dev/xxx c 主设备号 次设备号。

2024-04-13 13:08:44 185

原创 1.2 简单的驱动源码分析

2、printk打印级别。

2024-04-11 20:57:55 69 1

原创 Linux搭建TFTP服务器

(2)tftp服务器(tftpd-hpa)和客户端(tftp-hpa)安装。(1)网络守护进程程序安装。

2023-12-24 09:25:19 1584

原创 1 .1 Linux驱动初了解

:又称单内核,就是将各个模块整合在一起,例如:进程管理、线程管理、内存管理等等都运行在内核态,并同时运行在一个单独的地址空间。(1)网络设备面向数据包的发送而设计,它并不对应于文件系统的节点。(1)应用程序与驱动程序之间的数据交互是以块(固定大小的字节)为单位的,主要针对的是存储设备,如:硬盘、U盘、eMMC、SD卡等。(1)应用程序与驱动程序之间的数据交互是以字符(字节)为单位的,如:LCD、串口、LED。):操作系统模块化,只有一个核心模块(微内核)运行在内核态,其它模块作为普通进程运行。

2023-07-22 11:52:18 136

原创 7 进程控制

如果一个子进程已经终止,是一个僵死进程,则 wait立即返回并取得该子进程的状态,否 则wait使其调用者阻塞直到一个子进程终止。一个现存进程调用fork函数是UNIX内核创建一个新进程的唯一方法 (这并不适用于前节提及的交换进程、init进程和页精灵进程。vfork与fork一样都创建一个子进程, 但是它并不将父进程的地址空间完全复制到子进程中,因为子进程会立即调用exec (或exit ),于是也就不会存访该地址空间。两次返回的区别是子进程的返回值是 0,而父进程的返回值则是新子进程的进程 ID。

2023-07-14 17:17:09 320

原创 6 进程的环境

如果 ( a )若调用这些函数时不带终止状态,或 ( b ) main执行了一个无返回值的return语句,或( c ) main执行隐式返回,则该进程的终止状态是末定义的。exit和_exit函数用于正常终止一个程序: _exit立即进入内核,exit则先执行一些清除处理 (包括调用执行各终止处理程序,关闭所有标准I / O流等),然后进入内核。其中,atexit的参数是一个函数地址,当调用此函数时无需向它传送任何参数,也不期望它返回一个值。下图中显示了一个C程序是如何起动的,以及它终止的各种方式。

2023-05-11 10:30:34 874 1

原创 5 系统数据文件和信息

例如, BSD网络软件有一个记录各网络服务器所提供的服务的数据文件 (/etc/services ),有一个记录协议信息的数据文件(/etc/protocols),还有一个则是记录网络信息的数据文件(/etc/networks)。幸运的是,对于这些数据文件的界面都与上述对口令文件和组文件的相似。localtime和gmtime之间的区别是: localtime将日历时间变换成本地时间 (考虑到本地时区和夏时 制标志),而gmtime则将日历时间变换成国际标准时间的年、月、日、时、分、秒、周日。

2023-05-05 10:04:30 416

原创 4 标准I/O库

(3)fdopen取一个现存的文件描述符(我们可能从open , dup , dup2 , fcntl或pipe函数得到此文 件描述符),并使一个标准的I/O流与该描述符相结合。因为这些特殊类型的文件不能用标准 I/O fopen函数打开,首先必须先调用设备专用函数以获得一个文件描述符,然后用 fdopen使一个标准I/O流与该描述符相结合。该对象通常是一个结 构,它包含了I/O库为管理该流所需要的所有信息:用于实际 I/O的文件描述符,指向流缓存的指针,缓存的长度,当前在缓存中的字符数,出错标志等等。

2023-05-04 11:17:45 593

原创 3 文件和目录

如果某个实现的处理是扩展该文件,则在以前的文件尾端和新的文件尾端之间的数据将读作0。给定一个pathname,stat函数返回一个与此命名文件有关的信息结构, fstat函数获得已在描述符filedes上打开的文件的有关信息。lstat函数类似于stat,但是当命名的文件是一个符号连接时, lstat返回该符号连接的有关信息,而不是由该符号连接引用的文件的信息。符号连接是对一个文件的间接指针,它与上一节所述的硬连接有所不同,硬连接直接指向文件和目录的i节点。此字段只对普通文件、目录文件和符号连接有意义。

2023-05-01 17:38:53 1127

原创 2 文件IO

例如, i节点包含了文件的所有者、文件长度、文件所在的设备、指向文件在盘上所使用的实际数据块的指针等等。我们假定第一个进程使该文件在文件描述符 3上打开,而另一个进程则使此文件在文件描述符 4上打开。打开此文件的每个进程都得到一个文件表项,但对一个给定的文件只有一个 v节点表项。每个进程都有自己的文件表项的一个理由是:这种安排使每个进程都有它自己的对该文件的当前位移量。假定进程A调用了lseek,进程B也调用了lseek,这时如果有一个进程写了数据,那么文件的长度就会发生改变,就会影响另一个进程的操作。

2023-04-28 10:28:45 650

原创 1 Unix基础知识

但是对于用户而言,使用名字比使用数值方便,所以口令文件包含了登录名和用户ID之间的映射关系,而组文件则包含了组名和组ID之间的映射关系。口令文件中的登录项由7个以冒号分隔的字段组成:登录名,加密口令,数字用户ID(224),注释字段,起始目录(/home/username),以及shell程序(/bin/ksh)。目录(directory)是一个包含目录项的文件,在逻辑上,可以认为每个目录项都包含一个文件名,同时还包含说明该文件属性的信息。文件属性是:文件类型,文件长度,文件所有这,文件的许可权。

2023-04-27 10:30:09 450

原创 8.5 数据结构——归并排序和基数排序

归并排序和基数排序

2022-11-26 23:01:38 316 1

原创 8.4 数据结构——选择排序

选择排序

2022-11-26 22:34:54 225

原创 8.3 数据结构——交换排序

交换排序

2022-11-26 19:22:33 439

原创 8.2 数据结构——插入排序

插入排序

2022-11-26 10:03:12 268

原创 8.1 数据结构——排序的基本概念和排序方法

排序的基本概念及方法

2022-11-26 08:31:06 234

原创 7.5 数据结构——散列表的查找

散列表查找

2022-11-24 11:30:32 732

原创 7.4 数据结构——平衡二叉树

平衡二叉树

2022-11-22 11:04:22 209

原创 7.3 数据结构——二叉排序树

二叉排序树

2022-11-20 22:28:09 2455

原创 7.2 数据结构——查找(线性表)

线性表的查找

2022-11-20 16:04:51 398

原创 7.1 数据结构——查找的基本概念

查找的基本概念

2022-11-19 11:17:14 120

原创 6.9 数据结构——关键路径

关键路径

2022-11-17 20:51:39 541

原创 6.8 数据结构——拓扑排序

拓扑排序

2022-11-15 22:36:22 622

原创 6.7 数据结构——最短路径

最短路径

2022-11-12 23:07:58 2148 2

原创 6.6 数据结构——最小生成树

最小生成树

2022-11-12 16:53:45 1092

原创 6.5 数据结构——图的遍历

图的遍历

2022-11-08 21:11:54 136

原创 6.4 数据结构——图的存储结构之十字链表及邻接多重表

图的存储结构之十字链表及邻接多重表

2022-10-30 11:17:55 447 1

原创 6.3 数据结构——图的存储结构之邻接表

图的存储结构之邻接表

2022-10-24 22:22:55 1346

原创 6.2 数据结构——图的抽象数据类型和存储结构

图的抽象数据类型定义、图的存储结构之邻接距阵

2022-10-24 21:33:43 991

原创 6.1 数据结构——图的定义和术语

图的定义及术语

2022-10-24 19:49:10 1175

原创 5.12 数据结构——哈夫曼编码

哈夫曼编码

2022-10-23 00:56:52 1364

原创 5.11 数据结构——哈夫曼树的构造算法

哈夫曼树的构造算法

2022-10-22 17:19:27 1552

原创 5.10 数据结构——哈夫曼树的基本概念

哈夫曼树的基本概念

2022-10-22 15:24:01 215

原创 5.9 数据结构——树与森林的遍历

树的遍历(先根遍历、后根遍历、层次遍历)和森林的遍历(先序遍历、中序遍历、后序遍历)

2022-10-22 10:46:20 4223

原创 5.8 数据结构——树和森林

树和森林(树与二叉树之间的转换、森林与二叉树之间的转换)

2022-10-22 10:16:36 102

原创 5.7 数据结构——线索二叉树

线索二叉树

2022-10-21 22:18:00 128

原创 5.6 数据结构——二叉树的建立

二叉树的建立、二叉树的复制、计算二叉树的深度、计算二叉树的结点总数、计算二叉树叶子结点总数

2022-10-20 22:36:18 386

原创 5.5 数据结构——二叉树的遍历

二叉树的遍历(二叉树遍历的定义,二叉树遍历的方法、根据遍历序列确定二叉树、二叉树遍历算法)

2022-10-20 21:46:52 470

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除