自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

kernel hacker 修炼之道——李万鹏

男儿立志出乡关,学不成名誓不还。埋骨何须桑梓地,人生何处不青山。

  • 博客(38)
  • 资源 (4)
  • 收藏
  • 关注

原创 最后一篇blog

2012-05-15 07:52:27 6465 19

原创 My contribution to linux kernel

I'm a Linux Kernel Developer working for Intel OTC in Beijing, China.My contribution to linux kernel https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/log/?qt=author&q=Wanpeng+Li

2014-12-30 20:47:39 2210 1

转载 linux 与 虚拟机共享数据

<br />VirtualBox中实现与主机文件的共享<br />来源: 编辑: 时间:2009-07-28<br /><br />VirtualBox是一款开源的虚拟机软件,可以在Linux/Mac和Windows主机中运行。支持在虚拟机中安装全系列Windows操作系统(如Win2000、XP、Vista、Windosw 7)。在VirtualBox虚拟机中安装操作系统并不复杂,如同在真实电脑中一样。对于多数新手来说,使用VirtualBox最大的麻烦就是共享相关问题,今天我们就来解决虚拟XP系统与真实

2010-06-27 15:19:00 1730

原创 Ubuntu下的多线程下载工具:MultiGet;并与 Firefox 建立关联

介绍个下载工具——MultiGet。没什么可以罗嗦的,库里面就有。大概功能相当于FlashGet。特点是可以单独为每个下载进程设置不同的代理。安装见图:完整界面:系统设置:代理设置:先把一堆代理设置好。每次下载的时候,(如果有必要)可以选其中一个作为这个进程的代理。到此安装完毕。然后设置Firefox的下载关联。首先给Firefox安装FlashGot扩展:下面配置FlashGot;点击 FlashGot 的 Preference。然后在常规标签的下载管理器那里点击新增:输入下载管理器名

2010-06-13 23:37:00 5601

转载 ubuntu下arm-linux-gcc的安装

下载arm-linux-gcc,并解压,把里面的arm文件夹整个cp到/usr/local/(在其中解压缩文件cross-2.95.3-tar.bz2, 这个不作也可以)然后是注册环境一般是修改profile对于ubuntu中profile是调用/etc/bash.bashrc来运行的我是在/etc/bash.bashrc后加上if [ -d /usr/local/arm ] ; thenPATH=/usr/local/arm/2.95.3/bin:"${PATH}"fi

2010-06-13 21:48:00 2544

转载 BusyBox 简化嵌入式 Linux 系统

2006 年 9 月 11 日BusyBox 是很多标准 Linux® 工具的一个单个可执行实现。BusyBox 包含了一些简单的工具,例如 cat 和 echo,还包含了一些更大、更复杂的工具,例如 grep、find、mount 以及 telnet(不过它的选项比传统的版本要少);有些人将 BusyBox 称为 Linux 工具里的瑞士军刀。本文将探索 BusyBox 的目标,它是如何工作的,以及为什么它对于内存有限的环境来说是如此重要。BusyBox 的诞生BusyBox 最初是由 B

2010-06-11 15:30:00 1473

转载 ubuntu9.10下构建tftp服务

<br />1、安装tftp的server和client,还有xinetd代码:<br />sudo apt-get install tftp tftpd<br />  前者是客户端,后者是服务程序。<br />  只这样是不行的,因为tftp是要inetd来控制的,而ubuntu或debian类的系统,默认是没有安装inetd的,安装一下:<br />代码:<br /><br /><br />sudo apt-get install netkit-inetd<br />运行这条命令

2010-06-11 15:28:00 1390

转载 Nmap使用方法

[Ping扫描(Ping Sweeping)] [端口扫描(Port Scanning)] [隐蔽扫描(Stealth Scanning)] [UDP扫描(UDP Scanning)] [操作系统识别(OS Fingerprinting)] [Ident扫描(Ident Scanning)] [选项(Options)] [小结] 简介: 最近媒体报道了许多关于入侵网络的新闻,使人们总以为入侵者只需通过简单工具就可获得电脑的访问权限.但实际上,事情并不是想象中的这么简单.黑

2010-06-11 15:27:00 1664

转载 SIGHUP信号与控制终端

