抽象的操作系统(一) --- 前言

来源:互联网 发布:ubuntu删除.开头文件 编辑:程序博客网 时间:2024/06/01 08:11

        做软件开发的,基本上是要跟不同的操作系统打交道。本人做开发多年,也接触了很多的操作系统,BREW、MTK、VIA、MSTART、ANDROID,WINDOWS,LINUX更不必说了。隐隐约约的发现,不同的操作系统,还是有一些相似之处的,就如同面向对象开发所说的,他们都有共性!接下来,慢慢的整理出来,奉献给在一线默默奋斗的苦逼的程序猿们,并作为纪念,怀念我痛苦并快乐的青春年代。
        这个话题,仅仅探讨操作系统的抽象,讲解的是对一个能够通用的可理解的开发的底层平台的理解。本人主要是做嵌入式应用相关的东西,所说的,都是个人的一些体会,并非适用于整个软件开发的范畴,但是可以作为一个视角,为大家带来一些参考和借鉴。
        每一个操作系统,其实本质上起两个作用,一个是能合理利用它运行的硬件环境,另外一个是为使用者提供一个友好的界面(APIs)。如果做驱动开发的,或者操作系统开发的,则关注的是前面一个点。作为应用开发人员,关注的是抽象的通用的功能,这样无论到了那一个平台上,都能迅速的理解它所提供的实际APIs的意义以及能推测出它可能存在的问题。功能上来说,基本分以下几个部分:
      1). 用户交互 ---- 包含了一些基本的对屏幕操作的函数,以及用户的系统的事件处理接口。
      2). 文件操作 ---- 对文件系统的操作,包括了打开关闭创建重命名删除等。
      3). 网络 ---- SOCKET接口以及初始化接口。
      4). 公共库 ---- Timer, 时间获取,字符串操作,内存管理等。
      5). 多任务 ---- 可以同时运行多个程序的方法,值得说明的是,假多任务也是一种多任务。

      有了这些最基本的API,应用本身才有机会被制造出来。当然,一个应用本身有其他的很多模块,比如HTTP模块,GUI模块等,它们本身也是建立在这些基本的接口之上,是不同层次的东西, 不在本话题范围之内。