Linux学习day01

        很多人都说,我们站在巨人的肩上,但是我们连巨人的肩膀都还未到达,又如何站到其上面呢?我还在为站在站在巨人的肩上继续努力着?你们呢?或许我们现在被巨人踩着,又或许在巨人的胯下,又或许站到了巨人的肩上,又或许.........其实没那么多或许。我们都希望自己每天进步一点点,希望早日站到巨人的肩上。好了,扯淡并不能越过巨人的胯下。

Linux是什么?百度百科有大量的解释和介绍,对于我来说他就是软件。更为接近机器的软件或者是为了解决不同硬件差异形成的软件接口。其实人在了解这个世界的过程中一直都在苦恼于世界的博大和差异化,各行各业,哲学,物理学,数学都在视图抽象这个世界寻找可以完美构造这个世界原型的东西,但是好像一切不是那么的尽如人意。高中物理告诉我们原子是最小单位,就好像计算机的0,1构成了一个无比庞大的计算机行业。但是历史仿佛进入了差异到一致再到差异再到一致的无限循环中,以上纯属个人认识。操作系统为我们基于计算机编程抽出了像的部分解决了硬件的差异化,让软件的编程像对接硬件的usb接口一样变为了面向接口的编程,操作系统和ABI( 应用程序二进制接口)让C++,JAVA,Python大放异彩,如下图:有人可能吐槽C不是高级语言吗?首先我想说我个人理解C是偏底层的语言,现在的软件行业好像几乎没有人再用C来写应用程序了吧。如果你非要被别人禁锢你的思想,拿封建社会的神是最大的来束缚你。我只能说每个人对于世界和知识的理解如此的不同,你为何非要按照别人的概念来套在你的思想中呢。在生活上我们可能非得这样被套住,但至少在知识上让自己保留一点点的创造性吧!

Linux学习day01

好了,关于这个图如果认为还能接受的我们继续吧,这个图也说明了现在主流语言大致所处的位置,如果你想从事操作系统级别的开发那么请先爬过C语言的肩,很多语言都可以写操作系统(也就是操作汇编码)但是语言和人一样谁又会放弃自己熟练的去做那些不熟练的事呢?所以说了解操作系统的作用,为的是让你更熟悉高级语言的几乎母本的功能,操作系统:内存,进程,网络,硬件,io如果学习过一段时间高级语言的人现在看到这些字眼,将会想到Java的内存管理,进程网络编程,io操作其实高级语言依然没有离开母本做事,但是天地变得异常开阔了。

讲完我对操作系统的理解我们说说虚拟机吧,其实人最大的能力在于对底层资源的扩大和虚拟化,许许多多的现在存在的事物都是人类对底层事物的研究深入,对其某一特性的利用,进而发展出新鲜的事物,虚拟机技术实现了原本不可相容的两个事物间相互融合的可能性,对于差异到一致再到差异再到一致可参考下图:

Linux学习day01

图很丑陋,但是把左边看成底层,右边看成更接近人的那边那么其实无论那边都是增量的。

Window和Linux是两个不同的操作系统但是底层机器的原理一致性使得他们的融合成为了可能,所以虚拟机技术是解决差异化的一种可能。

        知识是个人的,学习也是个人的,我只是分享我的,我并不会介绍那些操作系统底层差异,那些虚拟机技术如何安装linux系统。那些都是我在攀爬巨人的过程中必须付出的没有任何一个成功的人,会告诉你他在攀爬巨人的过程中经历了怎样的坚信。退一万步,告诉你了你没有去经历对于你我来说也没有一点点的意义!还是那句话我只分享我的理解!