自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

路在脚下

一切都会过去的

  • 博客(43)
  • 资源 (7)
  • 收藏
  • 关注

原创 前端学习阶段总结

前端学习总结概述浅析组件ReactReact-routerReduxreact-reduxredux-sagasdva概述最近这段时间学习了下前端,但是没有机会去在项目中练练手,就先把所学到的东西整理总结一下,以备不时之用。最近学习的包括:React、Redux、Redux-saga、React-router、dva。这些是目前比较流行的前端框架,它们组合起来提供一种常用的解决方案。浅析...

2020-02-11 23:06:34 849

转载 计算机专业经典书籍

转载自 http://blog.chinaunix.net/uid-8047874-id-2518574.html1.The Art of Computer Programming    这部书被誉为20世纪最重要的20部著作之一,与Einstein的>并列,是计算机科学领域的权威著作.全书共分7卷,目前已经出版了3卷,被誉为"计算机程序设计理论的荷马史诗","可与牛顿

2015-04-23 10:26:22 1324

原创 mininet floodlight 搭建SDN环境

在安装mininet之前,先介绍一下我对SDN的理解借用Floodlight主页的图,SDN的整体框架如下图: 上层应用程序制定路由规则,通过北向API,将路由规则传输给floodlight;floodlight控制器,通过openflow协议与下层的Switch通信,传递路由规则,openflow协议是南向API的一种实现;目前openflow已经成为事实上的南向API标准协议,而北向API还没

2015-02-06 15:42:54 4370

原创 CentOS 6.5 编译 openJDK

网上有很多关于编译openJDK的文章,不过这是我第一次成功的编译openJDK,记下来以备后用!其实我在使用Cent OS编译之前,我曾用ubuntu14.04编译过,但是出现很多错误,然后百度了一下好像是因为内核版本太高,我并没有深究;然后我就用CentOS 6.5编译了一下,一次成功,简直不敢相信会这么顺利...基本步骤如下:1. 下载软件包: http://downlo

2014-12-18 16:53:50 2438

原创 动手实现一个磁盘高速缓存:准备工作(二)

既然是实现一个磁盘高速缓存,那么就需要有一个测试平台,不然代码写出来也不知道对错,我选的是iSCSI Enterprise Target(额,这个IET的官方网站貌似被墙了),不过可以使用svn下载下来:svn checkout svn://svn.code.sf.net/p/iscsitarget/code/trunk iscsitarget-code我们的磁盘高速缓存就是基于I

2014-12-08 13:09:50 1179

原创 动手实现一个磁盘高速缓存:准备工作(一)

要想实现一个独立于Linux内核的磁盘高速缓存,就需要确定磁盘高速缓存的数据放到什么地方,因为在Linux中申请大块内存的不确定性和不稳定性,我们使用在开机时预留大块内存的方式,独立管理这块被保留的内存存放磁盘缓存数据;在开机时预留大块内存,需要修改Linux内核的源代码文件(init/main.c),在内存初始化之前预留出一部分内存,我使用的内核版本是3.8.13,下面是需要修改的cod

2014-12-08 11:20:36 908

原创 Win7能上网,Ubuntu 不能上网 解决方法

不知道为什么,Ubuntu突然不能上网了,重启network也不管用,而且重启的时间很长,在终端中ifconfig,然后看到了3个网卡:lo,eth0,和eth avahi。百度了一番之后,终于找到解决的方法了!Avahi 是 zeroconf 协议的实现。它可以在没有 DNS 服务的局域网里发现基于 zeroconf 协议的设备和服务。它跟 mDNS 一样。除非你有兼容的设备或使用

2014-07-01 14:20:37 1844

转载 TCP_NODELAY和TCP_CORK

TCP_NODELAY和TCP_CORK都是禁用Nagle算法,只不过NODELAY完全关闭而TCP_CORK完全由自己决定发送时机。Linux文档上说两者不要同时设置。

2014-07-01 14:18:52 941

原创 Linux内核的Wiriteback写回机制

