Unix/Linux
文章平均质量分 73
Z_man
这个作者很懒,什么都没留下…
展开
-
Linux环境进程间通信(五): 共享内存(上)
<br />采用共享内存通信的一个显而易见的好处是效率高,因为进程可以直接读写内存,而不需要任何数据的拷贝。对于像管道和消息队列等通信方式,则需要在内核和用户空间进行四次的数据拷贝,而共享内存则只拷贝两次数据[1]:一次从输入文件到共享内存区,另一次从共享内存区到输出文件。实际上,进程之间在共享内存时,并不总是读写少量数据后就解除映射,有新的通信时,再重新建立共享内存区域。而是保持共享区域,直到通信完毕为止,这样,数据内容一直保存在共享内存中,并没有写回文件。共享内存中的内容往往是在解除映射时才转载 2010-10-19 16:20:00 · 614 阅读 · 0 评论 -
Linux系统启动过程分析 -- by 王斌斌
Linux系统启动过程分析操作系统的启动过程,实际上是控制权移交的过程。Linux 系统启动包含四个主要的阶段:BIOS initialization, boot loader, kernel initialization, and init startup.见下图:阶段一、BIOS initialization,转载 2010-02-24 11:34:00 · 713 阅读 · 0 评论 -
Linux消息队列操作
对消息队列的操作无非有下面三种类型:1、打开或创建消息队列消息队列的内核持续性要求每个消息队列都在系统范围内对应唯一的键值,所以,要获得一个消息队列的描述字,只需提供该消息队列的键值即可;注:消息队列描述字是由在系统范围内唯一的键值生成的,而键值可以看作对应系统内的一条路经。2、 读写操作消息读写操作非常简单,对开发人员来说,每个消息都类似如下的数据转载 2009-10-29 14:07:00 · 282 阅读 · 0 评论 -
内存管理器
转载时请注明出处和作者联系方式:http://blog.csdn.net/absurd作者联系方式:李先静 更新时间:2007-7-9 作为一个C程序员,每天都在和malloc/free/calloc/realloc系列函数打交道。也许和它们混得太熟了,反而忽略了它们的存在,甚至有了三五年的交情,仍然对转载 2009-10-20 18:02:00 · 331 阅读 · 0 评论 -
ld中文手册
********本文档介绍GNU连接器ld的2.14版本.本文档在GNU自由文档许可证下发行.在"GNU自由文档许可证"一章中有关于本许可证的一份拷贝.概述********ld把一定量的目标文件跟档案文件连接起来,并重定位它们的数据,连接符号引用.一般,在编译一个程序时,最后一步就是运行ld.ld能接受连接命令语言转载 2009-10-10 15:15:00 · 383 阅读 · 0 评论 -
Linux内存管理
本文首先介绍一下Linux内存管理方式,着重说明一下用户空间的内存管理,包括Linux虚拟映射以及GLIBC中malloc的实现;然后简要介绍单进程多线程的内存管理方式,主要涉及各线程堆栈空间的分配;Linux内存管理Linux采用两级保护机制,隔离内核空间和用户程序空间,使用户程序无法直接访问内核,而只能通过系统调用的方式。对于32位C转载 2009-06-25 10:38:00 · 1052 阅读 · 0 评论 -
Linux网桥源码框架分析初步
今天处理网桥的STP的问题遇到了麻烦,对这个东东理论的倒是看了不少,没有真真学习到它的源理,来看Linux的实现,手头没有资料,看了两个钟头,只把网桥的框架结构看完,所以想先贴出来,希望有研究这块的大哥们讨论,继续把它写完,九贱好学习一下:版本:Linux 2.4.18一、调用在src/net/core/dev.c的软中断函数static void net_rx_a原创 2009-05-25 17:18:00 · 523 阅读 · 0 评论 -
linux下如何得到cpu使用率
linux中,MEM,流量都可以比较好的得到,但CPU的使用率有点麻烦,经过一番测试,把top的源码稍改了一下,可以得到,源码如下: #include #include #include #include #include #define NCPUSTATES 5 static long cp_time[NCPUSTATES];转载 2009-05-12 14:04:00 · 674 阅读 · 0 评论 -
用sysctl进行调整Linux系统性能
用sysctl进行调整Linux系统性能1, 优化网络设备接收队列 net.core.netdev_max_backlog=3000 该文件表示在每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目。 默认值:Red Hat Linux release 9 (Shrike)默认为300 rhel5 默认为1000转载 2009-04-08 19:03:00 · 722 阅读 · 2 评论 -
Ubuntu配置成syslog服务器接收外部日志
#vi/etc/syslog.conf加入以下行:local7.*/var/log/firewall/firewall.log然后按照网上前人的经验,将/etc/init.d/sysklogd中的SYSLOGD=”"修改为:SYSLOGD=”r”再重启syslog:/etc/init.d/sysklogdrestart发现514端口没打开。再修改:#vi/etc/default/syslogdSY转载 2009-03-31 13:28:00 · 1669 阅读 · 0 评论 -
linux dd命令
inux下dd命令详解名称: dd 使用权限: 所有使用者dd 这个指令在 manual 里的定义是 convert and copy a file 使用方式: dd [option] 如果你想要在线看 manual, 可以试试: dd --help 或是 info dd 如果你想要看看这个版本如何: dd --version 输入或输出 dd if=[STDIN] of=[S转载 2009-03-25 14:16:00 · 1142 阅读 · 0 评论 -
在Debian上用Bind配置DNS服务器
1 什么是DNS2 为什么需要DNS 3 BIND介绍4 配置5 测试6 TODO7 结束语8 参考文献1 什么是DNS 初学者可能不理解DNS到底是什么,干什么用。我是在1998年大学毕业时才听说这个词的。那时我在聊天室碰到潍坊信息港的一个网管,我恬不知耻地说我也是个网管,他说也维护DNS吗?我说,DNS是什么? ——DNS,Domain Name Se转载 2009-03-19 16:11:00 · 581 阅读 · 0 评论 -
Linux系统启动过程及grub引导故障排错
Linux系统启动过程:1、 主机开机后,就是硬件检测(POST),通过后再根据BIOS里面设置的启动顺序找到启动驱动器(如硬盘,光驱等),计算机启动都要经过这一步,没什么好说的啦。2、 读取硬盘MBR,启动系统引导程序(如grub、lilo),再由系统引导程序加载Linux的核转载 2010-02-24 11:36:00 · 487 阅读 · 0 评论 -
VIM查找替换归纳总结
VIM中常用的替换模式总结。1,简单替换表达式替换命令可以在全文中用一个单词替换另一个单词::%s/four/4/g “%” 范围前缀表示在所有行中执行替换。最后的 “g” 标记表示替换行中的所有匹配点。如果仅仅对当前行进行操作,那么只要去掉%即可 如果你有一个象 “thirtyfour” 这样的单词,上面的命令会出错。这种情况下,这个单词会被替换成”thirty4转载 2010-02-25 10:48:00 · 200 阅读 · 0 评论 -
制作Knoppix USB启动盘
source: http://www.knoppix.net/w/index.php?title=Bootable_USB_Key&diff=8315&oldid=83130. 在vmware里用knoppix的iso启动。启动完成后插入u盘。1. 打开终端,用su转到root(懒得每次sudo)2. 确认u盘设备位置,后面有步骤是整盘清零,弄错了......可转载 2010-01-07 14:21:00 · 1569 阅读 · 0 评论 -
Linux环境进程间通信(五): 共享内存(下)
<br />系统调用mmap()通过映射一个普通文件实现共享内存。系统V则是通过映射特殊文件系统shm中的文件实现进程间的共享内存通信。也就是说,每个共享内存区域对应特殊文件系统shm中的一个文件(这是通过shmid_kernel结构联系起来的),后面还将阐述。<br />1、系统V共享内存原理<br />进程间需要共享的数据被放在一个叫做IPC共享内存区域的地方,所有需要访问该共享区域的进程都要把该共享区域映射到本进程的地址空间中去。系统V共享内存通过shmget获得或创建一个IPC共享内存区域,转载 2010-10-19 16:20:00 · 632 阅读 · 0 评论 -
openssl安装配置
安装openssl# tar –zxvf openssl# cd openssl# ./config --prefix=/usr/local/openssl # make# make install 加密解密传统加密(对称加密)openssl enc –ciphername(加密算法) –k password(口令)–in file(被加密的算法) -out (输出文件)file解密openssl enc –ciphername –k password -d –in file -out file 加密转载 2010-09-09 15:08:00 · 870 阅读 · 0 评论 -
Linux在安全模式下修改initrd文件
<br />我在Redhat Enterprise 5里安装了Java环境,设置了环境变量,结果环境变量设置出错了,重启Linux后无法登录,安全模式下提示如下信息:bash:dircolors:command not found bash:/software/jdk1.6.0_14/lib.tools.jar: 没有那个文件或目录 bash:/software/jdk1.6.0_14/bin: is a directory<br />我那个郁闷啊,刚学Linux就碰到系统初始化失败,咋转载 2010-06-08 17:03:00 · 1615 阅读 · 0 评论 -
Linux LVM(逻辑卷管理)
一、 前言<br /> <br /> 每个Linux使用者在安装Linux时都会遇到这样的困境:在为系统分区时,如何精确评估和分配各个硬盘分区的容量,因为系统管理员不但要考虑到当前某个分区需要的容量,还要预见该分区以后可能需要的容量的最大值。因为如果估计不准确,当遇到某个分区不够用时管理员可能甚至要备份整个系统、清除硬盘、重新对硬盘分区,然后恢复数据到新分区。<br /> 虽然现在有很多动态调整磁盘的工具可以使用,例如Partation Magic等等,但是它并不能完全解决问题,转载 2010-06-07 14:31:00 · 633 阅读 · 0 评论 -
linux lvm 扩展Volume Group Logucal Volume
<br />通过扩展Volume Group、Logical Volume来达到扩展文件系统的大小,<br /> <br /> <br />我的服务器是建在虚机上的,<br /> <br />分配硬盘空间时,通过修改参数把原来硬盘加大的。<br /> <br />[root@localhost ~]# fdisk -l<br />Disk /dev/sda: 32.2 GB, 32212254720 bytes<br />255 heads, 63 sectors/track, 3916 cyl原创 2010-06-07 14:25:00 · 967 阅读 · 0 评论 -
ESXi中Linux虚拟机LVM扩展实例
LVM是Linux下常用的磁盘管理技术,可以在线的动态扩展逻辑卷的大小,我们以ESXi中的Linux虚拟机为例说明如何使用LVM动态扩展磁盘空间。1. ESXi中为Linux虚拟机添加第二块硬盘,查看磁盘状态#fdisk -l 2. 在新加的硬盘上创建分区,分区类型为8e#fdisk /dev/sdbCommand (m for help): new<br />Command action<br />e extended<br />p primary partition (1-4原创 2010-06-07 14:22:00 · 825 阅读 · 0 评论 -
linux /etc/fstab
<br />有很多人经常修改/etc/fstab文件,但是其中却有很多人对这个文件所表达的意义不太清楚,因为只要按照一定的模式,就可以轻而易举地添加一行挂载信息,而不需要完全理解其中的原理。下面就让我们来看看到底还有多少是我们不了解的。<br /><br /> /etc/fstab是用来存放文件系统的静态信息的文件。位于/etc/目录下,可以用命令less /etc/fstab 来查看,如果要修改的话,则用命令 vi /etc/fstab 来修改。<br /><br />转载 2010-06-07 14:33:00 · 597 阅读 · 0 评论 -
linux 卷组 详细笔记
<br />项目上的linux系统越多,这方面的request也渐渐多起来了。<br />突然接到一个客户的的需求,要在linux workstation上划分出10个G的分区。<br /><br />一年前,对这个case还真是不再话下,肯定是三下五除二就搞定了。<br />可是在windows的项目上呆的久了,linux的东西几乎全还给老师和那些朋友们了。怎么办?<br /><br />当然没办法,还好还留有以前的笔记。于是——翻笔记呀——回忆阿——在自己的电脑安装vmwar转载 2010-06-07 14:33:00 · 4164 阅读 · 0 评论 -
Linux内存管理(下)
Linux内存管理(下) 物理内存管理(页管理)Linux内核管理物理内存是通过分页机制实现的,它将整个内存划分成无数4k(在i386体系结构中)大小页,从而分配和回收内存的基本单位便是内存页了。利用分页管理有助于灵活分配内存地址,因为分配时不必要求必须有大块的连续内存[1]转载 2010-05-19 14:51:00 · 651 阅读 · 0 评论 -
linux 内存详解
Linux在内存管理上份为两级,一级是线性区,对应于虚拟内存,它实际上不占用实际物理内存;一级是具体的物理页面,对应机器上的物理内存。这里要提到一个很重要的概念,内存的延迟分配。Linux内核在用户申请内存的时候,只是给它分配了一个线性区(也就是虚存),并没有分配实际物理内存;只有当用户使用这块内存的时候,内核才会分配具体的物理页面,这时候才占用真实的物理内存。内存释放是通过虚拟地转载 2010-05-20 11:01:00 · 1239 阅读 · 0 评论 -
Linux内存管理(上)
Linux内存管理(上) 收藏 Linux内存管理(上)摘要:本章首先以应用程序开发者的角度审视Linux的进程内存管理,在转载 2010-05-19 14:49:00 · 783 阅读 · 0 评论 -
使用/proc实现内核与用户空间通信
1. 前言 Linux内核空间与用户空间的通信可通过"/proc"目录的文件读写来实现,如果只是控制内核中的参数而不是传输较多数据的话,用“/proc”是很合适的。另外一种内核与用户空间通信方式方式是使用内核设备的读写或IOCTL来实现,以后再介绍。 2. /proc概述 /proc目录是系统模拟出来的一个文件系统,本身并不存在于磁盘上,其中的文件都表示内核参数的信息,转载 2009-03-18 09:00:00 · 935 阅读 · 0 评论 -
与网络时间同步 (简体中文)
本文介绍Arch Linux中,如何让系统时间和标准时间同步的方法。第一种是openntpd:一种比较简单的方法;第二种,最完备的方法:ntpd。 OpenNTPD 用OpenNTPD替代ntpdOpenNTPD is a FREE, easy to use implementation of the Network Time Protocol. 能够使本地时间和NT转载 2009-03-09 12:25:00 · 2320 阅读 · 0 评论 -
linux下查找文件程序-findlinux下查找文件程序-find
简单的实现linux下find功能的查打文件程序:程序名:findfile.c部分函数原型:struct dirent { //头文件中定义的结构体,man readdir有说明 ino_t d_ino; // inode number off_t d_off; // offset to the转载 2008-11-28 17:21:00 · 1184 阅读 · 0 评论 -
Install L7-filter
與一般的 Packet Filter 防火牆不同,應用層防火牆是在 OSI Model中的第七層(應用層)運作,因此它可以針對各種應用程式的封包進行過濾。比較常見的應用有阻擋 MSN 通訊、限制 P2P連線使用的頻寬、限制網路電視等等,只要是應用層防火牆有支援的協定皆可以管控。Linux 預設的情況下是不支援 L7filter(應用層防火牆)功能的,必須要自己 patch kern原创 2008-11-28 16:17:00 · 923 阅读 · 0 评论 -
linux系统iptables规则执行顺序
预备知识(转): iptable有三种队列(表)规则,mangle queue, filter queue, nat queue。 1。The first is the mangle table which is responsible for the alteration of quality of service bits in the TCP header. 2。The转载 2008-11-28 09:06:00 · 413 阅读 · 0 评论 -
编译内核操作流程
Posted 九月 3rd, 2005 by beinanFedoraRedhat基础入门作者:北南南北来自:LinuxSir.Org提要: 编译内核主要是通过内核实现某些功能,比如iptables 需要内支持;所有的硬件的支持也是通过内核实现的;本文只是简单的给初学者讲一下编译内核的流程; ++++++++++++++++++转载 2009-01-20 09:38:00 · 893 阅读 · 0 评论 -
Linux PROC文件系统详细介绍
proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口。用户和应用程序可以通过proc得到系统的信息,并可以改变内核的某些参数。由于系统的信息,如进程,是动态改变的,所以用户或应用程序读取proc文件时,proc文件系统是动态从系统内核读出所需信息并提交的。它的目录结构如下: 目录名称 目录内容 apm转载 2009-01-20 15:57:00 · 2124 阅读 · 1 评论 -
内核管理概述
作者:北南南北来自:LinuxSir.Org摘要:本文讲述与内核操作有关的基础知识;比如编译内核,装载、移除内核模块,查看模块信息等;本文涉及相关的命令有modprobe、insmod、depmod、rmmod、modinfo等;++++++++++++++++++++++++++++++++++++++++++++++++++++++正文++++++++++++转载 2009-01-20 09:36:00 · 258 阅读 · 0 评论 -
用netfilter_queue 在用户态修改网络数据包的例子程序
libnetfilter_queue缺乏文档,看着libnetfilter_queue自带的例子弄的。现在写不出有头有尾的文章了,就贴贴代码(还没注释),提几个我记得的几个注意点就不写了,见谅。程序功能, 将输出端目的地为 220.181.37.55 的包,都改为目的地为 64.233.189.104,输入段反之,达到DNAT的一小半功能,完整的NAT要做状态记录的。注意点 : 1 - 2.6.2转载 2008-11-14 14:07:00 · 3869 阅读 · 5 评论 -
从ip_queue到nfnetlink_queue(下)
从ip_queue到nfnetlink_queue(下) 本文档的Copyleft归yfydz所有,使用GPL发布,可以自由拷贝,转载,转载时请保持文档的完整性,严禁用于任何商业用途。msn: yfydz_no1@hotmail.com来源:http://yfydz.cublog.cn 3. 内核空间内核版本2.6.17.11。内核空间的代码程序包括net/netfilte原创 2008-11-14 13:49:00 · 1280 阅读 · 0 评论 -
从ip_queue到nfnetlink_queue(上)
从ip_queue到nfnetlink_queue(上) 本文档的Copyleft归yfydz所有,使用GPL发布,可以自由拷贝,转载,转载时请保持文档的完整性,严禁用于任何商业用途。msn: yfydz_no1@hotmail.com来源:http://yfydz.cublog.cn1. 前言在2.4内核中出现了ip_queue,用于将数据包从内核空间传递到用户空间,其不足之处是转载 2008-11-14 13:47:00 · 945 阅读 · 0 评论 -
双网卡双网关
由于电信和网通之间互联互通的问题,很多人选择双线路机房,所谓双线路机房就是拥有两条出口,一条电信一条网通。最近在一个双线路机房测试一台服务器,打算作为论坛的数据库服务器使用,服务器操作系统为 Linux。计划配置为双IP,双域名,使得浏览者通过电信和网通两条线路都能正常访问服务器,而且各走各的,互不影响。在配置网络的时候遇到了问题,由于Linux默认只有一个网关,在网络上查询了很久,找到一个解决方原创 2008-11-11 14:02:00 · 869 阅读 · 0 评论 -
创建指定大小的文件
从前与经理讨论NVR项目的时候,他提到要预先将用户指定好的磁盘空间预留出来,这是比较容易实现的功能。不容易实现的是自己写一个文件系统,这种方法我是不太敢照量啊,不过感兴趣的话可以到SourceForge找找开源的项目来学习,呵呵,说实在的,让我看都不一定能理解。在李素梅的帮助下,我做了在磁盘预留空间的实验,本质上是这样的: (1)首先在要预留空间的分区上使用dd命令生成一个指定大小的文原创 2008-11-11 15:43:00 · 1312 阅读 · 0 评论 -
iptables 源码分析
一、规则的显示选择先来说明规则的显示,因为他涉及到的东东简单,而且又全面,了解了规则的显示,对于其它操作的了解就显得容易了。iptables version 1.2.7iptables有两条线:ipv4 和ipv6,这里只分析v4的,因为v6偶暂时还用不着,没有去看。iptables_standardone.c主函数:int main(int argc, cha转载 2008-12-01 17:11:00 · 606 阅读 · 0 评论