[授权发表]开源书籍:《C语言编程透视》

最初发表:泰晓科技 – 聚焦嵌入式 Linux,追本溯源,见微知著!
原文链接:C 语言编程透视
评论说明:为更好地聚合大家的讨论,请到上面原文的评论区回复。


Hello-C-World:

背景

2007年开始系统地学习Shell编程,并在兰大开源社区写了序列文章。

在编写《Shell编程范例序列》文章的《进程操作》一章时,为了全面了解进程的来龙去脉,对程序开发过程的细节、ELF格式的分析、进程的内存映像等进行了全面地梳理,后来搞得“雪球越滚越大”,甚至脱离了Shell编程关注的内容。所以想了个小办法,“大事化小,小事化了”,把涉及到的内容进行了分解,进而演化成另外一个完整的序列。

2008年3月1日,当初步完成整个序列时,做了如下的小结:

到今天,关于”Linux下C语言开发过程”的一个简单视图总算粗略地完成了,从寒假之前的一段时间到现在过了将近一个月左右吧。写这个主题的目的源自“Shell编程范例之进程操作”,当写到这一章时,突然对进程的由来、本身和去向感到“迷惑不解”。所以想着好好花些时间来弄清楚它们,现在发现,这个由来就是这里的程序开发过程,进程来自一个普通的文本文件,在这里是C语言程序,C语言程序经过编辑、预处理、编译、汇编、链接、执行而成为一个进程;而进程本身呢?当一个可执行文件被执行以后,有了exec调用,被程序解释器映射到了内存中,有了它的内存映像;而进程的去向呢?通过不断地执行指令和内存映像的变化,进程完成着各项任务,等任务完成以后就可以退出了(exit)。

这样一份视图实际上是在寒假之前绘好的,可以从下图中看到它;不过到现在才明白背后的很多细节。这些细节就是这个序列的每个篇章,可以对照“视图”来阅读它们。

C语言程序开发过程视图

现状

目前整个序列大部分都已经以Blog的形式写完,大体结构目下:

计划

考虑到整个Linux世界的蓬勃发展,Linux和C语言的应用环境越来越多,相关使用群体会不断增加,所以最近计划把该序列重新整理,以自由书籍的方式不断更新,以便惠及更多的读者。

打算重新规划、增补整个序列,并以开源项目的方式持续维护,并通过TinLab.org平台接受读者的反馈,直到正式发行出版。

自由书籍将会维护在TinyLab的项目仓库中。项目相关信息如下:

获取书稿

可以通过下载书籍的markdown源码自行安装或者直接下载已经发布的0.01版。0.01版主要是基于作者原来写的整个博客序列,稍微进行了增删,但是还没有进行严格的校订。

  • 下载并编译该书
$ git clone https://gitlab.com/tinylab/hello-c-world.git
$ make
  • 下载0.01版

狂击Hello-C-World.zh.book.0.01.pdf下载。

反馈问题

欢迎大家指出本书初稿中的不足,甚至参与到相关章节的写作、校订和完善中来。

如果有时间和兴趣,欢迎参与,可以通过Contact TinyLab发送邮件给我们,也可以直接在TinyLab.org的相关页面进行评论回复。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值