linux移植
文章平均质量分 92
zzsfqiuyigui
这个作者很懒,什么都没留下…
展开
-
嵌入式Linux系统移植-使用crosstool创建自己的交叉编译器
l 前言在嵌入式系统移植的过程中,必不可少的一样东西是交叉编译器,只有使用交叉编译器才可以把原先在宿主机(相信大多数人所使用的宿主机会是Linuxx86系统的)上所编写的程序交叉编译成开发板(如ARM系统或PPC系统)所识别的二进制形式。对于一些成熟的移植过程来说,互联网上存在已经制作好的交叉编译器,只要下载过来解压缩配置后就可以使用了。但在使用这些交叉编译器的过程中可能存在着一些问题原创 2012-10-21 11:12:47 · 4016 阅读 · 0 评论 -
以太网的帧结构
以太网帧是以太网网络通信信号的基本单元,是对其进行网络性能分析的基础。以太网发展时间较长,衍生出的相应规范较多,如10mbps-10baset ethernet(802.3)、100mbps-fast ethernet(802.3u)、1000mbps-gigabit ethernet(802.3z))和10 gigabit ethernet(ieee 802.3ae)等,一般将以太网帧分为数据帧转载 2013-05-15 21:23:34 · 1661 阅读 · 0 评论 -
如何调试makefile
makefile 的调试有点像魔法。可惜,并不存在makefile 调试器之类的东西可用来查看特定规则是如何被求值的,或某个变量是如何被扩展的。相反,大部分的调试过程只是在执行输出的动作以及查看makefile。事实上,GNU make 提供了若干可以协助调试的内置函数以及命令行选项。用来调试makefile 的一个最好方法就是加入调试挂钩以及使用具保护的编程技术,让你能够在事情出转载 2014-02-06 14:04:01 · 757 阅读 · 0 评论 -
uboot的relocation原理详细分析
最近在一直在做uboot的移植工作,uboot中有很多值得学习的东西,之前总结过uboot的启动流程,但uboot一个非常核心的功能没有仔细研究,就是uboot的relocation功能。这几天研究下uboot的relocation功能,记录在此,跟大家共享。所谓的relocation,就是重定位,uboot运行后会将自身代码拷贝到sdram的另一个位置继续运行,这个在uboot启转载 2014-08-06 11:12:26 · 930 阅读 · 0 评论 -
linux 路由表 的一些相关资料
路由规则负责定义路由策略,它定义来源哪里的IP需要查询哪个路由表(使用别名)。路由规则的查看使用ip rule sh路由规则也从0开始编号,可以自由添加,来源相同IP的路由规则选择根据规则编号的大小确定优先级,编号越小优先级越高。例如如下路由规则:0: from all lookup local 32766: from all lookup main 32767: from a转载 2014-08-15 12:25:54 · 781 阅读 · 0 评论 -
STRONGSWAN源代码学习2_LIBGCRYPT
StrongSwan支持libgcrypt。对于StrongSwan官网上的例子No.3需要安装libcurl、libgcrypt和libgmp。LIBGCRYPT安装libgcrypt依赖于libgpg-error。首先下载libgpg-error和libgcrypt。ftp> open ftp.gnupg.orgConnected to ftp.gnupg.org转载 2014-08-13 16:15:22 · 4502 阅读 · 0 评论 -
STRONGSWAN源代码学习1_IPSEC学习
互联网密钥交换协议IKE(Internet Key Exchange)IKE的三大组成协议:SKEME、Oakley、ISAKMPIKE与ISAKMPISAKMP是IKE的核心协议。很多网络技术人员常常会认为IKE和ISAMKP是相同的概念。IKE的两个阶段第一阶段(Phase 1)分别可以使用6个包交换的主模式(Main Mode)或者3个包交换的主动模式转载 2014-08-13 16:15:25 · 12031 阅读 · 1 评论 -
Linux下软件安装方法汇总
Linux系统中,软件通常以源代码或者预编译包的形式提供。软件源代码需要您亲自编译为二进制的机器代码才能够使用,安装比较耗时,不过您可以自行调节编译选项,决定您需要的功能或组件,或者针对您的硬件平台作出优化。预编译的软件包,通常是由软件的发布者进行编译,您只要将软件拷贝到系统中就可以了。考虑到预编译软件包的适用性,预编译软件包通常不会针对某种硬件平台优化。它所包含的功能和组件也是通用的组合转载 2015-01-04 10:14:06 · 1039 阅读 · 0 评论 -
伙伴系统算法
内核要分配一组连续的页框,必须建立一种健壮、高效的分配策略。为此,必须解决著名的外部碎片(external fragmentation)问题。频繁地请求和释放不同大小的一组连续页框,必然导致在已分配页框的块内分散了许多小块的空闲页框。由此带来的问题是,即使有足够的空闲页框可以满足请求,但要分配一个大块的连续页框就可能无法满足。Linux 采用伙伴系统(buddy system)算法来解决外碎片转载 2013-04-21 13:07:44 · 856 阅读 · 0 评论 -
非连续内存区
从前面的博文中我们已经知道,把一块存放slab结构的内存区映射到一组连续的物理页是最好的选择,这样会充分利用高速缓存并获得较低的平均访问时间。不过,上面的方式主要是针对那些使用非常频繁的内核数据结构——如task_struct、inode来设计的。如果对内存区的请求不是很频繁,那么,通过连续的线性地址,而不是物理地址来访问非连续的物理页框这样一种分配模式就会很有意义了。这种模式的主转载 2013-04-20 07:42:18 · 778 阅读 · 0 评论 -
使用 udev 高效、动态地管理 Linux 设备文件
http://www.ibm.com/developerworks/cn/linux/l-cn-udev/原创 2013-04-02 14:28:34 · 723 阅读 · 0 评论 -
内核驱动模块如何在/dev文件下自动创建设备
转载地址:http://www.cnblogs.com/hnrainll/archive/2011/06/24/2088577.html每次测试自己写的驱动模块都要自己mknod设备文件,总觉得是一种不好的行为而且要自己指定主设备号和次设备号,就是没有书上说sysfs、udev什么程序员不需关心设备号之类的优点了内核TMD经常变,一个2.6.25上还好好的驱动,跑到2.6.29上就不能转载 2013-04-01 23:36:36 · 1615 阅读 · 0 评论 -
Linux内核中ioremap映射的透彻理解
转载地址:http://www.linuxidc.com/Linux/2011-04/34295.htm几乎每一种外设都是通过读写设备上的寄存器来进行的,通常包括控制寄存器、状态寄存器和数据寄存器三大类,外设的寄存器通常被连续地编址。根据CPU体系结构的不同,CPU对IO端口的编址方式有两种: (1)I/O映射方式(I/O-mapped) 典型地,如X86处理器为外设专门实转载 2013-04-03 16:54:58 · 717 阅读 · 0 评论 -
linux 常用内存分配函数小结
1. ioremap :ioremap 会按照页的大小调整映射size。另外,当地址没有页对齐的时候,ioremap会rounding down这个地址,也就是向下圆整地址,然后返回内存页的首地址+offset。下面是ldd的原文:ioremap simulates an unaligned mapping by “rounding down” the address to be rema转载 2013-04-16 23:15:10 · 1182 阅读 · 0 评论 -
linux的物理内存与线性地址空间布局
在支持MMU的32位处理器平台上,Linux系统中的物理存储空间和虚拟存储空间的地址范围分别都是从0x00000000到0xFFFFFFFF,共4GB,但物理存储空间与虚拟存储空间布局完全不同。Linux运行在虚拟存储空间,并负责把系统中实际存在的远小于4GB的物理内存根据不同需求映射到整个4GB的虚拟存储空间中。1.物理存储空间布局Linux的物理存储空间布局与处理器相关,详细情况可转载 2013-04-16 23:37:19 · 6110 阅读 · 0 评论 -
如何增强 Linux 系统的安全性,第一部分: Linux 安全模块(LSM)简介
1.相关背景介绍:为什么和什么是 近年来Linux系统由于其出色的性能和稳定性,开放源代码特性带来的灵活性和可扩展性,以及较低廉的成本,而受到计算机工业界的广泛关注和应用。但在安全性方面,Linux内核只提供了经典的UNIX自主访问控制(root用户,用户ID,模式位安全机制),以及部分的支持了POSIX.1e标准草案中的capabilities安全机制,这对于Linu转载 2013-04-09 16:05:01 · 1154 阅读 · 0 评论 -
Linux进程地址空间
内核使用内存描述符结构体表示进程的地址空间,该结构体包含了和进程地址空间有关的全部信息。内存描述符由mm_struct结构体表示,定义在文件中。进程地址空间由每个进程的线性地址区(vm_area_struct)组成。通过内核,进程可以给自己的地址空间动态的添加或减少线性区域。如下图是内存描述符mm_struct和线性区域描述符vm_area_struct的关系: mm_users域转载 2013-04-25 21:36:19 · 1003 阅读 · 0 评论 -
linux0.11是如何加载并执行一个二进制可执行文件和shell脚本文件的?
1.linux0.11是如何加载并执行一个二进制可执行文件和shell脚本文件的? 答:linux0.11仅支持ZMAGIC执行文件格式,并且执行文件代码都从逻辑地址0开始执行,因此不支持含有代码或数据重定位信息的执行文件。加载并执行一个二进制文件或脚本的主要函数是do_execve(),其主要功能为:a. 执行对命令行参数和环境参数空间页面的初始化操作------设置初试空间起始指转载 2013-04-18 22:06:39 · 1860 阅读 · 0 评论