- 博客(32)
- 资源 (1)
- 收藏
- 关注
原创 双向循环链表
#include#includetypedef struct _NODE_{ int data; struct _NODE_ * pl; struct _NODE_ * pr; } Node,* pNode;//create node.pNode CreateNode(int data){
2013-10-07 23:11:50
587
原创 The Perceptron Algorithm (primal form)
function [ w,b,k ] = feilei2d(X,Y,a) l=0; num=0; l=length(Y); num=numel(X)/l; w=zeros(1,num); b=0; [ w,b,k ] = feilei(X,Y,w,b,a); while k>0 [ w,b,k ] = feilei(X,Y,w
2013-09-29 19:05:41
984
转载 linux 守护进程
linux编程-守护进程编写 守护进程(Daemon)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待 处理某些发生的事件。守护进程是一种很有用的进程。 Linux的大多数服务器就是用守护进程实现的。比如,Internet服务器inetd,Web服务器httpd等。 同时,守护进程完成许多系统任务。比如,作业规划进程crond,打印进程
2013-05-03 16:02:59
564
转载 linux 解压缩
01-.tar格式解包:[*******]$ tar xvf FileName.tar打包:[*******]$ tar cvf FileName.tar DirName(注:tar是打包,不是压缩!)02-.gz格式解压1:[*******]$ gunzip FileName.gz解压2:[*******]$ gzip -d FileName.gz压 缩:[*******]$ gz
2013-05-03 09:21:57
508
原创 关于不装bootloader的linux怎么引导
(1)使用grub引导系统进入到:grub>root (hd0,9)kernel (hd0,9)/boot/vmlinuz ro root=/dev/sda1initrd (hd0,9)/boot/initrd.imgboot(2)grub2引导set root=(hd0,9)linux /boot/vmlinuz r
2013-04-24 18:10:00
694
原创 n is a power of 2 ?
/* Returns true if n is a power of 2 */static inline intis_power_of_2(uint32_t n){return ((n-1) & n) == 0;}
2013-04-24 10:25:12
954
转载 UIO 用户空间设备驱动
UIO求助编辑百科名片UIO(Userspace I/O)是运行在用户空间的I/O技术。Linux系统中一般的驱动设备都是运行在内核空间,而在用户空间用应用程序调用即可,而UIO则是将驱动的很少一部分运行在内核空间,而在用户空间实现驱动的绝大多数功能!使用UIO可以避免设备的驱动程序需要随着内核的更新而更新的问题!目录定义
2013-04-24 09:36:46
1128
转载 fork()函数的理解
作者:王姗姗,华清远见嵌入式学院讲师。 对于刚刚接触Unix/Linux操作系统,在Linux下编写多进程的人来说,fork是最难理解的概念之一:它执行一次却返回两个值。 首先我们来看下fork函数的原型: #i nclude #i nclude pid_t fork(void); 返回值: 负数:如果出错,则fork()返
2013-04-19 18:06:56
534
转载 信号量的学习
信号量一.什么是信号量信号量的使用主要是用来保护共享资源,使得资源在一个时刻只有一个进程(线程)所拥有。信号量的值为正的时候,说明它空闲。所测试的线程可以锁定而使用它。若为 0,说明它被占用,测试的线程要进入睡眠队列中,等待被唤醒。二.信号量的分类在学习信号量之前,我们必须先知道——Linux 提供两种信号量:(1) 内核信号量,由内核控制路径使用(2) 用 户 态 进 程 使
2013-04-19 16:28:34
584
原创 netlink测试程序的编写
有幸看到文章的童鞋,送上一句话。linux内核的编程遥遥无期,也不知到何时才是头,至少我们知道未来是光明的,而且也为解决的每一个问题感到兴奋无比。下面是我查找大牛的相关netlink详解和代码,重新写了一遍,也想大家能自己写一遍,熟悉一下流程。the kernel moduule:/** how to program use netl
2013-04-19 16:19:47
1432
转载 完成变量(一种简单的信号量)
struct completion:有的时候我们需要在一个线程里面发起另外一个线程里的某些动作,然后等待另外一个线程的动作完成.这个我们可以用completion.这是信号量的一种简单实现.完成变量是信号量的一种简单的实现。当一个任务运行需要请求某个资源或条件的情况下, wait_for_completion() 函数将此任务放入等待队列,等待。另外一个任务使用完这个资源通过 co
2013-04-19 11:57:13
834
转载 netlink流程的讲解
这是一篇学习笔记,主要是对《Linux 系统内核空间与用户空间通信的实现与分析》中的源码imp2的分析。其中的源码,可以到以下URL下载: http://www-128.ibm.com/developerworks/cn/linux/l-netlink/imp2.tar.gz [size=3]参考文档[/size] 《Linux 系统内核空间与用户空间通信的实现与分析》 陈鑫
2013-04-18 17:39:06
1092
转载 netlink实例
#include linux/init.h>#include linux/module.h>#include linux/timer.h>#include linux/time.h>#include linux/types.h>#include net/sock.h>#include net/netlink.h> #define NETLINK_TEST 25#
2013-04-18 16:35:49
756
原创 调用内核hlist编写的测试代码
最近在做linux内核编程,最深的一点感触是:算法的巧妙,犹如看一场高明杂技真正的程序员那是键盘上灵动的舞者。写面写的是一个调用内核的hlist测试代码。/***how to program use the hlist in kernel**/#include #include /* kind of macros */#include#include#include#i
2013-04-18 15:09:01
723
转载 内核随机数产生器
Linux内核实现了一个随机数产生器,从理论上说这个随机数产生器产生的是真随机数。与标准C库中的rand(),srand()产生的伪随机数不同,尽管伪随机数带有一定的随机特征,但这些数字序列并非统计意义上的随机数。也就是说它们是可重现的--只要每次使用相同的seed值,就能得到相同的伪随机数列。通常通过使用time()的返回值来改变seed,以此得到不同的伪随机数序列,但time()返回值的结果并
2013-04-17 17:36:22
1086
转载 结构体4字节对齐规则的详解
一 四字节对齐的规则C++中结构体变量的存储为什么有个4字节对齐的规则,这里是假设32位机器上,CPU在读取内存数据的时候4字节对齐会取得更快的速度;这是因为:1字节8位,4字节正好32位,而32位机器的寄存器,地址什么的都是32位的,正好一次处理就完成。二 相关内容解释例如,下面的结构各成员空间分配情况:[cpp] view plain
2013-04-17 17:08:57
2740
转载 linux内核 hlist 讲解
这两个数据结构在内核中随处可见,不得不拿出来单独讲讲. 这两个数据结构都是为了方便内核开发者在使用到类似数据结构的时候不必自行开发(虽然不难),因此它们需要做到足够的"通用性",也就是说,今天可以用它们做一个存放进程的链表,明天同样可以做一个封装定时器的链表.两个数据结构的对外API封装了针对它们的基本操作,也是最常见的操作,比如遍历,查找等等. 一般的,如果我们需要写一个链表
2013-04-17 15:55:31
907
原创 不会linuxshell命令真可怕
为了在内核源代码中定位一个字符串,不会shell的我果断悲剧。对比一下,不会shell的同志加油啦! 1)我自己写一个定位设立了:#!/bin/sh#列出源码下所有的头文件和有的源文件KEY_WORD=$1#echo ${key_word}#获得当前目录PWD=$(pwd)#存储的文件FILE_LOAD="${
2013-04-16 18:02:31
522
转载 linux内核用户通信netfilter
netfilter提供了nf_register_sockopt()和nf_unregister_sockopt()来动态登记或取消sockopt命令字;打开一个网络socket后可以使用set/getsockopt(2)可实现用户空间与内核的通信,本质和ioctl差不多,区别在于set/getsockopt不用新建设备,直接利用系统已有的socket类型就可以进行,可用setsockopt函数向内
2013-04-16 09:59:57
728
原创 linux内核定时器编程测试代码
/***HOW TO PROGRAM with timer**///the tips to use the timer //1)declare the timer_list structure//2)call the init_timer();//3)set the field of the struct timer_list;//4) add_time
2013-04-15 16:16:28
708
转载 linux内核定时器编程
1.linux内核定时器基本结构和函数1)struct timer_list 一个struct timer_list对应了一个定时器。#include 以下列出常用的接口:struct timer_list { /*....*/ unsigned long expires;//定时器服务函数开始执行时间 void (*f
2013-04-15 15:48:40
594
转载 Linux内核和用户空间通信的方法
Linux内核和用户空间通信的方法(二)— 使用netlink 作者:Kendo2006-9-3这是一篇学习笔记,主要是对《Linux 系统内核空间与用户空间通信的实现与分析》中的源码imp2的分析。其中的源码,可以到以下URL下载:http://www-128.ibm.com/developerworks/c
2013-04-13 08:42:32
2923
转载 struct kmem_cache kem_cache_create kem_cache_alloc kem_cache_free
来自:http://linux.chinaunix.net/bbs/viewthread.php?tid=913690 为了更好的得到问题解决,也对问题的提出进点义务,在抛出我的问题前先简单介绍一下Linux下slab高速缓存的使用方法。在内核编程中,可能经常会有一些数据结构需要反复使用和释放,按照通常的思路,可能是使用kmalloc和kfree来实现。但是这种方式效率
2013-04-13 08:29:47
704
原创 内核模块编程对用户空间文件的访问
/** HOW TO READ\WRITE THE FILE IN KERNEL MODULE*/#include #include #include #include #include #include #include #include #include
2013-04-10 09:30:01
710
转载 http通信的详细过程
B/S 通信简述整个计算机网络的实现体现为协议的实现, TCP/IP 协议是 Internet 的核心协议, HTTP 协议是比 TCP 更高层次的应用层协议。HTTP ( HyperText Transfer Protocol ,超文本传输协议)是互联网上应用最为广泛的一种网络协议。所有的 WWW 文件都必须遵守这个标准。设计 HTTP 的初衷是为了提供一种发布和接收 HTML 页面的方
2013-03-29 11:31:28
1352
转载 大端小端判断
试题1:请写一个C函数,若处理器是Big_endian的,则返回0;若是Little_endian的,则返回1解答:int checkCPU() { { union w { int a; char b; } c; c.a = 1; return (c.b == 1); } } 剖析
2013-03-29 09:50:04
491
转载 AC算法的C语言实现
转自:http://blog.csdn.net/jiayanhui2877/article/details/4480244http://blog.chinaunix.net/u/12592/showart_284591.html可下载源代码这几天一直都在看多模式匹配的算法,昨天为了赶着能够在信息检索的课上show一下,就赶工写了一个AC算法的程序。实际上程序大部
2013-03-13 10:06:46
2572
转载 AC
转自:http://www.cppblog.com/mythit/archive/2009/04/21/80633.html首先简要介绍一下AC自动机:Aho-Corasick automation,该算法在1975年产生于贝尔实验室,是著名的多模匹配算法之一。一个常见的例子就是给出n个单词,再给出一段包含m个字符的文章,让你找出有多少个单词在文章里出现过。要搞懂AC自动机,先得有模式树(字典
2013-03-12 17:43:21
801
转载 BM
转自:http://blog.csdn.net/joylnwang/article/details/67857431977年,Robert S.Boyer和J Strother Moore提出了另一种在O(n)时间复杂度内,完成字符串匹配的算法,其在绝大多数场合的性能表现,比KMP算法还要出色,下面我们就来详细了解一下这一出色的单模式匹配算法,在此之前推荐读者读一下我的另一篇文
2013-03-12 17:40:36
607
转载 KMP算法
转自:http://blog.csdn.net/joylnwang/article/details/6778316KMP算法,是由Knuth,Morris,Pratt共同提出的模式匹配算法,其对于任何模式和目标序列,都可以在线性时间内完成匹配查找,而不会发生退化,是一个非常优秀的模式匹配算法。但是相较于其他模式匹配算法,该算法晦涩难懂,第一次接触该算法的读者往往会看得一头雾水,
2013-03-12 17:37:57
474
转载 AC算法
http://blog.csdn.net/joylnwang/article/details/6793192AC算法是Alfred V.Aho(《编译原理》(龙书)的作者),和Margaret J.Corasick于1974年提出(与KMP算法同年)的一个经典的多模式匹配算法,可以保证对于给定的长度为n的文本,和模式集合P{p1,p2,...pm},在O(n)时间复杂度内,找到
2013-03-12 17:35:53
495
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人