linux内核基础
Alan的修炼
12年读研究生,一路走来,接触和学习到很多知识,看到了以前不曾想到的风景,感悟到很多。这里进行梳理总结。
展开
-
Linux系统调用详解
转自:http://blog.chinaunix.net/uid-28909934-id-3767564.html Linux系统调用详解 2013-06-19 16:02:55分类: LINUX1.linux系统调用的基本原理 linux的系统调用形式与POSIX兼容,也是一套C语言函数名的集合。然而,linux系统调用的内部实现方式却与DOC的INT 21转载 2013-09-05 15:44:58 · 664 阅读 · 0 评论 -
应用程序、内核、驱动的关系
转自:http://blog.csdn.net/linuxzhouying/article/details/7019489user网络linux工作任务c应用程序与库函数、内核、驱动之间的关系应用程序、库、内核、驱动程序的关系:应用程序调用应用程序函数库完成功能、应用程序以文件形式访问各种资源、应用程序函数库、部分函数直接完成功能、部分函数通过系统调用。 由内核完成内核处理系统转载 2013-08-11 09:52:27 · 727 阅读 · 0 评论 -
如何学习linux设备驱动
转自:http://blog.chinaunix.net/uid-26101960-id-3177191.html原文地址:如何学习linux设备驱动 作者:华清远见作者:于连庆,华清远见嵌入式培训中心讲师。Linux系统目前主要维护2.4和2.6两个内核版本,在http://www.kernel.org/ 网站上已经可以下载到最新的2.6内核linux-2.6.3转载 2013-08-11 09:50:11 · 540 阅读 · 0 评论 -
教你如何学习Linux驱动开发
转自:http://www.embedtrain.org/lecture/doc/linuxcore/2011-01/81.html时间:2010年11月07日 12:01:35 来源:千锋嵌入式学院 作者:千锋Linux是Unix操作系统的一种变种,在Linux下编写驱动程序的原理和思想完全类似于其他的Unix系统,但它dos或window环境下的驱动程序有很大的区别。在Linux环转载 2013-08-11 09:48:10 · 763 阅读 · 0 评论 -
一篇编译内核的详细配置文章(超长-强烈推荐)
转自:http://www.linuxsir.org/bbs/thread117661.html前言之前言:谁是这篇文章的读者? 不习惯读英文资料的非LINUX高手 声卡不响光驱不转连不上网等等,只要有问题就行 开发嵌入式操作系统 现在流行的ODL(only disk linux)中做内核部分,那些文章不介绍此点内容。我正在做 ,完工后整理资料。 BY THE转载 2013-08-11 17:13:36 · 1345 阅读 · 0 评论 -
linux设备驱动归纳总结(三):1字符型设备之设备申请
转自:http://blog.chinaunix.net/uid-25014876-id-59416.html操作系统:Ubunru 10.04实验平台:S3C2440 + linux2.6.29内核注:在今后驱动程序的学习中经常需要查看内核源代码,建议大家新加一个内核目录,去掉一些与S3C2440平台无关的代码,打包成ctags,方便查看代码。一、驱动的分转载 2013-07-12 20:24:25 · 580 阅读 · 0 评论 -
linux设备驱动归纳总结(三):2open.close.read.write
转自:http://blog.chinaunix.net/uid-25014876-id-59417.html一、文件操作结构体file_operations继续上次没讲完的问题,文件操作结构体到底是什么东西,为什么我注册了设备之后什么现象都没有?可以验证文件操作结构体的内容。file_operations是一个函数指针的集合,用于存放我们定转载 2013-07-12 20:25:59 · 593 阅读 · 0 评论 -
linux设备驱动归纳总结(三):3面向对象思想和lseek
转自:http://blog.chinaunix.net/uid-25014876-id-59418.html一、结构体struct file和struct inode在之前写的函数,全部是定义了一些零散的全局变量。有没有办法整合成到一个结构体当中?这样的话,看起来和用起来都比较方便。接下来就要说这方面的问题。不过先要介绍一下除了fo转载 2013-07-12 20:29:14 · 557 阅读 · 0 评论 -
linux设备驱动归纳总结(三):4.ioctl的实现
转自:http://blog.chinaunix.net/uid-25014876-id-59419.html一、ioctl的简介:虽然在文件操作结构体"struct file_operations"中有很多对应的设备操作函数,但是有些命令是实在找不到对应的操作函数。如CD-ROM的驱动,想要一个弹出光驱的操作,这种操作并不是所有的字符设备都需要的,所以文件操作结构体也不会转载 2013-07-12 20:30:57 · 611 阅读 · 0 评论 -
linux设备驱动归纳总结(三):5.阻塞型IO实现
转自:http://blog.chinaunix.net/uid-25014876-id-60025.htmlxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx一、休眠简介:进程休眠,简单的说就是正在运行的进程让出CPU。转载 2013-07-12 20:32:12 · 543 阅读 · 0 评论 -
linux设备驱动归纳总结(三):6.poll和sellct
转自:http://blog.chinaunix.net/uid-25014876-id-61749.htmlxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx接下来会讲系统调用select在驱动中的实现,如果对系统调用select不太懂的话转载 2013-07-13 00:04:14 · 721 阅读 · 0 评论 -
linux设备驱动归纳总结(四):1.进程管理的相关概念
转自:http://blog.chinaunix.net/uid-25014876-id-62725.htmllinux设备驱动归纳总结(四):1.进程管理的相关概念xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx接下来的几节我会大概的讲一下内核进转载 2013-07-13 00:09:56 · 767 阅读 · 0 评论 -
内核 驱动 硬件直接的关系
转自:http://blog.sina.com.cn/s/blog_695e489c0101ceeb.html 分类: LINUX驱动及内核学习帮助大家理顺一下思路如下 层次关系linux驱动是直接和硬件打交道的软件程序。层次结构上它处于操作系统和硬件之间。驱动与linux操作系统内核的关系1.驱动程序提供的一组设备驱动接口函数转载 2013-08-11 10:56:36 · 1534 阅读 · 0 评论 -
自旋锁(spinlock) 解释得经典,透彻
转自:http://blog.csdn.net/unbutun/article/details/5730037(转)自旋锁(spinlock) 解释得经典,透彻自旋锁与互斥锁有点类似,只是自旋锁不会引起调用者睡眠,如果自旋锁已经被别的执行单元保持,调用者就一直循环在那里看是否该自旋锁的保持者已经释放了锁,"自旋"一词就是因此而得名。 由于自旋锁使用者一般保持锁转载 2013-09-06 00:26:49 · 1013 阅读 · 0 评论 -
Linux 用户态与内核态的交互
转自:http://bbs.chinaunix.net/thread-2162796-1-1.htmlLinux 用户态与内核态的交互——netlink 篇作者:Kendo2006-9-3这是一篇学习笔记,主要是对《Linux 系统内核空间与用户空间通信的实现与分析》中的源码imp2的分析。其中的源码,可以到以下URL下载:http://www-128.ibm.co转载 2013-09-06 00:28:07 · 857 阅读 · 0 评论 -
逻辑地址、线性地址、物理地址和虚拟地址
转自:http://bbs.chinaunix.net/thread-2083672-1-1.html本贴涉及的硬件平台是X86,如果是其它平台,嘻嘻,不保证能一一对号入座,但是举一反三,我想是完全可行的。一、概念物理地址(physical address)用于内存芯片级的单元寻址,与处理器和CPU连接的地址总线相对应。——这个概念应该是这几个概念中最好理解的一个,但是转载 2013-09-04 22:34:18 · 629 阅读 · 0 评论 -
Linux系统调用详解
转自:http://blog.chinaunix.net/uid-28909934-id-3767564.htmlLinux系统调用详解 分类: LINUX1.linux系统调用的基本原理 linux的系统调用形式与POSIX兼容,也是一套C语言函数名的集合。然而,linux系统调用的内部实现方式却与DOC的INT 21H相似,它是经过INT 0X80H软中断转载 2013-09-04 10:41:02 · 573 阅读 · 0 评论 -
Android kernel和标准Linux Kernel的差异
转自:http://www.rosoo.net/a/201112/15412.htmlAndroid kernel和标准Linux Kernel的差异 发现一篇分析Android kernel与标准kernel的差异的文章,但是,作者用的是2.6.25的内核,我发现在Android2.6.29内核中,与之前相比,有了很多改变,因此在上面转载 2013-09-11 10:45:21 · 860 阅读 · 0 评论 -
Linux内核常见数据结构及操作
转自:http://blog.chinaunix.net/uid-20355640-id-1963772.html Linux内核常见数据结构及操作 1. 双向链表(list)linux内核中的双向链表通过结构 struct list_head来将各个节点连接起来,此结构会作为链表元素结构中的一个参数:struct list_head {stru转载 2013-09-02 22:50:30 · 635 阅读 · 0 评论 -
Linux软中断原理浅析
转自:http://www.2cto.com/os/201207/140706.htmlLinux软中断原理浅析Linux软中断原理浅析Linux中的软中断机制用于系统中对时间要求最严格以及最重要的中断下半部进行使用。在系统设计过 程中,大家都清楚中断上下文不能处理太多的事情,需要快速的返回,否则很容易导致中断事件的丢失,所以这就产生了一个问转载 2013-09-02 15:32:58 · 838 阅读 · 0 评论 -
linux内核驱动模块的编译及加载
转自:http://blog.chinaunix.net/uid-26310563-id-3175021.html linux内核驱动模块的编译及加载 主机:Windows 7旗舰版,VMware7.1.2,Fedora9编译环境:arm-linux-gcc 4.4.3Linux版本:linux-2.6.3转载 2013-08-31 15:22:02 · 879 阅读 · 0 评论 -
在Linux内核中单独编译KO文件
转自:http://blog.csdn.net/suntao222/article/details/7457886 在Linux内核中单独编译KO文件在当前模块目录下创建Makefile: obj-m := mxt224.o然后再该模块目录下打开终端输入:make -C /home/kernel_path/ M=$(pwd) modules/home/kerne转载 2013-08-31 10:25:53 · 3070 阅读 · 0 评论 -
linux 任务调度机制
转自:http://blog.chinaunix.net/uid-29025972-id-3794366.htmllinux 任务调度机制 Linux任务调度的时机 linux进程的调度时机大致分为两种情况: 一种是进程自愿调度;另一种是发生强制性调度。 首先,自愿的调度随时都可以进行。在内核空间中,进程可以通过schedule转载 2013-09-06 01:25:39 · 1609 阅读 · 0 评论 -
linux系统调用实现代码分析
转自:http://linux.chinaunix.net/doc/kernel/2001-07-30/637.shtmllinux系统调用实现代码分析 启动早就读完,现在为了写笔记再从启动之后粗略的大体读一遍,基本就是几个大模块:启动和初始化,中断信号, 进程及调度,内存管理,文件系统,网络,驱动和模块等,我主要也从这几块入手转载 2013-09-06 00:47:03 · 883 阅读 · 0 评论 -
Linux系统调用和库函数调用的区别
转自:http://www.51testing.com/html/02/n-812802.htmlLinux系统调用和库函数调用的区别 Linux下对文件操作有两种方式:系统调用(system call)和库函数调用(Library functions)。可以参考《Linux程序设计》(英文原版为《Beginning Linux Programming》,作者转载 2013-09-06 00:45:56 · 583 阅读 · 0 评论 -
操作系统的作用和功能
转自:http://blog.csdn.net/elisa0812/article/details/8675131操作系统的作用和功能操作系统的概念和功能计算机是一个高速运转的复杂系统:它有CPU、内存储器、外存储器、各种各样的输入输出设备,通常称为硬件资源;它可能有多个用户同时运行他们各自的程序,共享着大量数据,通常称为软件资源。如果没有一个对这些转载 2013-09-06 00:29:49 · 1071 阅读 · 0 评论 -
linux设备驱动归纳总结(四):3.抢占和上下文切换
转自:http://blog.chinaunix.net/uid-25014876-id-65711.htmllinux设备驱动归纳总结(四):3.抢占和上下文切换xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx上一节介绍了进程调度的一些基本概念,转载 2013-07-13 00:13:47 · 728 阅读 · 0 评论 -
linux设备驱动归纳总结(五):3.IO静态映射
转自:http://blog.chinaunix.net/uid-25014876-id-83299.htmllinux设备驱动归纳总结(五):3.操作硬件——IO静态映射xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx有时候会觉得,每次访问硬件都转载 2013-07-13 00:33:23 · 611 阅读 · 0 评论 -
读linux2.6驱动的一点收获
从2.6版本开始引入了platform这个概念,在开发底层驱动程序时,首先要确认的就是设备的资源信息,例如设备的地址,在2.6内核中将每个设备的资源用结构platform_device来描述,该结构体定义在kernel/include/linux/platform_device.h中,struct platform_device { const char * name; u转载 2013-07-11 16:31:00 · 515 阅读 · 0 评论 -
linux设备驱动归纳总结
转自:http://blog.chinaunix.net/uid-25014876-id-59420.html前言:(总结已经基本写完,这段时间我会从新排版和修正。错误总会有的,望能指正!)前段时间学习了嵌入式驱动,趁着没开始找工作,这段时间我会每天抽出时间来复习。 我的总结是根据学习时的笔记(李杨老师授课)、《linux内核设计与实现》第三版、《linux转载 2013-07-12 20:18:39 · 1046 阅读 · 0 评论 -
inux设备驱动归纳总结(一):内核的相关基础概念
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx一.linux设备驱动的作用内核:用于管理软硬件资源,并提供运行环境。如分配4G虚拟空间等。linux设备驱动:是连接硬件和内核之间的桥梁。linux系统按个人转载 2013-07-12 20:20:15 · 701 阅读 · 0 评论 -
linux设备驱动归纳总结(四):2.进程调度的相关概念
转自:http://blog.chinaunix.net/uid-25014876-id-65555.htmllinux设备驱动归纳总结(四):2.进程调度的相关概念xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx进程的调度就是指进程间的切换,进程转载 2013-07-13 00:12:07 · 725 阅读 · 0 评论 -
linux设备驱动归纳总结(四):4.单CPU下竞态和并发
转自:http://blog.chinaunix.net/uid-25014876-id-67005.htmllinux设备驱动归纳总结(四):4.单处理器下的竞态和并发xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx经过上面几节的铺垫,终于要来重转载 2013-07-13 00:22:00 · 868 阅读 · 0 评论 -
linux设备驱动归纳总结(五):2.操作硬件——IO内存
转自:http://blog.chinaunix.net/uid-25014876-id-80627.htmllinux设备驱动归纳总结(五):2.操作硬件——IO内存xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx在之前章节的驱动,都没有对硬件进转载 2013-07-13 00:31:48 · 749 阅读 · 0 评论 -
linux设备驱动归纳总结(五):4.写个简单的LED驱动
转自:http://blog.chinaunix.net/uid-25014876-id-84693.htmllinux设备驱动归纳总结(五):4.写个简单的LED驱动xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx在上面的章节的知识,已经能够实现转载 2013-07-13 00:35:01 · 611 阅读 · 0 评论 -
linux设备驱动归纳总结(六):3.中断下半部之tasklet
转自:http://blog.chinaunix.net/uid-25014876-id-100005.htmllinux设备驱动归纳总结(六):3.中断的上半部和下半部——taskletxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx一、什么转载 2013-07-13 00:42:18 · 748 阅读 · 0 评论 -
linux设备驱动归纳总结(十一):简单的看门狗驱动
转自:http://blog.chinaunix.net/uid-25014876-id-112879.htmllinux设备驱动归纳总结(十一):写个简单的看门狗驱动xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx设备驱动的归纳已经差不多了,趁着转载 2013-07-13 01:12:05 · 744 阅读 · 0 评论 -
linux设备驱动归纳总结(十):1.udev&misc
转自:http://blog.chinaunix.net/uid-25014876-id-111839.htmllinux设备驱动归纳总结(十):1.udev&miscxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx不知不觉我的总结已经写得七七八八转载 2013-07-13 01:10:25 · 744 阅读 · 0 评论 -
linux设备驱动归纳总结(十二):简单的数码相框
转自:http://blog.chinaunix.net/uid-25014876-id-61749.htmllinux设备驱动归纳总结(十二):简单的数码相框xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx其实代码很简单,实现lcd驱动,使lcd转载 2013-07-13 01:13:21 · 908 阅读 · 0 评论 -
linux设备驱动归纳总结(九):1.platform设备驱动
转自:http://blog.chinaunix.net/uid-25014876-id-111745.htmllinux设备驱动归纳总结(九):1.platform总线的设备和驱动xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx这一节可以理解是第转载 2013-07-13 01:08:49 · 632 阅读 · 0 评论