前端生成平台无关的中间代码
后端根据目标机器产生目标代码
连接器会根据你的目标平台,链接不同的库
windows下的c标准函数是msvcrt库实现的
linux下的c标准函数是libc库实现的
虽然编译阶段产生的目标代码是一样的,但是目标系统不一样,连入的库也不一样,编译器依靠这种机制实现同一代码在不同平台上的编译
比如printf函数在windows/linux下的实现就不一样,是根据特定系统提供的库实现的!
首先,嵌入Linux内核是可定制的内核:1 Linux内核的配置系统
2 Linux内核的模块机制
3 Linux内核的源代码开放
4 经裁减的 Linux内核最小可达到 150KB以下,尤其适合嵌入式领域中资源受限的实际情况。
其次,它的性能优越:Linux 系统内核精简、高效和稳定,能够充分发挥硬件的功能,因此它比其他 *** 作系统的运行效率更高。
再者,它有良好的网络支持:
1 支持 TCP/IP 协议栈
2 提供对包括十兆位、百兆位及千兆位的以太网,还有无线网络、Tokenring(令牌环)和光纤甚至卫星的支持
3 对现在依赖于网络的嵌入式设备来说是很好的选择。
至于网络协议的话,有很多种,就目前主流的3种网络协议是:NetBEUI、IPX/SPX及其兼容协议、TCP/IP,而其他的像Lwip、ZigBee、Sip等很多。
1 NetBEUI的前身是NetBIOS,这一协议是IBM1983年开发完成的,早期的微软OS产品中都选择该协议作为通信协议。它是一套用于实现仅仅在小型局域网上PC见相互通信的标准。该网络最大用户数不能超过30个,1985年,微软对其改进,增加了SMB(Server Message Blocks,服务器消息块)的组成部分,以降低网络的通信阻塞,形成了现在的NetBEUI通信协议。
特点:体积小、效率高、速度快、占用内存少。
2 IPX/SPX及其兼容协议:它的全称是“Internwork Packet Exchange/Sequence Packet Exchange”即网际包交换/顺序包交换。
特点:体积较大、能够连接多种网络、具有强大的路由功能,适合大型网络的使用。windows网络中无法直接使用该协议。
3 TCP/IP是国际互联网Internet采用的协议标准,早期用于ARPANet网络,后来开放用于民间。
特点:灵活性,支持任意规模的网络,可以连接所有的计算机,具有路由功能,且TCP/IP的地址是分级的,容易确定并找到网上的用户,提高了网络代换的利用率。
而其他的像Lwip协议栈的特点:
(1)支持多网络接口的IP转发
(2)支持ICMP协议
(3)包括实验性扩展的UDP
(4)包括阻塞控制,RTT估算和快速恢复和快速转发的TCP
(5)提供专门的内部回调接口用于提高应用程序性能
(6)可选择的Berkeley接口API
(7)在最新的版本中支持ppp
不知道这些是不是你想要的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)