第一回:小马创业选园区,开放标准是第一
小马最终仍是决定走出大公司,本身去创业了。前端
他之因此这样决定,有两个缘由,一方面,大企业多年的工做经验让他练就了从前端到后端,从Web到App,从产品设计到测试交付的全栈能力。他很自信,靠着这些能力,闯荡江湖应该没什么问题;另一方面,他据说,姓“马“的,创业成功的几率好像比较大。后端
创业首先要注册公司。注册公司就须要有一个办公地点。因此,小马须要选择一个适合创业的环境。他找了不少地方,发现有的地方政策倾斜大型企业,有的地方倾斜本地企业,有的地方鼓励金融创新。小马感受这些地方都不太适合他这个IT男。并发
直到有一天,小马来到了位于杭州滨江的x86创业园区。他被深深地吸引住了,固然首要吸引他的就是园区工做人员的热情。测试

园区的工做人员向小马介绍了如下信息。云计算
“首先,我们这个x86园区,主要有三大特色,一是标准,二是开放,三是兼容。像您这种创业者仍是很是多的。初次创业不必定有经验,园区提供标准的企业运行流程辅导。“spa
“另外,咱们园区秉承彻底开放的态度,对待各类各样的企业。不封闭,不保守。只要您符合国家的法律法规,咱们都接纳。并且,整个园区是一种开放合做的生态,也有利于不一样企业之间的协做。“操作系统
“再就是兼容。咱们园区的流程和规则的设计都会兼容历史上的既有政策,既不会朝令夕改,也不会由于变化而影响您公司的运转。总而言之,来了我们园区,您就埋头干业务就能够啦!“设计
小马显然对于x86园区的开放性十分满意,因而追问道:“您刚才说的企业运行流程辅导,能详细介绍一下吗?未来我这个企业在这个园区,应该怎么个运转法儿?“3d
工做人员接着说:“我们这个园区毗邻全国知名高校,每一年都有大量的优秀毕业生来园区找工做,这是企业很是重要的人才来源。葛优说了,二十一世纪了,人才是核心嘛。每一年咱们园区都会招聘大量的毕业生,先进行一个月的培训,合格毕业的能够推荐给您这种企业。这些人才啊,就是我们企业的CPU。“blog

“通过咱们园区培训过的‘CPU人才‘,具有了三种老板们喜欢的核心竞争力:
第一,实干能力强,干活快,咱们称为运算才能——也即指令执行能力;
第二,记忆力好,记得又快又准,咱们称为数据才能——也即数据寄存能力;
第三,听话,自控能力强,能够多任务并发执行,咱们称为控制才能——也即指令寄存能力。
到时候,你能够根据需求,看雇佣多少个‘CPU人才‘。
另外,人才得有个办公的地方,这一片呢,就是咱们的办公区域,称为也就是内存区域。您能够包几个工位,或者包一片区域,或者几个会议室,让您公司的人才在里面作项目就能够了。这里面有的是地方,同时运行多少各项目都行。“
跟着工做人员的介绍,小马走在x86园区中,看着这一片片的内存办公区,脑子里已经浮现出未来热火朝天的办公场景了。

