yanggq 发表于 2016-07-07 13:18

果然很牛,学习一下 看看。

Godbach 发表于 2016-07-07 13:22

回复 38# dreamice

多谢江总支持。 {:qq11:}


   

niao5929 发表于 2016-07-07 15:41

解希仁的那套两厚本的书回复 35# GFree_Wind


   

niao5929 发表于 2016-07-07 15:44

CSDN感觉像个骗子+,把技术交流的风气带坏了!!!回复 36# GFree_Wind


   

shenlanyouyu 发表于 2016-07-07 15:45

本帖最后由 shenlanyouyu 于 2016-07-07 15:47 编辑

回复 40# Godbach

果断支持!

读了样章,收获挺大。作者分析了常见的文件操作相关的系统调用,从系统调用的使用,系统调用的实现方法,逐步分析到内核功能的实现。并根据自己的经验,分析了调用系统调用需要注意的问题,防止踩坑。建议:如果在基础知识那章,添加程序链接的基础知识,用图形来说明编译后的obj和C标准库之间的关系,动态链接的过程,会比较系统,容易理解。曾经有过从应用层直接杀到内核态的经历,在父进程中,打开一个文件,然后fork出一个子进程,在进程读写文件,导致父进程的文件读写位置出现问题,trace系统调用fork的实现,分析fork过程中,子进程继承了父进程打开的文件描述符,增加了进程文件描述符表指向的file的引用计数。2.4节fdopen与 fileno,我曾经也研究过FILE和fd的关系。研究select多路复用机制的内核实现,了解select的内核的实现,才能明白在文件数量上升时select效率底下的原因,以及为什么epoll更高效。每次调用select,都需要把fd集合从用户态拷贝到内核态,同时每次调用select都需要在内核遍历传递进来的所有fd,这个开销在fd数量上升时也很大。找到root’ cause,才能针对性设计新的系统调用。其次,掌握了select的内部实现,对编写driver的poll函数有极大的帮助。还有把Android Binder driver搬到PC上调试,最初是直接编译module方式,结果每次编译成功,insmod失败。can_nice, put_files_struct…..没有定义,trace内核发现,这些API都没有EXPORT出来,binder只能built-in到内核中,然后下载最新的内核,config编译,然后内核安装到Ubuntu,添加grub启动项,重启选择进入搞定。ls /dev/binder找到,然后把android的service manger等等,搞过来调试。



   

Godbach 发表于 2016-07-07 21:56

回复 45# shenlanyouyu

感谢分享!{:qq11:}

   

GFree_Wind 发表于 2016-07-07 22:21

回复 44# niao5929

有点这种感觉。同时CSDN中微软的力量太强大了。。。。

   

GFree_Wind 发表于 2016-07-07 22:23

回复 43# niao5929

利用 “解希仁 linux”,搜索不到啊

   

GFree_Wind 发表于 2016-07-07 22:24

回复 37# Godbach

我也下载看看:mrgreen:


   

GFree_Wind 发表于 2016-07-07 22:41

回复 45# shenlanyouyu

建议:如果在基础知识那章,添加程序链接的基础知识,用图形来说明编译后的obj和C标准库之间的关系,动态链接的过程,会比较系统,容易理解。
—— 这个确实可以扩展一下。不过我的缺点是不善于画图,所以画图的事情,我能省就省了。。。:mrgreen: 另外,还有一个原因,《程序员的自我修养——链接、装载和库》已经把这个过程写得比较详细了。第一次写书,我不太想写一些别人写过的,或者大家都知道的东西。所以在本书中,我负责的章节中,基础的东西,我要么不写,要么是一笔带过。




   
页: 1 2 3 4 [5] 6 7 8 9 10 11 12
查看完整版本: 【专家坐镇,16本图书大礼】熟知内核及应用态,打通Linux编程任督二脉(获奖名单已...