一、iptables构架 图:iptables构架 IP INPUT: 只有要到达本机的封包才会由INPUT 函式处理,所以会让来自内部网路的封包无条件放行,来自外部网路的封包则过滤是否为回应封包,若是则放行。 PREROUTIN...
Ubuntu
iptables: SNAT, DNAT, MASQUERADE的联系与区别
网络地址转换主要有两种:SNAT和DNAT snat是source network address translation的缩写,即源地址目标转换。比如,多个PC机使用ADSL路由器共享上网,每个PC机都配置了内网IP,PC机访问外部网络的时候,路由器将...
GDB笔记(二):条件断点、命令列表、监视点
条件断点 break if 用法: break [break-args] if (condition) 例如: break main if argc > 1 break 180 if (string == NULL && i < 0) break test.c:34 if (x & y) == 1 break myfunc if i % (j +...
GDB笔记(一):GDB调试基础
gdb调试基本知识 调试器指示的是将要执行的代码行 只有在编译时拥有调试符号(gcc -g)的程序才能在调试时看到源代码 同一行上有多个断点时,GDB仅中断在断点号最小的那个断点上 断点可以设置在同一程序的不同...
进程间关系:进程、僵尸进程、孤儿进程、进程组、前台进程组、后台进程组、孤儿进程组、会话、控制终端
不同的shell对使用管道线时创建子进程的顺序不同,本文以bash为例,它是支持作业控制的shell的典型代表。 僵尸进程与孤儿进程 僵尸进程:先于父进程终止,但是父进程没有对其进行善后处理(获取终止子进程有关...
可靠signal函数的实现
在上一篇文章中,笔者介绍了Ubuntu中signal()函数的不可靠性以及产生不可靠性的缺陷。 我们先来回忆一下这四种缺陷: 每次接到信号后,该信号复位成默认动作 不改变信号的处理方式就无法确定当前的信号处理...
危险:中断不可重入的函数
如果中断一个不可重入的函数,将会引发不可预料的问题。本文举例阐述一个不可重入的函数,将其在不恰当的时候中断,以说明其危害。 lesca原创,转载请注明出处:http://lesca.me/ 什么是不可重入的函数? 我...
Ubuntu中signal()函数可靠性研究
signal()函数由ISO C定义,而ISO C不涉及多进程、进程组以及终端I/O等,所以它对信号的定义非常模糊。因此在很多类UNXI系统中其实现是否具有不可靠性是值得探讨的问题。本文将以Ubuntu系统为例(当前内核版本Linu...
[Ubuntu]在ubuntu上编译、烧写AT80S52 (Working on Ubunutu: compiling, burining for AT80S52)
This article is dual-language(Chinese-simplified and English), and is aimed to help everyone who has the same problem. 本文是双语文章,旨在帮助每个遇到该问题的人。 本文中,我将使用sdcc为8051的源...
[Lesca译文]initrd 概览:什么是initrd, initrd原理, 创建initrd, 手动创建initrd
原作者:M. Tim Jones (mtj@mtjones.com), Emulex公司工程、顾问 原文链接: IBM DeveloperWorks - Linux initial RAM disk (initrd) overview 摘要: Linux® initial RAM disk (initrd) 是一个临时的根文件...