The kernel page cache contains in-memory copies of data blocks belonging to files kept in persistent storage. Pages which are written to by a processor, but not yet written to disk, are accumulated

2014-06-07 23:06:32 1497

原创 Linux 3.8 Writeback机制源码分析

writeback机制源码分析writeback相关数据结构与writeback相关的数据结构主要有:1,backing_dev_info,该数据结构描述了backing_dev的所有信息,通常块设备的request queue中会包含backing_dev对象。2,bdi_writeback,该数据结构封装了writeback的内核线程以及需要操作的inode

2014-06-07 21:56:11 4447

转载 块设备的处理及通用块层

块设备的主要特点是,CPU和总线读写数据所化时间与磁盘所花时间与磁盘硬件的速度不匹配。块设备的平均访问时间很高。每个操作都需要几个毫秒才能完成,主要是因为磁盘控制器必须在磁盘表面将磁头移动到记录数据的确切位置。但是,当磁头到达正确的位置时,数据传送就可以稳定在每秒几十MB的速率。 块设备的处理Linux块设备处理程序的组织是相当复杂的,块设备驱动程序上的每个操作都涉及很多内核组件。其中

2014-05-13 15:05:57 1071

原创 Heartbeat 与DRBD 配置过程

我的PC机都只有1个网卡,所以我用串口使双机通讯;192.168.119.1是我的路由器的IP,作为一个域外的服务器,检测域内服务器是否正常;首先配置host文件:127.0.0.1 localhost127.0.1.1 ubuntu-Bing192.168.119.102 ubuntu-Bing192.168.119.103 Lab-Server拷贝配置文

2014-03-09 21:42:06 1152

原创 Ubuntu 安装 Heartbeat 过程

1. 首先建立相关用户hacluster和组haclient,然后设定环境变量,最后就是安装heartbeat过程如下:(1)添加用户和组groupadd haclientuseradd -g haclient hacluster(2)设置环境变量vi /root/.bash_profile,添加如下内容:export PREFIX=/usr/local/haexp

2014-03-07 20:22:31 2559

原创 Linux内核开机保留大块内存的方法总结

在开机保留内存的方式一共有三种方法:1. reserve_bootmem(addr,size,flag)2. alloc_bootmem(size)

2014-03-02 10:22:25 2119

原创 DRBD安装测试过程记录(二)

两个系统的配置是一样的,只简单的记录下其中一个的配置过程。1. 首先创建硬件设备drbdmknod /dev/drbd0 b 147 0 2. 配置DRBDDRBD运行时,会读取一个配置文件/etc/drbd.conf.这个文件里描述了DRBD设备与硬盘分区的映射关系,数据一旦写入磁盘并发送到网络中就认为完成了写入操作。2.1 /etc/drbd.conf的内容一般为:

2014-02-15 15:00:53 1474

原创 DRBD安装测试过程记录(一)

1. 安装配置Virtualbox虚拟机Ubuntu12.04,设置双网卡为ubuntu配置两个网卡,一个连接主机,Host-Only;另一个连接外网,Bridge。内网的虚拟网卡可以在virtualbox的全局Preference中设置添加新的虚拟网卡,同时设置为static,即取消DHCP。我设置的为IP 192.168.56.1Mask 255.255.25

2014-02-14 21:40:24 1023

原创 Windows 7 64位系统 VS2010安装配置openCV

最近因为课程需要,在VS2010下安装配置openCV,配置的过程中遇到了很多的问题,捣鼓了很长时间,在此记录下来供大家参考,让大家少走弯路!注:我的系统是Windows 7 64位系统1.首先是下载VS2010并安装2.下载并安装OpenCV,我的版本是2.6(安装目录为D:\Program Files\OpenCV)  注意将路径添加至Path中PATH=D:\Prog

2013-12-25 22:42:00 2690 2

原创 求子数组的最大和

