上一页 1 ··· 31 32 33 34 35 36 37 38 39 ··· 42 下一页
摘要: 开始”映射“之旅,在上面的讲解中经常提及到“”映射“的概念,那到底什么是映射?一个线性区可以和磁盘上的某个文件关联或者是某个文件的一部分来关联,这也就意味着内核把线性区的访问页内某个字节的访问转换成对于文件的中相应页面的访问,这种技术称之为“内存映射”。使用strace hello得到:...open("/usr/lib/locale/en_AU.UTF-8/LC_TIME", O_RDONLY) = -1 ENOENT (No suc 阅读全文
posted @ 2010-03-24 21:09 qiang.xu 阅读(509) 评论(0) 推荐(0) 编辑
摘要: 这里开始分析hello中的一个寻址过程的实现。当然现在的情景是:(当然可能只是一小部分加载到了内存中,大部分的需要使用缺页异常处理来实现内存分配)。在sys_exece()函数中,在内存ram中保存了命令行参数,环境参数,但是代码段,数据段,bss段,可执行文件的其他段提供”映射“(映射的具体含义参见"深入理解Hello World 3"),此时文件到虚存的映射仅仅是建立了一种映射关系,也就是说,虚存页面到物理页面之间的映射还没有建立。在说明内存寻址 之前,先来看看进程是如何管理虚拟地址,然后开始说明在没有缺页的情况下,保护模式下的寻 阅读全文
posted @ 2010-03-23 21:31 qiang.xu 阅读(754) 评论(0) 推荐(0) 编辑
摘要: 现在的假设是:hello可执行文件已经存在于磁盘上(存储介质上),并且在可执行文件中包含了被执行的text,同时也包含了这些目标代码使用的数据,同时上面的分析可得,在elf中定义的只是虚拟的地址(linux中对于每个process的话,否有4GB的虚拟地址空间,当然这些地址只是virtual的,真正的数据的存储还是在实际的ram中,OS提供虚拟存储空间主要是为了能够在ram容量较小的机器中运行一些占用内存较大的应用程序)。下面开始今天的旅行。假设你在shell中键入:./hello,shell创建一个新的进程,新的进程又使用系统调用sys_execve(),sys_execve()系统调用首先 阅读全文
posted @ 2010-03-23 18:19 qiang.xu 阅读(619) 评论(0) 推荐(0) 编辑
摘要: ubuntu自带的浏览器是firefox,还是习惯于google chrome的小巧和高效,那就装一个google chrome吧,很简单,首先到:http://www.google.com/chrome/intl/en/eula_dev.html?dl=unstable_i386_deb下载deb的包,双击安装即可。我已经把这个deb的包上传到csdn上,可以在我的doenload page中找到相应的下载包:http://xuqianghit.download.csdn.net/ 阅读全文
posted @ 2010-03-21 18:54 qiang.xu 阅读(857) 评论(0) 推荐(0) 编辑
摘要: 当你在workflow环境中执行任务时,需要一些minitor来监视整个的代码执行过程,这个monitor命名为WorkflowRuntime,WorkflowRuntime会启动一个新的instance来完成上面的工作,在你的任务的执行的过程中,instance会根据外部的事件来执行对应的事件处理函数,需要指出的是这个WorkflowRuntime还能够指定一个service来保持跟踪,比如说添加一个SqlWorkflowPersistenceService服务,能够将正在执行的Workflow保存到sql server中,然后还可以将保存在数据库中的实例恢复。Workflow应用程序通常的 阅读全文
posted @ 2010-03-20 19:33 qiang.xu 阅读(533) 评论(0) 推荐(0) 编辑
摘要: 今天,一个哥们的ubuntu系统启动时停止在grub阶段,我问他怎么回事?原来是wubi升级惹的祸啊。ubuntu是使用的是wubi来安装,另外的一个系统是windows 7,经过尝试,终于进入系统,同时修复了系统的grub,现将整个的过程记录如下:进入grub时的命令行,常用的命令包含如下:ls命令:查看电脑中安装的硬盘的情况set root = (hd0,8):如果不确定ubuntu安装盘的盘符的话,可以根据上面的ls命令来一个一个实验,设置完root之后,然后使用ls /命令来查看root下的文件目录,使用这个命令来查看相应的root盘。真个的过程如下:在 grub中键入下面的命令:se 阅读全文
posted @ 2010-03-19 14:14 qiang.xu 阅读(317) 评论(0) 推荐(0) 编辑
摘要: 吻你,我不惊醒你这片和煦的土地是这样的安宁墓碑前我默默地注视着你我知道尽管这座座坟莹只是生命的缩影但那巍然屹立的英灵却是一个个不倒的躯体吻你,我不惊醒你这片热红的土地是这样的安静墓碑前我轻轻地抚摸着你我知道尽管这排排石碑再不会复苏;但那魂糸南疆的每一个英名却在这里永垂吻你,我不惊醒你这片褐色的土地是这样的肃静墓碑前我紧紧拥抱着你我知道尽管我们人生的梦还没有真正实现但为和平而战、死和生你都会那样坦然吻你,我不惊醒你这座正义鲜血染红的长城是这样悄静墓碑前我给你一个深沉的吻我知道尽管你再不能感受到那炽热的爱但你却没有一点忧伤和惆怅吻你,我不惊醒你这片五湖四海英灵再生的土地是这样沉静墓碑前我的心在呼唤 阅读全文
posted @ 2010-03-19 12:50 qiang.xu 阅读(363) 评论(0) 推荐(0) 编辑
摘要: 本文讨论:•用于编写单元测试的 NUnit•用于创建代码文档资料的 NDoc•用于生成解决方案的 NAnt•用于生成代码的 CodeSmith•用于监视代码的 FxCop•用于编译少量代码的 Snippet Compiler•两种不同的转换器工具:ASP.NET 版本转换器和 Visual Studio .NET 项目转换器•用于生成正则表达式的 Regulator•用于分析程序集的 .NET Reflector本文使用了下列技术:. 阅读全文
posted @ 2010-03-19 11:41 qiang.xu 阅读(222) 评论(0) 推荐(0) 编辑
摘要: 内核启动的现在已经是开始执行函数start_kernel函数了。start_kernel函数在init/main.c中定义。start_kernel函数只是完成相应的结构的初始化任务。 printk(KERN_NOTICE); printk(linux_banner); setup_arch(&command_line);在uboot的一直过程中,uboot传递给kernel的参数:预先存放在某个地方的tag和机器类型id,机器类型id在函数__look_up_machine中已经使用,tag列表是在函数setup_arch中调用的。setup_arch函数是在arch/arm 阅读全文
posted @ 2010-03-18 14:49 qiang.xu 阅读(854) 评论(0) 推荐(0) 编辑
摘要: 在前面的准备工作完成之后,先实验一下,谈不上真正的移植 ,因为代码都没有改的。首先修改顶层的Makefile,修改ARCH,CROSS_COMPLIE变量。#ARCH ?= $(SUBARCH)ARCH ?= armCROSS_COMPILE ?= arm-linux-执行make smdk2410_defconfigmake然后执行make uImage,注意需要含有mkimage工具,这个工具是在编译uboot时产生的,同时需要将mkimage拷贝到path环境变量中。最终在arch/arm/boot/目录下生成uImage文件,下载该文件到开发板中,既可以观察结果,当然此时是没有文件 阅读全文
posted @ 2010-03-16 21:33 qiang.xu 阅读(933) 评论(0) 推荐(0) 编辑
摘要: 【转】Linux内核裁剪的具体步骤在menuconfig中配置:详细介绍内核配置选项及删改情况第一部分:全部删除Codematurityleveloptions--->代码成熟等级选项[]Promptfordevelopmentand/orincompletecode/drivers默认情况下是选择的,这将会在设置界面中显示还在开发或者还没有完成的代码与驱动.不选。第二部分:除以下选项,其它全部删除Generalsetup—〉SystemVIPC(IPC:InterProcessCommunication)是组系统调用及函数库,它能让程序彼此间同步进行交换信息 阅读全文
posted @ 2010-03-16 21:25 qiang.xu 阅读(741) 评论(0) 推荐(0) 编辑
摘要: 下面的文件的使用方法是:将下面的文件保存在linux内核源码目录中,文件的名称是.config,然后make menuconfig,在出现的配置界面中选择Load Configuratio选项,然后可以在这个基础上修改自己的kernel。下面的配置是基于s3c2410,支持yaffs2文件系统。我看了一下编译出来的uImage大概在800k左右,呵呵么这是本人第一次成功裁减内核。## Automatically generated make config: don't edit# Linux kernel version: 2.6.22.6# Tue Mar 16 20:42:20 2 阅读全文
posted @ 2010-03-16 21:11 qiang.xu 阅读(7638) 评论(0) 推荐(0) 编辑
摘要: vmlinux在链接时,使用的文件是在vmlinux-all中定义的所有文件,链接俄脚本是在arch/arm/kernel/vmlinux.lds中定义该如何 链接这些文件。总结上面:真个的 linux的源码是通过Makefile来实现项目的 管理的,顶层的Makefile定义了那些文件夹 中的 内容 被编译进内核,各级的子目录下的Makefile决定该目录下的那些文件被编译进内核。 对于编译选项的设置的话,存在全局的,局部的和仅对一个文件起作用的选项。3.内核的Kconfig文件的 分析在linux内核目录下,如果直接使用make menuconfig的话,出现的配置界面就是使用的是Kbui 阅读全文
posted @ 2010-03-15 21:36 qiang.xu 阅读(684) 评论(0) 推荐(0) 编辑
摘要: 1.首先是获得linux内核源码,好像是废话,下载地址如下:ftp://ftp.kernel.org/pub/linux/kernel/v2.6/下载:linux-2.6.16.22.tar.bz2 patch-2.6.22.6.bz2上面一步需要说明的是一般而言,linux内核的各个补丁文件是根据某个linux内核的版本号来作的patch。将上面的两个压缩文件解压:tar jxvf linux-2.6.22.tar.bz2tar jxvf patch-2.6.22.6.bz2cd linux-2.6.22patch -p1 < ../patch-2.6.22.62.linux内 阅读全文
posted @ 2010-03-14 18:10 qiang.xu 阅读(1482) 评论(0) 推荐(0) 编辑
摘要: liinux下安装xipmsg,本来很简单的问题,几个命令就能搞定的事情,结果却是稍微的麻烦点。首先在ubuntu中最简单的方法就是使用apt-get来安装xipmsgsudo apt-get install xipmsg另外的一种方法就是直接编译源码来实现,下载地址是http://www.ipmsg.org/index.html.en,在其中下载相应的文件,ls一下,没有configure文件,how ?最直接的方法就是直接读取REAME文件,果然在REAME中存在安装的说明。名儒如下:INSTALL (1) Edit Imakefile. - Enabe/Disable OS depend 阅读全文
posted @ 2010-03-14 17:00 qiang.xu 阅读(346) 评论(0) 推荐(0) 编辑
上一页 1 ··· 31 32 33 34 35 36 37 38 39 ··· 42 下一页