linux内核
文章平均质量分 90
tonylau_hnu
这个作者很懒,什么都没留下…
展开
-
《Linux内核设计与实现》读书笔记- 内核同步方法
转自:http://www.cnblogs.com/wang_yb/archive/2013/05/01/3052865.html《Linux内核设计与实现》读书笔记(十)- 内核同步方法转载 2015-04-14 18:08:43 · 426 阅读 · 0 评论 -
对Linux内核中进程上下文和中断上下文的理解
refer:http://www.embedu.org/Column/Column240.htm http://www.cnblogs.com/hustcat/articles/1505618.html零、引 言 内核空间和用户空间是操作系统理论的基础之一,即内核功能模块运行在内核空间,而应用程序运行在用户空间。 现代的CPU都具有不同的操作转载 2015-06-23 10:48:00 · 951 阅读 · 0 评论 -
Linux 内核--总线设备驱动模型(字符/块/网络设备 && platform设备)
一、概 述 总线设备驱动模型主要包含总线、设备、驱动三个部分。 现实总线:一个现实的Linux设备和驱动通常都需要挂接在一种总线上,对于本身依附于PCI、USB、I2C、SPI等的设备而言(例如USB、I2C等典型的设备),这自然不是问题。 虚拟总线(platform总线):但是在嵌入式系统里面,对于一些设备(内部的设备)可能没有现成的总线,原创 2015-06-04 15:09:32 · 2245 阅读 · 0 评论 -
Linux 虚拟文件系统支持的文件系统类型-3----sysfs && procfs
一、porcfs系统二、sysfs系统1.基础简介 sysfs是Linux 2.6所提供的一种虚拟档案系统。这个档案系统不仅可以把装置(devices)和驱动程式(drivers)的资讯从kernel space输出到user space,也可以用来对装置和驱动程式做设定。 sysfs 的目的是把一些原本在 procfs中的,关于装置的部份独立出来,以[装原创 2015-06-04 11:11:49 · 870 阅读 · 0 评论 -
Linux 文件系统
一、文件系统 文件系统是对一个存储设备上的数据和元数据进行组织的机制。由于定义如此宽泛,支持它的代码会很有意思。正如前面提到的,有许多种文件系统和媒体。由于存在这么多类型,可以预料到Linux 文件系统接口实现为分层的体系结构,从而将用户接口层、文件系统实现和操作存储设备的驱动程序分隔开。 Linux 文件系统体系结构是一个对复杂系统进行抽象化的有趣例子原创 2015-06-04 10:25:37 · 416 阅读 · 0 评论 -
Linux 内核--总线设备驱动模型(字符设备 && misc字符设备)
refer: http://blog.csdn.net/yicao821/article/details/6785738 http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=29521408&id=4247119一、字符设备(char device) 使用 register_c转载 2015-06-04 16:57:29 · 1399 阅读 · 0 评论 -
Linux--内核Uevent事件机制 与 Input子系统
一、Uevent机制1.前提摘要(1)Sysfs文件系统 内核设备模型主要的模块和用户之间能看到的相关部分就是sysfs文件系统了。内核在启动的时候会注册sysfs文件系统,并且在启动系统的初期。通过mount命令挂载sysfs文件系统到/sys挂载点。 Mount -t sysfs sysfs /sys 那么sysfs转载 2015-06-05 17:05:13 · 29389 阅读 · 0 评论 -
linux 编译进内核 && 编译成模块module
refer:http://blog.csdn.net/yicao821/article/details/6740269http://blog.csdn.net/yicao821/article/details/67402691.内核编译命令(makefile)obj-y:把由foo.c 或者 foo.s 文件编译得到foo.o 并连接进内核.obj-m:转载 2015-06-15 11:21:56 · 8838 阅读 · 1 评论 -
用户态以及内核态
1.基础准备(1)为什么要有用户态和内核态??? 由于需要限制不同的程序之间的访问能力, 防止他们获取别的程序的内存数据, 或者获取外围设备的数据, 并发送到网络, CPU划分出两个权限等级 --用户态 和 内核态(2)用户态和内核态???核心态(内核态):当CPU正在运行内核代码时(内核代码是共享的)。 (此时,CPU可以访问内存所有数转载 2015-06-15 09:22:05 · 739 阅读 · 0 评论 -
用户级线程和内核级线程0
转自:http://www.2ndmoon.net/weblog/?p=603一、linux 进程/线程基础 进程是系统中程序执行和资源分配的最小单位。每个进程都拥有自己的数据段,代码段和堆栈段。这就造成了进程在进行切换等操作时需要有比较负责的上下文切换等动作。为了进一步减少处理机的空转时间,支持多处理器,和减少上下文开销,由此有线程的提出。转载 2015-07-15 14:14:07 · 1365 阅读 · 0 评论 -
Linux用户空间与内核空间
A.INTRODUCTION (32位系统) Linux 简化了分段机制,使得虚拟地址(逻辑地址)与线性地址总是一致,因此,Linux的虚拟地址空间也为0~4G(2^32)。 Linux内核将这4G字节的空间分为两部分。将最高的 1G字节(从虚拟地址0xC0000000到0xFFFFFFFF),供内核使用,称为“内核空间”。而将较低的3G字节(从虚拟地址 0x转载 2015-04-30 14:51:06 · 2784 阅读 · 0 评论 -
Linux用户态和内核态
http://blog.chinaunix.net/uid-23069658-id-3344883.html如何看待操作系统的用户空间和内核空间?一、前提摘要1.操作系统(如linux,提供了用户模式和内核模式:将其分为了用户空间和内核空间) 所谓的操作系统,就是对硬件资源进行统一管理的系统,并向用户提供业务接口的软件系统。通转载 2015-07-15 15:41:37 · 958 阅读 · 0 评论 -
Linux 内核之中断
一、引 子(http://blog.csdn.net/ccjjnn19890720/article/details/7284474)1.中断引入? 硬件如果要和cpu进行通信有那么几种方法?(把这个过程比作是老师分苹果的故事) 有程序查询法,中断,DMA,通道等。 程序查询法就是老师每一个小孩子都去问,他们的苹果有没有吃完了转载 2015-06-19 10:52:02 · 2411 阅读 · 0 评论 -
linux定时器
一、基本简介refer:http://blog.chinaunix.net/uid-11848011-id-96374.html【简介】这篇文章主要记录我在试图解决如何尽可能精确地在某个特定的时间间隔执行某项具体任务时的思路历程,并在后期对相关的API进行的归纳和总结,以备参考。【问题引出】很多时候,我们会有类似“每隔多长时间执行某项任务”的需求,乍看这个问题并不难解决转载 2015-06-17 09:17:22 · 833 阅读 · 0 评论 -
Linux下的 GDB调试 【在线sample程序--&&--离线sample程序】
参考:http://blog.csdn.net/xiaofei0859/article/details/5649057 http://blog.csdn.net/haoel/article/details/2879一、GDB 调试方法一)、GDB的静态调试启动方法:1、当需要在命令行通过gdb来启动可执行程序的时候,可使用一下命令:转载 2015-05-08 09:47:58 · 1539 阅读 · 1 评论 -
ELF 文件初识
refer: http://blog.chinaunix.net/uid-9525959-id-2001831.html ELF文件原名Executable and Linking Format,译为“可执行可连接格式”。是一种比较复杂的文件格式,但其应用广泛。与linux下的其他可执行文件(a.out,cof)相比,它对节的定义和gnu工具链对它的支持使转载 2015-05-08 16:13:12 · 4120 阅读 · 0 评论 -
linux kill
refer: http://www.cnblogs.com/peida/archive/2012/12/20/2825837.html Linux中的kill命令用来终止指定的进程(terminate a process)的运行,是Linux下进程管理的常用命令。通常,终止一个前台进程可以使用Ctrl+C键,但是,对于一个后台进程就须用kill命令来终止,我们就需要先使用p转载 2015-05-08 17:58:40 · 373 阅读 · 0 评论 -
静态库、共享库、动态库的创建和使用
转自:http://www.cnblogs.com/ThinkingWorld/articles/1861249.html linux下,通常库分为:静态库,共享库,动态加载库。下面分别介绍。一、 静态库:1.概念: 静态库就是一些目标文件的集合,以.a结尾。静态库在程序链接的时候使用,链接器会将应用程序中使用到函数的代码从库文件中拷贝到应转载 2015-04-30 16:29:48 · 666 阅读 · 0 评论 -
Linux虚拟地址空间布局
Linux虚拟地址空间布局 在多任务操作系统中,每个进程都运行在属于自己的内存沙盘中。这个沙盘就是虚拟地址空间(Virtual Address Space),在32位模式下它是一个4GB的内存地址块。在Linux系统中, 内核进程和用户进程所占的虚拟内存比例是1:3,而Windows系统为2:2(通过设置Large-Address-Aware Executables标志也可为转载 2015-04-30 15:26:46 · 503 阅读 · 0 评论 -
Linux系统下 连接器ld链接顺序的总结
原来ld对于链接一系列的库的顺序是很敏感的。 不然会报undefined referenced 的函数符号错误,意思就是未找到函数定义。实际上库是能正确打开的。如果库libA.a依赖于库libB.a,那么连接器的参数应该ln -lA -lB, 必须这样写。不然就会错误。 这个看来是历史的遗留问题。说白了就是,如果你确定某个库不重要,就放到最后,也就是说,库的加载顺序是按顺转载 2015-05-12 14:52:39 · 2203 阅读 · 0 评论 -
linux管理 共享库文件
Linux运行的时候,是如何管理共享库(*.so)的?在 Linux 下面,共享库的寻找和加载是由 /lib/ld.so 实现的。1、标准库文件路径 ld.so在标准路经(/lib, /usr/lib) 中寻找应用程序用到的共享库。 //////往/lib和/usr/lib里面加东西,是不用修改/etc/ld.so.conf的,///////但是完了之后要调一下ldconf转载 2015-05-12 10:00:11 · 401 阅读 · 0 评论 -
Linux程序移植到Android上
http://www.linuxidc.com/Linux/2014-03/97499.htm序言: 由于本人还是比较偏重于先说明原理在说明实际操作步骤,要知其然更要知其所以然,如下图所示: 传统的linux系统中的程序基本都依赖于glibc(至于什么是glibc可以百度去),而右边AOSP(Android Open-S转载 2015-05-13 14:29:46 · 3366 阅读 · 1 评论 -
使用strace, ltrace寻找故障原因的线索
refer:http://blog.csdn.net/delphiwcdj/article/details/7387325 在GNU/Linux环境下,当程序出现“疑难杂症”的时候,如何快速定位问题呢?本文介绍strace/ltrace的一些使用方法,内容主要来自个人的读书笔记(可见参考文献)。strace/ltrace 是一类不错的工具,在工作中经常会用到,其主要可以用于:(1转载 2015-05-07 16:22:54 · 444 阅读 · 0 评论 -
android下的linux内核编译
二、android中bootimage的生成0.linux VMLINUX 的生成 vmlinux(vmlinuz)是一个包含linux kernel的静态链接的可执行文件,文件型态可能是linux接受的可执行文件格式之一(ELF、COFF或a.out)。vmlinux是未压缩的内核,vmlinux 是ELF文件,即编译出来的最原始的文件。 下面以mtk6582分析为原创 2015-05-28 09:21:27 · 7995 阅读 · 0 评论 -
linux内核加载顺序(system.mp)
1.kernel 入口函数:/*B.*/kernel/init/main.c://开始kernel的初始化等动作asmlinkage void __init start_kernel(void)--->>rest_init();-->>do_basic_setup();first====>>>driver_init();(初始化各种总线bus等)then====原创 2015-05-28 13:52:45 · 1922 阅读 · 0 评论 -
用户级线程和内核级线程
一、关于用户空间以及内核空间的介绍 Linux为内核代码和数据结构预留了几个页框。这些页永远不会被转出到磁盘上。从 0x0 到 0xc0000000(PAGE_OFFSET) 的线性地址可由用户代码 和 内核代码进行引用。从0xc0000000(PAGE_OFFSET) 到 0xffffffff的线性地址只能原创 2015-07-15 10:20:42 · 3485 阅读 · 1 评论