当前位置:  技术问答>linux和unix

[100分]有没有关于binutils的深入的资料?或者深入底层的资料?

    来源: 互联网  发布时间:2016-10-31

    本文导语:  最近打了一段时间的酱油,东搞搞西搞搞,但始终离不一基本目标:深入底层。 这个底层并非指与硬件、芯片打交道,并非涉及时序、操作。 这个“底层”以我现在的水平不好定义,这里只能给出一些关键字:静态...

最近打了一段时间的酱油,东搞搞西搞搞,但始终离不一基本目标:深入底层。
这个底层并非指与硬件、芯片打交道,并非涉及时序、操作。
这个“底层”以我现在的水平不好定义,这里只能给出一些关键字:静态库、动态库、程序如何加载、ld-linux-so.x、程序地址空间分布、堆、栈、linux平台入口函数和初始化函数……

binutils很久就遇到过了,最开始有印象应该是做LFS时候吧。最近研究了一下linux下的动态库,用过其中的一些工具,如ojbdump、nm、strip、readelf,等等。网上有很多资料,可惜,这些资料大部分都是讲如何使用这些工具、这些工具如何重要,再深入一些的话,就没有了。到官方网站上,也找到一些manual而已,想多点了解readelf输出结果,也没有什么资料介绍,只能靠平时专业英语的感觉理解,比如OJBECT、FUNC、GLOBAL、DEFAULT等等。——谁都知道程序中了很多符号表,但里面的含义、字段似乎就不知道了。

有几本书还是讲得比较好的,比如《Linux性能详解》、《程序员的自我修养》等等。

并非在下钻牛角尖,我只是觉得,作为一个刚出来混的程序员,有必要去了解这些东西——更何况,目前还处于打酱油阶段,何不趁有时间再研究研究?天知道以后还会不会有现今这心情、这时间!

在IBM的devoloperworks看到一句话:
“其实有很多东西只要勤于思考,还是能够自己悟出一些道理的。国外有一些高手就是通过能够大家都能见到的的一点点资料,自己摸索出来很多不为人知的秘密。”
“学习计算机很关键的一点在于一定要富于探索精神,要让自己做到知其然并知其所以然。”

辛苦不怕,动手不怕,师父领进门,修行靠各人,奈何无半点指导,凭自己摸索,漫漫长路,走得坎坷,亦无人知。而且,这么久,还不一样走过来。不过,现在工作了就要注意效率与时间了。

主要是想了解一下进程在main执行之前做了什么、之后又做了什么,谁在做等等问题,但比较少资料情况下感慨一下,大家有什么好的资料不妨介绍一下,100分,不多。

|
呵呵,很久没有看到这么爱学习的同鞋了,鼓励一下~

1 从你的文章来看,我认为你已经熟悉linux的基本操作,(shell,代码的编辑,编译,运行等基础)

2 然后你开始思考了:
   但是你提到的这些所谓底层的东西实际上只是表面,这些东西(binutils,objdump,strings...)都只是对OS,编译器,加载器的一个具体实现而已(linux下)。

   可能你真正需要的是去__潜心__看__一本__描述如何实现那些经典的计算机理论的书(比如linker&loader,computer system:a programmer‘s perspective;UEAP),这些书描述了如何在linux环境实现代码/进程的加载运行,运行状态变化,相互之间的通信。。。。

   但是,本质上,这些都只是具体环境实现,进程完全可以不用这样编译,不用这样加载,就像windows下的编译后binary和linux下的完全不一样,加载实现也不一样。但是他们的本质是一样的。

其实我还有很多话想说,但是我真的太懒了,而且这些东西最终还是要靠自己“悟”

PS
你的学习方法不对,linux的美在于OpenSource,去看别人的代码,看bintuils的代码。
Linus Torvalds这个鸟人曾经很niubility的说过:
Read The Fu*king Source Code!!
我曾经说过:
Code tell the turth!

