标签:android io os ar 使用 java for sp 文件
可以毫不夸张地说,UNIX模型就是现代操作系统的原型!不管是原汁原味的UNIX各大系列比如AIX,Solaris,HP-UX,FreeBSD,NetBSD,...还是类UNIX比如Linux...还是基于Windows NT架构的各种微软操作系统,其基本思想都是来源于UNIX。虽然这些系统一个比一个复杂,但是请记住一句话:所有的基本思想都是也必须是朴素的,简单的!不得不提到的是Intel和微软以及PC技术这三者的关系,但是这个话题过大,也只能在此提示一下,总之,PC技术造就了两大帝国,而Intel和微软配合太默契,以至于成了一个好像罗马帝国那样的存在...
数据的地址按照其类型的长度倍数自然对齐是一个不成文的编程约定。可是为何作如此的约定呢?难道不对齐就不行吗?在某些架构的处理器上,真的就是不行,比如很多的RISC处理器。然而在CISC架构的处理器,比如Intel/AMD x86架构处理器上,为了编程的方便,核心可以替你完成这种费力的操作。这一切的根源在哪里?
在对整个事情分析之前,必须要明白的是,现代微处理器是超大规模集成电路的结晶,芯片是雕刻在硅这种半导体上的,工艺极其考究,因此布线的简单就是一切的根本,在硅晶体上雕刻电路是多么的令人崇拜啊(还记得我们学过的《核舟记》吗)。硅晶体雕刻不像高级语言编程,它甚至不允许你将事情搞得太复杂(主要是晶体的布线难度),因此很多事情就要规定死,比如数据的自然对齐。完美的处理器架构只需要实现一个完成任意操作的最小指令集即可,架构简单,可以将更多的硅晶体的空间用于实现高效的流水线而不是复杂的指令(某个复杂的指令往往和其他复杂指令拥有公共部分,这就造成了空间的浪费),这种处理器叫做RISC处理器。以上这个事实是人们在早期集成电路技术开启这个新时代的伊始,走了很多弯路才总结出来的,只可惜,Intel就是那个最先吃螃蟹的人,随后它获得了巨大的成功,兼容它的指令集将AMD也拉下了水。应用程序蓬勃发展的今天,很难想到UNIX等分时系统在构建之初的目标。分时系统是为了让系统以一种流水线的方式代替批处理,让用户不必长时间等待,实际上当时的分时系统是以一种时间片错觉的方式展示给系统用户的,事实上,系统的吞吐量和总的工作延迟并没有改善,改善的只是人们对这种错觉的认可。这就是最初的分时系统。那么UNIX呢?UNIX在很多方面走得更远,对于AT&T来讲,它的电话业务是大头,它当然希望用一种性价比更加高的投资为用户提供一种基于错觉的服务方式,而用户根本就感觉不到这种差异。贝尔实验室最初的分时系统并非去运行什么应用,而是为了控制语音通话,但是后来,它走向了终端。
电话用户很容易和打印机,终端用户联系起来,因为它们都属于远程用户,共享同一主机资源。分时系统出现之前,要么等,要么建立并行系统,不管对于用户来讲,还是对于投资回报而言,都不是令人满意的,分时系统解决了所有的问题。文件抽象也是为了更方便的I/O,因此可以看到,早期的UNIX的I/O扮演了什么角色。正如现在的路由器,交换机一样,早期的UNIX在进程模型抽象层面提供控制平面,在文件抽象层面提供数据平面,它的内核就是为控制平面而生,而数据平面应该尽可能使用用户态的I/O来完成,遵循这一原则的,将会得到回报,直到今天依然如是。标签:android io os ar 使用 java for sp 文件
原文地址:http://blog.csdn.net/dog250/article/details/40208177