随笔分类 - Linux
摘要:(转载)http://www.farsight.com.cn/news/emb167.htm 1 Linux系统调用所谓系统调用是指操作系统提供给用户程序调用的一组“特殊”接口,用户程序可以通过这组“特殊”接口获得操作系统内核提供的服务。例如,用户可以通过进程控制相关的系统调用来创建进程、实现进程之间的通信等。在这里,为什么用户程序不能直接访问系统内核提供的服务呢?这是由于在Linux中,为了更好地保护内核空间,将程序的运行空间分为内核空间和用户空间(也就是常称的内核态和用户态),它们分别运行在不同的级别上,逻辑上是相互隔离的。因此,用户进程在通常情况下不允许访问内核数据,也无法使用内核函数,
阅读全文
摘要:(转载)http://blog.163.com/xu_jin_rong/blog/static/1491966220086775017178由于cublog系统的缘故,将前段时间写的一篇blog文章再次贴上。可重入函数这一概念早有接触,但一直未有系统的理解,最近阅读《APUE》信号一章时,其中讲解很到位,故总结如下。信号作为一种软中断,能够被进程给捕获,因而也就中断进程的正常执行,转而去执行信号处理程序,最后再返回到原进程继续正常执行。然而,当进程正在执行malloc()动态内存分配时,信号产生从而转入到信号处理程序,但当信号处理程序中也用到了malloc()函数时,问题就出来了?因为mall
阅读全文
摘要:(转载)http://bjsfly.blog.163.com/blog/static/161276642007845228371/0001修改主机名(bjchenxu)vi /etc/sysconfig/network,修改HOSTNAME一行为"HOSTNAME=主机名"(没有这行?那就添加这一行吧),然后运行命令 " hostname 主机名"。一般还要修改/etc/hosts文件中的主机名。这样,无论你是否重启,主机名都修改成功。0002Red Hat Linux启动到文字界面(不启动xwindow)(bjchenxu)vi /etc/initta
阅读全文
摘要:(转载)http://soft.chinabyte.com/os/220/11760720.shtml新做了服务器,cp覆盖时,无论加什么参数-f之类的还是提示是否覆盖,这在大量cp覆盖操作的时候是不能忍受的。 把a目录下的文件复制到b目录 cp –r a/* b 执行上面的命令时,b存在的每个文件都会提示是否覆盖; cp –r –f a/* b 执行上面的命令时,b存在的每个文件都不再会提示; 这是我们希望的理想状态,但是有时加了-f了,怎么还会有提示呢?原来一些服务器会默认增加别名 alias cp='cp -i',当你执行cp时,其实执行的是cp –i。 在终端执行ali
阅读全文
摘要:(转载)http://www.jefflei.com/post/1760.html1.iptables防火墙启动和停止启动iptables防火墙时命令行输入 #service iptables start[root@host.jefflei.com ~]# service iptables start应用 iptables 防火墙规则: [确定]载入额外 iptables 模块:ip_conntrack_netbios_ns [确定]要停止iptables命令行输入 #service iptables s...
阅读全文
摘要:(转载)http://www.cnblogs.com/JemBai/archive/2009/03/19/1416364.html如果你的IPTABLES基础知识还不了解,建议先去看看.开始配置我们来配置一个filter表的防火墙.(1)查看本机关于IPTABLES的设置情况[root@tp ~]# iptables -L -nChain INPUT (policy ACCEPT)target prot opt source destinationChain FORWARD (policy ACCEPT)target prot opt source destinationChain OUTPU
阅读全文
摘要:(转载)http://www.vpser.net/security/linux-iptables.htmliptables是Linux上常用的防火墙软件,下面vps侦探给大家说一下iptables的安装、清除iptables规则、iptables只开放指定端口、iptables屏蔽指定ip、ip段及解封、删除已添加的iptables规则等iptables的基本应用。1、安装iptables防火墙如果没有安装iptables需要先安装,CentOS执行:yum install iptablesDebian/Ubuntu执行:apt-get install iptables2、清除已有iptabl
阅读全文
摘要:(转载)http://blog.csdn.net/shenghuiping2001/article/details/7083153今天系统加了内存条,设置变了一下:就启动不起虚拟机了,报错:Unable to open kernel device "\\.\Global\vmx86下面方法就可以解决了C:\Documents and Settings\db2admin>net start vmx86VMware vmx86 服务已经启动成功。
阅读全文
摘要:(转载)http://blog.chinaunix.net/uid-7453676-id-2625582.html分类: LINUX一 试验的前期环境搭建 系统环境:Fedora 2 软件版本: 在第二张光盘中 vsftpd-1.2.1-5.i386.rpm二 安装vsftpd服务器端 (1)首先查看是否安装了vsftpd # rpm -qa|grep vsftpd 安装vsftpd-1.2.1-5.i386.rpm # rpm -ivh vsftpd-1.2.1-5.i386.rpm 注:Fedora 2 不需要安装anonftp包,vsftpd-1.2.1-5.i386.rpm安装时已经包
阅读全文
摘要:(转载)http://licong.blog.51cto.com/542131/145748/ 写篇关于vsftp配置的文章,加深自己的记忆,便于自己查阅,同时也希望能给其他需要的朋友一点借鉴.本文如有不对之处,还烦请批评指正,不甚感激. 系统环境:RHEL4,vsftp软件包系统光盘有或者到网上搜索rpm包安装,以下详细介绍配置过程.注:下面的配置为仅允许系统帐户登陆,且严格chroot.行首"#"为root提示符,其他"#"为注释标记.#vi /etc/vsftpd/vsftpd.conf-------------------------------
阅读全文
摘要:(转载)http://www.xinfengit.com/200907/1433646.html由于DOS下的编辑器和linux(linux教程 linux培训 )编辑器对文件行末的回车符处理不一致,在Linux下经常能看到C文件或者TXT文件每行末尾都有一个^M符号,这个会导致shell脚本运行错误。 我们可以采用VI的编辑器命令进行删除。 下面是我自己发明的一种方法和石头提供的,都差不多一样,利用VI的查找替换命令,将^M替换为空格符 (1):在VI的编辑模式下,ESC shilt + : 输入 g/\^M/s/\^M// 回车,就删除掉了。 (2):在VI的编辑模式下,ESC...
阅读全文
摘要:(转载)http://blog.csdn.net/jbgtwang/article/details/7995801实现linux定时任务有:cron、anacron、at等,这里主要介绍cron服务。名词解释: (1)cron是服务名称; (2)crond是后台进程; (3)crontab则是定制好的计划任务表;软件包安装:要使用cron服务,先要安装vixie-cron软件包和crontabs软件包,两个软件包作用如下:vixie-cron软件包是cron的主程序。crontabs软件包是用来安装、卸装、或列举用来驱动 cron 守护进程的表格的程序。查看是否安装了cron软件包: rpm
阅读全文
摘要:(转载)http://coolshell.cn/articles/7965.html前两天有人问了个关于Unix的fork()系统调用的面试题,这个题正好是我大约十年前找工作时某公司问我的一个题,我觉得比较有趣,写篇文章与大家分享一下。这个题是这样的:题目:请问下面的程序一共输出多少个“-”?#include <stdio.h>#include <sys/types.h>#include <unistd.h> int main(void){ int i; for(i=0; i<2; i++){ fork(); printf("-")
阅读全文
摘要:(转载)http://blog.csdn.net/ctthunagchneg/article/details/8926543我们知道,GDB的backtrace命令可以查看堆栈信息。但很多时候,GDB根本用不上。比如说,在线上环境中可能没有GDB,即使有,也不太可能让我们直接在上面调试。如果能让程序自己输出调用栈,那是最好不过了。本文介绍和调用椎栈相关的几个函数。NAME backtrace, backtrace_symbols, backtrace_symbols_fd - support for application self-debuggingSYNOPSIS ...
阅读全文
摘要:(转载)http://blog.sina.com.cn/s/blog_65ad6e120100hjmt.html这里详细讨论一下disassemble/disass命令GDB文档:Debugging with GDB* 反汇编一个函数disass func_name*反汇编一段内存地址, 第1个参数是起始地址,第2个是终止地址disassemble 0×0 0×10*info line 命令来映射一个源码行到程序地址,然后使用命令disassemble显示一个地址范围的机器指令。例1. 查看main函数从哪里开始(gdb) info line mainLine 34 of
阅读全文
摘要:(转载)http://blog.csdn.net/daiyutage/article/details/8605580字符串常量,放在哪个存储区呢?是“自动存储区”还是“静态存储区”中?比如:char*pstr="helloworld!";这里,"helloworld!"是一个字符串常量,pstr是在栈中的变量。我想问,字符串常量,在哪个内存区域分配空间呢?好像应该不是在“栈区“分配空间吧!!!一、预备知识—程序的内存分配一个由C/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)—由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操
阅读全文
摘要:(转载)http://blog.csdn.net/hmsuccess/article/details/2808109原来一直对于可执行程序的内存分布很迷惑,最近查了好多资料以及请教了诸多高手,方有一些领悟,现将自己领悟的写下来,以供大家批评指正。在操作系统中,一个进程就是处于执行期的程序(当然包括系统资源),实际上正在执行的程序代码的活标本。那么进程的逻辑地址空间是如何划分的呢?图1做了简单的说明(Linux系统下的):图1左边的是UNIX/LINUX系统的执行文件,右边是对应进程逻辑地址空间的划分情况。首先是堆栈区(stack),堆栈是由编译器自动分配释放,存放函数的参数值,局部变量的值等。
阅读全文
摘要:(转载)http://blog.csdn.net/haiyan0106/article/details/1627007 我的方法是编译成汇编文件后(gcc -S) ,然后用as编译成.o文件,最后再生成执行文件。给你一个我的调试过程。#include <stdio.h>#include <stdlib.h>#include <string.h>void test(void){ int number = 10; printf("The number: %d\n", number);}int main(int argc, char* argv
阅读全文
摘要:(1)打印缓冲区(数组、字符串)中某段的内容(2)查看GDB当前所执行的源文件和源文件的行数(3)获取变量的类型信息
阅读全文
摘要:(转载)http://www.cppblog.com/liu1061/articles/53762.html如果在Linux平台可以用gdb进行反汇编和调试。(转)2. 最简C代码分析 为简化问题,来分析一下最简的c代码生成的汇编代码: # vi test1.c int main() { return 0; } 编译该程序,产生二进制文件: # gcc test1.c -o test1 # file test1 test1: ELF 32-bit LSB executable 80386 Version 1, dynamically linked, not stripped ...
阅读全文