“也许不到半年的时间,我确定可以接两三个大项目,招聘十个八个CPU员工。那项目A的员工就坐在这片内存办公区,项目B的员工就坐在那片内存办公区。我根据积累的人脉,将接到的项目写成一个一个的项目执行计划书,里面是一行行项目执行的指令,这些指令操做数据产生一些结果,咱们就能够叫程序啦。”小马这么想着。
“而后呢,我把不一样的项目执行计划书,交给不一样的项目组去执行。那项目组就叫进程吧!两个项目组,进程A和B,会有独立的内存办公空间,互相隔离,程序会分别加载到进程A和进程B的内存办公空间里面,造成各自的代码段。要操做的数据和产生的结果,就放在数据段里面。“
“除此以外,我应该找一个或者多个CPU员工来运行项目执行计划书,我只要告诉他下一条指令在内存办公区中的地址,通过训练的CPU员工就会很自觉地、不停地将代码段的指令拿进来进行处理。“
“指令通常是分两部分,一部分表示作什么操做,例如是加法仍是位移;另一部分是操做哪些数据。数据的部分,CPU员工会从数据段里面读取出来,记在脑子里,而后进行处理,处理完毕的结果,在写回数据段。当项目执行计划书里面的全部指令都执行完毕以后,项目也就完成了,那就能够等着收钱啦。”
小马沉浸在思绪中久久不能自拔,直到工做人员打断了他的思绪:“您以为园区如何?要不要入住呀?先租几个工位,招聘几我的呢?“
小马想了想,说道:“园区我很满意,之后就在您这里创业了,创业开始,我先不招人,本身先干吧。“
第二回:启动公司有手册,获取内核当宝典
工做人员说:“感谢您入驻我们创业园区,因为您是初次创业,这里有一本《创业指导手册》,在这一本叫做BIOS的小册子上,有您启动一家公司的通用流程,你只要按照里面作就能够了。“

小马接过BIOS小册子,开始按照里面的指令启动公司了。
创业初期,小马的办公室确定很小,只有有1M的内存办公空间。在1M空间最上面的0xF0000到0xFFFFF这64K映射给ROM,经过读这部分地址,能够访问这个BIOS小册子里面的指令。
创业指导手册第一条,BIOS要检查一些系统的硬件是否是都好着呢。创业指导手册第二条,要有个办事大厅,只不太小马本身就是办事员。由于一旦开张营业,就会有人来找到这家公司,于是基本的中断向量表和中断服务程序仍是须要的,至少要可以使用键盘和鼠标。
BIOS这个手册空间有限,只能帮小马把公司创建起来,公司如何运转和经营,就须要另一个东西——《企业经营宝典》,于是BIOS还要作的一件事情,就是帮助小马找到这个宝典,而后让小马之后根据这个宝典里面的方法来经营公司,这个《企业经营宝典》就是这家公司的内核。
运营一个企业很是的复杂,于是这本《企业经营宝典》也很厚,BIOS手册没法直接加载出来,而须要从门卫开始问起,不断打听这本内核的位置,而后才能加载他。
门卫只有巴掌大的一块地方,在启动盘的第一个扇区,512K的大小,咱们一般称为MBR(Master Boot Record,主引导记录/扇区)。这里保存了boot.img,BIOS手册会将他加载到内存中的0x7c00来运行。
boot.img作不了太多的事情。他能作的最重要的一个事情,就是加载grub2的另外一个镜像core.img。
引导扇区就是小马找到的门卫,虽然他看着档案库的大门,可是知道的事情不多。他不知道宝典在哪里,可是,他知道应该问谁。门卫说,档案库入口处有个管理处,而后把小马领到门口。
core.img就是管理处,他们知道的和能作的事情就多了一些。core.img由lzma_decompress.img、diskboot.img、kernel.img和一系列的模块组成,功能比较丰富,能作不少事情。
boot.img将控制权交给diskboot.img后,diskboot.img的任务就是将core.img的其余部分加载进来,先是解压缩程序lzma_decompress.img,再往下是kernel.img,最后是各个模块module对应的映像。
管理处据说小马要找宝典,知道他未来是要作老板的人。管理处就告诉小马,既然是老板,迟早都要雇人干活的。这不是个体户小打小闹,因此,你须要切换到老板角色,进入保护模式,把哪些是你的权限,哪些是你能够受权给别人的,都分得清清楚楚。

