摘要:
转自:http://blog.sina.com.cn/s/blog_a31ff26901013n07.html一、概述1. Netfilter/IPTables框架简介 Netfilter/IPTables是继2.0.x的IPfwadm、2.2.x的IPchains之后,新一代的L... 阅读全文
摘要:
http://www.bitscn.com/os/linux/200904/158771.html安全 Linux 容器实现指南 轻量级容器 又称作 Virtual Private Servers (VPS) 或 Jails,它们是经常用于限制不可信应用程序或用户的工具。但是最近构造的轻量级容... 阅读全文
摘要:
http://www.ibm.com/developerworks/cn/linux/l-lsm/part1/1.相关背景介绍:为什么和是什么近年来Linux系统由于其出色的性能和稳定性,开放源代码特性带来的灵活性和可扩展性,以及较低廉的成本,而受到计算机工业界的广泛关注和应用。但在安全性方面,Li... 阅读全文
摘要:
自:http://blog.csdn.net/neofung/article/details/6574002Ubuntu上安装和使用SSH网上有很多介绍在Ubuntu下开启SSH服务的文章,但大多数介绍的方法测试后都不太理想,均不能实现远程登录到Ubuntu上,最后分析原因是都没有真正开启ssh-s... 阅读全文
摘要:
又一次换工作,何时是个头,这几年一直在追求自身的快速成长,但真正到觉得差不多可以出山时,却发现自已在市场上叫不上价,随着年龄的增长,对于公司的选择考虑因素也越来越多,对未来也越来越迷惘,自己三年后要成为怎样的人,十年后自己在干什么,对于这些,已经很不清淅了,是人浮躁了还是广州的大环境让人不得不作出妥... 阅读全文
摘要:
http://blog.chinaunix.net/uid-25314474-id-343665.html1.前言略。2.yaffs 文件系统简介按理说这里应该出现一些诸如“yaffs 是一种适合于 NAND Flash 的文件系统 XXXXX”之类的字眼,不过考虑到网络上关于 yaffs/yaff... 阅读全文
摘要:
引子在编译2.6内核的时候,你会在编译选项中看到[*] Enable futex support这一项,上网查,有的资料会告诉你"不选这个内核不一定能正确的运行使用glibc的程序",那futex是什么?和glibc又有什么关系呢?1. 什么是FutexFutex 是Fast Userspace muTexes的缩写,由Hubertus Franke, Matthew Kirkwood, Ingo Molnar and Rusty Russell共同设计完成。几位都是linux领域的专家,其中可能Ingo Molnar大家更熟悉一些,毕竟是O(1)调度器和CFS的实现者。F 阅读全文
摘要:
在嵌入式系统开发中,目前使用的主要编程语言是C和汇编,C++已经有相应的编译器,但是现在使用还是比较少的。在稍大规模的嵌入式软件中,例如含有OS,大部分的代码都是用C编写的,主要是因为C语言的结构比较好,便于人的理解,而且有大量的支持库。尽管如此,很多地方还是要用到汇编语言,例如开机时硬件系统的初始化,包括CPU状态的设定,中断的使能,主频的设定,以及RAM的控制参数及初始化,一些中断处理方面也可能涉及汇编。另外一个使用汇编的地方就是一些对性能非常敏感的代码块,这是不能依靠C编译器的生成代码,而要手工编写汇编,达到优化的目的。而且,汇编语言是和CPU的指令集紧密相连的,作为涉及底层的嵌入式系统 阅读全文
摘要:
其实解压、打包boot.img没什么难度一看就会咯!! 1.先下附件:工具。点击打开链接6.0 KB, 下载次数: 60) 解压到bin文件夹里,方便以后使用。 2.解压boot.img文件 去到boot.img所在的文件夹,输入下面的命令:split.pl boot.img Page size: 2048 (0x00000800) Kernel size: 2240184 (0x00222eb8) Ramdisk size: 221504 (0x00036140) Second size: 0 (0x00000000) Board name: Command line:... 阅读全文
摘要:
ARM汇编有ldr指令以及ldr、adr伪指令,他门都可以将标号表达式作为操作数,下面通过分析一段代码以及对应的反汇编结果来说明它们的区别。 ldr r0, _start adr r0, _start ldr r0, =_start_start: b_start编译的时候设置 RO 为 0x30000000,下面是反汇编的结果: 0x00000000:e59f0004 ldrr0, [pc, #4]; 0xc 0x00000004:e28f0000 addr0, pc, #0; 0x0 0x00000008:e59f0000 ldrr0, [pc, #0]; 0x10 0x0000000c:e 阅读全文
摘要:
http://blog.sina.com.cn/s/blog_6296abc601018p86.html 这个帖子是讲怎么添加一个新的源,deb http://us.archive.ubuntu.com/ubuntu/ hardy multiverse但是当执行sudo apt-get update还会出现 W: Failed to fetch http://us.archive.ubuntu.com/ubuntu/dists/jaunty/universe/binary-i386/Packages 404 Not Found [IP: 91.189.92.180 80]这个时候,需要将(x. 阅读全文
摘要:
http://blog.chinaunix.net/uid-7530389-id-2050116.html由于各种的I/O负载情形各异,Linux系统中文件系统的缺省配置一般来说都比较中庸,强调普遍适用性。然而在特定应用下,这种配置往往在I/O性能方面不能达到最优。因此,如果应用对I/O性能要求较高,除了采用性能更高的硬件(如磁盘、HBA卡、CPU、MEM等)外,我们还可以通过对文件系统进行性能调优,来获得更高的I/O性能提升。总的来说,主要可以从三个方面来做工作:1、Disk相关参数调优2、文件系统本身参数调优3、文件系统挂载(mount)参数调优当然,负载情况不同,需要结合理论分析与充分的 阅读全文
摘要:
Linux kernel 自 2.6.28 开始正式支持新的文件系统 Ext4。 Ext4 是 Ext3 的改进版,修改了 Ext3 中部分重要的数据结构,而不仅仅像 Ext3 对 Ext2 那样,只是增加了一个日志功能而已。Ext4 可以提供更佳的性能和可靠性,还有更为丰富的功能:1. 与 Ext3 兼容。执行若干条命令,就能从 Ext3 在线迁移到 Ext4,而无须重新格式化磁盘或重新安装系统。原有 Ext3 数据结构照样保留,Ext4 作用于新数据,当然,整个文件系统因此也就获得了 Ext4 所支持的更大容量。2. 更大的文件系统和更大的文件。较之 Ext3 目前所支持的最大 16TB. 阅读全文
摘要:
电源是一个电子系统中不可缺少的非常重要的一部分。但是外接的电源通常不能够完全提供系统中需要的所有的电源种类。因此带来了电源电压的变换问题。常用的电源电压的变换芯片包括LDO和DC-DC两种。下面对这两种器件的区别进行分析。1. 传统的稳压器传统的稳压器内部一般使用NPN达林顿管。由上图可见,传统的稳压器是由一个PNP管来驱动NPN达林顿管,所以输入和输出之间的压差(dropout)Vdrop=2Vbe+Vset。也就是说输入和输出之间至少存在1.5-2.5V的压差。如果输入输出之间的压差比较小,那么这种稳压器就不可能完成要求。由此产生了LDO。2.LDOLDO的输入输出之间的压差Vdrop=V 阅读全文
摘要:
Long long ago“ 某些旧的”哑终端“会在发送过来的数据太多,显示速度跟不上时发送一个Ctrl+s让对方等一下,然后再准备好继续显示时发送一个Ctrl+q。Putty“兼容”了这个特性。也有人说是Ctrl+s是锁定屏幕用的 。不管是怎样,当你不小心在Putty中按了Ctrl+s后再按一下Ctrl+q就OK了。 阅读全文
摘要:
from:https://www.ibm.com/developerworks/cn/linux/l-k26initrd/简介:Linux 的 initrd 技术是一个非常普遍使用的机制,linux2.6 内核的 initrd 的文件格式由原来的文件系统镜像文件转变成了 cpio 格式,变化不仅反映在文件格式上, linux 内核对这两种格式的 initrd 的处理有着截然的不同。本文首先介绍了什么是 initrd 技术,然后分别介绍了 Linux2.4 内核和 2.6 内核的 initrd 的处理流程。最后通过对 Linux2.6 内核的 initrd 处理部分代码的分析,使读者可以对 in 阅读全文
摘要:
对音频设备的操作主要是初始化音频设备以及往音频设备发送 PCM(Pulse Code Modulation)数据。为了方便,本文使用 ALSA(Advanced Linux Sound Architecture)提供的库和驱动。在编译和运行本文中的 MP3 流媒体播放器的时候,必须先安装 ALSA 相关的文件。本文用到的主要对 PCM 设备操作的函数分为 PCM 设备初始化的函数以及 PCM 接口的一些操作函数。PCM 硬件设备参数设置和初始化的函数有:intsnd_pcm_hw_params_malloc(snd_pcm_hw_params_t**ptr) intsnd_pcm_hw_par 阅读全文
摘要:
对大量典型程序运行情况的分析结果表明,在一个较短的时间间隔内,由程序产生的地址往往集中在存储器逻辑地址空间的很小范围内。指令地址的分布本来就是连 续的,再加上循环程序段和子程序段要重复执行多次。Cache的工作原理是基于程序访问的局部性。对大量典型程序运行情况的分析结果表明,在一个较短的时间间隔内,由程序产生的地址往往集中在存储器逻辑地址空间的很小范围内。指令地址的分布本来就是连 续的,再加上循环程序段和子程序段要重复执行多次。因此,对这些地址的访问就自然地具有时间上集中分布的倾向。数据分布的这种集中倾向不如指令明显,但对数组的存储和访问以及工作单元的选择都可以使存储器地址相对集中。这种对局部 阅读全文
摘要:
一、 前言Linux加密框架是内核安全子系统的重要组成部份,同时,它又一个的独立子系统形式出现,从它出现在内核根目录下的crypto/就可以看出其地位了。Crypto实现较为复杂,其主要体现在其OOP的设计思路和高度的对像抽像与封装模型,作者展现了其出色的架构设计水准和面向对像的抽像能力。本文力图从加密框架的重要应用,即IPSec(xfrm)的两个重要协议AH和ESP对加密框架的使用,展现其设计与实现。内核版本:2.6.31.13二、 算法模版1. 模版的基本概念算法模版是加密框架的第一个重要概念。内核中有很多算法是动态生成的,例如cbc(des)算法。内核并不存在这样的算法... 阅读全文
摘要:
自:http://blog.csdn.net/eroswang/article/details/4131034可以将linux看作一个用来管理资源的程序,而其他应用程序跑在其上,linux管理应用程序的内存分配,回收,等等。为了管理,它首先需要给自己分配静态的内存空间:代码段空间,mem_map[]空间等等。然后它把剩余的其他RAM用buddy系统进行动态管理。linux内核的pagetable swapper_pg_dir将虚拟地址0xC0000000~0xC0000000+896M映射到物理地址0x0~0x896M。除去内核代码占用的ram外,其余的物理ram都为空闲。当内核需要时,直接分 阅读全文
摘要:
1、sdio接口层解析SDIO总线 SDIO总线 和 USB总线 类似,SDIO也有两端,其中一端是HOST端,另一端是device端。所有的 通信 都是 由HOST端 发送 命令 开始的,Device端只要能解析命令,就可以相互通信。CLK信号:HOST给DEVICE的时钟信号,每个时钟周期传输一个命令。CMD信号:双向 的信号,用于传送 命令 和 反应。DAT0-DAT3信号:四条用于传送的数据线。 VDD信号:电源信号。VSS1,VSS2:电源地信号。SDIO热插拔原理: 方法:设置一个 定时器检查 或 插拔中断检测 硬件:假如GPG10(EINT18)用于SD卡检测 GPG10 为高电 阅读全文
摘要:
http://blog.sina.com.cn/s/blog_59b189220100au1k.html第一部分 Linux下ARM汇编语法尽管在Linux下使用C或C++编写程序很方便,但汇编源程序用于系统最基本的初始化,如初始化堆栈指针、设置页表、操作 ARM的协处理器等。初始化完成后就可以跳转到C代码执行。需要注意的是,GNU的汇编器遵循AT&T的汇编语法,可以从GNU的站点(www.gnu.org)上下载有关规范。一. Linux汇编行结构任何汇编行都是如下结构:[:] [} @ comment[:] [} @ 注释Linux ARM 汇编中,任何以冒号结尾的标识符都被认为是一 阅读全文
摘要:
http://armboard.taobao.com/http://blog.chinaunix.net/uid-13245160-id-84366.htmlRamDisk块设备驱动实例开发讲解一 (2010-12-03 16:28)一、开发环境主 机:VMWare--Fedora 9 开发板:Mini2440--64MB Nand, Kernel:2.6.30.4 编译器:arm-linux-gcc-4.3.2二、块设备基本概念扇区(Sectors):任何块设备硬件对数据处理的基本单位。通常,1个扇区的大小为512byte。 块(Blocks):由Linux制定对内核或文件系统等数据处理的基 阅读全文
摘要:
最近在调试关于视频监控相关应用的时候,需要将在接收端接收的数据切换至TVOUT上显示,但切换过去之后,执行某一次的tvout刷新的过程中,某一次的memset动作会使dma停止工作,如果把memset的区域长度减少则没有问题,将需要memset区域分成两次执行,中间加入一个小延时也无问题,如果把li... 阅读全文
摘要:
从 ARM VIVT 看 cache请访问google 文档. http://docs.google.com/Doc?id=dcbsxfpf_282csrs2pfndo_wp_page 的VIVT 考虑在下面的函数中(write protect detected), 为什么需要 flush_cache_page,和 update_mmu_cache? 原因在于在vivt 的情况下, 如果a 进程写入cache line 1, b进程试图读取自己的 cache line 2, 并且b进程是cow(一种情况), 那么在copy这个页面的时候就需要flush 用户a存在于cache line1 内的 阅读全文
摘要:
可重入函数主要用于多任务环境中,一个可重入的函数简单来说就是可以被中断的函数,也就是说,可以在这个函数执行的任何时刻中断它,转入OS调度下去执行另外一段代码,而返回控制时不会出现什么错误;而不可重入的函数由于使用了一些系统资源,比如全局变量区,中断向量表等,所以它如果被中断的话,可能会出现问题,这类函数是不能运行在多任务环境下的。简介 可重入函数也可以这样理解,重入即表示重复进入,首先它意味着这个函数可以被中断,其次意味着它除了使用自己栈上的变量以外不依赖于任何环境(包括static),这样的函数就是purecode(纯代码)可重入,可以允许有该函数的多个副本在运行,由于它们使用的是分离的栈. 阅读全文
摘要:
转自:http://hi.baidu.com/yangyingchao/blog/item/af66b9d4e522940ca18bb705.html1 相关数据结构struct thread_info { struct task_struct *task; /* main task structure */ struct exec_domain *exec_domain; /* execution domain */ __u32 flags; /* low level flags */ __u32 s... 阅读全文
摘要:
转自:http://www.dbafree.net/?p=870我们可以使用kill -l查看所有的信号量解释,但是没有看到SIGNAL 0的解释。[root@testdb~]# kill -l 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS SIGFPE 9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR213) SIGPIPE 14) SIGALRM ... 阅读全文
摘要:
转自:http://blog.csdn.net/zhang405744522/article/details/50048171. 概论2. 基本概念3. 脚本格式4. 简单例子5. 简单脚本命令6. 对符号的赋值7. SECTIONS命令8. MEMORY命令9. PHDRS命令10. VERSION命令11. 脚本内的表达式12. 暗含的连接脚本1. 概论每一个链接过程都由链接脚本(linker script, 一般以lds作为文件的后缀名)控制. 链接脚本主要用于规定如何把输入文件内的section放入输出文件内, 并控制输出文件内各部分在程序地址空间内的布局. 但你也可以用连接命令做一些 阅读全文