分类: |
引言

  从单进程单线程到多进程多线程是操作系统发展的一种必然趋势,当年的DOS系统属于单任务操作系统,最优秀的程序员也只能通过驻留内存的方式实现所谓的"多任务",而如今的Win32操作系统却可以一边听音乐,一边编程,一边打印文档。

  理解多线程及其同步、互斥等通信方式是理解现代操作系统的关键一环,当我们精通了Win32多线程程序设计后,理解和学习其它操作系统的多任务控制也非常容易。许多程序员从来没有学习过嵌入式系统领域著名的操作系统VxWorks,但是立马就能在上面做开发,大概要归功于平时在Win32多线程上下的功夫。

查看更多...

分类:c/c++ | 固定链接 | 评论: 0 | 查看次数: 8065
本章我们将以工业控制和嵌入式系统中运用极为广泛的串口通信为例讲述多线程的典型应用。

  而网络通信也是多线程应用最广泛的领域之一,所以本章的最后一节也将对多线程网络通信进行简短的描述。

  1.串口通信

查看更多...

分类:c/c++ | 固定链接 | 评论: 0 | 查看次数: 9433

C语言编写 Win32 服务实例

#include <windows.h>
#include <stdio.h>

#define SLEEP_TIME 5000
#define LOGFILE "C:\\MyServices\\memstatus.txt"

查看更多...

分类:c/c++ | 固定链接 | 评论: 0 | 查看次数: 8916

一个八年没发现的Linux内核bug

存在于网络工作socket初始化中的一个Linux内核bug可以使攻击者获得root权限而造成损害。安全漏洞存在于所有2.4和2.5系列的内核,这种情况很可能自2001年以来就存在了。
  Bug的原因是socket初始化里一个错误的函数执行导致了一个空指针废弃。指针本应该将函数指向一个预定义的存根例程(stub routine),但是一些协议却没有将这些指针初始化。

  受影响的协议的列表是相当长:AppleTalk,IPX,X.25,Irda,Bluetooth,ISDN,AX25和IUCV ,但是有可能还有更多。

查看更多...

分类:内核探究 | 固定链接 | 评论: 0 | 查看次数: 7140

安装linux后的内核调优

kernel.shmall = 268435456

    net.ipv4.tcp_syncookies = 1

    net.ipv4.tcp_tw_reuse = 1

查看更多...

分类:内核探究 | 固定链接 | 评论: 0 | 查看次数: 5776

Linux Kernel开发加速

 Linux基金会连续第二年发布了Linux Kernel开发现状报告(PDF)。报告跟踪了kernel 2.6.24到2.6.30之间的开发,报告显示Linux Kernel的开发在加速。
    报告称,自kernel 2.6.24以来,每天平均有5547行代码被移除,2243行代码被修改,10923行被加入。平均每小时有5.4个补丁加入到tree上,去年的报告是3.83次,增长了42%,这一比率远远高于其它开源项目。过去4.5年里,总共有4190位开发者捐赠了代码,代码捐赠最多的10个人占总数的12%,最多的30个人占25%。Linus Torvalds捐赠的补丁数没有进入TOP30,但他的贡献是无法用数目去衡量的:自2.6.24后Linus共捐赠了254个补丁,Bartlomiej Zolnierkiewicz最多捐赠了1,169个补丁;Red Hat kernel开发者Ingo Molnar其次,捐赠了1,164个补丁;之后是David S. Miller(851),Chris Mason(717),Takashi Iwai(711),Adrian Bunk(708),Harvey Harrison(669),Yinghai Lu(609),Greg Kroah-Hartman(608),Paul Mundt(579),Al Viro(550),Alan Cox(545)等。就公司而言,Red Hat占补丁总数的12.3%,IBM占7.6%,Novell为7.6%,Intel为5.3%,Oracle为2.4%,Linux基金会为1.6%,SGI为1.6%。

查看更多...

分类:linux教程 | 固定链接 | 评论: 0 | 查看次数: 5958

