道篇:
为什么要在Linux(ubuntu)操作系统环境下学习《30自制操作系统》这本书?
对于操作系统的学习研究,Linux(ubuntu)更专业,因为Linux(ubuntu)天生就是给喜欢研究折腾的人用的.
为了更深入的学习研究Linux操作系统内核,软件开发,网络打下基础!
那为了学习这本书,是不是还要先学Linux(ubuntu)?
Linux在使用的时候,只是做为一个工具,工具的学习,要在使用中去学习.这就是为什么大多数人买了鸟哥的书后,还是不会用Linux的原因,那么厚的书,看了前面忘了后面,最重要的是你感觉敲敲这些命令似乎没有什么用.因为你没有用Linux去做有用的事情.通过这一系列的学习引导,只要读者能跟上脚步,完成应该完成的事情,很快你就自然学会Linux操作系统的使用,并且深深的爱上她.(想用Linux打网络游戏的就死了这个心吧)
在虚拟机上装Linux,然后学习这本书可以吗?
最好不要这样了,个人经验是当你成为老手后,再这样玩吧!真的想装虚拟机,博主推荐一种玩法:先安装Linux(ubuntu),然后在Linux(ubuntu)下安装虚拟机virtualbox,最后在虚拟机中安装windows 7 or windows xp.为什么这样玩?因为开机后,你直接进入的系统是Linux(ubuntu),这样有更多的机会使用Linux(ubuntu),再次强调Linux(ubuntu)只是一个操作系统,是为我们服务的工具,工具使用次数越多,就越顺手.
Linux的哲学思想是KISS:Keep It Simple,Stupid.
那很多人就有疑问了,simple?怎么我感觉一点也不容易啊,学起来还费劲,这使博主想起了在某本书中看到的一句话,linux难学易用,windows易学难用.打个比喻,想想这个问题,是学驾驶四个轮子的汽车容易呢?还是学骑自行车容易呢?大部分人应该与博主一样的的想法,当然是学骑自行车容易啊!但是,汽车与自行车相比,谁跑的更快啊?这还用问,当然是汽车跑的快啊!所以答案出来了,学习Linux的过程有点像是考驾照,考的过程比较难,一旦学会了,那你就可以驾起宝座四处游玩了!强调一下,这种思想是非常重要的.要是学了这个东西没有巨大的好处,谁还愿意花力气去学啊!只要你掌握了Linux,你才有权力享受她!
学习的过程
:对于像计算机这样的科学,本身就是人类创造的科学,所以在学习时,适当合理的想像是可以的.但一定要不空想,因为计算机是实践性的科学!需要用大量的实验来验证你的想法的合理性.总的来说,学习时应该采用看书,coding,看书,coding这样循环前进的方式!切记不要把计算机这门技术当做文科来学习(采用背的方式来学习),这样你就走向了无底的深渊!
学习这本书的工具,在Linux(ubuntu)系统下都有吗?
Linux就是给开发者使用的操作系统,开发个小操作系统的工具,Linux这么优秀的系统能没有吗?大家放心,什么都会有的!博主会带着大家一步一步进入状态,相信到最后完结时,大家对Linux操作系统的使用,c语言,汇编的理解,软件开发的过程和要用到的工具都会有全新的理解!
博主强调一个重要的观点,在window下面的学习到关于软件的知识,大多是由Microsoft给制定的标准,在开发上学习的很多工具,Microsoft说变就变,不具有延续性.但是在Linux上学习的工具,哪怕是一个小的命令工具,如果你学会了,都是终身有用的.
最重要的是当你长期使用Linux系统后,你会经常接触到各类开源项目,有更多的机会编译源码,第一次编译时,你可能不会,后面遇到的次数多了,自然就会了.这也是为什么博主推荐大家在实体机上使用Linux(ubuntu)的原因.接触开源项目的机会多了,大家自然会对软件的开发过程,什么是预编译器,什么是编译器,什么是汇编器,各类文件格式有更深切的了解,对如何进行预编译,编译,汇编和为什么需要经过这个过程有更深切的体会.在windows学习时,可能很难有机会遇到这些过程,因为通常IDE的一个按键就帮你把所有的事做完了!但在Linux下,只要你是真心想学习这些知识,你是可以通过开源项目完全掌握的.说实在话,博主对于中国高校在教授计算机课程时,用windows系统来进行教学,用visual c++这样软件来教授编程语言的作法是非常不认同的.废话不说了,下面进入正题.
博主在这强调一点
:后面的学习过程中,博主写的代码是可以在u盘和软盘上都能运行的,毕竟只是在虚拟机上跑跑还是没有多大的意思,如果把开发的系统写到u盘上,让实体机从u盘启动自己的系统,则更有意思!
项目github地址:https://github.com/cherishsir/ubuntu230os
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。