财讯中国

uclinux和linux的区别

来源:网络 2022-01-30 07:30:13

linux

Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

Linux操作系统诞生于1991 年10 月5 日(这是第一次正式向外公布时间)。Linux存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。严格来讲,

Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和数据库的操作系统。

uclinux

uclinux表示micro-control linux.即“微控制器领域中的Linux系统”,是Lineo公司的主打产品,同时也是开放源码的嵌入式Linux的典范之作。uCLinux主要是针对目标处理器没有存储管理单元MMU(Memory Management Unit)的嵌入式系统而设计的。它已经被成功地移植到了很多平台上。由于没有MMU,其多任务的实现需要一定技巧。

Linux是一种很受欢迎的操作系统,它与UNIX系统兼容,开放源代码。它原本被设计为桌面系统,现在广泛应用于服务器领域。而更大的影响在于它正逐渐的应用于嵌入式设备。uClinux正是在这种氛围下产生的。在uClinux这个英文单词中u表示Micro,小的意思,C表示Control,控制的意思,所以uClinux就是Micro-Control-Linux,字面上的理解就是“针对微控制领域而设计的Linux系统”。

uClinux是嵌入式Linux领域非常重要的分支,已成功应用于路由器、机顶盒、PDA等领域,与标准Linux在内存管理方面有着本质的区别。

uclinux和linux的区别

对uCLinux来说,其设计针对没有MMU的处理器,不能使用处理器的虚拟内存管理技术。uCLinux仍然采用存储器的分页管理,系统在启动时把实际存储器进行分页。在加载应用程序时程序分页加载。但是由于没有MMU管理,所以实际上uCLinux采用实存储器管理策略。uCLinux系统对于内存的访问是直接的,所有程序中访问的地址都是实际的物理地址。操作系统对内存空间没有保护,各个进程实际上共享一个运行空间。一个进程在执行前,系统必须为进程分配足够的连续地址空间,然后全部载入主存储器的连续空间中。

没有内存保护(Memory ProtecTIon)的操作会导致这样的结果:即使由无特权的进程来调用一个无效指针,也会触发一个地址错误,并潜在地引起程序崩溃,甚至导致系统的挂起。显然,在这样的系统上运行的代码必须仔细编程,并深入测试来确保健壮性和安全。

由内核所加载的进程必须能够独立运行,与它们在内存中的位置无关。实现这一目标的第一种办法是一旦程序被加载到RAM中,那么程序的基准地址就“固定”下来;另一种办法是产生只使用相对寻址的代码(称为“位置无关代码”,PosiTIon Independent Code,简称PIC)。uClinux对这两种模式都支持。

ELF可以生成一种特殊的代码——与位置无关的代码(posiTIon-independent code,PIC)。用户对gcc使用-fPIC指示GNU编译系统生成PIC代码。它是实现共享库或共享可执行代码的基础.这种代码的特殊性在于它可以加载到内存地址空间的任何地址执行.这也是加载器可以很方便的在进程中动态链接共享库。

PIC的实现运用了一个事实,就是代码段中任何指令和数据段中的任何变量之间的距离都是一个与代码段和数据段的绝对存储器位置无关的常量。因此,编译器在数据段开始的地方创建了一个表.叫做全局偏移量表(global offset table.GOT)。GOT包含每个被这个目标模块引用的全局数据目标的表目。编译器还为GOT中每个表目生成一个重定位记录。在加载时,动态链接器会重定位GOT中的每个表目,使得它包含正确的绝对地址。PIC代码在代码中实现通过GOT间接的引用每个全局变量,这样,代码中本来简单的数据引用就变得复杂,必须加入得到GOT适当表目内容的指令。对只读数据的引用也根据同样的道理,所以,加上 IC编译成的代码比一般的代码开销大。

经常动态的内存分配会造成内存碎片,并可能耗尽系统的资源。对于使用了动态内存分配的那些应用程序来说,增强健壮性的一种办法是用预分配缓冲区池(Preallocated buffer pool)的办法来取代malloc()调用。由于uclinux中不使用虚拟内存,进出内存的页面交换也没有实现,因为不能保证页面会被加载到RAM中的同样位置。

uClinux目标板处理器缺乏内存管理的硬件单元,使得Linux的系统接口需要作些改变。有可能最大的不同就是没有fork()和brk()系统调用。 调用fork()将复制出进程来创建一个子进程。在Linux下,fork()是使用copy-on-write页面来实现的。由于没有MMU,uclinux不能完整、可靠地复制一个进程,也没有对copy-on-write的存取。为了弥补这一缺陷,uClinux实现了vfork(),当父进程调用vfork()来创建子进程时,两个进程共享它们的全部内存空间,包括堆栈。子进程要么代替父进程执行(此时父进程已经sleep)直到子进程调用exiTI()退出,要么调用exec()执行一个新的进程,这个时候将产生可执行文件的加载。即使这个进程只是父进程的拷贝,这个过程也不能避免。当子进程执行exit()或exec()后,子进程使用wakeup把父进程唤醒,父进程继续往下执行。

