首页 » 2011 » March

Monthly: March 2011

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

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

可靠signal函数的实现

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

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

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... [阅读全文]

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... [阅读全文]

红外线遥控器编码解码(1):引导码(leader code)

lesca | ARM | 2011-03-11
红外线遥控器编码解码(1):引导码(leader code)
引导码可以说是各个不同遥控器的身份证。但是更确切的说,应该是遥控器内编码芯片的身份证。 不同的编码芯片其引导码的高低电平持续时长不尽相同。本文将通过实验证明此观点。 实验设备: 51单片机开发板,遥控器数个,TL1838红外接收器一个,RSR232串行线一根,USB转串口线一根 实验原理 TL1838是一个一体化的红外接收器,能将空间中传播的38kHz编码... [阅读全文]

[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 ... [阅读全文]

Websh v0.2 发布

lesca | Projects, Websh | 2011-03-04
Websh v0.2 发布
Websh是基于PHP的网页shell,它能够为没有打开安全模式并且不提供SSH支持的服务器提供shell交互界面 相比0.1版本,该版本具有以下特性: 功能以及更新: 启用AJAX支持 极大提高了页面更新速度,不必每次发送完指令后等待整个页面刷新。 同时支持多个命令的异步执行。 运行结果自动滚动 每次执行完命令后,文本域能够自动滚动到底部,当有多个命令异步... [阅读全文]

[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... [阅读全文]

SSH端口转发(本地端口转发、远程端口转发、动态端口转发)工作原理、应用详解

lesca | Concept, Tutorials, Ubuntu, Web | 2011-03-01
SSH端口转发(本地端口转发、远程端口转发、动态端口转发)工作原理、应用详解
实验条件: 1.本文所述之实验,本地主机操作系统基于Ubuntu 10.04,远程主机操作系统基于BSD发行版 2.本地主机安装了ssh client(ssh),也安装了ssh server(sshd) 基础知识: 文章中客户端指ssh,用于发出连接请求;服务端指sshd,监听端口22。 安全通道是指ssh与sshd之间已建立的连接通道,该连接是加密的。 SSH 端口转发格式[1] [-L [bind_address:]... [阅读全文]
Ɣ回顶部