- 博客(43)
- 资源 (16)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 我要学编程,看什么书好?--^_^,这里推荐一些个人觉得很不错的书(五)小集篇
虽然一直想写点什么,但是感觉自己怎么写肯定都不如书上写的好,所以到最后感觉还是推荐点书比较好。下面列举一些自己感觉还不错的书,可能会和以前的有重复,就当做总集篇吧。一般好书都有些难度,而且看很多书还需要一些铺垫的知识,我只从我自己知道的提一些,不足之处还请见谅书名:《C++编程思想》推荐理由:虽然很多人推荐《C++ Primer》,而且确实我也觉得那本书写的
2013-07-06 01:50:00
10093
8
原创 谈谈如何学习Linux内核 (二) —— 站在系统的角度去学习
继续上次的话题,这次用一个实际的例子演示学习Linux内核的过程。使用的例子是Linux进程的管理与调度系统。简介进程是资源管理的最小单位,而线程则是任务调度的最小单位。一个线程只能由一个进程进行承载,一个进程最少承载一个线程。说的简单一些就是,进程与线程是“一对多”的管理。在Linux下,采用了一种“轻量级进程”的机制实现,说白了就是在Linux下进程与线程是
2014-02-14 17:17:23
4625
原创 谈谈如何学习Linux内核 (一) —— 选择合理的高度,决定自己的视角
学习内核的好处很多,在学习过程中不仅可以夯实大量理论基础,还可以学习到很多编码惯用法,提升学习能力和分析能力。但是如果问其如何学习Linux内核,不同的人会给出不同的答案,有的人会告诉你先去看看0.11的内核源码,有的人则是推荐先看《Linux内核设计与实现》这样的书,有的人则会说先把内存寻址学懂,然后再开始考虑网络协议栈和文件系统之类的内容。如果是以前,我一般都是上面的几个答案,不过今天的内容并不从这几个角度去介绍,而是介绍一些我学习过程中的一些小技巧。
2014-02-02 21:16:40
6822
3
原创 我,为什么努力-记一年来的心灵成长
现在是2013年12月31号23点52分,马上就要走过13,迎来14。中考、高考、考研的那三年,都是我很疯狂的努力的三年,虽然很累,但是也是让我记忆最深,觉得有说不完的话的三年。在记忆中,或许美好的时光会留下很多美好的回忆。但是,那些心酸、努力的日子给我们的印象反而更深刻,当自己跨过这道坎,再回首时,怀念、自豪、唏嘘等等感情一下子涌现,反而会觉得这些时光才是最宝贵的回忆,这些苦反而觉得甘甜
2014-01-01 00:59:04
7490
4
原创 最长公共子序列(LCS)问题分析
最长公共子序列(LCS)网上的资料很多,而且也可以算是动态规划里面的一个基本问题,它体现了许多动态规划的特性,算法导论这本书也给出了很详细的说明。要写好动态规划其实还是有些难度,网上也很多相关的资料,这里我也就只是想写一篇自己个人的笔记,整理下自己学的一些东西。问题描述输入:对于一个字符串(序列),将其中若干个字符(元素)去除后剩余的字符串(序列),我们称之为子序列(注意:子序
2013-11-12 22:55:51
4917
原创 字符串全排列问题分析
今天晚上和一个同学讨论了下字符串全排列的问题,发现了一些自己没有发现过的点,感觉这个问题虽然简单,但是其实要写的漂亮,其实还是有一些难度,要解决整个问题需要经历的分析过程其实还是挺漫长的。所以就做一个小结,把一些其他的知识点也串上,讲讲我是如何去分析这个问题的。问题描述字符串全排列问题输入:一个非空字符串,例如“abc”,“a”,“abcdefg”。输出:这个字符串所有不重
2013-11-11 03:13:45
4984
1
原创 字典树编写笔记
试着写了下字典树,发觉这玩意别的不说,拿来作为递归练习真心有用,中间各种细节也是想了很久,代码实现的很简陋,而且还有很大的优化空间,以后再补充了定义节点头文件#ifndef TRIENODE_H#define TRIENODE_H#include #include #include using namespace std;static const int
2013-11-03 17:14:20
3664
原创 二叉树代码实现笔记
二叉树定义节点class Node {public: int key; struct Node *l; struct Node *r; Node(int _key): l(NULL), r(NULL), key(_key) {}};二叉树上一个节点,最少需要三个属性,一个用于表示节点编号的key值,一个指向左子节点的指针、一个指向右子节点的指针。
2013-08-31 13:48:58
4109
原创 算法学习笔记——动态规划 - part3
本部分主要是学习动态规划的一些笔记全文下载地址:http://download.csdn.net/detail/wearenoth/60223391 分治法与动态规划 分治法的思路是将大问题分成若干子问题,依次求解,最后合并解的答案。但是分治法并没有说明应该划分成什么样的子问题,毕竟这不是意见容易的事情。 在分治法能够分解的问题中,有一类
2013-08-27 21:33:15
4541
原创 算法学习笔记——利用栈解决实际问题- part 2
算法学习笔记:part1 : http://blog.csdn.net/minghe_uestc/article/details/10416809全文下载地址见part 11 利用栈解决实际问题1.1 编写一个栈 只要符合“后入先出”规则的数据结构都可以叫做栈,所以在实现栈的时候有很多方式:Ø 可以利用数组、链表来组织数据;Ø
2013-08-27 21:29:05
6177
原创 算法学习笔记——函数调用、递归以及栈-part 1
学习算法时整理的一些笔记,篇幅有些大,所以干脆分成几个独立的部分上传了,因为只是简单复制,所以图片和公式不能显示,所以提供Word文档下载地址,Word文档下载地址:http://download.csdn.net/detail/wearenoth/60223391 函数调用、递归以及栈 调试一个程序,底部最经常看的两个窗口就是“局部变量”与“调用
2013-08-27 21:24:04
5790
原创 Effective C++学习笔记(条款1-34)
1. 开场白《Effective C++》这本书一直觉得有些难度,已经反复看了好几次了,每次看都能发现一些以前没有注意到的知识点。建议在看这本书前先看看《C++编程思想》或者是《C++ Primer》,另外,如果看过一些《设计模式》或者《敏捷设计开发》的会稍微好些,书中一些条款涉及了设计模式,虽然并不是在讲设计模式,但是一些设计模式中的思维模式影响了这些条款的内容。最后,我不知道是我个人语
2013-08-23 13:53:51
5245
原创 进程\线程间通信学习笔记(一)
1、进程同步与线程同步1.1、进程与线程 我只讨论linux下进程与线程的区别: 进程在内核中由一个进程描述符(PCB)表示,内核中的数据结构就是 task_struct ,这个task_struct内部保存了整个进程在执行过程中所有需要的信息,其中有几个下文会用到的域说明下:mm (mm_struct) : 这个域内部表示了整个进程的地址空间,在linux内部通过
2013-08-12 02:31:14
4631
原创 背包笔记-含0/1背包问题、完全背包问题、多重背包问题、二维背包问题、分组背包问题
根据背包⑨讲自己做的一些笔记,做到后面就不太懂了黏贴过来就看不到图了,提供pdf文档下载。还是建议看PDF文档http://download.csdn.net/detail/wearenoth/56120790-1背包问题问题描述 物品数量为N,背包容量为V。第i件物品费
2013-06-18 19:46:15
6512
1
原创 Cloud Foundry Service Node源码分析及实现【附下载】
从Word拷贝过来结果好多都变形了,附加下载地址:http://download.csdn.net/detail/wearenoth/5060429Cloud Foundry Services源码分析之Node引言Service结构在Cloud Foundry中Service的结构不是太复杂,由两个组件组成——Gateway、Node。如图1展示
2013-02-10 10:05:08
6518
原创 我的书籍菜谱
我的书籍菜谱 我只是一名普通的学生,那我的本职工作就是读书,所以我的2012,自然做的最多的事情也就是读书了。我买了一个小书柜,放下了自己这1年来看的书。偶尔看着也觉得挺自豪,自己也有挺多是书,更多的时候还是痛苦,总觉得自己总有学不完的东西。骏马自知前程远,不待扬鞭已奋蹄 读书需要靠头脑,头脑好的人看书快,理解的快,不过头脑不好的人也不是不行,就
2012-12-22 01:15:11
6122
3
原创 Cloud Foundry心得及资料
我是门外汉我是这段时间才开始接触上层的这些编程与架构的,之前除了C和C++之外的编程语言一律不懂,更别提Ruby了,听都没有听过。至于云计算就更加不懂,还记得最开始给我布置任务的时候,我听了老半天没听明白PaaS是单词还是缩写。就在这种情况下硬生生的啃CF,中间缺了太多的基础,所以即使是弄了快2个月,还是在各种不懂,现在仍然在CF的大门外徘徊。不过很有幸的是,原本只是怕自己忘记而随手做的两
2012-11-19 23:42:22
4184
原创 添加echo服务与分析
【在Cloud Foundry 上添加ECHO服务】官方教程:https://github.com/cloudfoundry/oss-docs/tree/master/vcap/adding_a_system_service不清楚是CF版本更新的原因还是别的什么,反正按照官方给出的教程添加echo是无法成功的。问题就在于官方提供配置文件缺少一些参数造成的。下面的内容重点是熟悉这些配
2012-11-11 23:28:21
5514
1
原创 Cloud Foundry使用dev_setup部署多节点之排错分析
多节点部署,说白了就和单节点一样,区别就是把一个东西拆开来放到不同节点上去安装而已。(1)怎么部署多节点,可以先参看这个帖子:http://blog.csdn.net/cherry_sun/article/details/7711913里面介绍了一个大体流程,对后面的的工作有很多好处。(2)如果在安装过程中出现问题,可以参考这个博客,虽然问题可能不一样,但是思路基本是一
2012-10-16 00:31:06
8637
2
原创 我要学编程,看什么书好?--^_^,这里推荐一些个人觉得很不错的书(四)小结
今天闲着无事,本想看点视频,结果网速不给力。就大致整理了一些自己的知识结构。下载地址: http://download.csdn.net/detail/wearenoth/4616071给个截图:不知道怎么导出清晰图片。
2012-10-04 16:27:51
4332
原创 Cloud Found使用dev_setup进行单节点部署之排错分析
最近开始学云计算,看了一些基本概念的书,发现以前的很多知识现在都用的上。只是有一些新的知识需要学习。废话不多说,遇到的第一个问题就是如何用Cloud Foundry部署一个自己的集群,当然第一步就是做一个单节点的PaaS平台。网上就有如何布置安装的帖子,我何必多说,我只说一些自己在弄的过程中遇到的一些问题,以及如何解决的。其实这些方法很具有通用性,在很多场合下都很适用的。我争取以类型说
2012-10-02 00:42:54
6467
11
原创 推荐两本工具书
最近看的两本书《Debug Hacks》和《Binary Hacks》。感觉都不错,都是编译调试时候的小技巧,我是只找到这两部中文的调试书了。只是作者都是日本人。而且第二本我一直没买到书,是看电子版的。
2012-09-26 00:22:50
1673
原创 BCM4312网卡安装笔记
这broadcom的网卡呀,弄起来感觉就是麻烦。。原来好不容易弄了好几天总算把它弄好了,结果升级一下系统,结果又不能用了。。。。。之后一直没管它,今天又重新弄了一下。WIKI上的教程算比较好的了,但是还是有些小问题。注:因为Linux一直在升级,经常出现不兼容的问题,解决方法要么下载能够在现在内核上运行的源码包,要么给系统降级。不然怎么弄都弄不出来。首先是一
2012-09-24 14:50:25
2744
原创 GDB调试之栈指针破坏
记录一个因为栈上非法操作导致栈指针被破坏的例子。源代码如下:#include #include char name[] = "aabbccddeeffgghhiijjkkllmmnnooppqqrrsstt";void fun(){ char buf[3]; strcpy(buf, name);}int main(void){ fun();
2012-09-14 10:57:11
11778
1
原创 我要学编程,看什么书好?--^_^,这里推荐一些个人觉得很不错的书(三)
书果然得多看,看着看着人就通了,最近看了一些书感觉不错的。推荐的:1《Linux内核设计的艺术》:这里是我读后的感觉http://blog.csdn.net/wearenoth/article/details/78815922、《Linux内核完全剖析》:这本是我为了配合《Linux内核设计的艺术》一起看的,一些《Linux内核设计的艺术》中没怎么看懂的地方,在
2012-09-04 16:56:52
5959
1
原创 编译器、连接器学习笔记--(一)--综述
这几天一直看《链接、装载与库》这本书,书写的挺好的。从我的角度来看,这本书好的一个地方就是它不仅仅只是讲了编译与链接两个过程,还顺便将程序的装载运行也讲了一遍,这可以让没有太多基础的人也能比较全面的认识一个程序从最原始的源代码到执行过程整个过程。当然这本书也有一些不足的地方,个人感觉:对于虚拟地址空间的说明有些薄弱,如果对这方面不懂的人,看的时候可能理解的就不够透彻,以致可能对
2012-08-28 15:14:07
2277
原创 编译器、连接器学习笔记--(二)--编译
本文只记录学习过程中整理后的知识结构,不涉及具体细节,具体细节参考man手册和相关书籍,我再怎么说肯定都不如它们说的正确。内容很浅,如果需要详细细节的可以点叉叉了,对此表示抱歉。而且本来想写的详细一些,但是写着写着就跑题了,而且因为修改了多次,结果感觉中间错误很多一、简单介绍编译过程很复杂,而且不同的编程语言的编译过程也有所不同。但是万变不离其踪,该有的过程还是
2012-08-25 14:57:41
3447
原创 《Linux内核设计的艺术》读后感
大致读了一遍《Linux内核设计的艺术》这边书,总体上来说还是很不错的。很符合我个人的思维习惯,思路很清晰。正如书上介绍的“本书的特点,既不是空泛的讲理论,也不单纯的从语法的角度去逐行分析源代码,而是以操作系统在实际运行中的几个经典事件为主线……”。当然,金无足赤人无完人,这本书也有一些不足的地方。第一个就是有些地方原理介绍的太单薄,而且缺少整体性介绍,就好像在第一章还有很多小贴士
2012-08-18 20:55:23
5066
2
原创 Linux网络协议栈--ip_append_data函数分析
开场白:要分析这个函数原因有两个:一个是前几天要写《Linux网络协议栈--UDP》结果卡在这个函数这了。另外一个就是这个函数又是UDP报文必经之路,而且对其理解对于套接口中发送队列的理解非常有帮助,所以认真去学习了下。文章定位:(1)尽可能撇开一些不需要的细节,重点介绍流程(2)说明发送队列是如何组织起来的(3)书本肯定都比我说的好,要真的看明白,还是需要看书
2012-08-07 12:58:00
8328
原创 LINUX网络协议栈--UDP
开场白传输层常见的两大协议TCP和UDP,TCP太复杂,涉及到拥塞控制的很多内容,在《Linux内核源码剖析-TCP/IP实现》下册中也花费了大量的笔墨来讲述。咋们先来看看一个简单的UDP。定位每篇文章肯定有一个定位,不可能面面俱到,如果这篇的定位是你需要的,祝你能够学到一些新的知识(1)UDP数据发送和接收的简要流程(2)不涉及太多细节。(3)力求了解UDP在
2012-08-02 21:52:04
6172
原创 Linux网络协议栈--IP
开场白:IP是什么就不介绍了,不清楚的请自行百度。这篇文章的定位(1)说明下网络层中IPV4协议收发数据的流程(2)不涉及太多细节(3)一些关键数据结构(4)一部分关于路由系统(5)为更清晰看清楚中间的流程,可能不会去涉及分片重组,MTU发现等一些机制。建议:(1)一定要对着下面的参考资料中提到的一起看,不然会看的很晕(2)为了便于理解,已经尽量少的减少细节
2012-08-01 21:49:53
7998
4
原创 我要学编程,看什么书好?--^_^,这里推荐一些个人觉得很不错的书(二)
距离上次推荐书有半年了吧,当时推荐的书有的也看了一些。也发现了一些新书1、上次推荐的《深入理解Linux网络技术内幕》也啃了一半了,感觉这本书确实写的很好。原理讲的很清楚但是有一个不舒服的地方就是,如果直接看会感觉云里雾里,所以后来找了一本《Linux内核源码剖析- TCP/IP实现》。《Linux内核源码剖析- TCP/IP实现》:这本书也还可以,但是原理讲的很少,直接开始讲源码
2012-07-27 21:41:23
2411
2
原创 LINUX邻居子系统(一)
邻居子系统是linux网络协议栈中非常庞大的一块,也是比较混乱复杂的一块,不过有一点感觉挺好玩的就是它不涉及太多具体协议的内容,所以阅读起来还不算太复杂而且它很多时候自成一个小小的系统运转(所以才叫子系统),不需要外界太多的管理(ARP,ND等协议的管理),这也是它的一个特色。不过感觉它也承担了一部分第二层的功能(二层协议首部的封装)它嵌入在网络层和数据链路层之间(但是又不能把它叫
2012-07-27 20:49:13
11883
3
原创 linux内核编译笔记
说明:我现在的配置情况内核版本:3.2.4系统版本:archlinux系统情况:新装的系统,好多东西都没弄好,勉强达到最基本使用要求。第一步:配置这个步骤算最复杂的。需要配置menuconfig。进入内核源文件目录下,输入# make menuconfig就可以看到配置的界面。今天是第一次见到这个配置界面,里面的东西基本看不懂,更别提去配置了。找了个高手过来
2012-07-19 16:11:37
1613
转载 vim配置-新弄的一份-再修改-加上自动补齐-quickfix的小小修正
原来一直用的那个《屎上最强XXX》的配置但是一直搞不懂里面写的是什么意思,趁着这两天重装系统的机会,自己重新配(其实去抄别人的)了一份。http://www.oschina.net/code/snippet_119181_4840看了一下很符合口味,就借用了。基本没变动,稍微修改了几句,注:以下带有网址的都是需要去下载这些插件,点击网址进去就有了另注:貌似T
2012-07-18 21:53:42
4735
原创 linux下修改设备名
安装无线网卡驱动后,发现无线网卡驱动设备名为eth0结果就和原来的配置冲突了,而且一般情况下默认都是人为eth0是以太网卡的设备名,所以需要改回来。。第一步:查看当前设备绑定的MAC地址:使用命令,就可以看到对应的MAC地址了# udevadm info -a -p /sys/class/net/设备名(如eth0) | grep address第二步:在/
2012-07-18 09:01:35
3674
原创 Archlinux安装笔记
要安装arch linux,基本都需要参照Wiki中的内容,网上给的教程不一定正确,毕竟archlinux滚动更新,指不定什么时候又变了。第一步、选择安装源:http://www.archlinux.org/download/注意:archlinux有三种源安装方法,推荐 选 “网络源”安装,本来安装包就很小,而且archlinux镜像源速度很快,而且网络安装就已经
2012-07-18 01:45:26
2896
原创 【思维重现】进程调度
Abstract linux内核2.6.11算是很老的一个版本了,现在也没什么人会去找出来用,本文目的不为技术普及,而是想讨论内核一些设计的思想,一起体会当年是怎么设计内核的,相信对以后更深入研究也很有帮助。限于本人能力有限,有不足之处,还请轻点拍。 本文主要内容可以分成两个部分,Part 2从最简单的设计开始,一点点改进得到一个比较完美的解决方案。Part3则
2012-05-24 13:50:35
1613
原创 【二叉查找树】c实现
二叉查找树虽然不是很复杂,练练手还是不错的。#include #include //一棵n节点二叉查找树的期望高度h = log(n)struct node{ node *parent; node *left; node *right; int key;};struct tree{ node *root;};node
2012-05-05 01:46:14
871
原创 Qt信号机制
如果你觉得这个文章对你有帮助,留下个脚印吧。Qt信号槽机制很复杂,但是使用起来却很简单。以下内容是个人遇到的一些情况后总结的一些经验,不保证原理绝对正确,但这么使用没错。问:信号和槽只能一对一对应么?答:不是的,可以多个信号对应一个槽,可以是connect multi-signals to one-slot .可以一个信号对应多个槽,可以是connect one-
2012-04-24 13:51:45
4460
4
Understanding the Linux Kernel, 3rd Edition
2012-05-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人