上一页 1 2 3 4 5 6 7 8 ··· 15 下一页
摘要: 1.关于某个文件名的『类型』侦测(存在与否),如test -e filename-e该『文件名』是否存在?(常用)-f该『文件名』是否为文件(file)?(常用)-d该『文件名』是否为目录(directory)?(常用)-b该『文件名』是否为一个block device装置?-c该『文件名』是否为一个character device装置?-S该『文件名』是否为一个Socket文件?-p该『文件名』是否为一个FIFO (pipe)文件?-L该『文件名』是否为一个连结档?2.关于文件的权限侦测,如test -r filename-r侦测该文件名是否具有『可读』的属性?-w侦测该文件名是否具有『可写 阅读全文
posted @ 2013-03-21 14:31 ArcherDev 阅读(233) 评论(0) 推荐(0) 编辑
摘要: init的进程号是1(ps -aux | less),从这一点就能看出,init进程是系统所有进程的起点,Linux在完成核内引导以后,就开始运行init程序。init程序需要读取配置文件/etc/inittab。inittab是一个不可执行的文本文件,它有若干行指令所组成。理解Runlevel: runlevel用来表示在init进程结束之后的系统状态,在系统的硬件中没有固定的信息来表示runlevel,它纯粹是一种软件结构。init和inittab是runlevel影响系统状态的唯一原因。在上述例子中inittab文件起始阶段的注释主用来描述runlevel: Runlevel 0 是.. 阅读全文
posted @ 2013-03-21 12:38 ArcherDev 阅读(516) 评论(0) 推荐(0) 编辑
摘要: http://blog.csdn.net/gxfan/article/details/3173292linux内核地址空间与用户地址空间的差别本文仅限在i386平台下讨论一般情况。1、用户线性地址空间范围0-3G,内核线性空间范围3G-4G。2、内核总是立即满足内核空间的物理内存分配,并且分配结果对所有进程可见;而对于用户空间的内存分配请求,linux总是先保留用户线性地址空间的一段区域,然后修改页表项使这段线性区域都指向一页内容全为0的全局只读物理页。当进程写入这段线性区域时,将会产生一个缺页异常,这时系统才会为对应的线性地址分配物理页面,并且把物理页对应的页表项置为可写。为了保持和全局只读 阅读全文
posted @ 2013-03-21 10:13 ArcherDev 阅读(511) 评论(0) 推荐(0) 编辑
摘要: MMU现代操作系统普遍采用虚拟内存管理(Virtual Memory Management)机制,这需要处理器中的MMU(Memory Management Unit,内存管理单元)提供支持,本节简要介绍MMU的作用。首先引入两个概念,虚拟地址和物理地址。如果处理器没有MMU,或者有MMU但没有启用,CPU执行单元发出的内存地址将直接传到芯片引脚上,被内存芯片(以下称为物理内存,以便与虚拟内存区分)接收,这称为物理地址(Physical Address,以下简称PA),如下图所示。图17.5.物理地址如果处理器启用了MMU,CPU执行单元发出的内存地址将被MMU截获,从CPU到MMU的地址称为 阅读全文
posted @ 2013-03-21 09:33 ArcherDev 阅读(608) 评论(0) 推荐(0) 编辑
摘要: http://learn.akae.cn/media/index.html 阅读全文
posted @ 2013-03-20 13:16 ArcherDev 阅读(119) 评论(0) 推荐(0) 编辑
摘要: http://www.imtxc.com/blog/2012/04/25/vim-tips-and-experience/首先明确一些环境和一些术语说明:我所使用的是Debian Linux上的vim7.3版本; 下面的配置中,<C表示Ctrl键,比如<C-v>表示按住Ctrl后按v键; 下面的配置中,<M表示Alt键,比如<M-t>表示按住Alt后按t键; 我在说明中提到的“前”,一般的意思是“右或者下”,“后”的意思一般是“左或者上”;我提到的“字”一般表示一个英文字母或者一个汉字; 我提到的“词”表示一个英文单词,对于中文的话,被英文/标点符号等隔开的 阅读全文
posted @ 2013-03-20 09:50 ArcherDev 阅读(472) 评论(0) 推荐(1) 编辑
摘要: >>转载请注明来源:飘零的代码 piao2010 ’s blog,谢谢!^_^>>本文链接地址:Linux cp mv rm ln 命令对于 inode 和 dentry 的影响 在看《unix环境高级编程》文件系统一节的时候,发现自己对文件系统相关的概念不是很清晰。首先介绍两个基本概念:第一个重要概念 inode (中文名:索引节点),包含文件的大部分信息: * 文件的字节数 * 文件拥有者的User ID * 文件的Group ID * 文件的读、写、执行权限 * 文件的时间戳,共有三个:ctime指inode... 阅读全文
posted @ 2013-03-20 09:44 ArcherDev 阅读(1388) 评论(0) 推荐(0) 编辑
摘要: http://www.ibm.com/developerworks/cn/linux/l-dynlink/index.html 阅读全文
posted @ 2013-03-20 09:41 ArcherDev 阅读(314) 评论(0) 推荐(0) 编辑
摘要: http://blog.sina.com.cn/s/blog_622a99700100pjv3.html尝试解答以下问题: 1.为什么cp的方式更新运行中进程的so,程序会coredump 2.采用什么方式更新已经加载了的so,就可以避免coredump我们的公共组件绝大部分都支持so形式的自定义插件,比如s++,qzhttp,ttc。在不停进程更新so的时候往往会产生coredump,并且肯定core得莫名其妙,core得让人心碎。 先看一下用cp的方式更新so的时候发生了什么事情 strace cp new.so old.so #strace是人间利器发现老的so被trunc了,这个过程发 阅读全文
posted @ 2013-03-20 09:33 ArcherDev 阅读(707) 评论(0) 推荐(0) 编辑
摘要: >>转载请注明来源:飘零的代码 piao2010 ’s blog,谢谢!^_^>>本文链接地址:为何cp覆盖进程的动态库(so)会导致coredump 接上一篇博客《 Linux共享库(so)动态加载和升级》留下的问题:为何cp覆盖进程(运行中的程序)的动态库(so)会导致coredump ?之前的分析只是定位到cp覆盖so文件的时候由于不会改变inode号所以引发了悲剧,但本质原因并没有找到。于是开始查找学习Linux下动态链接的实现,以及神器 gdb的常用操作。恰好在搜索相关信息的时候发现了一篇关键的文章,在作者思路的引导下发现可以利用gdb做... 阅读全文
posted @ 2013-03-19 15:53 ArcherDev 阅读(1452) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 ··· 15 下一页