linux
文章平均质量分 66
摩力克
拥有超过15年开发经验,精通网络通信、网络安全和Python开发,希望通过分享和大家共同进步。
展开
-
关于Linux 环回接口lo的IP地址修改
在一些应用中,我们通常需要修改本地的loopback接口地址。但linux lo接口的IP地址修改有些特殊。一般接口比如eth0, 我们可以采用vi /etc/sysconfig/network-scripts/ifcfg-eth0进行修改。但lo接口的IP地址,却无法通过vi /etc/sysconfig/network-scripts/ifcfg-lo来修改。你会发现,无论你在原创 2015-10-16 13:52:08 · 16498 阅读 · 0 评论 -
linux GRE的加载与配置实例
拓扑图: 备注:因为应用原因,需要在linux2上添加一个公网地址,并且在中间路由设备不受控制的情况下,Linux1能访问到linux2上面的公网地址。2.基本接口配置:linux1:192.168.10.1/24linux2:192.168.20.2/24R1:interface FastEthernet0/0 ip address 192.16原创 2015-10-16 15:35:49 · 5625 阅读 · 0 评论 -
socketpair理解
先说说我的理解:socketpair创建了一对无名的套接字描述符(只能在AF_UNIX域中使用),描述符存储于一个二元数组,eg. s[2] .这对套接字可以进行双工通信,每一个描述符既可以读也可以写。这个在同一个进程中也可以进行通信,向s[0]中写入,就可以从s[1]中读取(只能从s[1]中读取),也可以在s[1]中写入,然后从s[0]中读取;但是,若没有在0端写入,而从1端读取,则1端的读取操转载 2015-11-03 14:01:30 · 292 阅读 · 0 评论 -
Linux进程间通信——信号集函数
我们已经知道,我们可以通过信号来终止进程,也可以通过信号来在进程间进行通信,程序也可以通过指定信号的关联处理函数来改变信号的默认处理方式,也可以屏蔽某些信号,使其不能传递给进程。那么我们应该如何设定我们需要处理的信号,我们不需要处理哪些信号等问题呢?信号集函数就是帮助我们解决这些问题的。下面是信号函数集:1、int sigemptyset(sigset_t *set);转载 2015-11-03 11:10:56 · 329 阅读 · 0 评论 -
【Linux学习】epoll详解
什么是epollepoll是什么?按照man手册的说法:是为处理大批量句柄而作了改进的poll。当然,这不是2.6内核才有的,它是在2.5.44内核中被引进的(epoll(4) is a new API introduced in Linux kernel 2.5.44),它几乎具备了之前所说的一切优点,被公认为Linux2.6下性能最好的多路I/O就绪通知方法。 epol转载 2015-11-04 12:00:51 · 331 阅读 · 0 评论 -
linux 信号处理函数集合
alarm(设置信号传送闹钟)相关函数signal,sleep表头文件#include定义函数unsigned int alarm(unsigned int seconds);函数说明alarm()用来设置信号SIGALRM在经过参数seconds指定的秒数后传送给目前的进程。如果参数sec转载 2015-11-03 10:52:39 · 509 阅读 · 0 评论 -
CentOS内核编译
第一步:下载内核源码: wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.29.tar.gz然后解压进入到解压后的目录 # tar -zxvf linux-2.6.29.tar.gz # cd /usr/src/linux-2.6.29第二步:开始编译 清理以转载 2015-10-19 16:24:53 · 548 阅读 · 0 评论 -
Linux的路由和策略路由
1、 Linux路由的配置 IP Route Linux最多可以支持255张路由表,其中有3张表是内置的: 表255本地路由表(Local table)本地接口地址,广播地址,已及NAT地址都放在这个表。该路由表由系统自动维护,管理员不能直接修改。 表254主路由表(Main table)如果没有指明路由所属的表,所有的路由都默认都放在这个表里,一般来说,旧的路原创 2015-10-19 09:10:49 · 7311 阅读 · 0 评论 -
linux DNS服务器配置
linux DNS服务器配置 基本理论:DNS系统的作用是把域名和IP对应起来。正向解析:根据域名(主机名)查找对应的IP地址。反向解析:根据IP地址查询对应的域名(主机名)。 查询递归查询:大多数客户机向DNS服务器解析域名的方式。迭代查询:大多数DNS服务器向其它DNS服务器解析域名的方式。 DNS服务器的类型缓存域名服务器:也称唯高速缓存服务器转载 2015-10-19 11:09:04 · 664 阅读 · 0 评论 -
硬链接和软链接的区别
硬链接就是同一个文件使用了多个别名(他们有共同的 inode)。硬链接可由命令 link 或 ln 创建,如:12link oldfile newfile ln oldfile newfile由于硬链接是有着相同 inode 号仅文件名不同的文件,因此,删除一个硬链接文件并不影响其他有相同 inode原创 2015-10-20 11:49:06 · 394 阅读 · 0 评论 -
menu.lst详解
打开终端,先备份一下:sudo cp /boot/grub/menu.lst /boot/grub/menu.lst.backup然后输入:sudo gedit /boot/grub/menu.lst然后就可以看见很长很长的一段代码, 大家可以仔细看一下,里面带#号的都是解释性的文字,看懂后就知道该怎么修改了,这个因为我们设置安装的分区不同,所以修改后的文件转载 2015-10-20 11:02:53 · 3617 阅读 · 0 评论 -
标题:用kill函数传递信号 int kill(pid_t pid,int sig)
int kill(pid_t pid,int sig)函数功能:传送信号给指定的进程相关函数 raise,signal表头文件 #include#include函数定义 int kill(pid_t pid,int sig);函数说明:kill()可以用来送参数sig指定的信号给参数pid指定的进程。参数pid有几种情况:pid>0原创 2015-11-06 08:57:34 · 4173 阅读 · 0 评论 -
Linux内核编译和安装
第一步:下载内核要编译内核就必须有新的内核,可以从Kernel官方网站www.kernel.org上下载最新的内核源码,解压,进入目录;第二步:清除垃圾这一步:一般是在就内核重新编译时使用,在编译新的内核是不需要;make clean及make mrproper;第三步:进行内核裁减配置内核裁减配置的原则: 从实际出发。 如:根据支持的硬件设备来决定需要选择的驱转载 2015-10-20 10:04:36 · 320 阅读 · 0 评论 -
linux mount (挂载命令)详解
挂接命令(mount) 首先,介绍一下挂接(mount)命令的使用方法,mount命令参数非常多,这里主要讲一下今天我们要用到的。 命令格式:mount [-t vfstype] [-o options] device dir 其中: 1.-t vfstype 指定文件系统的类型,通常不必指定。mount 会自动选择正确的类型。常用类型有: 光盘或光盘镜像:iso9原创 2015-10-20 14:08:52 · 333 阅读 · 0 评论 -
linux c setitimer用法说明
在linux c编程中,setitimer是一个比较常用的函数,可用来实现延时和定时的功能,网上有各种零零散散的用法说明,都只提到了个别用法,今天抽空实践整理了一份比较详细的:使用时需要引入的头文件:[cpp] view plaincopy#include setitimer函数原型:[转载 2015-11-06 14:42:29 · 424 阅读 · 0 评论 -
函数waitpid和WTERMSIG说明
waitpid系统调用在Linux函数库中的原型是:#include #include pid_t waitpid(pid_t pid,int *status,int options)从本质上讲,系统调用waitpid和wait的作用是完全相同的,但waitpid多出了两个可由用户控制的参数pid和options,从而为我们编程提供了另一种更灵原创 2015-11-06 12:02:19 · 4351 阅读 · 0 评论 -
linux信号处理函数
linux中信号的处理一般分为四步1、信号集的安装和登记2、信号集操作3、信号的发送4、信号的接收 下面分阶段详细说明1、信号集的安装和登记使用sigaction函数对信号进行安装和登记ngx_init_signals(ngx_log_t *log){ ngx_signal_t *sig; struct sigaction原创 2015-11-06 10:52:27 · 655 阅读 · 0 评论 -
Linux 基于WEB开源的系统管理工具webmin
Webmin是目前功能最强大的基于Web的Unix系统管理工具。管理员通过浏览器访问Webmin的各种管理功能并完成相应的管理动作。目前Webmin支持绝大多数的Unix系统,这些系统除了各种版本的linux以外还包括:AIX、HPUX、Solaris、Unixware、Irix和FreeBSD等。Webmin 让您能够在远程使用支持 HTTPS (SSL 上的 HTTP)协议的 Web 浏览原创 2015-10-21 17:35:02 · 3363 阅读 · 0 评论 -
Linux内核加载全流程
作者:gfree.wind@gmail.com博客:blog.focus-linux.net linuxfocus.blog.chinaunix.net 本文的copyleft归gfree.wind@gmail.com所有,使用GPL发布,可以自由拷贝,转载。但转载请保持文档的完整性,注明原作者及原链接,严禁用于任何商业用途。=========================转载 2015-10-23 09:01:17 · 614 阅读 · 0 评论 -
grub启动流程及原理
GNU GRUB(简称“GRUB”,GRand Unified Bootloader)是一个来自GNU项目的多操作系统启动管理器,它允许用户可以在计算机内同时安装有多个操作系统,比如不同版本的Windows和Linux,并在计算机启动时选择希望运行的操作系统。Grub一直在发展,现在的发行版都用Grub 2了,但是基本的启动引导原理是差不多的,所以还是以传统的Grub为例(在CentOS 5.5上原创 2015-10-23 09:51:47 · 4487 阅读 · 0 评论 -
Flash中启动Linux的方法
在测试过程中,可以通过at91rm9200内置的bootloader程序加载loader程序以及u-boot程序,然后通过强大的u-boot功能可以通过网络或者串口加载启动所需的linux kernel以及文件系统。当程序调试成功之后,需要将程序固化到Flash存储介质中,或者也可以采用网络启动的方法。最终不管采用本地Flash启动还是远程网络启动,其设计思想是保持一致的,下面对本地Flash(通原创 2015-10-23 10:47:36 · 1593 阅读 · 0 评论 -
为什么嵌入式系统需要具有实时操作系统的特性?
并非所有的嵌入式系统都需要实时操作系统,只有在一些特定的场合,对时间比较敏感的应用才会使用实时操作系统。实时操作系统必须及时响应所要求的任务,在限定时间内完成任务。非实时的操作系统,多时间不是很敏感,对所要求的任务只是会保证完成,但在什么时候完成,或用多长的时间完成就不一定了。例如:手机它不需要实时性。我们发短信时,系统对它的处理早1秒或者晚1秒都不会影响到我们的使用。而对于导弹这样的应用必须具有原创 2015-10-23 16:56:47 · 1982 阅读 · 0 评论 -
几个重要的RedHat Linux内核文件介绍
在网络中,不少服务器采用的是Linux系统。为了进一步提高服务器的性能,可能需要根据特定的硬件及需求重新编译Linux内核。编译Linux内核,需要根据规定的步骤进行,编译内核过程中涉及到几个重要的文件。比如对于RedHat Linux,在/boot目录下有一些与Linux内核有关的文件,进入/boot执行:ls –l。编译过RedHat Linux内核的人对其中的System.map 、vm转载 2015-10-23 17:26:02 · 270 阅读 · 0 评论 -
linux信号汇总大全
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR111) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15转载 2015-11-11 13:32:49 · 597 阅读 · 0 评论 -
用 eventfd 在线程之间通信
最近有想法把网络库推广成能在线程,同主机进程和不同主机之间的通信的公共中间件。后面两样都可以用 socket。 当然同主机进程也可以用别的,先不想那么多。我要说的线程之间,要实现和 socket 统一的 reactor 通信机制,比较好的是用 Linux 的 eventfd 。eventfd 是一个相对比较新的东西,资料不多,所以我也是摸着石头过河。基本做法就是用 eventfd_crea转载 2015-11-11 14:51:49 · 703 阅读 · 0 评论 -
条件变量pthread_cond_t怎么用
最近看《UNIX环境高级编程》多线程同步,看到他举例说条件变量pthread_cond_t怎么用,愣是没有看懂,只好在网上找了份代码,跑了跑,才弄明白[cpp] view plaincopy#include #include #include pthread_mutex_t mutex = PTHREAD_MUTEX_IN转载 2015-11-11 10:44:56 · 564 阅读 · 0 评论 -
关于Apache与Nginx的优势比较
不断有人跟我说Nginx比Apache好、比Apache快之类。Nginx更主要是作为反向代理,而非Web服务器使用。我翻译过一本关于反向代理的技术书籍,同时精通Apache API开发,对Nginx和Apache的工作原理都略有了解,粗谈一下看法。 不管是Nginx还是Squid这种反向代理,其网络模式都是事件驱动。事件驱动其实是很老的技术,早期的select、poll都是如此。后来基于内转载 2015-10-20 16:30:08 · 395 阅读 · 0 评论 -
Linux系统 - 源码编译安装Nginx
安装说明系统环境:CentOS6、CentOS7、Red Hat6、Red Hat7软件:nginx-1.8.0.tar.gz其他所需软件:openssl-1.0.2d.tar.gz、pcre-8.37.tar.gz、zlib-1.2.8.tar.gz安装方式:源码编译安装 安装位置:/usr/local/nginx 下载地址:http://nginx.org/en/dow转载 2015-10-19 15:12:28 · 340 阅读 · 0 评论 -
保护模式下三个重要的系统表——GDT、LDT和IDT
护模式下三个重要的系统表——GDT、LDT和IDT这三个表是在内存中由操作系统或系统程序员所建,并不是固化在哪里,所以从理论上是可以被读写的。这三个表都是描述符表。描述符表是由若干个描述符组成,每个描述符占用8个字节的内存空间,每个描述符表内最多可以有8129个描述符。描述符是描述一个段的大小,地址及各种状态的。 描述符表有三种,分别为全局描述符表GDT、局部描转载 2015-10-27 14:31:06 · 2648 阅读 · 0 评论 -
linux:SUID、SGID详解
如果你对SUID、SGID仍有迷惑可以好好参考一下!由于用户在UNIX下经常会遇到SUID、SGID的概念,而且SUID和SGID涉及到系统安全,所以用户也比较关心这个问题。关于SUID、SGID的问题也经常有人提问,但回答的人一般答得不够详细,加上曾经回答过两个网友的问题,还查了一些资料,决定整理成本文,以供大家参考。限于本人的水平问题,文章中如果有不当之处,请广大网友指正。转载 2015-11-13 10:45:05 · 558 阅读 · 0 评论 -
CentOS6 启动流程图文解剖
们在使用Linux操作系统的时候,我们只需按下电源键,等待,然后输入账户和密码就可以使用Linux操作系统了。那么在按下电源到输入账号和密码之前,操作系统都做了些什么?下面就来讲述在这段时间发生的动作。下面以CentOS6系列为例来讲解Linux的启动流程。一、Linux启动流程详解下图就是启动流程的大致过程:二、POST加电自检POST(Power转载 2015-10-27 10:39:50 · 410 阅读 · 0 评论 -
Intel CPU的保护模式简介
Intel CPU的保护模式简介(一)保护模式x86有三种工作方式:实模式,保护模式和虚拟x86模式。尽管实方式下x86的功能要大大超过其先前的处理器(8086/8088,80186,80286),但只有在保护方式下, x86才能真正发挥更大的作用。在保护方式下,全部32条地址线有效,可寻址高达4G字节的物理地址空间;扩充的存储器分段管理机制和可选的存储器分页管理机制,不仅为存储器共享和保转载 2015-10-27 13:58:34 · 3133 阅读 · 0 评论 -
linux动态编译和静态编译
为了使用方便,可以把这两个函数接口定义为动态链接库或静态链接库。用动态链接库编译生成的可执行文件需调用.so文件方可正常运行,灵活但稍显麻烦;用静态链接库编译生成的可执行文件可直接运行,不用再调用如.so般的依赖库文件,简单但不灵活。静态链接库:1、编译生成目标文件gcc -c struct.c2、创建静态库ar cqs libstruct.转载 2015-10-28 08:57:38 · 433 阅读 · 0 评论 -
X86之操作系统之DPL,RPL,CPL
1、DPL,RPL,CPL 之间的联系和区别是什么?RPL和CPL是必须相同吗?如果相同,为什么要采用两个而不改用一个呢?答:特权级是保护模式下一个重要的概念,CPL,RPL和DPL是其中的核心概念,查阅资料无数,总结如下:简单解释:CPL是当前进程的权限级别(Current Privilege Level),是当前正在执行的代码所在的段的特权级,存在于cs寄存器的低两位。转载 2015-10-27 14:59:56 · 2418 阅读 · 0 评论 -
centos6 nginx 安装PHP
1、首先安装PHP的依赖文件 yum install gcc bison bison-devel zlib-devel libmcrypt-devel mcrypt mhash-devel openssl-devel libxml2-devel libcurl-devel bzip2-devel readline-devel libedit-devel sqlite-devel2、其中原创 2015-10-21 15:22:31 · 422 阅读 · 0 评论 -
linux iptables原理及配置详解
一:前言防火墙,其实说白了讲,就是用于实现Linux下访问控制的功能的,它分为硬件的或者软件的防火墙两种。无论是在哪个网络中,防火墙工作的地方一定是在网络的边缘。而我们的任务就是需要去定义到底防火墙如何工作,这就是防火墙的策略,规则,以达到让它对出入网络的IP、数据进行检测。目前市面上比较常见的有3、4层的防火墙,叫网络层的防火墙,还有7层的防火墙,其实是代原创 2015-10-14 14:58:42 · 966 阅读 · 0 评论 -
LVS:三种负载均衡方式比较
1、什么是LVS? 首先简单介绍一下LVS (Linux Virtual Server)到底是什么东西,其实它是一种集群(Cluster)技术,采用IP负载均衡技术和基于内容请求分发技术。调度器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障,从而将一组服务器构成一个高性能的、高可用的虚拟服务器。整个服务器集群的结构对客户是透明的,而且无需修改客转载 2015-10-14 17:03:23 · 666 阅读 · 0 评论 -
centos与RHEL的关系
CentOS(Community Enterprise Operating System,中文意思是:社区企业操作系统)是Linux发行版之一,它是来自于Red Hat Enterprise Linux依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码,因此有些要求高度稳定性的服务器以CentOS替代商业版的Red Hat Enterprise Linux使用。两者的不同,在于Cent原创 2015-10-14 15:25:20 · 2131 阅读 · 0 评论 -
Linux下environ环境变量操作函数
Linux下environ环境变量操作函数#include int main(int argc,char *argv[],char **envptr){ int i=0; for(i=0; envptr[i]!=NULL; i++) printf("%s\n",envptr[i]); return 0;}main函数是程序的入口函数转载 2015-10-28 16:28:55 · 625 阅读 · 0 评论 -
netfilter之NAT代码解读
地址转换用来改变源/目的地址/端口,是netfilter的一部分,也是通过hook点上注册相应的结构来工作 Nat注册的hook点和conntrack相同,只是优先级不同,数据包进入netfilter之后先经过conntrack,再经过nat。而在数据包离开netfilter之前先经过nat,再经过conntrack。 1 nat模块的初始化1.1 数据结构原创 2015-10-15 13:59:12 · 1922 阅读 · 0 评论