随笔分类 -  Linux

摘要: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 阅读(643) 评论(0) 推荐(0)
摘要:http://learn.akae.cn/media/index.html 阅读全文
posted @ 2013-03-20 13:16 ArcherDev 阅读(127) 评论(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 阅读(498) 评论(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 阅读(1428) 评论(0) 推荐(0)
摘要:http://www.ibm.com/developerworks/cn/linux/l-dynlink/index.html 阅读全文
posted @ 2013-03-20 09:41 ArcherDev 阅读(323) 评论(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 阅读(781) 评论(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 阅读(1603) 评论(0) 推荐(0)
摘要:>>转载请注明来源:飘零的代码 piao2010 ’s blog,谢谢!^_^>>本文链接地址:Linux共享库(so)动态加载和升级 学习Linux共享库动态加载缘于一个生产环境升级apache so文件常见错误操作:apache在运行中直接cp覆盖目标so文件,一段时间后错误日志里面出现关键词:Segmentation fault (段错误) ,一个个worker进程就这样渐渐退出,最后无法处理HTTP请求。首先了解一下共享库的创建,源文件test.c?View Code C#include<stdio.h>#include<unistd.h> 阅读全文
posted @ 2013-03-19 15:52 ArcherDev 阅读(4308) 评论(0) 推荐(0)
摘要:http://zh.opensuse.org/index.php?title=SDB:Zypper_%E7%94%A8%E6%B3%95&variant=zh-cnVersion:11.3本文适用于openSUSE 11.3的 1.4.5 版的 Zypper 。本文对Zypper用法的介绍可以视为对 Zypper 手册页 (man zypper) 的补充。快速参考下列是些常用的命令:zypper # 列出可用的全局选项和命令zypper help search # 列出 search 命令的帮助zypper lp # 列出需要的补丁更新zypper patch # 安装所需的补丁zyp 阅读全文
posted @ 2013-03-14 09:26 ArcherDev 阅读(1121) 评论(0) 推荐(0)
摘要:文章来源:http://hi.baidu.com/haigang/blog/item/e5f582262d639c118b82a167.html#!/bin/sh myPath="/var/log/httpd/" myFile="/var /log/httpd/access.log" #这里的-x 参数判断$myPath是否存在并且是否具有可执行权限 if [ ! -x "$myPath"]; then mkdir "$myPath" fi #这里的-d 参数判断$myPath是否存在 if [ ! -d &quo 阅读全文
posted @ 2013-03-08 16:59 ArcherDev 阅读(845) 评论(0) 推荐(0)
摘要:http://blog.sina.com.cn/s/blog_7429b9c80100usiq.html1. 数组的定义 Bash中还可以使用数组变量,其赋值有两种:(1) name = (value1 ... valuen)此时下标从0开始,也可以:names=([2]=alice[0]=hatter[1]=duchess)。(2) name[index] = valueshell中数组的下标默认是从0开始的举例如下:array=(a b c d e)注意只能使用空格分隔,不能够使用其它符号分隔。举例如下:=========#!/bin/sharray1=(1,2,3,4,5,678,9). 阅读全文
posted @ 2013-03-08 14:48 ArcherDev 阅读(219) 评论(0) 推荐(0)
摘要:From :http://blog.csdn.net/snrqtdhuqf/article/details/7242309在shell中,数组变量的赋值有两种方法:(1) name = (value1 ... valuen)此时下标从0开始(2) name[index] = valueexample:#!/bin/sh#arrayTestname=(yunixyhxyfj)echo"arrayis:${name[@]}"echo"arraylengthis:${#name[*]}"echo${name[1]}name[1]=yangecho${name[ 阅读全文
posted @ 2013-03-08 13:53 ArcherDev 阅读(5457) 评论(0) 推荐(0)
摘要:linux shell在编程方面比windows 批处理强大太多,无论是在循环、运算。已经数据类型方面都是不能比较的。 下面是个人在使用时候,对它在数组方面一些操作进行的总结。1.数组定义[chengmo@centos5 ~]$ a=(1 2 3 4 5)[chengmo@centos5 ~]$ echo $a1一对括号表示是数组,数组元素用“空格”符号分割开。2.数组读取与赋值得到长度:[chengmo@centos5 ~]$ echo ${#a[@]}5用${#数组名[@或*]} 可以得到数组长度读取:[chengmo@centos5 ~]$ echo ${a[2]} 3[chengmo@ 阅读全文
posted @ 2013-03-08 13:45 ArcherDev 阅读(182) 评论(0) 推荐(0)
摘要:whois 功能说明:查找并显示用户信息。语 法:whois [帐号名称]补充说明:whois指令会去查找并显示指定帐号的用户相关信息,因为它是到Network Solutions 的WHOIS数据库去查找,所以该帐号名称必须在上面注册方能寻获,且名称没有大小写的差别。---------------------------------------------------------whoami功能说明:先似乎用户名称。语 法:whoami [--help][--version]补充说明:显示自身的用户名称,本指令相当于执行"id -un"指令。参 数:--help 在线帮助 阅读全文
posted @ 2013-03-08 11:14 ArcherDev 阅读(352) 评论(0) 推荐(0)
摘要:1.autoscan (autoconf): 扫描源代码以搜寻普通的可移植性问题,比如检查编译器,库,头文件等,生成文件configure.scan,它是configure.ac的一个雏形。 your source files --> [autoscan*] --> [configure.scan] --> configure.ac2.aclocal (automake):根据已经安装的宏,用户定义宏和acinclude.m4文件中的宏将configure.ac文件所需要的宏集中定义到文件 aclocal.m4中。aclocal是一个perl 脚本程序,它的定义是:“aclo 阅读全文
posted @ 2013-03-07 13:33 ArcherDev 阅读(284) 评论(0) 推荐(0)
摘要:引用自:http://blog.chinaunix.net/u/22878/showart_421774.html用前面所介绍的基本概念,已经可以编译全功能的Gtk+/Gnome应用程序了。但是还有一个大问题:如何配置编译选项?一些实用工具如automake、autoconf、libtool等,可以用来简化这一过程。 为了方便维护,同时,也是为了便于使用这些实用工具,应该在编写代码时遵从一些约定。如果要将程序发布为自由软件,最好能使程序源代码的目录结 构遵从“GNU项目编码标准”。即使应用程序是私有的商用程序,不想公开源代码,从技术上来说,这么做也是一个非常好的选择,因为这些标准都是经过实践. 阅读全文
posted @ 2013-03-07 13:29 ArcherDev 阅读(1272) 评论(0) 推荐(0)
摘要:作者:wind521 2002-05-20 06:02:01 来自:http://www.chinaunix.net一、安装命令格式:rpm-i(or--install)optionsfile1.rpm...fileN.rpm参数:file1.rpm...fileN.rpm将要安装的RPM包的文件名详细选项:-h(or--hash)安装时输出hash记号(``#'')--test只对安装进行测试,并不实际安装。--percent以百分比的形式输出安装的进度。--excludedocs不安装软件包中的文档文件--includedocs安装文档--replacepkgs强制重新安装 阅读全文
posted @ 2013-03-07 12:46 ArcherDev 阅读(140) 评论(0) 推荐(0)
摘要:http://www.ibm.com/developerworks/cn/linux/l-makefile/杨 小华, Linux 内核开发工程师, 自由撰稿人简介:本文介绍了在 linux 系统中,通过 Gnu autoconf 和 automake 生成 Makefile 的方法。主要探讨了生成 Makefile 的来龙去脉及其机理,接着详细介绍了配置 Configure.in 的方法及其规则。引子无论是在Linux还是在Unix环境中,make都是一个非常重要的编译命令。不管是自己进行项目开发还是安装应用软件,我们都经常要用到make或 make install。利用make工具,我们可 阅读全文
posted @ 2013-03-07 11:11 ArcherDev 阅读(228) 评论(0) 推荐(0)
摘要:automake/autoconf 入门作为Linux下的程序开发人员,大家一定都遇到过Makefile,用make命令来编译自己写的程序确实是很方便。一般情况下,大家都是手工写一个简单Makefile,如果要想写出一个符合自由软件惯例的Makefile就不那么容易了。在本文中,将给大家介绍如何使用autoconf和automake两个工具来帮助我们自动地生成符合自由软件惯例的Makefile,这样就可以象常 见的GNU程序一样,只要使用“./configure”,“make”,“make instal”就可以把程序安装到Linux系统中去了。这将特别适合想做开放源代码软件的程序开发人员,又或 阅读全文
posted @ 2013-03-07 11:05 ArcherDev 阅读(666) 评论(0) 推荐(0)
摘要:SSHFS: Super Easy File Access over SSHhttp://www.linuxjournal.com/article/8904 阅读全文
posted @ 2013-03-07 09:20 ArcherDev 阅读(140) 评论(0) 推荐(0)