SIGHUP信号与控制终端UNIX中进程组织结构为 session (会话)包含一个前台进程组及一个或多个后台进程组,一个进程组包含多个进程。一个session可能会有一个session首进程,而一个session首进程可能会有一个控制终端。一个进程组可能会有一个进程组首进程。进程组首进程的进程ID与该进程组ID相等。这儿是可能会有,在一定情况之下是没有的。与终端交互的进程是前台进程,否则便是后台进程。  SIGHUP会在以下3种情况下被发送给相应的进程:  1、终端关闭时,该信号被发送到s

2010-06-11 11:04:00 1754

转载 linux 线程总结

所有线程都有一个线程号,也就是Thread ID。其类型为pthread_t。通过调用pthread_self()函数可以获得自身的线程号。下面说一下如何创建一个线程。通过创建线程,线程将会执行一个线程函数,该线程格式必须按照下面来声明:       void * Thread_Function(void *)创建线程的函数如下:       int pthread_create(pthread_t *restrict thread,              const pthre

2010-06-10 22:08:00 1685

转载 ftok () 函数介绍

系统建立IPC通讯(如消息队列、共享内存时)必须指定一个ID值。通常情况下,该id值通过ftok函数得到。ftok原型如下:key_t ftok( char * fname, int id )参数说明:                fname就时您指定的文档名                id是子序号。返回值:                在一般的UNIX实现中,是将文档的索引节点号取出,前面加上子序号得到key_t的返回值。              如指定文档的索引

2010-06-10 22:06:00 2219

转载 线程的执行的无序性---生产消费者

源程序:#include #include #include #include #include #define BUFSIZE 4#define NUMBER 8int sum_of_number=0;sem_t write_res_number;sem_t read_res_number;struct recycle_buffer{    int buffer[BUFSIZE];    int head,tail;    }re_buf;pth

2010-06-10 22:05:00 1358

转载 一个Linux下C线程池的实现

什么时候需要创建线程池呢?简单的说,如果一个应用需要频繁的创建和销毁线程,而任务执行的时间又非常短,这样线程创建和销毁的带来的开销就不容忽视,这时也是线程池该出场的机会了。如果线程创建和销毁时间相比任务执行时间可以忽略不计,则没有必要使用线程池了。   下面是Linux系统下用C语言创建的一个线程池。线程池会维护一个任务链表(每个CThread_worker结构就是一个任务)。   pool_init()函数预先创建好max_thread_num个线程,每个线程执thread_routine

2010-06-10 22:02:00 1556

转载 linux 线程 进程经典文章

进程是程序在计算机上的一次执行活动。当你运行一个程序,你就启动了一个进程。显然,程序是 死的(静态的),进程是活的(动态的)。进程可以分为系统进程和用户进程。凡是用于完成操作系统的各种功能的进程就是系统进程,它们就是处于运行状态下的操作系统本身;用户进程就是所有由你启动的进程。进程是操作系统进行资源分配的单位。 进程又被细化为线程,也就是一个进程下有多个能独立运行的更小的单位。 一.基础知识:线程和进程 按照教科书上

2010-06-10 22:01:00 1762

原创 linux c语言学习笔记之IPC-共享内存

内存共享分为两个步骤:一.创建共享内存使用shmget函数二.映射到共享内存,将这段共享内存映射到具体的进程空间去,使用shmat函数系统调用:shmget();原型: int shmget(key_t key,int size, int shmflg);返回值:如果成功返回共享内存段标识符如果失败返回-1系统调用:shmat();原型:int shmat(int shmid, char *shmaddr, int shmflag);返回值:如果成功,返回到共享内存段连接

2010-06-10 15:57:00 2224

原创 linux c语言学习笔记之IPC-管道

普通的Linuxshell都允许重定向,而重定向使用的就是管道。例如:$ls | pr | lpr把命令ls(列出目录中的文件)的输出通过管道连接到命令pr的标准输入上进行分页。最后,命令pr的标准输出通过管道连接到命令lpr的标准输入上,从而在缺省打印机上打印出结果。进程感觉不到这种重定向,它们和平常一样地工作。正是shell建立了进程之间的临时管道。管道是单向的、先进先出的、无结构的、固定大小的字节流,它把一个进程的标准输出和另一个进程的标准输入连接在一起。写进程在管道的

2010-06-10 14:08:00 2458

原创 linux c语言学习笔记之IPC-信号

在Linux系统中,以进程为单位分配和管理资源。由于保护的缘故,一个进程不能直接访问另一个进程的资源,也就是说,进程之间互相封闭。但在一个复杂的应用系统中,通常会使用多个相关的进程来共同完成一项任务,因此要求进程之间必须能够互相通信,从而来共享资源和信息。所以,一个操作系统内核必须提供进程间的通信机制(IPC)。进程间通信有如下一些目的:数据传输:一个进程需要将它的数据发送给另一个进程,发送的数据量在一个字节到几兆字节之间。共享数据:多个进程想要操作共享数据,一个进程对共享数据的修改,别的进程应

2010-06-10 10:47:00 2710 1

原创 linux c语言学习笔记之文件IO

对于内核而言,所有打开文件都由文件描述符引用。文件描述符是一个非负整数。当打开一个现存文件或创建一个新文件时,内核向进程返回一个文件描述符。当读、写一个文件时,用o p e n或c r e a t返回的文件描述符标识该文件,将其作为参数传送给r e a d或w r i t e。在P O S I X . 1应用程序中,整数0、1、2应被代换成符号常数 STDIN_FILENO、STDOUT_FILENO和STDERR_FILENO。O。这些常数都定义在头文件 中。文件描述符的范围是0 ~ OPEN_M

2010-06-09 21:37:00 3101

转载 Ubuntu Linux下用ies4linux上淘宝/使用支付宝

<br />在淘宝上购物,肯定要使用支付宝,但是支付宝网站上使用了基于IE的控件,因此无法在Linux下的Firefox中使用。通过使用ies4linux,我们就可以在Linux下使用支付宝了。<br />ies4linux的安装过程如下:<br />1、首先要安装wine和cabextract,由于Ubuntu的源中已经设置好,所以只要执行以下命令就行:<br /> sudo apt-get install wine cabextract<br /> 2、下载ies4linux。<br />

2010-06-09 21:18:00 2177

转载 错误处理和异常处理,你用哪一个

.简介    异常是由语言提供的运行时刻错误处理的一种方式。提到错误处理,即使不提到异常,你大概也已经有了丰富的经验,但是为了可以清楚的看到异常的好处,我们还是不妨来回顾一下常用的以及不常用的错误处理方式。1.1 常用的错误处理方式返回值。我们常用函数的返回值来标志成功或者失败,甚至是失败的原因。但是这种做法最大的问题是如果调用者不主动检查返回值也是可以被编译器接受的,你也奈何不了他:) 这在C++中还导致另外一个问题,就是重载函数不能只有不同的返回值,而有相同的参数表,因为如果

