热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

你的系统需不需要linux?

你的系统需不需要linux?--Linux通用技术-Linux技术与应用信息,下面是详情阅读。
Allen's World
我曾在几种产品上工作过,他们使用不同的处理器,有80186,z80(够古老吧)和arm7。无一例外都用某种RTOS。除了arm7那个产品上面用的ecos比较大一点外,另外两个用的RTOS都是很小的系统,他们只提供了为实现多任务处理的最基本的内核,他们提供如:任务创建,信号量,消息队列,邮箱,事件标志等等,在这之上我们自己做了一个很小的文件系统,然后就是自己的设备的驱动。

在很多嵌入式书籍中都提到过用RTOS的好处,当你的系统复杂度达到一定的程度时,还用前后台系统会让你的工作变得十分复杂,我是这样理解的。

我有一个比较有趣的经历,我曾经工作过的一个系统在启动之前要做一个分支,有点像一般bootloader的strap工作,比较一下flash中的某个值,然后决定启动哪一个应用。但是他们是这么做的:他用了OS!然后在os启动后的程序中写了几句话的分支程序。我用了几行汇编代码做了同样的事情。为什么这个开发人员这么做?只是因为这么做对他来说没有障碍,他的其他系统都是这么写的,他不用写arm汇编代码,他是个pure C程序员,呵呵!

由于RTOS不包含硬件驱动,应用系统直接和驱动打交道。Linux是一个怎样的系统呢?我没有深入研究过uclinux这些嵌入式linux,(RTOS我是这样理解的:一个基于优先级的抢占式调度的系统,一般不会用时间片调度)我只能就我手头这个开发板用的2.6.11的linux核来理解,他会把驱动做进内核,提供统一的和文件操作一样的接口。

我想linux最大的好处在于你可以使用许多现成的设备驱动资源,我想包括uclinux等也应该会有同样的免费资源。

同时我工作过的系统都没有mmu和内存保护等功能,也不区分内核空间和用户空间。我的理解是:如果我的系统不需要运行第三方软件,软件规模也是在比较小的范围,功能单一,我为什么需要内存保护和复杂的mmu呢。但是像手机或者pmp这些设备,他们越来越像一个pc,这样的系统mmu和内存保护就有必要了。想想以前为了腾出几个字节的空间都要想破脑袋,而我手头的开发板有128M的ram,真的是幸福呀。

关于linux的理解是我自己在刚开始看了一点资料后的粗浅理解,随着我的研究的深入,我想我在之后会越来越透澈。今天先写这些,明天继续写我的linux学习笔记。
推荐阅读
author-avatar
2102球地转反
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有