题目:输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。求所有子数组的和的最大值。要求时间复杂度为O(n)。看到这个题目的时候一点头绪都没有,看过了别人写的才算明白,其实还可以实现对起始位置的标注,懒得改了。卡住我的不是程序的实现,反而是 scanf()对不定长整数输入的实现,基础太差了... 什么都不说了,继续努力练习!#in

2013-12-07 14:48:11 876

原创 设计包含 min 函数的栈

题目:定义栈的数据结构,要求添加一个 min 函数,能够得到栈的最小元素。要求函数 min、push 以及pop 的时间复杂度都是 O(1).#ifndef STACK_H_INCLUDED#define STACK_H_INCLUDED#include #include #define STACK_INIT_SIZE 50#define STACK_INCREMNE

2013-12-03 20:24:27 913

原创 MINI6410 uboot中USB下载

我使用的Friendly ARM已经配置好的U-boot,然后利用他自带的USB下载功能往ARM板上烧制内核和文件系统,不需要输入地址参数,搞得挺简单,但是不清楚内核到底下载到什么位置了,能否和内核中设置的MTD分区匹配起来?疑惑了好几天,网上百度了一些,还是没有找到下载菜单的位置,最终还是grep帮了大忙,直接拿下载菜单中的选项做关键词,在common文件中search,   

2013-12-03 18:45:45 1568

原创 友善之臂MINI6410板子移植Linux出现串口乱码

刚刚开始学习移植mini6410,友善之臂的板子,我在Linux kernel上下载了一个2.6.39的内核,然后配置编译,烧到板上,从串口显示的都是乱码,

2013-12-03 18:25:37 1486

原创 读书最好的方式

人变聪明的一个关键方法就是多读书。 但只读还不够。读只是要素之一。“研究证明,那些遵循B策略[一次读10页,然后合上书,写一页总结]的人要比那些遵循A策略[一次读10页,而且读4遍来保持记忆]的人,从长期效果来看,要多记住50%的内容。”                                                             ---《The Li

2013-12-02 12:05:56 820

转载 最常被程序员们谎称读过的计算机书籍

马克·吐温曾经说过,所谓经典小说,就是指很多人希望读过,但很少人真正花时间去读的小说。这种说法同样适用于“经典”的计算机书籍。在Stack Overflow (以及其它很多软件论坛)上,诸如”程序员最应该读的计算机书籍有哪些? “这样的问题会周期性的出现。这样的问题不断的被提出、被回答 ,只是形式不同罢了。相同的几本书总是会出现在清单的前几名内,所以,如果想知道人们谈论的都是些什么,你

2013-12-02 11:50:16 771

原创 将二元树转换成一个排序的双向链表(方法二)

这个题目是微软的面试题,将二元树转换成一个排序的双向链表,直接贴代码!该方法在中序遍历二叉树时,完成指针的转换/* * main.c * * Created on: Nov 30, 2013 * Author: bing * * 题目:输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。 * 要求不能创建任何新的结点,只调整指针

2013-11-30 19:59:15 788

原创 将二元树转换成一个排序的双向链表(方法一)

这个题目是微软的面试题,将二元树转换成一个排序的双向链表,直接贴代码!/* * main.c * * Created on: Nov 27, 2013 * Author: bing * * 题目:输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。 * 要求不能创建任何新的结点,只调整指针的指向。 * * 比如将二元查找树

2013-11-30 19:05:46 800

原创 比赛赛程安排算法--分治算法

/* * bisaisaicheng.c * * Created on: Nov 30, 2013 * Author: bing * * 每个选手必须与其他所有选手进行一次比赛,且每位选手每天必须比赛一场 * 利用分治算法来简化日程的安排,一分为二的方法 * */#include #define MAX_NUM 16int biao[MAX_NUM+1][MAX_NUM+1];int schedu

2013-11-30 14:59:21 4311

原创 Linux 经典书籍 推荐

入门篇 《LINUX权威指南》书不错,写的很全面也比较广,涉及的不深,做为入门书籍不错,可以比较全面的了解linux 。另外比较热门的也可以看看《鸟哥的私房菜》等书,偏管理类的书。如果想做server方向的可以找来看看。驱动篇 《LINUX设备驱动程序 》就是网上说的“LDD”,经典之作,必备书籍。国产经典《Linux驱动详细解》也是一本非常不错的书,很实用,书中源代码 分析比

