首页 » OS » Archive by category 'Ubuntu' (Page 4)

iptables: SNAT, DNAT, MASQUERADE的联系与区别

lesca | iptables, Network, Ubuntu, Web | 2011-06-01
网络地址转换主要有两种:SNAT和DNAT snat是source network address translation的缩写,即源地址目标转换。比如,多个PC机使用ADSL路由器共享上网,每个PC机都配置了内网IP,PC机访问外部网络的时候,路由器将数据包的报头中的源地址替换成路由器的ip。当外部网络的服务器比如网站web服务器接到访问请求的时候,他的日志记录下来的是路由器的ip地址,... [阅读全文]

GDB笔记(二):条件断点、命令列表、监视点

lesca | GDB, Tutorials, Ubuntu | 2011-05-21
条件断点 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 + 3) != 0 break 44 if strlen(mystring) == 0 condition 与break if类似,只是condition只能用在已存在的断点上。 用法: condition <bre... [阅读全文]
ė 6Comments Off on GDB笔记(二):条件断点、命令列表、监视点 0, , , , , , , ,

GDB笔记(一):GDB调试基础

lesca | GDB, Tutorials, Ubuntu | 2011-05-21
gdb调试基本知识 调试器指示的是将要执行的代码行 只有在编译时拥有调试符号(gcc -g)的程序才能在调试时看到源代码 同一行上有多个断点时,GDB仅中断在断点号最小的那个断点上 断点可以设置在同一程序的不同文件中 在任何给定时间,GDB只有一个焦点,即当前“活动”的文件 源文件改变后,断点发生移动,但是断点属性的行号不变 断点(breakpoints)的分类... [阅读全文]
ė 6Comments Off on GDB笔记(一):GDB调试基础 0, , , ,

进程间关系:进程、僵尸进程、孤儿进程、进程组、前台进程组、后台进程组、孤儿进程组、会话、控制终端

lesca | Concept, Ubuntu | 2011-03-16
不同的shell对使用管道线时创建子进程的顺序不同,本文以bash为例,它是支持作业控制的shell的典型代表。 僵尸进程与孤儿进程 僵尸进程:先于父进程终止,但是父进程没有对其进行善后处理(获取终止子进程有关信息,释放它仍占有的资源)。消灭僵尸进程的唯一方法是终止其父进程。 孤儿进程:该进程的父进程先于自身终止。其特点是PPID=1(init进程的ID... [阅读全文]

可靠signal函数的实现

lesca | Ubuntu | 2011-03-16
在上一篇文章中,笔者介绍了Ubuntu中signal()函数的不可靠性以及产生不可靠性的缺陷。 我们先来回忆一下这四种缺陷: 每次接到信号后,该信号复位成默认动作 不改变信号的处理方式就无法确定当前的信号处理方式 无法避免地导致系统调用的中断 进程不能关闭某些不想捕获的信号 那么如何才能消除这种不可靠性呢?这正是本文要讨论的话题。 lesca原创,... [阅读全文]
ė 6Comments Off on 可靠signal函数的实现 0, , , , ,

危险:中断不可重入的函数

lesca | Concept, FAQ, Ubuntu | 2011-03-13
如果中断一个不可重入的函数,将会引发不可预料的问题。本文举例阐述一个不可重入的函数,将其在不恰当的时候中断,以说明其危害。 lesca原创,转载请注明出处:http://lesca.me/ 什么是不可重入的函数? 我们来看一个例子: [cpp] #include "apue.h" static char buf[MAXLINE]; static void my_alarm(int signo) { signal(SIGALRM, my_ala... [阅读全文]
ė 6Comments Off on 危险:中断不可重入的函数 0, , ,

Ubuntu中signal()函数可靠性研究

lesca | Concept, Kernel, Ubuntu | 2011-03-13
signal()函数由ISO C定义,而ISO C不涉及多进程、进程组以及终端I/O等,所以它对信号的定义非常模糊。因此在很多类UNXI系统中其实现是否具有不可靠性是值得探讨的问题。本文将以Ubuntu系统为例(当前内核版本Linux version 2.6.32-29-generic),针对各种不可靠性以及缺陷,设计程序,以验证是否存在该种不可靠性或缺陷。 原创文章,转载请注明来自htt... [阅读全文]

[Ubuntu]在ubuntu上编译、烧写AT80S52 (Working on Ubunutu: compiling, burining for AT80S52)

lesca | ARM, FAQ, Tutorials, Ubuntu | 2011-03-07
This article is dual-language(Chinese-simplified and English), and is aimed to help everyone who has the same problem. 本文是双语文章,旨在帮助每个遇到该问题的人。 本文中,我将使用sdcc为8051的源文件进行交叉编译,并且使用avrdude通过usbasp下载线将其下载到目标版。 In this article, I will use sdcc to cross-compile source file of ... [阅读全文]
ė 6Comments Off on [Ubuntu]在ubuntu上编译、烧写AT80S52 (Working on Ubunutu: compiling, burining for AT80S52) 0, , , , , , ,

[Lesca译文]initrd 概览:什么是initrd, initrd原理, 创建initrd, 手动创建initrd

lesca | ARM, Concept, Kernel, Tutorials, Ubuntu | 2011-03-02
原作者:M. Tim Jones (mtj@mtjones.com), Emulex公司工程、顾问 原文链接: IBM DeveloperWorks – Linux initial RAM disk (initrd) overview 摘要: Linux® initial RAM disk (initrd) 是一个临时的根文件系统(root file system),它在系统引导期间被挂载,以提供“双阶段引导”过程的支持。initrd 包含各种可执行文件和驱动以允许真正的根文件... [阅读全文]

[Socket][网络编程]程序范例:Linux下连接WEB服务器

lesca | HTTP, SOCKET, Ubuntu, Web | 2011-03-01
昨天试着在Ubuntu 下用C语言写了一个客户端,用来向WEB服务器上交请求并取回响应报文。 同时,这也是一个通用的基于IPv4的客户端程序例程。 [cpp] /* socket test on linux main file. * * Author: Lesca<http://lesca.me> * License: GPL * */ #include <sys/types.h> #include <sys/socket.h> #include <s... [阅读全文]
ė 6Comments Off on [Socket][网络编程]程序范例:Linux下连接WEB服务器 0, , ,
Ɣ回顶部