linux

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

02 2012 档案

摘要:本文详细的介绍了Linux内核中的同步机制:原子操作、信号量、读写信号量和自旋锁的API,使用要求以及一些典型示例一、引言在现代操作系统里,同一时间可能有多个内核执行流在执行,因此内核其实象多进程多线程编程一样也需要一些同步机制来同步各执行单元对共享数据的访问。尤其是在多处理器系统上,更需要一些同步机制来同步不同处理器上的执行单元对共享的数据的访问。在主流的Linux内核中包含了几乎所有现代的操作系统具有的同步机制,这些同步机制包括:原子操作、信号量(semaphore)、读写信号量(rw_semaphore)、spinlock、BKL(Big Kernel Lock)、rwlock、brlo 阅读全文
posted @ 2012-02-28 09:27 h13 阅读(719) 评论(0) 推荐(0) 编辑

摘要:所有的__init函数在区段.initcall.init中还保存了一份函数指针,在初始化时内核会通过这些函数指针调用这些__init函数指针,并在整个初始化完成后,释放整个init区段(包括.init.text,.initcall.init等)。 注意,这些函数在内核初始化过程中的调用顺序只和这里的函数指针的顺序有关,和1)中所述的这些函数本身在.init.text区段中的顺序无关。在2.4内核中,这些函数指针的顺序也是和链接的顺序有关的,是不确定的。在2.6内核中,initcall.init区段又分成7个子区段,分别是.initcall1.init .initcall2.init .i... 阅读全文
posted @ 2012-02-22 16:45 h13 阅读(1121) 评论(0) 推荐(0) 编辑

摘要:Linux内部的时钟处理机制全面剖析在 Linux 操作系统中,很多活动都和时间有关,例如:进程调度和网络处理等等。所以说,了解 Linux 操作系统中的时钟处理机制有助于更好地了解 Linux 操作系统的运作方式。本文分析了 Linux 2.6.25 内核的时钟处理机制,首先介绍了在计算机系统中的一些硬件计时器,然后重点介绍了 Linux 操作系统中的硬件时钟和软件时钟的处理过程以及软件时钟的应用。最后对全文进行了总结。◆1、计算机系统中的计时器在计算机系统中存在着许多硬件计时器,例如 Real Timer Clock ( RTC )、Time Stamp Counter ( TSC ) 和 阅读全文
posted @ 2012-02-21 17:35 h13 阅读(5216) 评论(0) 推荐(1) 编辑

摘要:转自:http://blog.yaabou.com/?p=82__user表示是一个用户空间的指针,所以kernel不可能直接使用。#ifdef __CHECKER__# define __user __attribute__((noderef, address_space(1)))# define __kernel /* default address space */#else# define __user# define __kernel#endifnoderef告诉编译器,不应该解除该指针的引用,因为在当前地址空间中它是没有意义的。这里的CHECKER表示是否使用了Sprase(就是一 阅读全文
posted @ 2012-02-20 15:57 h13 阅读(573) 评论(0) 推荐(0) 编辑

摘要:2月 3日, Linux内核开发者 Greg Kroah-Hartman将 Android的驱动程序从 Linux内核“状态树”(“ staging tree”)上除去,从此, Android与 Linux开发主流将分道扬镳。原因是,“ noone seemed to be working on it”,难怪 Linux内核开发团队决定不要它了。呜呼!后果如何?今后,在开源的路上,谷歌 Android 的硬件驱动从何而来?谷歌喜欢开源,是喜欢它自己所喜欢的那种开源,而不是 Linux 的开发主流。谷歌气大财粗,自己去单干吧!国内开源界,不要跟在谷歌屁股后面瞎吹了。说到底, Linux 是草根事 阅读全文
posted @ 2012-02-17 21:24 h13 阅读(5752) 评论(0) 推荐(0) 编辑

摘要:From linux kernel monkey log | 李莘译,转载请注明 ifanr 译文链接。2.6.33 版内核移除了Andirod的代码。很多人不断地问我发生了什么,对于Android下一步要怎么办。这里是我对整件事情的澄清:首先,我很喜欢Android平台。直到上周,我还每天使用我的开发手机G1。它工作良好,作为用户我很满意。另外,从技术角度我也很喜欢他。令人惊奇的是,Google仅仅使用Linux内核构建了一个可移植的和健壮的手机平台,而并没有使用”传统”Linux的任何其他东西。更加难能可贵的是,你可以 在Android系统之上安装一个”真正”的Linux镜像,两者都能正常 阅读全文
posted @ 2012-02-17 21:22 h13 阅读(788) 评论(0) 推荐(0) 编辑

摘要:来源:http://xmxohy.blog.163.com/blog/static/53469584201082734630713/先理解cache的作用CPU在访问内存时,首先判断所要访问的内容是否在Cache中,如果在,就称为“命中(hit)”,此时CPU直接从Cache中调用该内容;否则,就 称为“ 不命中”,CPU只好去内存中调用所需的子程序或指令了。CPU不但可以直接从Cache中读出内容,也可以直接往其中写入内容。由于Cache的存取速 率相当快,使得CPU的利用率大大提高,进而使整个系统的性能得以提升。Cache的一致性就是直Cache中的数据,与对应的内存中的数据是一致的。DM 阅读全文
posted @ 2012-02-17 15:44 h13 阅读(8653) 评论(0) 推荐(0) 编辑

摘要:1、安装git android的linux内核可以从http://android.git.kernel.org/下载,但下载需要使用git,windows版的git可以从http://code.google.com/p/msysgit/下载,有完全安装版和便携版(portable)两个版本可供选择,不常用git的话选portable版就可以了。 下载portable版的git后,解压缩,然后运行git-bash,会出现一个console窗口。2、android的kernel有多个部分,可根据需要运行以下命令下载需要的内容。 在git的console窗口中执行以下命令即可下载内核: $ git 阅读全文
posted @ 2012-02-17 10:00 h13 阅读(6688) 评论(0) 推荐(0) 编辑

摘要:摘自:http://hi.baidu.com/embedexpert/blog/item/03d2ef15126b2964ca80c4dc.html sun-java5-jdk在ubuntu 9.10的source里已经去掉了,如果安装则提示如下:root@mike-desktop:/home/mike/ti_android#sudo apt-get install sun-java5-jdk正在读取软件包列表...完成正在分析软件包的依赖关系树正在读取状态信息...完成E:无法找到软件包sun-java5-jdk成都明诚科技的解决办法是:1、sudo gedit /etc/apt/sourc 阅读全文
posted @ 2012-02-16 21:30 h13 阅读(1855) 评论(0) 推荐(0) 编辑

摘要:转:http://www.cnblogs.com/shenhaocn/archive/2011/03/10/1980310.html1. 硬件特性:【Flash的硬件实现机制】Flash全名叫做Flash Memory,属于非易失性存储设备(Non-volatile Memory Device),与此相对应的是易失性存储设备(Volatile Memory Device)。关于什么是非易失性/易失性,从名字中就可以看出,非易失性就是不容易丢失,数据存储在这类设备中,即使断电了,也不会丢失,这类设备,除了Flash,还有其他比较常见的入硬盘,ROM等,与此相对的,易失性就是断电了,数据就丢失了, 阅读全文
posted @ 2012-02-03 09:27 h13 阅读(6274) 评论(0) 推荐(1) 编辑