2013-11-27 22:37:22 997

原创 我在山大的七年

就在刚刚,看看刘未鹏的CSDN博客里的一篇文章《我在南大的七年》,感触颇深,然后想起来自己在山大的四年半,还有未来的两年半,感慨自己的大学四年稀里糊涂的过去了,还有是对自己的未来的2年半的研究生生活的迷惘!我的大学生活是一段很失败的经历,高中的时候就对计算机很感兴趣,但是从来没想过要去学计算机。大一刚上大学的时候,我就是农村来的小黑孩,同学都开玩笑,说我是从非洲来的,不知道Window

2013-11-27 19:17:16 1631 2

原创 对Linux内存管理的整体理解

内存的分配归根到底是伙伴系统的分配;伙伴系统之上就是zone,它对内存的预留空间的设置和管理;__alloc_pages()是内核中对内存页面分配的最核心函数,它尽最大能力的分配所需要的内存页;slab是为了频繁利用的结构体而设置的cache,其基于页的分配;最后,连续虚拟内存的分配(vm_struct),基本操作就是先分配不连续的页面page,然后将这些page与页表项关联;这些

2013-11-26 21:19:31 801

原创 Linux内存页面分配

在Linux中,对物理内存的管理是怎么实现的呢?对页面的分配和回收是如何实现的呢?Linux中对物理内存的管理是通过zone来管理的,以X86为例,16MB以下的物理内存为DMA zone;896MB以下的区域为normal zone;然后896MB以上的区域统称为HighMemory zone;然后在分配内存的时候,可以指定区域来实现在某个特定的zone分配页面;那么zone又是

2013-11-21 21:47:33 1463

转载 Linux 中断们和陷阱门

一直没有搞清楚,记在博客里省的再去查资料中断门: 用于硬件中断,DPL为0,不允许用户态直接使用int指令访问,硬件中断免去这一判断,因此可以在用户态响应中断,见set_intr_gate。DPL0 陷阱门: 用于CPU异常,DPL为0,不允许用户态直接使用int指令访问,硬件中断免去这一判断,因此可以在用户产生CPU异常,见 set_trap_gate。DPL3陷阱门

2013-11-18 22:12:26 1838

转载 linux内核的调度策略

linux内核的三种主要调度策略:1. SCHED_OTHER 分时调度策略2. SCHED_FIFO实时调度策略,先到先服务 3. SCHED_RR实时调度策略,时间片轮转SHCED_RR和SCHED_FIFO实时进程将得到优先调用,实时进程根据实时优先级决定调度权值。SHCED_RR和SCHED_FIFO的不同点:     当采用SHCE

2013-11-18 20:05:36 1104

原创 Linux内存地址

Linux的分段Linux uses segmentation in a very limited way. In fact, segmentation and paging are somewhat redundant, because both can be used to separate the physical address spaces of processes: segment

2013-11-08 17:17:27 1285

原创 近段时间学习的总结记录

自6月28日进入实验室至今,已经4个多月了,经历了很多事情,也学到了很多,停下来回忆记录走过的点点滴滴...进入实验室之后,还有些不适应,对于导师的安排一直有些抵触,总想自己看看自己想看的书,把基础知识掌握扎实,导师让我研究Cache方面写论文,我私下里看数据结构,练习写算法代码,心里的想法一直就是能拖就拖;被导师安排去武汉参加一个会议,偶然看到了《Linux设备驱动程序》和《Unix

2013-11-07 22:11:12 1174

转载 Linux 2.6内核线程实现