这些,小马都铭记在心,此时此刻,虽然公司仍是只有他一我的,可是小马的眼界放宽了,可以管理的内存空间大多了,也开始区分哪些是用户态,哪些是内核态了。
接下来,kernel.img里面的grub_main会给小马展现一个《企业经营宝典》的列表,也即操做系统的列表,让小马进行选择。经营企业的方式也有不少种,究竟是人性化的,仍是强纪律的,这个时候你要作一个选择。
在这里,小马绝不犹豫地选择了《狼性文化》操做系统,至此grub才开始启动《狼性文化》操做系统内核。
拿到了宝典的小马,开始愈来愈像一个老板了。他要开始以老板的思惟,来创建这家公司。
第三回:初创公司有章法,请来兄弟作臂膀
这注定是一个不眠夜,办公室里面一片漆黑中,惟一亮着的台灯下,小马独自捧着《企业经营宝典》仔细研读,读着读着,小马如有所思,开始书写公司内核的初始化计划。

公司首先应该有个项目管理部门,我们未来确定要接各类各样的项目,所以,项目管理体系和项目管理流程首先要创建起来。虽然如今尚未项目,可是小马仍是弄了一个项目模板init_task。这是公司的第一个项目(进程),是项目管理系统里面的项目列表中的第一个,咱们能称为0号进程。这个项目是虚拟的,不对应一个真实的项目(也就是进程)。
项目须要项目管理进行调度,还须要制定一些调度策略。
另外,为了快速响应客户需求,为了各个项目组可以方便地使用公司的公共资源,还应该有一个办事大厅。这里面能够设置了不少中断门(Interrupt Gate),用于处理各类中断,以便快速响应突发事件;还能够提供系统调用,为项目组服务。
若是项目接得多了,为了提升研发效率,对项目内容进行保密,就须要封闭开发,因此未来会有不少的会议室,于是还须要一个会议室管理系统。
项目的执行确定会留下不少文档,这些是公司的积累,未来的核心竞争力,必定要好好管理,于是应该创建一个项目档案库,也即文件系统。
随着思绪的展开,小马奋笔疾书,已经写了满满的几页纸,小马顿感经营一个公司仍是挺复杂的,一旦项目接多了确定忙不过来。俗话说得好,“一个好汉三个帮“,小马准备找两个兄弟来一块儿创业。
小马想到的第一我的,是本身的大学室友,外号“周瑜“。大学一毕业,周瑜就转项目管理了,在一家大公司管理着大型项目。未来外部接了项目,可让他来管。小马想到的第二我的,是本身上一家公司的同事,外号“张昭“,是他们总经理的好帮手,公司的流程、人事、财务打理得都轻轻楚楚,未来公司内部要运行的层次分明,也须要这样一我的。

次日,小马请周瑜和张昭吃饭,邀请他们加入他的创业公司。小马说,公司要正规运转起来,应该分清内外,外部项目须要有人帮忙管理好——也就是用户态,内部公司的核心资源也须要管理好——也就是内核态。如今我一我的忙不过来,须要两位兄弟的加入,周瑜主外,张昭主内,正所谓,内事不决问张昭,外事不决问周郎嘛。
三我的相谈甚欢,谈及往日友谊、将来前景、上市敲钟……

第三天,周瑜早早就来到公司,开始了他的事业。小马拜托周瑜作的第一件事情是调用kernel_init运行1号项目(进程)。这个1号项目会在用户态运行init项目(进程)。这是第一个之外部项目的名义运行的,之因此叫init,就是作初始化的工做,周瑜根据本身多年的项目管理经验,将这个init项目立为标杆,之后全部外部项目的运行都要按照他来,是外部项目的祖先项目。
下午,张昭也来到了公司,小马拜托张昭作的第一件事情是调用kthreadd运行2号项目(进程)。这个2号项目是内核项目的祖先。未来全部的项目都有父项目、祖先项目,会造成一棵项目树。公司大了以后,周瑜和张昭作的公司VP级别的任务,就能够坐在塔尖上了。
好了,这一节小马终于将公司的架子搭起来了,兄弟三人如当年桃园三结义同样,开始本身的创业生涯,小马的这家公司能不能顺利接到项目呢?欲知后事,且听下回分解。

欢迎关注我的公众号《刘超的通俗云计算》