2010-06-09 09:50:00 1540

原创 linux c语言学习笔记之静态库和动态库

1.什么是库  在windows平台和linux平台下都大量存在着库。  本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。  由于windows和linux的本质不同,因此二者库的二进制是不兼容的。  本文仅限于介绍linux下的库。2.库的种类  linux下的库有两种:静态库和共享库(动态库)。  二者的不同点在于代码被载入的时刻不同。  静态库的代码在编译过程中已经被载入可执行程序,因此体积较大。  静态库的后缀名为.a文件.当程序与一个静态库

2010-06-08 13:57:00 2831

转载 ubuntu 安装smb共享文件夹

一、安装smb执行命令行:    #sudo apt-get install samba    #sudo apt-get install smbfs二、添加准备共享的文件夹。有如下三种配置共享文件夹的方法,任选一种方法即可:1、在ubuntu中使用图形界面的共享功能    按Alt+F2或打开终端,把执行运行程序界面叫出來。输入如下命令:    shares-admin注:此工具整合了SABMA与NFS,可以管理共享的目录资源。2、以图形界面管理SAMBA服务(sy

2010-06-06 15:59:00 1480

原创 linux c语言学习笔记之守护进程

2.1 概述守护进程( daemon)是生存期长的一种进程。它们常常在系统引导装入时起动,在系统关闭时终止。因为它们没有控制终端,所以说它们是在后台运行的。linux系统有很多守护进程,它们执行日常事物活动。所有守护进程都以超级用户(用户I D为0)的优先权运行。没有一个守护进程具有控制终端—终端名称设置为问号(?)、终端前台进程组I D设置为-1。缺少控制终端可能是精灵进程调用了s e t s i d的结果。除u p d a t e以外的所有精灵进程都是进程组的首进程,对话期的首进程,而且