Linux 从内核2.0到内核2.4期间多线程编程使用的是LinuxThread ,但使用这种方式写出的多线程程序在诸多特性上并不是跟POSIX标准兼容的(通过网址:http://www.kernel.org/doc/man-pages/online/pages/man7/pthreads.7.html 可以了解诸多的不兼容特性)。这显然跟Linux号称的跟POSIX标准兼容不相符,所以从内核2.

2013-11-05 21:26:34 1580

转载 排序算法—堆和堆排序

1.堆  堆实际上是一棵完全二叉树,其任何一非叶节点满足性质:  Key[i]=Key[2i+1]&&key>=key[2i+2]  即任何一非叶节点的关键字不大于或者不小于其左右孩子节点的关键字。  堆分为大顶堆和小顶堆,满足Key[i]>=Key[2i+1]&&key>=key[2i+2]称为大顶堆,满足 Key[i]2.堆排序的思想   利用大

2013-11-03 23:05:51 663

转载 Linux用户态和内核态的那些事

虽然用户态下和内核态下工作的程序有很多差别,但最重要的差别就在于特权级的不同,即权力的不同。运行在用户态下的 程序不能直接访问操作系统内核数据结构和程序。当我们在系统中执行一个程序时,大部分时间是运行在用户态下的,在其需要操作系统帮助完成某些它没有权力和能力完成 的工作时就会切换到内核态。用户态切换到内核态的3种方式:a. 系统调用这是用户态进程主动要求切换到内核态的一种方

2013-11-02 16:05:28 2149

原创 Linux pid_hash散列表

linux系统中每个进程由一个进程id标识,在内核中对应一个task_struct结构的进程描述符,系统中所有进程的task_struct通过链表链接在一起,在内核中,经常需要通过进程pid来获取进程描述符,例如kill命令;最简单的方法可以通过遍历task_struct链表并对比pid的值来获取,但这样效率太低,尤其当系统中运行很多个进程的时候。linux内核通过pids散列表来解决这一问题

2013-11-02 13:52:42 3464

原创 Linux中三种进程的区别分析

内核线程拥有 进程描述符、PID、进程正文段、核心堆栈当和用户进程拥有相同的static_prio 时,内核线程有机会得到更多的cpu资源内核线程不需要访问用户空间内存, 这是再好不过了。所以内核线程的task_struct 的mm域为空核心堆栈跟task_struct的thread_info共享8k的空间,所以不用mm描述。但是内核线程总要访问内核空间的其他内核啊,没有mm域毕竟

2013-11-01 22:33:50 1143

原创 Linux内核代码记录--“好记性不如烂笔头”

其实很久之前就看过Linux的源代码了,只是因为自己的懒无药可治,一直在脑子里来了又去,什么都没留下,所以现在下决心在阅读代码,理解内核的同时做个笔记。“好记性不如烂笔头”!总的来书, Linux内核可以分为几个部分:内存管理、进程管理、时间管理、文件系统、驱动程序进程管理可以说是整个系统的核心,所以希望能彻底的理解它,啃下这块难啃的骨头!内存管理也是一块很重要的部分,它与进程

2013-11-01 22:27:08 876

dev C++ 5.5.3

Dev-C++是一个Windows下的C和C++程序的集成开发环境。它使用MingW32/GCC编译器,遵循C/C++标准。开发环境包括多页面窗口、工程编辑器以及调试器等,在工程编辑器中集合了编辑器、编译器、连接程序和执行程序,提供高亮度语法显示的,以减少编辑错误,还有完善的调试功能,能够适合初学者与编程高手的不同需求,是学习C或C++的首选开发工具!

2013-11-22

securable检测工具

securable可以检测bios是否开启了相关的功能,包括inter虚拟功能

2011-09-04

w32codecs.deb

w32codecs linux中的解码器,用于rmvb,MP4的视频解码

2011-09-04

C语言课件--清华大学出版社

谭教授的课件,对C语言的学习很有用!想学习C语言的网友们下载看看吧

2011-05-20

java基础教程(很详细)

很不错的教程,我就是用的它!希望朋友能够在这本教程的帮助下学好javaSE

2011-03-15

2010 unlocker

很实用,很方便的删除那些删不掉的东西,希望大家能够好好实用

2010-11-11

空空如也

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

TA关注的人

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