Unix、Linux环境编程学习总结

  这段时间学习了Unix环境高级编程,在这里呢,先给大家推荐一本书——《Unix环境高级编程》,这本书在这个领域可是圣经级别的。

先说一下这段时间的学习感受,起初学习了几天之后,休息了一段时间,于是自己照着那本圣经开始看了起来,有很多难懂的地方,看着看着,难免心态有点崩溃,但是还是咬着牙看了下去,虽然有很多不懂得地方,但是支撑我看下去的动力是:偶尔会有这样一种感觉,之前刚开始学习C语言的一些疑惑,好像渐渐被解释清楚了,所以就有了继续看下去的动力。怎么说呢,学习知识就是像是一个用容器装水的过程,起初,容器很小,能装的水就比较少,随着自己能力的提升,容器也就慢慢变大了,那么这时,你就能够装下更多的水,并且融会贯通。正如作者所说的那样,对于操作系统,想要简单的说清楚,并且理解,那是几乎不可能的事情,我也是这样想的,如果一个很复杂,很庞大的知识体系那么容易掌握,那就没什么困难的了。这就更加激起了我继续去学习的兴趣。总之刚开始是有点不知所措的,甚至怀疑自己,慢慢学下去之后就改掉了之前的心浮气躁。

接下来进入正题,对于环境编程,我们要学习很多的函数,那本圣经也是很恐怖的,有个附录,后面不多说,好几百是有的,而且,每个函数的功能及参数都很强大(所谓强大,那么必然复杂,甚至说很难理解和掌握),其实摆正心态,并不是为了要记住它们,而是为了理解操作系统的内部到底是什么样的,我们在写每一句简单的代码语句时,操作系统都干了些什么,也就是学习我们编程的底层是一个什么样的结构。举一个简单的例子,我们用C语言时经常使用malloc函数申请内存,那么我们在调用了这个函数后,计算机到底怎么来分配内存的,或者说怎么工作的。其实呢,应用程序和内核之间隔着层系统调用,我们可以把系统调用理解为是内核提供给应用程序的一给接口。在应用程序和系统调用之间还有一层shell和共用函数库,shell是一个特殊的应用程序,也是为其他运行的应用程序提供了一个接口,这是我们Unix操作系统的体系结构。

其实,有人说学习这些有什么用呢,是的,这个怀疑不无道理,对我们写程序,可能确实没什么用,但是在有些时候,知其然更要知其所以然,不能傻乎乎的写了半天,还不知道在干嘛。所以还是很有必要学习的。

之后,我们依次学习了文件的操作(这里是系统调用的函数,也就是说,标准c语言的文件读写在内部其实调用了这些函数),进程环境(进程创建,进程管理,进程通信),信号,线程(线程创建,线程同步,线程终止),网络通信。说起来这些内容,真的很多,短短的时间确实很难掌握的深刻,但是,通过这个内容的学习,以及中间穿插的各种项目,用一句搞笑的话来说,确实让我功力大增,可能距离一个程序员还挺远,不过,我相信会慢慢变得更好。

现在来说,对于Unix的环境编程虽然告一段落,但是接下来会反复巩固,并且加深自己的理解。

总之,想要构建自己的知识体系,那必须要沉住气,慢慢坚持下去,如果,急迫起来,指挥适得其反。

  这段时间学习了Unix环境高级编程,在这里呢,先给大家推荐一本书——《Unix环境高级编程》,这本书在这个领域可是圣经级别的。

先说一下这段时间的学习感受,起初学习了几天之后,休息了一段时间,于是自己照着那本圣经开始看了起来,有很多难懂的地方,看着看着,难免心态有点崩溃,但是还是咬着牙看了下去,虽然有很多不懂得地方,但是支撑我看下去的动力是:偶尔会有这样一种感觉,之前刚开始学习C语言的一些疑惑,好像渐渐被解释清楚了,所以就有了继续看下去的动力。怎么说呢,学习知识就是像是一个用容器装水的过程,起初,容器很小,能装的水就比较少,随着自己能力的提升,容器也就慢慢变大了,那么这时,你就能够装下更多的水,并且融会贯通。正如作者所说的那样,对于操作系统,想要简单的说清楚,并且理解,那是几乎不可能的事情,我也是这样想的,如果一个很复杂,很庞大的知识体系那么容易掌握,那就没什么困难的了。这就更加激起了我继续去学习的兴趣。总之刚开始是有点不知所措的,甚至怀疑自己,慢慢学下去之后就改掉了之前的心浮气躁。

接下来进入正题,对于环境编程,我们要学习很多的函数,那本圣经也是很恐怖的,有个附录,后面不多说,好几百是有的,而且,每个函数的功能及参数都很强大(所谓强大,那么必然复杂,甚至说很难理解和掌握),其实摆正心态,并不是为了要记住它们,而是为了理解操作系统的内部到底是什么样的,我们在写每一句简单的代码语句时,操作系统都干了些什么,也就是学习我们编程的底层是一个什么样的结构。举一个简单的例子,我们用C语言时经常使用malloc函数申请内存,那么我们在调用了这个函数后,计算机到底怎么来分配内存的,或者说怎么工作的。其实呢,应用程序和内核之间隔着层系统调用,我们可以把系统调用理解为是内核提供给应用程序的一给接口。在应用程序和系统调用之间还有一层shell和共用函数库,shell是一个特殊的应用程序,也是为其他运行的应用程序提供了一个接口,这是我们Unix操作系统的体系结构。

其实,有人说学习这些有什么用呢,是的,这个怀疑不无道理,对我们写程序,可能确实没什么用,但是在有些时候,知其然更要知其所以然,不能傻乎乎的写了半天,还不知道在干嘛。所以还是很有必要学习的。

之后,我们依次学习了文件的操作(这里是系统调用的函数,也就是说,标准c语言的文件读写在内部其实调用了这些函数),进程环境(进程创建,进程管理,进程通信),信号,线程(线程创建,线程同步,线程终止),网络通信。说起来这些内容,真的很多,短短的时间确实很难掌握的深刻,但是,通过这个内容的学习,以及中间穿插的各种项目,用一句搞笑的话来说,确实让我功力大增,可能距离一个程序员还挺远,不过,我相信会慢慢变得更好。

现在来说,对于Unix的环境编程虽然告一段落,但是接下来会反复巩固,并且加深自己的理解。

总之,想要构建自己的知识体系,那必须要沉住气,慢慢坚持下去,如果,急迫起来,指挥适得其反。

你可能感兴趣的:(Unix)