2010-06-06 15:31:00 2709

转载 Linux内核中的进程组及会话

将阐述Linux内核中的如下几个概念 1) 进程组 2) 会话 3) 控制终端 前面的概念来源于前人,我只是站在前人的肩膀上结合内核中的实现加深概念理解。 1.概念: a)进程组 Shell 上的一条命令行形成一个进程组 每个进程属于一个进程组 每个进程组有一个领头进程 进程组的生命周期到组中最后一个进程终止, 或加入其他进程组为止 getpgrp: 获得进程组 id, 即领头进程的 pid setpgid: 加入进程组和建立新的进程组 前

2010-06-06 12:57:00 1224

原创 ubuntu 10.04 grub2 启动菜单问题

需要修改三个地方 这三处的timeout改为同一值1.sudo gedit /boot/grub.cfg下面有一段 默认 timeout为0改为大于0### BEGIN /etc/grub.d/30_os-prober ###if [ ${timeout} != -1 ]; then  if keystatus; then    if keystatus --shift; then      set timeout=-1    else      set timeout=0   

2010-06-05 21:51:00 4311

转载 关于内存中栈和堆的区别

1、内存分配方面:    堆:一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式是类似于链表。可能用到的关键字如下:new、malloc、delete、free等等。    栈:由编译器(Compiler)自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、申请方式方面:    堆:需要程序员自己申请,并指明大小。在c中malloc函数如p1 = (char *)malloc(10);在C++中用new运算符,

2010-06-05 14:10:00 1392

转载 什么是重定位?

6.1 存储器的基本概念       主存储器管理仍然是今天操作系统十分重要的内容;能否合理而有效的使用主存,在很大成度上反映了操作系统的性能,并直接影响到整个计算机系统作用的发挥。6.1.1 存储器的层次      目前在许多计算机系统中,采用三级存储器结构,即高速缓冲存储器、主存储器和外部存储器。三级存储器的比较     从高速缓存到外存,其容量愈来愈大,一般每级之间相差几个数量级。而访问数据的速度则愈来愈慢,价格也愈来愈便宜。 6.1.2

2010-06-05 14:10:00 2321

转载 uImage,zimage,bzimage,vmlinux,vmlinuz

在网络中,不少服务器采用的是Linux系统。为了进一步提高服务器的性能,可能需要根据特定的硬件及需求重新编译Linux内核。编译Linux内核,需要根据规定的步骤进行,编译内核过程中涉及到几个重要的文件。比如对于RedHatLinux,在/boot目录下有一些与Linux内核有关的文件,进入/boot执行。  编译过RedHat Linux内核的人对其中的System.map、vmlinuz、initrd-2.4.7-10.img印象可能比较深刻,因为编译内核过程中涉及到这些文件的建立等

2010-06-05 14:07:00 2043

转载 Ubuntu 10.04 速配指南

适合我个人使用的速配指南,只是为了避免重装时到处找资料。很多地方参考了wiki,路过的同学请无视之。1. 哈工大ubuntu 10.04 源deb http://run.hit.edu.cn/ubuntu/ lucid main restricted universe multiversedeb-src http://run.hit.edu.cn/ubuntu/ lucid main restricted universe multiversedeb http://run.hit.edu.cn/

2010-06-05 14:03:00 1569

转载 Ubuntu内核升级配置接编译更新

在向大家详细介绍Ubuntu内核之前,首先让大家了解下先配置Ubuntu,然后全面介绍Ubuntu内核,希望对大家有用。Ubuntu内核包含了非常好的翻译和容易使用的架构,这些由自由软件社团将不断的提供, 将尽可能的使大多数人方便使用 Ubuntu 。弄了很久,不停的google,终于把我的Ubuntu内核更新2.6.31.6版本了,下面我来分享一下我的经验。顺便赞一下google的强大~~  主机环境:Ubuntu desktop 9.04 如果是9.10的话方法是类似的。  最新Ub