Linux内核中的循环链表结构

 注:文章中引用的代码来源于LXR,所分析的内核版本是v2.6.31。
    linux内核通过定义list_head以及对于list_head上的一组操作实现对不同类型的循环链表的同类操作,这种做法避免了对于不同数据类型的循环链表定义重复的操作函数,使代码得到了充分的使用,是一种十分有效的编程方法。

    list_head的定义:

查看更多...

分类:linux教程 | 固定链接 | 评论: 0 | 查看次数: 6728

编译Linux内核的详细过程

1、准备源码
    最新的源码可以从kernel.org上获取,如当前最新版本为2.6.31:$ wget linux-kernel/v2.6/linux-2.6.31.tar.bz2">http://oss.ustc.edu.cn/linux-kernel/v2.6/linux-2.6.31.tar.bz2

    2、解压源码:

查看更多...

分类:linux教程 | 固定链接 | 评论: 0 | 查看次数: 9032

在Linux中监视IO性能

dd命令
  dd其实是工作于比较低层的一个数据拷贝和转换的*nix平台的工具,但是因为dd命令支持*nix平台的一些特殊设备,因此我们可以利用dd命令的这个特性来简单的测试磁盘的性能。

  先说一下两个相关的特殊设备

查看更多...

分类:内核探究 | 固定链接 | 评论: 0 | 查看次数: 6343

Linux内核模块了解

驱动开发详解:
  驱动模块概念了解

  了解内核的兄弟都知道,内核中的各个功能可以静态编译到内核

查看更多...

分类:linux教程 | 固定链接 | 评论: 0 | 查看次数: 6249

linux内核中操作文件的方法

#include <linux/kernel.h>
  #include <linux/module.h>

  #include <linux/init.h>

查看更多...

分类:linux教程 | 固定链接 | 评论: 0 | 查看次数: 6157

Linux内核体系简介

1.Linux 内核简介
  现在让我们从一个比较高的高度来审视一下 GNU/Linux 操作系统的体系结构。您可以从两个层次上来考虑操作系统,如图 1 所示。
[img]http://linux.chinaitlab.com/UploadFiles_7565/200911/20091125162635413.jpg[/img]
图 1. GNU/Linux 操作系统的基本体系结构

查看更多...

分类:linux教程 | 固定链接 | 评论: 0 | 查看次数: 5734

Linux内核进行压力测试

Linux 标准测试的设计过程
  自动软件测试让您可以在一段时间内运行相同的测试,从而确保您所比较的内容具备真正的可比性。在本文中,Linux Test Project 团队的成员们分享了他们对 Linux? 内核进行压力所使用的测试的方法、原理以及脚本和工具。

  在对 Linux 内核版本稳定性的测试中,需要明确地声明并证明为什么版本是稳定的或者是不稳定的。然而还没有被证明和证实当前现有的系统范围内的压力测试可以测试 Linux 内核整体上的稳定性。本文给出了一个创建系统范围内 Linux 压力测试并证明其结果正确性的方法。不同的 Linux 开发者、用户和发行版本会使用他们自己的方法来测试内核的稳定性。不过,关于他们决定运行哪些测试、覆盖的代码、达到的压力级别等的基础信息都没有发布,这就大大降低了结果的价值。

查看更多...

分类:内核探究 | 固定链接 | 评论: 0 | 查看次数: 8207

Linux操作系统的内核解读入门

针对好多Linux爱好者对内核很有兴趣却无从下口,本文旨在介绍一种解读linux内核源码的入门方法,而不是解说linux复杂的内核机制;
  一.核心源程序的文件组织:

  1.Linux核心源程序通常都安装在/usr/src/linux下,而且它有一个非常简单的编号约定:任何偶数的核心(例如2.0.30)都是一个稳定地发行的核心,而任何奇数的核心(例如2.1.42)都是一个开发中的核心。 本文基于稳定的2.2.5源代码,第二部分的实现平台为 Redhat Linux 6.0。

查看更多...

分类:linux教程 | 固定链接 | 评论: 0 | 查看次数: 5735

从linux kernel coding style看php代码规范

 linux内核的编码是一种极端情况。
  需要清晰明朗以供全世界的开发者学习、修改,对代码的质量要求较高。

  相信linus大神在长期接触各种各式代码后脾气会变得更暴躁,就比如前段时间在某论坛痛斥C++。。。

