
LINUX内核
文章平均质量分 93
ninver2007
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
mb, smb_mb() barrier()
mb,,smp_mb() barrier()2010-09-01 15:39讨论一下,为什么他的那个例子: + (2) Multiprocessor interaction + + When there's a system with more than one processor, these may be working + on t转载 2012-10-10 10:13:44 · 1186 阅读 · 0 评论 -
UBIFS文件系统源码分析
一):挂载UBIFS的代码分析陆陆续续的看UBIFS很长时间了,一直没有写出一点东西。因为我在=到能够系统的理解UBIFS的时候再写出一点东西。但是因为工作比较忙,UBIFS源码读的断断续续,老是需要复习拾起,比较浪费时间,所以决定写出一点东西,做个备份吧。我决定在读UBIFS源码之前需要读两份关于UBIF设计的文档:一份是《UBI-Unsorted Block Images》 ubi转载 2012-09-24 15:16:21 · 16866 阅读 · 0 评论 -
Ext2的目录项及文件的定位
文件系统一个很重要的问题就是文件的定位,如何通过一个路径来找到一个文件的具体位置,这就要依靠ext2_dir_entry这个结构。1.Ext2目录项结构在Ext2中,目录是一种特殊的文件,它是由ext2_dir_entry这个结构组成的列表。这个结构是变长的,这样可以减少磁盘空间的浪费,但是,它还是有一定的长度方面的限制,一是文件名最长只能为255个字符。二是尽管文件名长度可以不限转载 2012-09-26 16:55:04 · 1649 阅读 · 0 评论 -
softgun 模拟器成功启动imx21的uboot以及内核
启动日志:LCA "uboot" "/platform/kernel_source/u-boot-1.1.4/u-boot.bin"Configuration file "/platform/appliaction/softgun-0.20/configs/imx21ads.sg" loadedIO-Thread startedRegistered /dev/ptmx UART E原创 2012-09-26 16:26:16 · 1295 阅读 · 0 评论 -
NAND FLASH ECC校验原理与实现
ECC简介 由于NAND Flash的工艺不能保证NAND的Memory Array在其生命周期中保持性能的可靠,因此,在NAND的生产中及使用过程中会产生坏块。为了检测数据的可靠性,在应用NAND Flash的系统中一般都会采用一定的坏区管理策略,而管理坏区的前提是能比较可靠的进行坏区检测。 如果操作时序和电路稳定性不存在问题的话,NAND Flash出错的时候一般不会造成整个Blo转载 2012-10-16 08:58:28 · 690 阅读 · 0 评论 -
使用 google-perftools 剖析程序性能瓶颈
google-perftools 简介google-perftools 是一款针对 C/C++ 程序的性能分析工具,它是一个遵守 BSD 协议的开源项目。使用该工具可以对 CPU 时间片、内存等系统资源的分配和使用进行分析,本文将重点介绍如何进行 CPU 时间片的剖析。 google-perftools 对一个程序的 CPU 性能剖析包括以下几个步骤。1. 编译目标程序,加入对 goo转载 2012-10-16 08:57:16 · 621 阅读 · 0 评论 -
达芬奇平台DM644X(ARM9, Linux-2.6.10)BSP之clock.c分析
--------------------------------------------本文系本站原创,欢迎转载!转载请注明出处:http://zhiqiang0071.cublog.cn-------------------------------------------- /*转载 2012-10-16 09:00:12 · 854 阅读 · 0 评论 -
AT91初始化代码手册中文翻译版
介绍由于多种原因基于ARM的AT91的大多数应用代码使用C语言编写。然而,启动顺序要求初始化ARM处理器和严重依赖于寄存器结构的关键设备和内存映射处理机,和存储器重映射操作。由于这个原因,C启动序列必须用汇编编写。这个应用笔记描述了一个AT91的C代码启动序列示例。他是使用ARM ADS1.1开发工具为AT91评估板写的基于C启动序列。更多的可用C启动序列示例见AT91库。在上电并且复位后转载 2012-10-18 13:44:37 · 777 阅读 · 0 评论 -
Linux启动时间的极限优化
完成嵌入式应用的Linux裁减后,Linux的启动时间仍需要 7s 左右,虽然勉强可以接受,但仍然没有达到我个人所追求的目标——2s 以内。况且,在实际的商用环境中,设备可靠性的要求可是“5个9”(99.999%,即OOS时间低于5分钟/年),这就意味着每减少一秒钟Linux启动(设备复位)时间,对可靠性都是一个明显的提升。 言归正传,如何着手对Linux的启动时间进行优化呢? CEL转载 2012-10-18 13:46:49 · 697 阅读 · 0 评论 -
关于DM8168的SATA接口与SATA3设备连接建立失败的问题
关于DM8168的SATA接口与SATA3设备连接建立失败的问题 影响CPU的版本: 2.0细节: 当DM8168的SATA接口与一个SATA GEN3设备(如一个硬盘)连接的时候,在复位和上电后,进行速度协商失败,不能建立连接。 有两种结果一样的连接失败类型:(1) 丢失同步 对GEN3转载 2012-11-21 13:44:11 · 847 阅读 · 0 评论 -
Android HAL 层原理分析
Android HAL 简介Android 系统硬件抽象层(Hardware Abstract Layer)运行在用户空间中,它向下屏蔽了硬件驱动的实现细节,向上提供了硬件访问的服务。通过 HAL 层,Android 系统分为两层来支持硬件设备,其中一层实现在用户空间,另外一层实现在内核空间中,它在 Android 系统框架中的位置如下图所示。传统的 Linux 系统则把对硬件的支持和管理全部...转载 2019-07-24 18:39:09 · 1893 阅读 · 1 评论 -
Nand (YAFF2)虚拟机的实现
Nand (YAFF2)虚拟机的实现Yaffs2文件系统在LINUX内核版本2.6.26中还只支持nand flash (mount sb时会检查类型 norflash 3 挂掉内核),方法是在mtd挂载时新建个mtd虚拟分区分区绕过sb在分区挂载时用nand_flash mtd->type的检查,其实就是新建个mtd 驱动内核架构图:(nor flash)用户层原创 2012-10-15 09:01:42 · 835 阅读 · 0 评论 -
五年26个版本:Linux系统内核全程回顾
Phoronix.com今天将他们对Linux系统的研究发挥到了极致:从2005年年中的2.6.12,到正在开发中的2.6.37,五年多来的26个Linux内核版本来了个“群英荟萃”!完成如此庞大规模的横评并不容易,因为每个版本都要跑二十多个测试项目,每个项目又得跑至少三到五遍,总计超过2500次。好在一方面有自动测试套装Phoronix Test Suite,另一方面还有飞快的Intel C转载 2012-09-26 16:40:57 · 668 阅读 · 0 评论 -
SoftIrq 流程分析
------------------------ kernel/softirq.c -----------------------static __init int spawn_ksoftirqd(void);static __init int spawn_ksoftirqd(void){void *cpu = (void *)(long)smp_processor_id();转载 2012-09-26 16:43:53 · 899 阅读 · 0 评论 -
tms320dm6446内核启动分析
关于达芬奇DM6446,里面内部有两个部分,一个是ARM926ejs的核,还有一个是C64+DSP的视频处理核,而我需要关心的重点是arm926ejs的核(bootload和linux内核)从bootloader可知, 第一阶段主要是负责检测arm926ejs的相关硬件平台(主要是内存等),而第二阶段主要将内核映象以及根文件映象拷贝进入到RAM中运行!硬件存储地址说明:翻译 2012-10-08 15:50:46 · 1479 阅读 · 1 评论 -
使用dump_stack查看内核函数调用
使用dump_stack在driver开发期间清晰查看内核中函数调用流程void dump_stack(void){ __backtrace();}arch/arm/lib/backtrace.S|25| ENTRY(__backtrace)在 int wlan_init_fw(wlan_private * priv)函数中加入dump_stack转载 2012-09-27 09:01:15 · 1089 阅读 · 0 评论 -
initramfs
initramfs概述initramfs 与initrd类似,也是初始化好了且存在于ram中的,可以压缩也可以不压缩。但是目前initramfs只支持cpio包格式,它会被 populate_rootfs->unpack_to_rootfs(&__initramfs_start, &__initramfs_end - &__initramfs_start, 0)函数(解压缩、)解析、安装。转载 2012-09-27 08:51:25 · 644 阅读 · 0 评论 -
键盘体系
从什么开始说比较合理呀?就从硬件开始把:严格来说称不上什么键盘体系,但由于键盘的driver code比较的涩晦,所以就称之为键盘体系了。后注:什么叫后注?也就是写完后想说点什么的意思呀!这篇文挡太长了(本来想写的更长,真的,还有一些文件都没有写上去呀),大家还是用“文挡结构图”来看把,厉害把,这么多,全部手写呀。硬件相关硬件,其实有一些内容,但我实在不想一段段的翻译,大家想要的话转载 2012-09-27 08:47:41 · 1600 阅读 · 0 评论 -
ubifs?
第一、什么是ubifs?由IBM、nokia工程师Thomas Gleixner,Artem Bityutskiy等人于2006年发起,致力于开发性能卓越、扩展性高的FLASH专用文件系统,以解决当前嵌入式环境下以FLASH作为MTD设备使用时的技术瓶颈。关键字:UBI:一种类似于LVM的逻辑卷管理层。主要实现损益均衡,逻辑擦除块、卷管理,坏块管理等。UBIFS:基于UBI转载 2012-09-24 15:09:58 · 635 阅读 · 0 评论 -
USB硬盘驱动框架
USB硬盘驱动框架前言:USB驱动在LINUX中占有重要地位,因此了解USB框架是十分必要的,下面以USB硬盘为例了解整个USB驱动的结构。DAVINCI USB驱动的框架图:USB-COREHCD(MUSB CONTROLLER)LOW-LEVEL DRIVER原创 2012-09-21 16:48:04 · 805 阅读 · 0 评论 -
UBIFS文件系统分析
UBI是一个通用的FLASH管理层类似于逻辑卷管理器。基本的功能是UBI层提供了管理多逻辑卷包括静态数据或者动态文件系统。管理一个或者多个FLASH设备的多逻辑卷功能是相同的:l 坏块管理l 访问设备磨损平衡l 逻辑到物理块的映射l 卷存储信息l 设备信息UBI不是传统意义上的用于块设备模拟的FLASH交换层。UBI封装来自文件系统和用户空间接口FLASH的芯片管理翻译 2012-09-24 15:13:31 · 895 阅读 · 0 评论 -
U-Boot中ubi和ubifs命令的使用
(1)查看MTD分区表[cpp] view plaincopyprint?U-Boot$ mtdparts mtdparts variable not set, see 'help mtdparts' no partitions defined defaults: mtdids : nand0=nandflash0 mtdparts: mtdparts转载 2012-09-24 15:19:26 · 1969 阅读 · 0 评论 -
slub中的kmalloc和kfree学习笔记
2.6.26中的内存管理大概分为3个层次 SLUB,伙伴系统和ZONE,其中SLUB在最高层,这里通过分析kmalloc和kfree来分析SLUB的模型,在内存管理中还有NUMA系统,但是NUMA不是必须得,所以以下笔记建立在无SMP和不使用NUMA的环境下,并且不运行DEBUG设置SLUB主要对1页以下的内存进行管理,将1页内存分成相同大小的块,SLUB将这些块称为object,内核进行转载 2012-09-26 17:04:58 · 919 阅读 · 0 评论 -
Linux Scheduler simulation
Scheduling tasks in Linux is a complex task. Linux operates in a variety of use models (such as enterprise server, client desktop, and even embedded devices) over a huge spectrum of processor topologi转载 2012-09-26 16:53:34 · 778 阅读 · 0 评论 -
EXT4 之 文件系统
前言 术语 综述 块Blocks 布局 可调整的block groupFlexible Block Group 元组块Meta Block Groups block group推迟初始化 特殊的inodeSpecial inodes Block和Inode分配策略 校验Checksums 大文件的分配Bigalloc 内嵌数据Inline Data 内嵌目录Inline ...转载 2019-07-24 18:48:12 · 532 阅读 · 0 评论