|
静态库、动态库、程序如何加载,这些很少有书讲吧,难以成书,研究下加载函数吧。
程序地址空间分布、堆、栈,这是编译原理,
linux平台入口函数和初始化函数,什么初始化函数?
ld-linux-so.x是我想了解的,待研究中。
感觉还是要有项目来驱动你,不然你确实无从下手。

|

第一点,《程序员的自我修养》这本书讲了不少,它的副标题就是链接加载与库。
第二点, 一个图就说明了http://liar.pangwa.com/wp-content/uploads/2008/04/mem.bmp
第三点,《程序员的自我修养》也讲了。
有东西来驱动很重要,呵呵,有动力学东西快。

    
 
 

您可能感兴趣的文章:

  • Linux有没有什么好的高级的书,我要深入,
  • 关于NetBeans的问题:有没有介绍NetBeans的中文资料
  • 请问有没有人IBM上的JCL的资料!
  • 哪位大哥大姐知道IAS是东西?有没有详细的中文资料?
  • 上海哪里有JAVA认证考试和培训的地方?网上有没有相关资料?
  • 什么是MPI?有没有这方面的资料?谢谢
  • 有没有ld链接文件格式的详细资料?
  • 有没有介绍linux下的标准库和系统调用库的资料?
  • 有没有人自己开发过数据库?希望提供一些资料,谢谢!
  • 有没有高手知道linux系统定制(最小化定制)的?(在线守候)请您提供一点相关资料,谢谢!
  • 大家有没有关于服务器设计的书或者资料?
  • 望高人指教!!!我想学linux电源管理方面的,不知道acpi从何学起,有没有全点的资料,万分感激!!
  • 有没有关于j2ee好一点的免费资料!
  • 请问有没有关于xmlspy的学习资料
  • 有没有linux资料教材给我发?
  • 有没有介绍Linux下的汇编语法的资料?
  • ★★★★★请问大家有没有这方面的资料?谢谢提供!
  • 请问Servlet主要用在什么方面?有没有关于它的比较好的书或其他的资料?
  • 请问有没有关于怎么在j2ee中开发xml的资料,最好能详细一点!
  • 有没有图形化界面的 网络抓包工具,或者TCPdump的详细资料!
  • Linux有没有类似Windows API的函数?如果有,哪儿有这些资料?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • [AIX]有没有办法查到有没有用户执行了Kill命令
  • linux里有没有象vc那样的IDe啊,有没有类库什么的呢
  • 有没有用过 JCE 的朋友,生成x.509证书,有没有免费算法,用哪家的比较好,给出示例代码!
  • 请问jsp有没方法判断窗口有没有框架???
  • 有没有哪位知道linux下有没有什么可视聊天的工具
  • 请问:编译内核时,make bzimage命令后,提示没有这个规则,这有没有影响呀?
  • 有没有搞错,JSP精华版数据全部没有了。
  • 我想在VMware上装FreeBSD,有没有人这样做过?有什么问题没有?
  • 我重装了winme,却进不了Linux了,而我现在又没有Linux光盘,也没有Linux启动盘,还有没有办法?
  • Qt中有没有类似VB中winsock和timer的控件呀,我好像没有找到.
  • 转 请大家讨论一下,现在我们开发J2EE的Application Server还有没有机会,这里有没有这种人才? (愿意给300分)
  • 有没有用过ejb,又开始学com的,如果有,介绍一下经验?没有,则给个理由(如果你有时需要用DNA)?
  • java中有没有destructor的东东,好像一般的class里都没有嘛,难道不要手工做这些事情,全部交给gc处理吗?
  • 在linux redhat6.0中,进入x_window,请问系统有没有自带的c编译器,比如gcc;如果没有,那里可以下载并安装?
  • JAVA中没有宏,那编程和调试起来不是很麻烦吗?有没有一些折中办法?
  • SCJP有没有用
  • InstallShield 有没有linux版本的?
  • 有没有玩的转LINUX源码的高手?
  • 谁知道现在有没有Linux下的搜索引擎?
  • 谁知道现在有没有Linux下的搜索引擎??


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3