uClinux 既没有自动生长的堆栈,也没有brk()函数,这样,用户空间的程序必须使用mmap() 命令来分配内存。为了方便,在uclinux的C语言库中所实现的malloc()实质上就是一个mmap()。在编译时,可以指定程序的堆栈大小。

总结:在应用程序移植到uClinux,以及自己写代码的过程中,我们将始终围绕这几个特性来做:

1, 在configure时,如果可能则需要在configure时,选上—disable-shared和—enable-static.

2, 将源代码中所有出现的fork()改成vfork();

3, 在Makefile中的交叉编译器和编译选项,链接选项里加上-Wl,-elf2flt。尽管这只是一个链接选项,但我还是小心地在LDFLAGS和CFLAGS,甚至在CC中指定了该选项。

关键词: uClinux Linux cpu

相关新闻

uclinux和linux的区别
2022-01-30 07:30:13
中华人民共和国法定计量单位
2022-01-30 07:30:08
Round-Robin轮询调度机制在多队列处理中的应用
2022-01-30 07:30:02
新款入门级平卷两用型打印机EFI Pro 30h
2022-01-30 06:10:24
全自动上下料的圆柱体高速喷墨打印系统
2022-01-30 06:10:18
用于装饰表面的喷墨打印机
2022-01-30 06:10:11
京瓷双色水性工业打印头KJ4B-0300的用途
2022-01-30 06:10:05
《Gartner 2022年网络防火墙关键能力报告》发布 Fortinet获得三大用例最高得分
2022-01-30 06:09:59
Microchip SA50-28系列新增28伏输入耐辐射选项
2022-01-30 06:09:52
【手慢无】新春换机 i5-12600KF热销2099元
2022-01-30 06:09:46
Windows 11兼容性问题再遭吐槽 AMD用户有话说
2022-01-30 06:09:40
春节回家坐火车忘带身份证 一招帮你轻松解决
2022-01-30 06:09:34
Steam12月最热新品出炉 《翼星求生》上榜
2022-01-30 06:09:27
Durst集团销售额创下历史新高
2022-01-30 06:09:21
分屏、平行视窗效果逆天!联想ZUI 13【一视界】Y700/Y90真机体验
2022-01-30 06:09:15
赛尔公司2021年取得了强劲的运营和战略进展
2022-01-30 06:09:08
金属数码印刷机制作限量版的金属罐子
2022-01-30 06:09:02
几百元的老主板竟可带动锐龙9 5950X
2022-01-30 06:08:55
3.33 亿台!中国智能手机出货量统计出炉
2022-01-30 06:08:49
【手慢无】小米小爱音箱AI触控版仅售196元
2022-01-30 06:08:42
EFI Reggiani深耕巴基斯坦数码印花市场
2022-01-30 06:08:34
《老头环》新截图:她温柔的最后拥抱
2022-01-30 06:08:27
纳思达优质墨水的秘密
2022-01-30 06:08:20
PCIe4.0 SSD出货量不及预期 消费级SSD跌幅回暖
2022-01-30 06:08:12
【手慢无】售价869元 华硕B560M重炮手新新春热销
2022-01-30 06:08:03
戴维宁定理和诺顿定理
2022-01-30 06:00:18
什么是PCI Express 标准(中)
2022-01-30 06:00:13
无功功率真的没用吗?
2022-01-30 06:00:08
测量误差如何界定?
2022-01-30 06:00:03
【手慢无】到手76元 达尔优 牧马人EM915有线rgb鼠标限时优惠
2022-01-29 22:39:03
曝Redmi K50顶配将搭载12+512G存储
2022-01-29 22:38:55
带来内存回收机制等优化 小米12 Pro推送MIUI 13稳定版更新
2022-01-29 22:38:46
外媒点评Redmi Note 11:1000元没对手
2022-01-29 22:38:36
【手慢无】到手只需79元 伊森国际电动牙刷礼盒迎促销
2022-01-29 22:38:25
【手慢无】3599元起 小米 MIX4将迎促销
2022-01-29 22:38:14
【手慢无】到手3069元起 小米11 5G迎促销
2022-01-29 22:38:04
深入理解FIFO(包含有FIFO深度的解释)
2022-01-29 22:30:26
液体比重天平的使用要点
2022-01-29 22:30:21
【E问E答】SMT贴片加工对胶水的要求是什么?
2022-01-29 22:30:15
华为发布鸿蒙OS手机开发者Beta版 UI与目前基本一致
2022-01-29 22:30:10
简要介绍汽车传动系统的组成及功能
2022-01-29 22:30:05
儿童智能防丢器设计方案
2022-01-29 22:29:59
“卫冕冠军”:苹果连续2年蝉联全球品牌价值500强第一
2022-01-29 21:21:50
未来你可以在Play Store上下载Windows游戏
2022-01-29 21:21:44
微信键盘正式上线:腾讯申请商标却被驳回
2022-01-29 21:21:38
比亚迪海外大受欢迎!全球第70000辆纯电动客车下线
2022-01-29 21:21:31
NV最便宜新卡RTX 3050首发能原价买到了:渠道正疯狂备货
2022-01-29 21:21:25
微信小老虎头像上热搜:手把手教你如何添加
2022-01-29 21:21:18
数字人民币App升级:看、用红包更方便了
2022-01-29 21:21:11
联发科发布迅鲲1380:6nm工艺、8+5核心
2022-01-29 21:21:04
苹果iOS新增表情包含“怀孕的男人”引争议
2022-01-29 21:08:43
Redmi K40立减200:12+256现在只要1849
2022-01-29 21:08:35
【手慢无】到手只需249 罗技K835 84键键盘限时特惠啦
2022-01-29 21:08:27
爱奇艺+京东PLUS:全年会员只148元 卖完截止 手慢无!
2022-01-29 21:08:19
SSD年末首次降价:1Tb跌破500元 数量不多
2022-01-29 21:08:11
【手慢无】会员到手159元 罗技K380键盘优惠只剩两天
2022-01-29 21:08:02
交互式医学远程会诊系统设计方案
2022-01-29 21:00:20
研华隆重推出NXP i.MX8全系列核心模块产品
2022-01-29 21:00:15
信号发生器的应用及作用
2022-01-29 21:00:10
车辆主动安全:车道偏离预警系统技术详解
2022-01-29 21:00:04
微信键盘上线引热议!完整输入法还在做:号称避免用户聊天记录被窃
2022-01-29 19:51:09
曝T3出行1月25日起实行新价格:大范围调整运价
2022-01-29 19:51:02
588元-6888元不等 字节前员工晒红包
2022-01-29 19:38:13
四季度出货量大跌,手机卖不动了?
2022-01-29 19:38:03
51单片机汇编基础
2022-01-29 19:30:30
CAN总线学习系列之三——CAN控制器的选择
2022-01-29 19:30:25
485总线应采用什么样的通讯线?
2022-01-29 19:30:20
简易频率特性测试仪
2022-01-29 19:30:10
M2M的移动通信优化技术
2022-01-29 19:30:05
Picoscope示波器学习笔记一
2022-01-29 19:30:00
支持800V超高速补能 起亚首款纯电动车EV6价格公布
2022-01-29 18:21:37
6倍速刻录128GB光盘 先锋发布新款蓝光刻录机
2022-01-29 18:21:30
红魔7成快充王者:曝13分钟充满 iPhone 13 Pro Max看不见车尾灯
2022-01-29 18:21:23
史上改变最大的10.0资料片要来了?暴雪将公布魔兽新动向
2022-01-29 18:21:17
惠普推出全新Elite Mini迷你机:最高可配12代i9+RTX 3050 Ti
2022-01-29 18:21:09
荣耀X30荣登天猫安卓手机好评榜累积第一
2022-01-29 18:21:02
2022春节假期天气地图:南方多雨雪 北方晴冷
2022-01-29 18:08:35
汇聚零散资源:Dashworks推出企业内部知识搜索引擎服务
2022-01-29 18:08:27
3DCenter:2022年显卡将会更便宜
2022-01-29 18:08:19
带来区域截屏等功能 小新Pad Plus开启OTA3 ZUI 13系统推送
2022-01-29 18:08:13
英国威廉王子抱怨:我三个孩子都有点“沉迷”电子游戏
2022-01-29 18:08:10
269元!魅族PANDAER「白金独角兽」超触感键帽达成众筹
2022-01-29 18:08:04
45W版12代酷睿处理器放开超频?Intel:仅有一款酷睿i9支持
2022-01-29 18:08:02
业界最强大人工智能系统在 GTC 2018 上发布
2022-01-29 18:00:16
如何自制电路板 自制线路板
2022-01-29 18:00:10
数据挖掘、机器学习和深度学习之间有什么区别?
2022-01-29 18:00:05
Wi-Fi 6 是什么?和现在的Wi-Fi有何区别?
2022-01-29 18:00:00
微信推“拜年红包”:随机吉利数字 带不同动态效果
2022-01-29 16:51:38
工信部:2021年新建光缆319万公里,千兆光网具备覆盖3亿户家庭能力
2022-01-29 16:51:31
低端供应商推动印度智能手机出货量增长 2021全年达1.62亿台
2022-01-29 16:51:24
沃达丰英国计划2023年开始停用3G网络
2022-01-29 16:51:17
中天科技预计2021年净利1亿元—1.5亿元
2022-01-29 16:51:10
300多块的双核奔腾被玩出花了:超频冲上5.8GHz
2022-01-29 16:51:02
抽中“365天带薪休假”男子选择折现20万 为山区孩子捐款1万
2022-01-29 16:39:34
索尼Xperia手机摄影大赛报名出尴尬Bug:较早购买手机的用户无法参赛
2022-01-29 16:39:28
老人打响“出租车保卫战” 无辜新能源车遭殃
2022-01-29 16:39:22
北京通州部分下架民宿经审核重新上架 半天内已有房源被预订
2022-01-29 16:39:14
美国会议员致信加密货币挖矿企业 欲立法规范高能耗产业
2022-01-29 16:39:07
虎年见!Redmi K50 宇宙首款产品预热
2022-01-29 16:39:00
Rivian与三星SDI合资电池工厂谈判已结束 未取得进展
2022-01-29 16:39:00

热门文章

热点专题