热门标签 | 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如此庞大的系统的代码里面,当你找不到出路的时候,跳出这个圈,能看得更清楚。

  关于阅读源代码,不要过早的钻进代码的细节中,在开始的时候,对代码有个大体的感觉,形成总体印象,把它们的逻辑搞清楚,根据自己的需要,再做决定是否要深入研究。不要茫目的一头扎进去。
推荐阅读
  • AcetoneISO:Ubuntu Linux下的全能虚拟光驱工具
    AcetoneISO 是一款功能强大的虚拟光驱软件,适用于 Linux 和 Mac 系统。它支持多种映像文件格式的挂载和转换,并提供丰富的文件管理功能。 ... [详细]
  • 使用 Vue3 Script Setup 语法糖构建双人联机俄罗斯方块
    作为一名前端开发者,Vue3 是一个不可或缺的工具。本文通过一个实战项目——双人联机俄罗斯方块,详细介绍如何利用 Vue3 的 Script Setup 语法糖进行开发,帮助读者掌握最新的前端技术。 ... [详细]
  • oracle 对硬件环境要求,Oracle 10G数据库软硬件环境的要求 ... [详细]
  • Linux环境下MySQL的安装与配置
    本文详细介绍了在Linux系统上安装和配置MySQL的步骤,包括安装前的准备工作、下载和解压安装包、初始化数据库、配置文件编辑、启动服务以及设置开机自启动等。 ... [详细]
  • 1.前言PAP和CHAP协议是目前的在PPP(MODEM或ADSL拨号)中普遍使用的认证协议,CHAP在RFC1994中定义,是一种挑战响应式协议&#x ... [详细]
  • Vulnhub DC3 实战记录与分析
    本文记录了在 Vulnhub DC3 靶机上的渗透测试过程,包括漏洞利用、内核提权等关键步骤,并总结了实战经验和教训。 ... [详细]
  • 对象存储与块存储、文件存储等对比
    看到一篇文档,讲对象存储,好奇,搜索文章,摘抄,学习记录!背景:传统存储在面对海量非结构化数据时,在存储、分享与容灾上面临很大的挑战,主要表现在以下几个方面:传统存储并非为非结 ... [详细]
  • 本文介绍了几个关于SQL查询中列使用的优化规则,包括避免使用SELECT *、指定INSERT列名、修改自增ID为无符号类型、为列添加默认值以及为列添加注释等。 ... [详细]
  • 本文详细探讨了Spring框架中遇到的NoSuchBeanDefinitionException异常,具体涉及com.thinkplatform.dao.UserLogDao Bean未定义的问题,并提供了相应的解决方案。 ... [详细]
  • 深入解析Linux中的slabtop命令
    本文将详细介绍如何在Linux系统中使用slabtop命令,帮助读者更好地理解和监控内核slab缓存的使用情况。通过本文的学习,您将掌握slabtop命令的基本用法及其高级功能。 ... [详细]
  • 大华股份2013届校园招聘软件算法类试题D卷
    一、填空题(共17题,每题3分,总共51分)1.设有inta5,*b,**c,执行语句c&b,b&a后,**c的值为________答:5 ... [详细]
  • 整理于2020年10月下旬:总结过去,展望未来Itistoughtodayandtomorrowwillbetougher.butthedayaftertomorrowisbeau ... [详细]
  • 本文详细介绍了如何使用Layui框架实现动态和静态数据表的分页功能,具有较高的实用性和参考价值。适合需要开发管理后台的开发人员参考。 ... [详细]
  • 本文将深入探讨C语言代码的可重用性,解释其重要性和实现方法。通过具体示例,我们将展示如何通过封装和模块化设计提高代码的可重用性。 ... [详细]
  • 本文探讨了数据结构与算法之间的关系,从基本概念入手,逐步解析二者如何相辅相成,共同构建高效的计算机程序。文中结合实际案例,对数据结构和算法进行了详细说明,并提出了一些思考问题。 ... [详细]
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社区 版权所有