03 2013 档案

摘要:SysVinithttps://wiki.archlinux.org/index.php/SysVinit_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)init是Linux内核加载后执行的第一个进程。Arch的默认的 init 程序是systemd-sysvcompat提供的/sbin/init(新安装的系统已经默认使用systemd) 或sysvinit.。本文中,init指sysvinit。inittab文件位于/etc目录,是init的启动配置文件,其中指定了一些启动脚本、程序的路径,并指定在哪些运行级别执行它们。小贴士:参见man 5 inittab以及 阅读全文
posted @ 2013-03-26 10:16 ArcherDev 阅读(625) 评论(0) 推荐(0) 编辑
摘要:了解可作为通用平台的 Linux 操作系统http://www.ibm.com/developerworks/cn/linux/l-linuxuniversal/index.htmlLinux 内核剖析 --历史和体系结构分析http://www.ibm.com/developerworks/cn/linux/l-linux-kernel/Linux 网络栈剖析http://www.ibm.com/developerworks/cn/linux/l-linux-networking-stack/使用 Linux 系统调用的内核命令 --探究 SCI 并添加自己的调用http://www.ibm 阅读全文
posted @ 2013-03-25 15:52 ArcherDev 阅读(150) 评论(0) 推荐(0) 编辑
摘要:http://www.ibm.com/developerworks/cn/aix/library/1206_xiejd_unixexception/index.html进程异常退出进程退出意味着进程生命期的结束,系统资源被回收,进程从操作系统环境中销毁。进程异常退出是进程在运行过程中被意外终止,从而导致进程本来应该继续执行的任务无法完成。进程异常退出可能给软件用户造成如下负面影响:软件丧失部分或者全部功能性,无法完成既定任务。如果进程正在处理数据,可能造成数据损坏。如果是关键软件服务,必然导致服务异常中止 , 造成无法预计的损失。进程异常退出或者进程崩溃 , 也会给软件用户造成恐慌和困惑。进程 阅读全文
posted @ 2013-03-25 15:03 ArcherDev 阅读(264) 评论(0) 推荐(0) 编辑
摘要:http://www.ibm.com/developerworks/cn/linux/l-linux-kernel/Linux 内核剖析历史和体系结构分析M. Tim Jones, 顾问工程师, Emulex简介:Linux® 内核是一个庞大而复杂的操作系统的核心,不过尽管庞大,但是却采用子系统和分层的概念很好地进行了组织。在本文中,您将探索 Linux 内核的总体结构,并学习一些主要的子系统和核心接口。您还可以通过其他 IBM 文章的链接更深入地进行学习。由于本文的目标是对 Linux 内核进行介绍并探索其体系结构和主要组件,因此首先回顾一下 Linux 的简短历史,然后从较高的层 阅读全文
posted @ 2013-03-25 15:02 ArcherDev 阅读(224) 评论(0) 推荐(1) 编辑
摘要:http://www.ibm.com/developerworks/cn/linux/l-cn-shell-monitoring/index.html 阅读全文
posted @ 2013-03-25 11:29 ArcherDev 阅读(177) 评论(0) 推荐(0) 编辑
摘要:http://www.ibm.com/developerworks/cn/linux/l-iotips/首先说一下什么是I/O重定向,所谓I/O重定向简单来说就是一个过程,这个过程捕捉一个文件,或者命令,程序,脚本,甚至脚本中的代码块(code block)的输出,然后把捕捉到的输出,作为输入发送给另外一个文件,命令,程序,或者脚本。如果谈到I/O重定向,就涉及到文件标识符(File Descriptor)的概念, 在Linux系统中,系统为每一个打开的文件指定一个文件标识符以便系统对文件进行跟踪,这里有些和C语言编程里的文件句柄相似,文件标识符是一个数字,不同数字代表不同的含义,默认情况下, 阅读全文
posted @ 2013-03-25 09:42 ArcherDev 阅读(230) 评论(0) 推荐(0) 编辑
摘要:http://learn.akae.cn/media/ch17s05.html硬盘、内存、CPU寄存器,还有本节要讲的Cache,这些都是存储器,计算机为什么要有这么多种存储器呢?这些存储器各自有什么特点?这是本节要讨论的问题。由于硬件技术的限制,我们可以制造出容量很小但很快的存储器,也可以制造出容量很大但很慢的存储器,但不可能两边的好处都占着,不可能制造出访问速度又快容量又大的存储器。因此,现代计算机都把存储器分成若干级,称为Memory Hierarchy,按照离CPU由近到远的顺序依次是CPU寄存器、Cache、内存、硬盘,越靠近CPU的存储器容量越小但访问速度越快,下图给出了各种存储器 阅读全文
posted @ 2013-03-25 09:02 ArcherDev 阅读(194) 评论(0) 推荐(0) 编辑
摘要:Linux 技巧:让进程在后台可靠运行的几种方法http://www.ibm.com/developerworks/cn/linux/l-cn-nohup/Linux 技巧: 用 cron 和 at 调度作业http://www.ibm.com/developerworks/cn/linux/l-job-scheduling.htmlLinux 技巧: 控制预定作业的持续时间http://www.ibm.com/developerworks/cn/linux/l-job-terminating/linux 技巧:使用 screen 管理你的远程会话http://www.ibm.com/deve 阅读全文
posted @ 2013-03-22 16:25 ArcherDev 阅读(175) 评论(0) 推荐(0) 编辑
摘要: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 阅读(250) 评论(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 阅读(577) 评论(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 阅读(516) 评论(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 阅读(620) 评论(0) 推荐(0) 编辑
摘要:http://learn.akae.cn/media/index.html 阅读全文
posted @ 2013-03-20 13:16 ArcherDev 阅读(122) 评论(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 阅读(480) 评论(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 阅读(1397) 评论(0) 推荐(0) 编辑
摘要:http://www.ibm.com/developerworks/cn/linux/l-dynlink/index.html 阅读全文
posted @ 2013-03-20 09:41 ArcherDev 阅读(316) 评论(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 阅读(760) 评论(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 阅读(1559) 评论(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 阅读(4155) 评论(0) 推荐(0) 编辑
摘要:http://zensheno.blog.51cto.com/2712776/4907481. Git概念1.1. Git库中由三部分组成 Git 仓库就是那个.git 目录,其中存放的是我们所提交的文档索引内容,Git 可基于文档索引内容对其所管理的文档进行内容追踪,从而实现文档的版本控制。.git目录位于工作目录内。1) 工作目录:用户本地的目录;2) Index(索引):将工作目录下所有文件(包含子目录)生成快照,存放到一个临时的存储区域,Git 称该区域为索引。3) 仓库:将索引通过commit命令提交至仓库中,每一次提交都意味着版本在进行一次更新。1.2. 使用Git时的初始化事项1 阅读全文
posted @ 2013-03-19 15:27 ArcherDev 阅读(185) 评论(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 阅读(1093) 评论(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 阅读(817) 评论(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 阅读(210) 评论(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 阅读(5435) 评论(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 阅读(178) 评论(0) 推荐(0) 编辑
摘要:whois 功能说明:查找并显示用户信息。语 法:whois [帐号名称]补充说明:whois指令会去查找并显示指定帐号的用户相关信息,因为它是到Network Solutions 的WHOIS数据库去查找,所以该帐号名称必须在上面注册方能寻获,且名称没有大小写的差别。---------------------------------------------------------whoami功能说明:先似乎用户名称。语 法:whoami [--help][--version]补充说明:显示自身的用户名称,本指令相当于执行"id -un"指令。参 数:--help 在线帮助 阅读全文
posted @ 2013-03-08 11:14 ArcherDev 阅读(337) 评论(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 阅读(279) 评论(0) 推荐(0) 编辑
摘要:引用自:http://blog.chinaunix.net/u/22878/showart_421774.html用前面所介绍的基本概念,已经可以编译全功能的Gtk+/Gnome应用程序了。但是还有一个大问题:如何配置编译选项?一些实用工具如automake、autoconf、libtool等,可以用来简化这一过程。 为了方便维护,同时,也是为了便于使用这些实用工具,应该在编写代码时遵从一些约定。如果要将程序发布为自由软件,最好能使程序源代码的目录结 构遵从“GNU项目编码标准”。即使应用程序是私有的商用程序,不想公开源代码,从技术上来说,这么做也是一个非常好的选择,因为这些标准都是经过实践. 阅读全文
posted @ 2013-03-07 13:29 ArcherDev 阅读(1232) 评论(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 阅读(131) 评论(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 阅读(221) 评论(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 阅读(615) 评论(0) 推荐(0) 编辑
摘要:SSHFS: Super Easy File Access over SSHhttp://www.linuxjournal.com/article/8904 阅读全文
posted @ 2013-03-07 09:20 ArcherDev 阅读(128) 评论(0) 推荐(0) 编辑
摘要:http://omiga.org/blog/archives/1896Git是什么?Git是一个分布式版本控制系统(Distributed Version Control System,简称 DVCS)。Git与svn有什么关系?对于大多数人而言,或许对svn更为熟悉,svn属于集中化的版本控制系统( Centralized Version Control Systems,简称 CVCS ),在CVCS中会有一个对版本进行集中管理的服务器,协同工作的人都通过客户端连接到该服务器,检出最新文件或提交更新。CVCS在协同开发中有两个比较主要的缺点:如遇服务器宕机,整个协同工作无法进行,因为此时无法 阅读全文
posted @ 2013-03-06 14:35 ArcherDev 阅读(175) 评论(0) 推荐(0) 编辑
摘要:功能说明:备份文件。补充说明:cpio是用来建立,还原备份档的工具程序,它可以加入,解开cpio,img或tra备份档内的文件。cpio文件的类型判断:[root@localhost test]# file test.cpio test.cpio: ASCII cpio archive (SVR4 with no CRC)cpio实例讲解1、常用操作模式(1)备份:cpio -ocvB > [ file | device ](2)还原:cpio -ivcdu > [ file | device ](3)查看:cpio -ivct > [ file | device ]2、相关 阅读全文
posted @ 2013-03-06 10:28 ArcherDev 阅读(990) 评论(0) 推荐(0) 编辑
摘要:From :http://os.51cto.com/art/200512/14302.htm一个有用的命令。有老兄们发的帖子里没有找到。所以就发过来了。希望有用。希望大家能把一些有用而难找的命令发出来让大家共享。cpio命令详细用法cpio - 存取归档包中的文件 语法 Syntax cpio -o [ -aBLuvV ] [ -C bufsize ] [ -c | -H format ][ -K volumesize ] [ [ -O file [, file ... ] ] [ -M message ] ] [ -Pifd,ofd ] cpio -i [ -6AbBcdfkmnqrsStT 阅读全文
posted @ 2013-03-06 10:27 ArcherDev 阅读(758) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示