学习 linux kernel的建议
是要有几个阶段的。 开始看ulk,
ulk最好的地方就是他所倡导的学习方法特别好。当你想学习某方面时,先看头文件,在没把每个数据结构中的每个数据元素弄清楚之前不要看实现代码。
读完头文件,意味着其中的组织关系跟别的地方的联系就清楚了,这时候你去看实现的代码你会发现他已经做的正是你所想的。
跟着ulk把这些基本的概念搞懂,至少当你看完某一章,下次在别的地方看到这个概念的时候你要知道是什么。 相比较而言另歪的几本书在这方面有所欠缺
第二遍就可以看代码了。 在这很多人可能说拿来一两本书狂翻了。 这样是不对地。 要直接看代码。
有了代码就有了一切,你所要做的就是弄懂代码。当然中间可能遇到不会不懂的地方,这时候才去查书。在linux方面,书只能是工具书,
当你需要的时候再去看。不想c++,java,有自己的思想在里面,换句话说是比较简单的,我们可以从书本上直接读到。
linux的开发设计思想只能从代码里得到。 因为很深很难,很少有书本能够从整体上领略。
事实上现在的linux除了linus等区区几个核心开发人员能够从整体上把握得了其他人都只是对某个方面比较熟悉而已。
你所说的这几本书ulk的大约2/3的核心章节我对着代码读过3-4遍了。正在快速的浏览linux内核分析。情景分析我记得是2.4得把?
记不清了因为没仔细看过。linux内核设计与实现是跟ulk一起对着看的。
还有一本深入理解虚拟内存管理。因为vm是最难的所以当时单独买了本书看。
看代码的目的首先是要弄明白某个方面的实现。其次最关键的是要把各个地方的内容联系起来。 你可以查一下现在确实还没有一本书这方面能够讲得很明白。
所以我们要多读代码,自己去理解。 学linux是个循序渐进的过程,千万不要急。 两年,三年经验仅仅算是入门。。。。在这要说一下:
两年之前根本别妄想这写代码。
当你对基本概念都了解了,对常见的实现啊什么的也都知道得差不多了,通过做些项目了解更深层的东西,比如如何用cache,lock,还有尝试着去理解
recursion. 这些也就是尝试着去理解设计了。
总而言之学linux是个艰苦的过程,没有强烈的愿望信心很容易失败的。国内真正懂linux内核的人没多少,大多数大多数所谓的资深工程师只能开发写小
的device driver,更进一步的最多也就只能做移植. 这也是为什么linux世界里还看不到中国人做贡献。 不像c++,
java,学上两年三年就可以跟着团队做东西了,需要做的就是熟悉理解这门
相关文档:
1、将文件checkout到本地目录
svn checkout path(path是服务器上的目录)
例如:svn checkout svn://192.168.1.1/pro/domain
简写:svn co
2、往版本库中添加新的文件
svn add file
例如:svn add test.php(添加test.php)
svn add *.php(添加当前目录下所有的php文件)
3、将改动的文件提交到版本库
svn ......
嵌入式arm linux蓝牙文件传输移植
目前,蓝牙技术已经比较成熟,特别是基于手机和PC得蓝牙文件传输。
本文主要讲述基于嵌入式arm linux的蓝牙文件传输。
现行2.6.x的linux内核都已经集成了bluez蓝牙驱动,对于2.4版本内核的需要到bluez官方网站下载并安装bluez蓝牙驱动。
http://www.bluez.org/d ......
linux—select详解
select系统调用时用来让我们的程序监视多个文件句柄的状态变化的。程序会停在select这里等待,直到被监视的文件句柄有一个或多个发生了状态改变。
关于文件句柄,其实就是一个整数,通过socket函数的声明就明白了:
int socket(int domain, int type, int protocol);
我们最熟悉的句柄是0、1、2 ......
可安装在U盘上的操作系统 Puppy Linux 4.1 Beta
一、 U盘安装Puppy Linux方法
1、下载安装FlashBoot。可以在google上搜一下下载
运行FlashBoot,按下图红色框选择,点【下一步】
选择你下载的iso镜像,【下一步】
选择你的U盘盘符,不要选错了。点【下一步】
这一步要注意,默认选择的是不格盘。 ......
今天在Gentoo下安装了VirtualBox虚拟了一个XP,这样需要迅雷等一些只有For Windows下的软件时候不用必须重新启动切换到Windows下了。
显然两个OS之前的文件交换也很关键,解决方案也非常的简单。
1)在Gentoo下安装openssh
emerge openssh
2)在windows客户机上安装FileZilla
......