查看更多...

Tags: php

分类:linux教程 | 固定链接 | 评论: 0 | 查看次数: 6837

分析linux内核的idle的知识

Linux系统越来越受到电脑用户的欢迎,于是很多人开始学习Linux时,学习linux,你可能会遇到linux内核问题,这里将介绍linux内核中idle知识,在这里拿出来和大家分享一下。
  1. idle是什么

  简单的说idle是一个进程,其pid号为 0。其前身是系统创建的第一个进程,也是唯一一个没有通过fork()产生的进程。在smp系统中,每个处理器单元有独立的一个运行队列,而每个运行队列上又有一个idle进程,即有多少处理器单元,就有多少idle进程。系统的空闲时间,其实就是指idle进程的"运行时间"。既然是idle是进程,那我们来看看idle是如何被创建,又具体做了哪些事情?

查看更多...

分类:内核探究 | 固定链接 | 评论: 0 | 查看次数: 7586

网购必看 在线买卖防骗技术指南

摘要:网购方便快捷深受广大网友的喜爱,同时网购陷阱也层出不穷,各种各样的网购骗术应运而生。现在就来看看如何愉快网购防止被骗。 
一:网上购物买家防骗术 

1.李代桃僵(用户名及地址陷阱) 

查看更多...

分类:win7技术 | 固定链接 | 评论: 0 | 查看次数: 6797

破坏安全模式

作者:乱雪  http://hi.baidu.com/lu4nx
参考AV终结者写的一个小函数,直接删注册表的内容,方法很简单,不过网上很少看到有这方面的资料,恢复起来也容易:) 
/*
破坏安全模式,by:乱雪
2010.1.24

查看更多...

分类:网络安全 | 固定链接 | 评论: 0 | 查看次数: 7637

截获流经本机网卡的IP数据包

从事网络安全的技术人员和相当一部分准黑客(指那些使用现成的黑客软件进行攻击而不是根据需要去自己编写代码的人)都一定不会对网络嗅探器(Sniffer)感到陌生,网络嗅探器无论是在网络安全还是在黑客攻击方面均扮演了很重要的角色。通过使用网络嗅探器可以把网卡设置于混杂模式,并可实现对网络上传输的数据包的捕获与分析。此分析结果可供网络安全分析之用,但如为黑客所利用也可以为其发动进一步的攻击提供有价值的信息。可见,嗅探器实际是一把双刃剑。 虽然网络嗅探器技术被黑客利用后会对网络安全构成一定的威胁,但嗅探器本身的危害并不是很大,主要是用来为其他黑客软件提供网络情报,真正的攻击主要是由其他黑软来完成的。而在网络安全方面,网络嗅探手段可以有效地探测在网络上传输的数据包信息,通过对这些信息的分析利用是有助于网络安全维护的。权衡利弊,有必要对网络嗅探器的实现原理进行介绍。 

  嗅探器设计原理

  嗅探器作为一种网络通讯程序,也是通过对网卡的编程来实现网络通讯的,对网卡的编程也是使用通常的套接字(socket)方式来进行。但是,通常的套接字程序只能响应与自己硬件地址相匹配的或是以广播形式发出的数据帧,对于其他形式的数据帧比如已到达网络接口但却不是发给此地址的数据帧,网络接口在验证投递地址并非自身地址之后将不引起响应,也就是说应用程序无法收取到达的数据包。而网络嗅探器的目的恰恰在于从网卡接收所有经过它的数据包,这些数据包即可以是发给它的也可以是发往别处的。显然,要达到此目的就不能再让网卡按通常的正常模式工作,而必须将其设置为混杂模式。

查看更多...

分类:破解调试 | 固定链接 | 评论: 0 | 查看次数: 9402

Autorun.inf的新写法与应用以及防御

首先是autorun.inf
一般的病毒的Autorun.inf文件内容为
[autorun]
open=.\RECYCLER\RECYCLER\autorun.exe
shell\1=Open

查看更多...

分类:网络安全 | 固定链接 | 评论: 0 | 查看次数: 7991