2010-06-05 14:01:00 1445

原创 poj 1118 Lining Up

 哈尔滨理工大学软件工程专业08-7李万鹏原创作品,转载请标明出处http://blog.csdn.net/woshixingaaa/archive/2010/05/14/5593259.aspx http://acm.pku.edu.cn/JudgeOnline/problem?id=1118 类型: 暴力 题意: 给出n个点的整数坐标(n 思

2010-05-14 20:36:00 2297

原创 poj 1111 Image Perimeters

哈尔滨理工大学软件工程专业08-7李万鹏原创作品,转载请标明出处http://blog.csdn.net/woshixingaaa/archive/2010/05/14/5593004.aspx http://acm.pku.edu.cn/JudgeOnline/problem?id=1111 类型: 深度优先 题意: 先输入一个矩阵,再输入一个X的位置,然后输

2010-05-14 19:23:00 1490

原创 poj 1065 Wooden Sticks

哈尔滨理工大学软件工程专业08-7李万鹏原创作品,转载请标明出处http://blog.csdn.net/woshixingaaa/archive/2010/05/14/5592992.aspx http://acm.pku.edu.cn/JudgeOnline/problem?id=1065 类型: 贪心 题意: 有一个机器,它处理木块时,如果满足正在被处

2010-05-14 19:18:00 1373

原创 poj 1040 Transportation

 哈尔滨理工大学软件工程专业08-7李万鹏原创作品,转载请标明出处http://blog.csdn.net/woshixingaaa/archive/2010/05/14/5592909.aspx http://acm.pku.edu.cn/JudgeOnline/problem?id=1040 类型:DFS 题意: 从城市A到城市B要经过一些站,每

2010-05-14 18:32:00 2025

原创 poj 1018 Communication System

哈尔滨理工大学软件工程专业08-7李万鹏原创作品,转载请标明出处http://blog.csdn.net/woshixingaaa/archive/2010/05/14/5590207.aspx题意:有一些设备,不同制造商的带宽和价格是不一样的,带宽是每种设备所选制造商的最小带宽,价格是各个设备所选制造商的价格之和思路:枚举每一种带宽作为最小

2010-05-14 11:21:00 2011

原创 poj 1017 Packets

哈尔滨理工大学软件工程专业08-7李万鹏原创作品,转载请标明出处http://blog.csdn.net/woshixingaaa/archive/2010/05/14/5589240.aspx 题意:给你一些包,他们的大小是 1*1,2*2,3*3,4*4,5*5,6*6, 高都是h,让你放到6*6高度为h的箱內,希望用的箱子最少思路:

2010-05-14 09:14:00 2286

原创 poj 1011 Sticks

哈尔滨理工大学软件工程专业08-7李万鹏原创作品,转载请标明出处http://blog.csdn.net/woshixingaaa/archive/2010/05/14/5589100.aspx 题目大意:有一些长度相同的木棒,被切成一些小快,每块不超过50个单位长度,现在想拼成原来的样子,并且希望拼成的样子最短。思路: 深搜+剪枝 减枝技巧:1.最长的木棍的长度一

2010-05-14 08:27:00 5567 3

原创 poj 1007

题目大意: DNA 由 A,C,G,T四个字母组成,给你一些排列,让从最有序到最无序排列,也就是逆序数最小到逆序数最大排列 思路:找出每个排列的逆序数,然后排序。 什么是逆序数呢,在一个排列中,如果前面的数比后面的大就称为逆序.一个排列中的逆序总数称为逆序数,逆序数为偶数的排列为偶排列,逆序数为奇数的排列为奇排列,给出32145求出它的逆序数,从它的第二个数开始,和它前面的数比较大

2010-05-14 07:44:00 1597

常用的系统库函数 经典之作

总结了大部分常用系统库函数,你在也不用抱着厚厚的手册了

2010-02-07

makefile 的编写

详细讲述makefile 的编写,内部资料,国外大师级人物的编程经验

2010-01-26

maemo 安装手册

最新东软的maemo安装手册,嵌入式必备的诺基亚手机开发平台

2009-10-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除