自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

飞在天空的鱼

业余程序员,主业搬砖

  • 博客(88)
  • 资源 (5)
  • 收藏
  • 关注

原创 NFS文件系统,导致板子ftp用不了情况

开发板NFS系统,从本机Ubuntu 14.04上导入NFS,但是vsftpd服务怎么用不了,返回500,处理结果是,将nfs这个文件的所有权限改为root就可以了执行sudo chown root:root +你NFS的路径

2016-03-18 13:50:14 768

原创 关于虚拟地址,线性地址,逻辑地址还有物理地址的区分

本文主要是参考Linux0.11内核的32位地址区分,不过于现阶段的64位地址区分差别不太大,理解Linux0.11,有助于理解现阶段的64位体系下地址的概念。(注意x86体系是小端存放数据) 1,虚拟地址:是由程序产生的**段选择符**和**段内偏移地址**两个部分组成。因为这两部分都不能直接访问物理内存,要经过分段处理后才可以可能对应到物理地址上(如果打开分页机制,还需要经过分页

2016-03-15 16:08:55 1123

原创 安装YouCompleteme解决结构体不能补全

在安装这个插件再Ubuntu下很方便,直接用vundle安装就可以了,Ubuntu14.04以上自带的vim,clang,python版本都是满足插件需求,用vundle下载好了以后,进入到你所下载的YouCompleteme目录里,直接执行./install.sh –clang-completer –system-libclang然后再vimrc文件中链接上即可

2015-07-24 10:11:01 2287

原创 Ubuntu下播放yuv视频

mplayer -demuxer rawvideo -rawvideo w=176:h=144 test.yuvmplayer -fps 30 test.264ffmpeg采集摄像头视频数据 ffmpeg -f video4linux2 -s 320*240 -r 10 -i /dev/video0 test.asf

2015-07-14 13:59:40 5813

转载 Linux驱动中probe函数的执行

所以的驱动教程上都说:只有设备和驱动的名字匹配,BUS就会调用驱动的probe函数,但是有时我们要看看probe函数里面到底做了什么,还有传递给probe函数的参数我们就不知道在哪定义(反正不是我们在驱动里定义的),如果不知道传递进的参数,去看probe函数总是感觉不求甚解的样子(你对系统不求甚解,系统也会对你的要求不求甚解的),心里对自己写出的程序没底,保不齐那天来个bug,就悲剧了。   

2015-05-28 09:10:23 5191

转载 Linux驱动开发-PCI设备浅析

PCI 介绍随着计算机应用的不断更新和发展(比如百兆网卡、视屏流等),计算机内数据传输的带宽要求越来越高,传统内部总线带宽已经远远不能满足这些应用的需要,因此人们推出了 PCI 总线标准PCI 是 Peripheral Component Interconnect 的缩写,它因为高性能、低成本以及良好的扩展性而在计算机系统中被广泛使用。上至服务器,下至嵌入式设备都能找到它的身影。图

2015-05-26 11:26:13 615

原创 我的vim的vimrc配置文件,保存用

"Set mapleader  "显示行号 set nu "打开语法高亮 syntax enablesyntax on filetype plugin indent on set softtabstop=4 set shiftwidth=4 "设置tab键长为4set tabstop=4"关闭自动备份 set noback

2015-04-24 16:01:09 3975

原创 Linux 运行32位程序步骤

由于lib-ia32这个Ubuntu不支持了,所以我查了查在64位上编译和运行32位的步骤:1,sudo apt-get install libc6-dev-i386,下载40M+的32位的库,下载这个就可以运行32位程序了,2,编译的话,使用gcc -m32 连接ld -m elf_i386进行编译和链接.o文件亲测,在Ubuntu14.10上可用!

2015-04-03 17:35:29 1479

转载 ATA接口寄存器详解

3、ATA接口的三种数据传输方式 (1)PIO(Programmable Input-Output)传输,可以分为PIO寄存器传输和PIO数据传输。PIO寄存器传输主要用于对ATA设备中的寄存器进行读写。读写的数据位数为8位DD[7:0]。ATA主机控制器根据所要读写的寄存器地址设置CS0_、CS1_、DA[2:0]地址信号,同时将DIOW_或DIOR_设为有效,ATA主机控制器或

2014-11-24 15:21:39 7005

转载 硬盘分区表的——详解硬盘MBR

硬盘是现在计算机上最常用的存储器之一。我们都知道,计算机之所以神奇,是因为它具有高速分析处理数据的能力。而这些数据都以文件的形式存储在硬盘 里。不过,计算机可不像人那么聪明。在读取相应的文件时,你必须要给出相应的规则。这就是分区概念。    分区从实质上说就是对硬盘的一种格式化。当我们创建分区时,就已经设置好了硬盘的各项物理参数,指定了硬盘主引导记录(即Master Boot Record

2014-11-23 11:31:21 1074

转载 扩展分区和分区表

分区表和扩展分区表正如在主引导记录分析中看到的,分区表是一个64字节的数据块,用来识别和定位硬盘上分区的类型和位置,分区表独立于操作系统。每个分区表项是16字节,最多有四项,每项都在MBR的预定义的位置:  1. 分区一 0x1BE (446)2. 分区二 0x1CE (462)3. 分区三 0x1DE (478)4. 分区四 0x1EE (494)  当分区数小于

2014-11-23 09:31:28 1611

转载 bochs

TA[0-3]-MASTER,ATA[0-3]-SLAVE指定硬盘或光盘的参数,并指明它是主盘还是从盘。标准的参数是ata0-master: type=disk, mode=flat, path="30M.sample", cylinders=615, heads=6, spt=17,type参数只能是两者,disk(硬盘),cdrom(光盘),mode这个参数镜像类型,它仅仅是针对磁盘才有效

2014-11-20 13:45:28 676

原创 近期小感——一个残疾人写的操作系统

因为自己也在写一个操作系统的内核,虽然没完成,也遇到很多困难,参考了诸如Linux 0.01 ,minix3.0, Orange's等,总算有点起色吧,属于走一步看一步那种,从实模式怎么跳到保护模式,从怎么打开关闭中断,再到怎么读取内存大小,都是一步一步来,很多内容都是从网上搜索,看资料等,而且我的引导扇区也是用的nasm汇编,实在反感ATT格式汇编,毕竟大学学得汇编是在windows下的的int

2014-11-15 08:41:40 1641

原创 很久没来了,

确实很久没来了,现在仅仅是把程序当做是我的爱好,

2014-11-08 19:26:36 668

转载 Linux 串口编程基础

串行口是计算机一种常用的接口,具有连接线少,通讯简单,得到广泛的使用。常用的串口是 RS-232-C 接口(又称 EIA RS-232-C)它是在 1970 年由美国电子工业协会(EIA)联合贝尔系统、 调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准。它的全名是"数据终端设备(DTE)和数据通讯设备(DCE)之间串行二进制数据交换接口技术标准"该标准规定采用一个 25 个脚的 DB

2012-09-23 21:35:42 692

原创 BMP格式图像的反色和变为灰度图代码

#include "stdafx.h"#include #include #include #include int InvertImage(char *srcImage, char *destIMage, int iFlag){ BITMAPFILEHEADER bmfHeader; BITMAPINFOHEADER bmiHeader; int i; FILE *pF

2012-07-09 11:05:04 3786 1

原创 图像处理:双线性差值的另一种处理方法

本文仅仅限于双线性差值:先来说说大家在网上都知道的一种,这种方法google一搜,就出来很多,我来简要介绍一下:越是简单的模型越适合用来举例子,我们就举个简单 的图像:3X3 的256级灰度图,也就是高为3个象素,宽也是3个象素的图像,每个象素的取值可以是 0-255,代表该像素的亮度,255代表最亮,也就是白色,0代表最暗,即黑色 。假如图像的象素矩阵如下图所示(这个原始图把它叫做源图,

2012-07-04 17:10:30 1474

原创 bmp文件格式详解

BMP文件结构---- 1. BMP文件组成---- BMP文件由文件头、位图信息头、颜色信息和图形数据四部分组成。---- 2. BMP文件头---- BMP文件头数据结构含有BMP文件的类型、文件大小和位图起始位置等信息。---- 其结构定义如下:typedef struct tagBITMAPFILEHEADER{WORDbfType; /

2012-07-04 09:35:52 925

转载 jpg图像的编解码

JPEG图像格式详解JPEG压缩简介 1.色彩模型JPEG的图片使用的是 YCrCb颜色模型,而不是计算机上最常用的 RGB.关于色彩模型,这里不多阐述.只是说明,YCrCb模型更适合图形压缩.因为人眼对图片上的亮度 Y的变化远比色度 C的变化敏感.我们完全可以每个点保存一个 8bit的亮度值,每 2x2个点保存一个 Cr

2012-06-27 14:32:56 6792

转载 JPG文件编解码详解

JPEG文件编/解码详解cat_ng 猫猫JPEG(Joint Photographic Experts Group)是联合图像专家小组的英文缩写。它由国际电话与电报咨询委员会CCITT(The International Telegraph and Telephone Consultative Committee)与国际标准化组织ISO于1986年联合成立的一个小组,负责制定静态数字图像

2012-06-26 15:47:35 65164 6

原创 直方图的均衡化

灰度级范围为{0,L-1}的数字图像的直方图是离散函数h(rk)=nk,其中rk是第k级灰度值,nk表示的是在图像中灰度为rk的像素个数。考虑连续灰度值,并用变量r表示待处理图像的灰度。我们假设r的取值为{0,L-1},其中r=0表示黑色,r=L-1表示白色。对于输入图像中每个具有r值的像素值产生一个输出灰度值s。我们假设:(a)T(r)在区间0(b)当0对于离散值,我们处理其

2012-06-21 14:02:51 962

原创 程序人生

其实你要明白,什么是程序员?能为一两千块的工资天天在公司加班加点,回家还继续干到两三点甚至是通宵的程序员,他们根本就不在乎挣多少钱。程序员,他们想的是什么?他们想的永远是技术,他们崇尚的也永远都是技术。哪怕我现在身上只有两毛钱,只要有志同道合的人跟我聊技术,我一样敢跟他从c聊到Linux,从API钩子聊到inline hook,从Ring3聊到Ring0。聊完了,那晚上吃什么?吃什么并不重要,重要

2012-03-12 15:49:23 1017 2

原创 我关于一个小程序所想到的

前几日,我再看书的时候,仔细的回顾了关于信号的这一章,当时,我想到了如果是在调用系统调用,这个时候给进程发发送一个信号,会产生什么效果,很多人都说了,就算是系统调用,他会很快的执行完成的,也是,Linux信号有一种机制就是延时投递,比如这时,你的进程正在malloc分配内存,或者执行其他的原子操作,但是会很快的执行完成,这就会触发这种机制!但是,如果我们是阻塞方式的socket套接字调用rea

2011-12-20 22:32:27 1215

原创 计算机程序设计艺术读书感悟

对于每个学习计算机的人,我感觉都应该要读一下这本书,其实书并不是很难,没有想想中的那么难!我是第一章已经快要读完了,其中,我只能说是我完成的习题只有一半吧,由于csdn的编辑器不是那么好,想一些高等数学的符号,我完全不知道该如何才能打进去,所以导致了我只是把握的笔记记载书上了!本书的数学部分的确很大,但是,认真的阅读虽然不至于让你成为一个数学家,但是,最起码你的数学素养会很好!其实,我也不

2011-12-04 16:42:18 7183 16

原创 纪念丹尼斯——C语言之父

前几日,我知道了Dennis Ritchie的去世,关于Dennis Ritchie的事迹,对于每个程序员来说,都应该不陌生,对于我这个刚毕业的人来说,我的第一份工作的饭碗就是C语言给的,关于乔布斯去世,我们很快就知道了,但是Dennis Ritchie的去世,我们还要等了四天才

2011-10-17 00:10:59 2691 4

转载 对于编程语言的分析

JAVA好比是别墅,精巧、别致。大量的库构成了一片一片的别墅群,还可以在城市之间搬家,中小型项目首选。坐落在“太阳城”,风水极好,只不过现在太阳已落山,未知还有明日吗(太阳还能升起吗)?C#与JAVA及其类似,只不过开发商是更牛的微软,地点是“世界之窗”小区,而且不提供搬

2011-08-28 22:58:33 961

原创 解决NP问题——旅行商问题的一点思路之三

关于在第二篇的遗传算法中,我是针对杂交出来的多个染色体进行选择的,其实我经常想,伟大的大自然,选择了优秀的基因,当然,他会让每个基因都会经过选择,不合适的毫不留情的剔除,说点本次文章以外的东西,我们人类很伟大,我们都这么觉得,我们发明了很多东西,有着先进的医学,用来治疗各种病人,

2011-08-28 03:32:43 5831 7

原创 解决NP问题——旅行商问题的一点思路之二

这是接着上一篇说写的,在这里,我们先证明出常规算法和贪心算法和遗传算法的效率。常规算法:我们排列出来所有的路径,然后我们在选择出来所需的路径,这个我们假设有N个地点,再加上这个图是一个完全图,就代表每个节点都是含有N-1条边,我们摆列所有的路径,这个是N!,这个在《计算机

2011-08-25 00:07:30 2256 2

原创 解决NP问题——旅行商问题的一点思路之一

对于什么是P和NP问题,简单地说,P就是在多项式时间内可以解决的,比如你对这个程序的输入量为N,那么那可以在N^k(N的k次方)解决,并且k是一个固定的常数,而剩下的问题你暂且可以归为NP问题,当然这不是讨论NP等于P还是不等于P的问题,我只是想把NP问题的旅行商问题有一点点概率

2011-08-22 13:16:58 5328 6

原创 一句话的心情

今天听到了一句话,让我感慨很深,其中滋味,自己品味吧选择了一门语言,就是选择了一个江湖!

2011-07-20 22:52:36 798

原创 谁都经历过的迷茫

由于要回学校拿我的毕业证,我从杭州回到了郑州,公司通知我11号回公司开始试用期,我吃完了散伙饭就回家了一趟,在家里闲来无事,就准备翻翻书看看,我发现了一个问题:书看得多了,也会迷茫。我是在想以后我的发展前景,我有我的课余的时间去学习其他的东西,其实我喜欢算法,虽然很多人都说没有用

2011-07-07 02:09:47 2228 37

转载 几个经典的故事

1.甲去买烟,烟29元,但他没火柴,跟店员说:“顺便送一盒火柴吧。”店员没给。  乙去买烟,烟29元,他也没火柴,跟店员说:“便宜一毛吧。”最后,他用这一毛买一盒火柴。  这是最简单的心理边际效应。第一种:店主认为自己在一个商品上赚钱了,另外一个没赚钱。赚钱感觉指数为1。第二种:店主认为两个商品都赚钱了,赚钱指数为2。当然心理倾向第二种了。同样,这种心理还表现在买一送一的花招上,顾

2011-06-29 21:12:00 954 2

原创 你的for循环真的高效吗——优化for循环第二章

我始终相信,人类最伟大的发明就是汽车和计算机,对于一部汽车,我们如果不经过专业的了解汽车内部结构的工程师调试,就算你是保时捷,也达不到理想的速度。对于计算机来说,我始终觉得,我们很多人只是明白程序的写法,例如一个程序:#include char *hello = "hello";char *__ = ",";int main(){ char *world = "world"; printf("%s%s%s/n",hello,__,world); return 0;} 我们都知

2011-06-01 18:37:00 22324 155

原创 你的for循环真的高效吗——优化for循环第一章

在我们所写的程序中,几乎没有不用到for循环的,但是,对于for循环,很多人确实效率很低的,包括我看得很多代码,for循环的执行效率非常低,下面我就举个例子来说明:#include char *string="zhangbo";int main(int argc,char **argv){ int i; for(i=0;i这个上边的程序程序我想大家都明白,那我问问读者,你知道这个程序的效率是多少吗?你肯定不屑的说,不就是n吗?其实,你错了,你说的n只是在算法层面上的优化,其实对于底

2011-05-29 18:32:00 16181 21

原创 百万年薪的算法题解决方法

<br />这个问题的地址是:http://mitibar.com/superdrink.php<br />我只是解决了这个问题,并无入职那个公司的打算。<br /> <br />第一种是:遗传算法<br />这个问题可以抽象成数学模型是这样的:我有一个有向图G,他有n个节点,其中任意一个节点a都有到另外n-1个节点的路径!例如3个节点的图可以这样解释:(图差不进去)<br /> <br /> 箭头我没画,太难了,呵呵!每个路径上有一定的费用,我们要经过每个点,然后回到起点(起点是任意的),经过的点可以重复

2011-05-28 17:20:00 1923 3

转载 Linux套接字编程中的五个隐患

在 4.2 BSD UNIX® 操作系统中首次引入,Sockets API 现在是任何操作系统的标准特性。事实上,很难找到一种不支持 Sockets API 的现代语言。该 API 相当简单,但新的开发人员仍然会遇到一些常见的隐患。本文识别那些隐患并向您显示如何避开它们。隐患 1.忽略返回状态第一个隐患很明显,但它是开发新手最容易犯的一个错误。如果您忽略函数的返回状态,当它们失败或部分成功的时候,您也许会迷失。反过来,这可能传播错误,使定位问题的源头变得困难。捕获并检查每一个返回状态,而不是忽略它们。考虑清

2011-05-26 23:13:00 1424 4

原创 Linux/Unix网络编程之UDP的connect函数

对于linux网络编程,我们都知道UDP是发送数据报,而且,我们只要在sendto函数中指定你要发送的端口和IP地址就可以了,我们不用绑定端口和IP。但是,如果对UDP进行connect函数的调用,会发生什么现象呢?有了这个能力,我们可以分为两个种:1,未连接的UDP,新创建的UDP套接字就是这样的。2,已连接的UDP,调用connect函数就是这样的。其中,已连接的毕未连接的多了三个变化:1,我们再也不能给输出操作指定目的IP和目的端口。也就是说,我们不能调用sendto,而是用write或者send。写

2011-05-24 23:54:00 4756 5

原创 组合问题

<br />今天我开始看了第四卷的组合问题的开始,组合问题一般是分为五种:<br />1,存在问题:符合问题的模式一共有多少种。<br />2,构造问题:如果存在排列X,你怎么快速的找到。<br />3,枚举问题:多少种不同的排列X。<br />4,生成问题:如何系统的生成所有的X1,X2,...,Xn。<br />5,优化问题:给定目标函数f,何种排列可以使f(X)的值最大或者最小。<br /> <br />组合问题涉及很大的数据量,举个例子:<br />对象为2n个数,{1,1,2,2,...,n,n}

2011-05-22 17:18:00 1057

转载 Linux/Unix编程中的线程安全问题

线程安全介绍在目前的计算机科学中,线程是操作系统调度的最小单元,进程是资源分配的最小单元。在大多数操作系统中,一个进程可以同时派生出多个线程。这些线程独立执行,共享进程的资源。在单处理器系统中,多线程通过分时复用技术来技术,处理器在不同的线程间切换,从而更高效地利用系统 CPU资源。在多处理器和多核系统中,线程实际上可以同时运行,每个处理器或者核可以运行一个线程,系统的运算能力相对于单线程或者单进程大幅增强。多线程技术让多个处理器机器,多核机器和集群系统运行更快。因为多线程模型与生俱来的优势可以使这些机器或

2011-05-19 20:10:00 4729

转载 vector的用法

<br />介绍<br />这篇文章的目的是为了介绍std::vector,如何恰当地使用它们的成员函数等操作。本文中还讨论了条件函数和函数指针在迭代算法中使用,如在remove_if()和for_each()中的使用。通过阅读这篇文章读者应该能够有效地使用vector容器,而且应该不会再去使用C类型的动态数组了。<br /> <br />Vector总览<br />vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库。vector之所以被认为是一个容器,

2011-05-18 20:56:00 769

Xilinx_Vivado_SDK_2014.4_1119_1_Win64

Xilinx_Vivado_SDK_2014.4_1119_1_Win64

2015-04-07

windows下的虚拟机

windows下的虚拟机

2012-06-13

制作光盘镜像工具

制作光盘镜像工具

2012-06-13

uml和rose建模复习题

uml最全的复习题,也可以作为我们的总结题,不管是考试还是学习!

2011-01-11

the art of computer progrem

计算机程序设计艺术,这本书,我就不用在评论了吧!

2010-12-25

空空如也

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

TA关注的人

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