- 博客(11)
- 资源 (6)
- 收藏
- 关注
转载 浅析2.6.24下char字符驱动tty注册和实际调用流程
浅析2.6.24下char字符驱动tty注册和实际调用流程drivers/usb/class/cdc-acm.c->acm_init()->tty_register_driver(acm_tty_driver)->cdev_init(&driver->cdev, &tty_fops);这个tty_fops就是让cdev->ops 等于 tty_fops;(这里的tty_fops 是struct f
2009-12-16 17:35:00 1022
转载 浅析linux2.6下VFS虚拟文件系统中的那3个玩意儿
文章来源:http://gliethttp.cublog.cn 超级块、目录项、索引节点和文件对象是VFS虚拟文件系统的4个最关键组成要素,一个inode索引节点唯一的对应一个目录文件夹或者文件,比如:/home/gliethttp/hello.c,我们想打开其中的hello.c文件,open("/home/gliethttp/hello.c",O_RDWR);硬盘上home文件夹唯一对应一
2009-12-16 16:41:00 1404
原创 linux下tty,控制台,虚拟终端,串口,console(控制台终端)详解
首先:1。终端和控制台都不是个人电脑的概念,而是多人共用的小型中型大型计算机上的概念.一台主机,连很多终端,终端为主机提供了人机接口,每个人都通过终端使用主机的资源. 终端有字符哑终端和图形终端两种.控制台是另一种人机接口, 不通过终端与主机相连, 而是通过显示卡-显示器和键盘接口分别与主机相连, 这是人控制主机的第一人机接口.话回到个人计算机上,个人计算机只有控制台,没有终端. 当然愿意的话
2009-12-14 15:59:00 49181 16
转载 Linux内核的等待队列(转载)
Linux内核的等待队列是以双循环链表为基础数据结构,与进程调度机制紧密结合,能够用于实现核心的异步事件通知机制。在Linux2.4.21中,等待队列在源代码树include/linux/wait.h中,这是一个通过list_head连接的典型双循环链表,如下图所示。 screen.width*0.7) {this.resized=true; this.width=screen.widt
2009-12-12 23:26:00 1733
转载 [转]LINUX内存管理 - 高端内存的映射方式
高端内存是指物理地址大于 896M 的内存。对于这样的内存,无法在“内核直接映射空间”进行映射。为什么?因为“内核直接映射空间”最多只能从 3G 到 4G,只能直接映射 1G 物理内存,对于大于 1G 的物理内存,无能为力。实际上,“内核直接映射空间”也达不到 1G, 还得留点线性空间给“内核动态映射空间” 呢。因此,Linux 规定“内核直接映射空间” 最多映射
2009-12-07 01:39:00 574
转载 linux 内存管理之kmalloc
在设备驱动程序中动态开辟内存,不是用malloc,而是kmalloc,或者用get_free_pages直接申请页。释放内存用的是kfree,或free_pages. 对于提供了MMU(存储管理器,辅助操作系统进行内存管理,提供虚实地址转换等硬件支持)的处理器而言,Linux提供了复杂的存储管理系统,使得进程所能访问的内存达到4GB。 进程的4GB内存空间被人为的分为两个部
2009-12-07 01:22:00 664
转载 Linux内存管理图解(2)线性地址转物理地址
二、线性地址转物理地址前面说了Linux中逻辑地址等于线性地址,那么线性地址怎么对应到物理地址呢?这个大家都知道,那就是通过分页机制,具体的说,就是通过页表查找来对应物理地址。准确的说分页是CPU提供的一种机制,Linux只是根据这种机制的规则,利用它实现了内存管理。在保护模式下,控制寄存器CR0的最高位PG位控制着分页管理机制是否生效,如果PG=1,分页机制生效,需通过页表查找才能把
2009-12-07 01:17:00 1084
转载 Linux内存管理图解(1)逻辑地址转线性地址
一、逻辑地址转线性地址 机器语言指令中出现的内存地址,都是逻辑地址,需要转换成线性地址,再经过 MMU(CPU 中的内存管理单元 ) 转换成物理地址才能够被访问到。 我们写个最简单的 hello world 程序,用 gccs 编译,再反编译后会看到以下指令: mov 0x80495b0, %eax 这里的内存地址 0x80495b0 就是一个逻辑地址,必须加上隐
2009-12-07 01:15:00 1364 1
转载 关于Linux的内存管理(上)
摘要:本章首先以应用程序开发者的角度审视Linux的进程内存管理,在此基础上逐步深入到内核中讨论系统物理内存管理和内核内存地使用方法。力求从外自内、水到渠成地引导网友分析Linux地内存管理与使用。在本章最后我们给出一个内存映射地实例,帮助网友们理解内核内存管理与用户内存管理之间地关系,希望大家最终能驾驭Linux内存管理。 前言内存管理一向是所有操作系
2009-12-07 01:06:00 1015
转载 逻辑地址、线性地址、物理地址和虚拟地址(转)
一、概念物理地址(physical address)用于内存芯片级的单元寻址,与处理器和CPU连接的地址总线相对应。——这个概念应该是这几个概念中最好理解的一个,但是值得一提的是,虽然可以直接把物理地址理解成插在机器上那根内存本身,把内存看成一个从0字节一直到最大空量逐字节的编号的大数组,然后把这个数组叫做物理地址,但是事实上,这只是一个硬件提供给软件的抽像,内存的寻址方式并不是这样。所以,说它是
2009-12-06 01:44:00 630
转载 miscdevice、platform_device、platform_driver的区别??大侠指教
最近研究Linux设备驱动程序遇到混乱,请大侠过来理理头绪。Linux设备模型中:bus_type、device、device_driver《Linux设备驱动程序》的linux设备模型章中说到设备模型中,所有设备都通过总线相连。添加设备devA,必须指定其device结构体的bus_type域,初始化其他域,然后调用device_register(&devA),将设备devA注册
2009-12-04 00:24:00 882
无线控制的旋转led
2009-12-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人