• glibc源码分析-1:构建过程

    | /

    简介

    glibc(GNU C Library)是Linux采用的C语言运行库,它提供了ISO C11/POSIX.1-2008等标准定义的一系列API,几乎被所有应用所引用。阅读其源码能够提升对计算机底层组件的认知层次,修炼内功。

    不同于python这类解释型语言可以直接在解释器中运行程序,C作为编译型语言需要将源码编译链接成机器码后才能执行(关于编译链接的具体机制可以参看我之前写的介绍文章:理解C语言-3:编译链接)。在glibc这样的超大型项目中,编译过程尤为复杂:不仅需要考虑不同平台间的不同配置项,还需要通过awk/sed等文本处理程序生成各种项目依赖文件。如果贸然扎进源码分析某个模块,很容易陷入不知道某个具体符号来自哪里的困境,铩羽而归。

    GNU Make负责完成如此负责的编译,本文就通过分析Make的调试信息,解析编译glibc的具体过程,引出glibc源代码的目录结构,为后续分析glibc中的具体模块打下基础。

  • 理解C语言-1:内存数据对象

    | /

    初衷

    市面上介绍C语言的书很多,但是大都是从语法和实践入手,以传授”怎么做”或者”怎么做好”为根本目标。俗话说授人以鱼不如授人以渔,虽然我不是C语言的设计者,但是却渴望从”为什么”切入,顺藤摸瓜理顺C语言为什么长成这样。

    其次,C语言是现代计算机语言的鼻祖,也是绝大多数高级语言编译器或解释器的实现语言,理解C的设计理念,对于学习各类现代高级语言一定会有所帮助。

    废话不多,让我们从内存数据对象入手拆解C语言吧。

  • 编程语言杂想-通识

    | /

    为了使文章更有针对性,先抛出本系列文章想解决的问题:
    作为一名程序猿,如何快速学习并掌握一门新兴的计算机语言?

    本文作为系列第一篇,专注于解释我理解中计算机语言的通用知识。

  • Logo小海龟,冲冲冲

    | /

    我承认我激动了,居然刚发现python从2.5版本开始就自带了turtle这个模块。一见到这个久违了的名字,记忆就像一双大手,把我一下拽回那个属于童年的翡翠梦境。

    本文就带各位看官在梦境中走一遭,示范如何使用python3提供的turtle模块进行七巧板拼图。

  • 缘起

    | /

    引子

    1997年初夏,托我爸的福,作为兴趣班的重度参与者,我有机会玩到了几款至今让我记忆犹新的游戏,应该算是我人生中PC游戏的启蒙了。

    那时无锡市少年宫在荷花池中建有一个园型展厅,游戏就被安装在展厅里摆放的十几台486上供少年们爱抚。现在想想,那岂不就是往后名噪天下的chinajoy青少年版,只是少了那些无用的大腿和波涛而已。。。