- 博客(19)
- 资源 (12)
- 收藏
- 关注
转载 linux设备模型 —— sysfs
1 sysfs初探"sysfs is a ram-based filesystem initially based on ramfs. It provides a means to export kernel data structures, their attributes, and the linkages between them to userspace.” --- documenta
2012-02-29 19:46:18 1510
转载 进程退出
很多进程终止了他们本该执行的代码,从这种意义上说,他们已经“死”了。当这种情况发生时,必须通过内核以便内核释放进程所拥有的资源。进程终止的一般方式是调用exit()库函数,该函数释放C函数库所分配的资源,执行编程者所注册的每个函数,并结束从系统回收进程所执行的那个系统调用。内核可以有选择地强迫整个线程组死掉。这发生在以下两种典型情况下:当进程接收到一个不能处理或忽视的信号时,或者当
2012-02-29 18:31:54 994
转载 schedule()函数(重点)
好了,前面的准备工作都做完了,我们就进入进程调度的主体程序——schedule()函数。函数schedule()实现调度程序。它的任务是从运行队列的链表rq中找到一个进程,并随后将CPU分配给这个进程。schedule()可以由几个内核控制路径调用,可以采取直接调用或延迟调用(可延迟的)的方式。下面,我们就来详细介绍。1 直接调用 如果current进程因不能获得必须的资源而要
2012-02-29 16:30:54 1109
转载 进程调度的概念
从本博开始,我们就要慢慢深入到进程管理乃至整个内核的核心概念——进程调度里边了。这里,先把相关概念理一理。 刚接触Linux,我们就讲了,它是一个分时系统,却由具备实时系统的特性。所以与任何分时系统一样,通过一个进程到另一个进程的快速切换,达到表面上看来多个进程同时执行的神奇效果。我们已经在前面的博文中讲过了进程切换的本身已,从本博开始,我们将进入进程管理最最最重要的部分——进程的调度,主
2012-02-29 13:12:30 1508
转载 提高效率法
当编译占用你时间时你会怎么做。不只是编译,即使是在等待任何短暂的计算机操作结束,这段时间你会干些什么?和你的工作日休息比起来这点时间是微不足道的,但是总的来说它还是能对你的生产率和幸福感感带来巨大帮助的。顺便说一下,这篇文章内容不是只针对开发者和程序员。它对任何使用电脑的聪明人都有效。后面还会附上图片。现在让我们开始吧!为什么要写这篇文章我最近开始在我的工作习惯里使用某种时间管理技
2012-02-29 08:40:49 558
原创 内核空间分配标志
GFP_KERNEL: 常规的内存分配;GFP_DMA:分配的内存仅供DMA使用;GFP_ATOMIC:分配内存时,不允许睡眠,一般用在中断中。目前就看到这3个,以后继续更新~
2012-02-24 16:05:00 593
原创 linux驱动原载-- touch pannel驱动
i2c设备:一. Touch驱动的注册:1. i2c_add_driver(struct i2c_driver xx_i2c_driver): 这个函数仅是调用 i2c_register_driver(struct module *owner, struct i2c_driver *driver);2. i2c_register_driver(struct mo
2012-02-17 15:46:44 2516
转载 Linux内核入门(五)——必要的硬件知识
要想弄懂Linux内核的工作原理,就必须懂点基本的硬件知识。这里我们主要介绍Intel 80x86系列CPU保护模式下最核心的部件中几个寄存器的作用,这些寄存器在Linux内核运行时起着至关重要的作用。至于其他那些各式各样的硬件设备,我们在讲解设备驱动时会针对具体的驱动程序来介绍的。首先,大家先看看CPU的主要架构: EU(通用寄存器、运算器和控制器)执行部件:完成指令所要求的功能。
2012-02-16 17:32:30 2693
转载 Linux内核入门(四)—— 内核汇编语言规则
任何一个用高级语言编写的操作系统,其内核源代码中总有少部分代码是用汇编语言编写的。读过Unix Sys V源代码的读者都知道,在其约3万行的核心代码中用汇编语言编写的代码约2000行,分成不到20个扩展名为.s和.m的文件,其中大部分是关于中断与异常处理的底层程序,还有就是与初始化有关的程序以及一些核心代码中调用的公用子程序。 用汇编语言编写核心代码中的部分代码,大体上是出于如下几个方面
2012-02-16 17:08:36 1826
转载 Linux内核入门(三)—— C语言基本功
linux是一个复杂的软件系统,其内核源代码往往会用到一些在应用程序设计中部常见语言成分和编程技巧,这些都是分析内核源代码的基本功,希望大家能重点掌握。 首先,gcc编译器从语言里吸收了“inline”和“const”。inline函数的大量使用,有利于提高运行效率,由此相当一部分代码从.c文件移入了.h文件。 gcc增加了一种新的基本数据类型“long long int”用于
2012-02-16 16:12:19 3674
转载 Linux内核入门(一)——体系架构
Linux是一套免费使用和自由传播的类Unix操作系统,它最先用于基于x86系列CPU的计算机上。这个系统是由世界各地的成千上万的程序员设计和实现的。其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的Unix兼容产品。我们不去介绍操作系统的历史了,也不管操作系统这门学科上对操作系统的分类了,闲话少说,Linux操作系统只是一个非常新的操作系统。它不拘泥于某种特定的操作系统类型
2012-02-16 11:50:40 2133
转载 linux内核讲解链接
linux内核很好的讲解链接: http://blog.csdn.net/yunsongice/article/details/6171332csdn:http://blog.csdn.net/yunsongice
2012-02-15 16:01:06 838
转载 uboot的移植
14.4 移植U-Boot到开发板U-Boot虽然支持众多处理器和开发板,但是嵌入式系统的硬件是千差万别的,在使用U-Boot的时候,仍然需要针对自己的开发板做适当的修改。幸好U-Boot是一个结构设计合理的软件,在移植过程中严格按照U-Boot的工程结构移植很容易就能取得成功。本节将介绍如何移植U-Boot程序到ARM开发板。14.4.1 U-Boot移植的一般步骤从14.2节对
2012-02-08 15:27:48 616
转载 U-BOOT源码分析及移植
本文从以下几个方面粗浅地分析u-boot并移植到FS2410板上:1、u-boot工程的总体结构2、u-boot的流程、主要的数据结构、内存分配。3、u-boot的重要细节,主要分析流程中各函数的功能。4、基于FS2410板子的u-boot移植。实现了NOR Flash和NAND Flash启动,网络功能。 这些认识源于自己移植u-boot过程中查找的资料和对源码的简单阅读。下
2012-02-03 16:41:23 668
转载 uboot启动流程二
我们可以看到在,start_armboot()函数的最后,在一个无限循环中调用了函数main_loop(),该函数在common/main.c文件中被定义,我们可以看到下面的一段代码:#if defined(CONFIG_BOOTDELAY) && (CONFIG_BOOTDELAY >= 0) s = getenv ("bootdelay"); //得到环境变量
2012-02-02 16:23:53 1917
转载 linux中有关页对齐的宏
#define ELF_PAGESTART(_v) ((_v) & ~(unsigned long)(ELF_MIN_ALIGN-1))目的:将地址按页大小向前对齐举例:0x1234 -> 0x1000#define ELF_PAGEOFFSET(_v) ((_v) & (ELF_MIN_ALIGN-1))目的:计算地址相对页大小的差值举例:0x1234 -> 0x234
2012-02-02 14:16:03 2856
转载 Android boot.img 结构
Android 的boot.img 包括 boot header,kernel, ramdisk首先来看看Makefile是如何产生我们的boot.img的: boot镜像不是普通意义上的文件系统,而是一种特殊的Android定制格式,由boot header,压缩的内核,ramdisk以及second stage loader(可选)组成,可以从mkbo
2012-02-01 17:07:23 834
转载 recovery.img与boot.img对比分析
今天对比分析了一下recovery.img和boot.img的结构,从中粗略知道了Android手机中的恢复模式是怎么回事。以下是文件结构的对比图:从中我们知道:(1)recovery.img其实已经是进入了Linux系统。(2)recovery.img为了具有恢复系统的能力,比普通的boot.img目录结构中: 1、多了/res/image
2012-02-01 17:05:17 937
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人