热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

阅读linux,postgresql源代码的看法

阅读linux,postgresql源代码的看法--Linux通用技术-Linux编程与内核信息,下面是详情阅读。
  很多人开始学编程没多久就打算阅读linux的源代码,网上有不少高手都说真正掌握一个优秀都程序就是阅读它的源代码,linux又是如此的优秀,又是免费的,何不研究研究它的源代码。但真正动手到有点收获又谈何容易。

  像linux这样的操作系统,postgresql这样的数据库,不用说其源代码都是精髓,看源代码一定能获得不少的收获。但它们包括的知识面是非常广的,很多知识点是交错联系的,如果没有名师的指点,你又不是一个绝对的天才,看源代码绝对一个很苦的差事。linux作为一个操作系统,包括文件系统,进程管理,内存管理,设备管理,网络管理等一系列的东西,而每一个系统下面又有很多小系统,小系统下面分得很细,各个组织之间又相互联系。举个例,文件系统上层是VFS,VSF下面是EXT2,EXT3,XFS,reiserfs等,每种文件系统在一同的情况有不同的性能,有的适于存储大文件,有的适于存储小文件,有的适于存储常更改的文件,有的文件系统删了文件能恢复,有的不能,文件系统又与进程管理有着千丝万缕的联系,岂止与进程,在linux下,实行一切皆文件,文件系统与所有linux上的都瓜葛不少,虽说有统一的接口,但内部仍有一些联系,你若先研究文件系统,进程管理不熟,得先研究进程,还有内存管理,这些都掺杂得很紧,函数内部互相调用,结构内互相引用,linux系统里面又自义了很多规则,很多全局变量,全局函数,市面上的书这些都介绍得不够,当你看了书,你可能有个大概的了解,但当你放开书,看代码时,代码不尽然像书上讲的那样,书上只是给你理出了一根线,沿着这根线你可能能走通,这种可能性都不是很大,当你离开这根线的时候,会很茫然。书上介绍的往往有点陈旧,虽说思想,理论是一样的,但实际操作起来,困惑不小。当你研究一个系统时,系统内包含了很多函数,函数内又包含了许多函数,你若想搞懂一个函数,又牵涉了许多函数。对于这种系统级别的源代码,你就算看懂了一些,但当你实际写自己的代码来代替原来的代码以测试自己是否真的懂了的时候,你会发现这更难了,看懂了与自己来写又是不同级别的难度。像linux这样庞大的系统,内部涉及很多算法,设计模式,以及兼容性代码,你若要看代码,又得对这些有很深的了解。一个初学者,或者一个之前对linux内核不是很了解的人又没有资深专家的指点,一个人在网上收集资料来了解内核是一个很难的事,没有几年的时间,谈得了小有成就都是件容易的事。阅读linux源代码并不是网上的高手说的那样简单,看源代码会看得让人一头雾水。

  我建议普通程序员不要一动不动就说看linux源代码,也不要看见别人的文章写得那么有鼓动性,有文采就被鼓动去研究源代码,看源代码是件好事,但不是一件容易的事,可能裁在里面几个月没有一丝成就。

  开源代码是个宝藏,而且是个免费的宝藏,里面的代码是思想的精髓,是代码中的极品,是高手的结晶,但不要动不动就去看源代码,看别人的代码不是件简单的事,弄清里面的思路也不是光看代码就能解决的,代码是思想的体现,是理论的表现形式,先对理论有一定的认识然后结合代码理解是最佳途径。

  在这里我不是反对看源代码,看源代码的确有不少的好处,它能消除你对程序的漠生感,对程序设计,对理论知识有更深的领悟。我希望那些跟我一样,阅读程序源代码的人不要迷失在linux,postgresql如此庞大的系统的代码里面,当你找不到出路的时候,跳出这个圈,能看得更清楚。

  关于阅读源代码,不要过早的钻进代码的细节中,在开始的时候,对代码有个大体的感觉,形成总体印象,把它们的逻辑搞清楚,根据自己的需要,再做决定是否要深入研究。不要茫目的一头扎进去。
推荐阅读
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 学习SLAM的女生,很酷
    本文介绍了学习SLAM的女生的故事,她们选择SLAM作为研究方向,面临各种学习挑战,但坚持不懈,最终获得成功。文章鼓励未来想走科研道路的女生勇敢追求自己的梦想,同时提到了一位正在英国攻读硕士学位的女生与SLAM结缘的经历。 ... [详细]
  • 近年来,大数据成为互联网世界的新宠儿,被列入阿里巴巴、谷歌等公司的战略规划中,也在政府报告中频繁提及。据《大数据人才报告》显示,目前全国大数据人才仅46万,未来3-5年将出现高达150万的人才缺口。根据领英报告,数据剖析人才供应指数最低,且跳槽速度最快。中国商业结合会数据剖析专业委员会统计显示,未来中国基础性数据剖析人才缺口将高达1400万。目前BAT企业中,60%以上的招聘职位都是针对大数据人才的。 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 本文讨论了在数据库打开和关闭状态下,重新命名或移动数据文件和日志文件的情况。针对性能和维护原因,需要将数据库文件移动到不同的磁盘上或重新分配到新的磁盘上的情况,以及在操作系统级别移动或重命名数据文件但未在数据库层进行重命名导致报错的情况。通过三个方面进行讨论。 ... [详细]
  • 解决Cydia数据库错误:could not open file /var/lib/dpkg/status 的方法
    本文介绍了解决iOS系统中Cydia数据库错误的方法。通过使用苹果电脑上的Impactor工具和NewTerm软件,以及ifunbox工具和终端命令,可以解决该问题。具体步骤包括下载所需工具、连接手机到电脑、安装NewTerm、下载ifunbox并注册Dropbox账号、下载并解压lib.zip文件、将lib文件夹拖入Books文件夹中,并将lib文件夹拷贝到/var/目录下。以上方法适用于已经越狱且出现Cydia数据库错误的iPhone手机。 ... [详细]
  • JVM 学习总结(三)——对象存活判定算法的两种实现
    本文介绍了垃圾收集器在回收堆内存前确定对象存活的两种算法:引用计数算法和可达性分析算法。引用计数算法通过计数器判定对象是否存活,虽然简单高效,但无法解决循环引用的问题;可达性分析算法通过判断对象是否可达来确定存活对象,是主流的Java虚拟机内存管理算法。 ... [详细]
  • 本文介绍了数模国赛的报名参加方法,包括学校报名和自己报名的途径。同时给出了建模竞赛的建议,重在历练的同时掌握方法以及弥补自己的短板。此外,还分享了论文的结构和模型求解部分的注意事项,包括数学命题的表述规范和计算方法的原理等。 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
author-avatar
手机用户2502911627_202
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有