Oops!内核、内存、进程、线程它们是抽象的

我相信很多人“初识”计算机,是因为遇见了Windows的开机画面,是遇见了Word、Execl、Powerpoint(当然老一辈的程序员排除在外,那个时候是“黑屏”或“蓝屏”)

然后,很多人“入门”计算机,是因为下面的一段代码:

#include <stdio.h>
int main(void) 
{    
    printf("Hello World!n"); 
    return 0;
}
在写这段代码的时候,可能那个时候,我们还没有那些复杂的概念——内存、线程等,当然,也还不知道,这段代码是如何转变为机器码的。我还记得我当时的感觉:这段代码,逻辑so easy,会说“Thank you”的人,我想几乎都会懂。当时我的对这段代码的翻译是这样的:include——包含 ;<stdio.h>——啥?一个头文件,哦在头部,所以是头文件;
main——主要的,哦,所以称为main函数;printf——打印,所以,就输出了“Hello World”。我想,这种理解方式,是具体的不能再具体了 再然后,我们学习了操作系统、编译原理、数据结构等一堆课程。此时,我的感受是:“Oh,My god!”其中的概念真多,真抽象。真得让人无法用具体的理解方式去理解计算机。内存是什么?操作系统书籍中的标准概念是:In computing, memory refers to the physical devices used to store programs (sequences of instructions) or data (e.g. program state information) on a temporary . 翻译:在计算机领域,内存指的是,用于临时存储程序和数据的物理设备。如果内存以一种具体的方式理解,该是什么样子的呢?其实,说是内存是物理设备可能还太专业了。咱这辈子没见过物理设备呀。ok!那你就想象它是一个盆,它用来装东西的,当然容量是有限的。
再再然后,在软件开发中、在IT商业应用中,作为一名工程师,我们需要深究这些概念,因为,我们无时无刻都在使用它们。想要用好它们,当然需要深入的了解嘛——知己知彼,百战不殆,貌似夸张了。理解这些概念貌似很困难。为什么这么说呢?以下论据:谁都知道,计算机的世界,是0和1的世界——数学中的0和1。而很多的数学大师们都曾说过,数据研究到最后是哲学(至于哪位大师说过,嘻嘻,我也不知道)。所以,推论是,计算机研究到最后应该也是哲学。读毛泽东的《矛盾论》,读到最后,发现真的很矛盾,因为越读越不懂。我问自己,矛盾这个概念懂了吗,懂了,但是懂与不懂是相互存在的,是个整体,懂存在,所以,不懂依然存在,所以不懂。黑格尔这位大师,又说了,人类从历史中学到的唯一教训,就是人类无法从历史中学到任何教训。
有一天,《深入理解Java 虚拟机》其中一章《Java内存模型与线程》,突然问了自己一个问题:什么是高并发,什么是内核,什么是用户态,什么是内核态?这些概念的理解为什么不是那种感觉呢:当别人问你什么是西瓜时,你直接去买个西瓜,请他吃。可能我没那种感觉,是因为我还没有真正理解它们。但是,我可以确定很难,获取这种感觉很难!为什么呢?因为计算机是个抽象的世界,哲学是个抽象的世界,这个世界本身就是一个抽象的世界。很多人都学会用电,但是什么是电呢?什么是高压电呢?当别人问你这个问题的时候,你总不能让他去碰碰高压电吧(低伏电压当然可以,但是高压电的感觉,我想肯定还是不一样的)。
最后,我得出学习抽象概念的方式:以抽象的思维去学习抽象的知识。我们应该学习梵高,学习那些抽象派的大师,学习那些抽象的思维。不要让自己局限在0和1之间,让自己想象飞起来,你会觉得很美好。
以上言论纯属“自由”范畴,希望你看过后,会“不屑的一笑”!!

猜你喜欢

转载自blog.csdn.net/nieyinyin/article/details/45172649