|
用户名:lisoleg 笔名:lisoleg 地区: 行业:其他 |
| 日 | 一 | 二 | 三 | 四 | 五 | 六 |
2005龙芯技术方案应用研讨会
中国科大嵌入式系统2005开发者大会 2005.03.26-2005.03.27
中国科大嵌入式系统2005开发者大会 2005.03.26-2005.03.27
| 中国科大嵌入式系统2005开发者大会 简短开幕词 | DJ | 科大92级校友 中科大翰海星云BBS嵌入式版主 华恒科技公司 | 0.pdf | 1.wmv |
| 从入门到精通:嵌入式系统开发之路 | DJ | 科大92级校友 中科大翰海星云BBS嵌入式版主 华恒科技公司 | 1.pdf | 1.wmv |
| WinCE操作系统overview及其BSP开发 | Systemerror | 科大99级校友,Intel(上海)公司 | 2.ppt | 2.wmv |
| 嵌入式系统中的nandflash文件系统 | Bladesatan | 中科大翰海星云BBS InfoSe版主 | 3.pdf | 3.wmv |
| Linux下的WLAN和移动IPv6 | Luster王辉 | 科大6系博士生 | 4.pdf | 4.wmv |
| Locking in Linux Kernel | Galoisx | USTC Linux User Group(LUG) | 5.pdf | 5.wmv |
| 嵌入式DSP下MPEG4/H.264的视音频优化 | 何佳 | 科大93级校友 创世科技公司 | 6.rar | 6.wmv |
| Idea to Product : IC designer's Role 想法到产品 :IC设计者的角色 | 谢小权 | 科大93级校友 飞思卡尔公司(原摩托罗拉半导体)苏州设计中心 IC设计高级工程师 | xie.pps | |
| VxWorks软硬件设计及实例分析 | TOF | 7.ppt | 7.wmv | |
| 嵌入式硬件设计 | 李凯 | 科大4系研究生 中科大翰海星云BBS电路设计版副 | 8.ppt | 8.wmv |
| 产业的演变:嵌入式处理器体系结构发展漫谈 | DJ | 科大92级校友 中科大翰海星云BBS嵌入式版主 华恒科技公司 | 9.pdf | 9.wmv |
| Cypress PSoC 可配置混合信号片上系统简介 | Keith (Luo Sai) | 科大11系博士生 | 10.ppt |
实时系统及基于Linux的实时系统研究现状
为进一步推动国内嵌入式技术的发展,北京 AKAE 嵌入式研究中心将邀请国内外嵌入式领域内的专家及本中心一线研发工程师陆续推出系列讲座,内容含盖嵌入式领域的软硬件技术的基础介绍及最新动态。欢迎广大嵌入式爱好者积极参与。
报名人数有限,请尽快报名参加。
主题:实时系统及基于Linux的实时系统研究现状
时 间:2005年4月10日 14:00
地 点:北京航空航天出版社104会议室 网上地图
主讲人:赵惠斌
内容概述:
1:什么是实时
2:传统硬实时
3:软实时
4:实时面临的问题
5:调度算法
6:优先级反转问题
7:Linux实时方案
8:RTLinux
9:KURT/Timesys/MontaVista/qlinux....
10:交流
主办单位:北京 AKAE 嵌入式研究中心
协办单位:中国软件行业协会嵌入式系统分会
支持媒体:北京航空航天大学出版社 《单片机与嵌入式系统应用》杂志社
ChinaUnix.net 技术社区
赵惠斌简介:
中科院软件所博士,红旗linux嵌入式事业部项目经理,研究方向基于Linux实时操作系统研究和开发。
[分享]Oreilly.linux.device.drivers.3rd.edition
Linux运行时内核分析 第二版发布
Linux 运行时内核分析(二版)
我们基于RH9 内核从两部分来分析Linux系统动态运行过程
一:系统初始化开始,Linux进入保护模式,初始内存系统、中断系统、文件系
统等,直到创建第一个用户进程。
二:用户进程通过系统调用主动进入内核,CPU 接受中断请求被动执行各种中
断服务。
第一部分 系统初始化
进入保护模式 Arch/i386/boot/Setup.s
gdt:
.fill GDT_ENTRY_KERNEL_CS,8,0 #空12×(8个字节=2个双字),用0 填充。
.word 0xFFFF # 4Gb - (0x100000*0x1000 = 4Gb)
.word 0 # base address = 0
.word 0x9A00 # code read/exec
.word 0x00CF # granularity = 4096, 386
# (+5th nibble of limit)
.word 0xFFFF # 4Gb - (0x100000*0x1000 = 4Gb)
.word 0 # base address = 0
.word 0x9200 # data read/write
.word 0x00CF # granularity = 4096, 386
gdt_48:
.word 0x8000 # gdt limit=2048,
# 256 GDT entries
我们进入保护模式之后选择子首先应该是0x60 = 1100000b, 右移3 位为1100 =
0xC = 12 ,这就是code在GDT里的位置。当然这只是第一次进入保护模式,以
后还会调整。
进入分页模式 arch/i386/kernel/head.S
.org 0x1000
ENTRY(swapper_pg_dir)
.long 0x00102007 #基地址为0x00102000,就是下面pg0,0x00100000是内核
加载的地方,1M的位置
.long 0x00103007
.fill BOOT_USER_PGD_PTRS-2,4,0 #768-2 (long) 0
/* default: 766 entries */
.long 0x00102007
.long 0x00103007
/* default: 254 entries */
.fill BOOT_KERNEL_PGD_PTRS-2,4,0 #256-2(long) 0
# 这个说明了内核是1G,用户就3G。
.org 0x2000
ENTRY(pg0)
.org 0x3000
ENTRY(pg1)
说明映射了两个页面,一个页面代表4M, 每个pg0 里的一项代表4K。具体pg0
数据是用程序填充的 参考L82。L101 通过短跳转进入分页(但eip 还不是),L104
通过绝对地址完全进入分页。比如L105的地址是0xC0100058 =1100 0000 0001
0000 0000 0000 0101 1000B,高10 位为1100 0000 00 = 0x300 = 768。从
swapper_pg_dir里找768项就是0x00102007,检查之后基地址为0x00102000;就是
pg0,再看0xC0100058 中间10位01 0000 0000B = 0x100 = 256,再找pg0 的256项
应该为00100***,那么最后的物理地址为0x00100058,所以内核里的虚拟地址换
物理地址很简单,就是0xC0100058 - 0xC0000000 = 0x00100058 就是物理地址。
现在系统只是映射了8M的内存空间,之后还会调整。
内存管理
物理内存管理
第一次探测 Arch/i386/boot/setup.S L281
在这里使用了三种方法,通过调用0x15 中断:
E820H 得到memory map。
E801H 得到大小。
88H 0-64M.
第二次探测
start_kernel() -> setup_arch()
这里主要是对物理内存的初始化,建立zone区。并且初始化page。
start_kernel() -> setup_arch() -> setup_memory_region()
把bios 里的memory map 拷贝到 e820 这个全局变量里。
会在屏幕上显示
BIOS-provided physical RAM map:
BIOS-e820: 0000000000000000 - 000000000009FC00 (usable)
BIOS-e820: 0000000000100000-0000000002000000 (usable)
BIOS-e820 说的是通过e820 来读取成功的数据,第一个代表起始地址,后面接
着的是大小。usable 说明内存可用。还有 reserved, ACPI data, ACPI NVS 等。
第二条说明起始地址为0x100000 = 1M,大小是0x2000000 = 32M 内存。
start_kernel() -> setup_arch() -> setup_memory ()
start_kernel() -> setup_arch() -> setup_memory ()->find_max_pfn()
通过e820计算出最大可用页面。
e820.map[1].addr = 0x100000 e820.map[1].size = 0x1f00000,那么start =
PFN_UP(0x100000) = (0x100000+0x1000(4096 = 1>>12)-1)>>12 =
0x100FFF>>12=0x100, end = PFN_DOWN(0x2000000) = 0x2000000 >> 12 =
0x2000 = 8192,那么max_pfn = 0x2000 就是最大的页面
start_kernel() -> setup_arch() -> setup_memory ()->find_max_low_pfn()
主要是高端内存的限制。
max_low_pfn = max_pfn 不能大于896M, PFN_DOWN((-0xC0000000 -
0x8000000(128<<20)) = (0x38000000 = 896M限制)) = 0x38000
start_kernel() -> setup_arch() -> setup_memory ()-> init_bootmem()
引导内存分配只使用在引导过程中,为内核提供保留分配页,并且建立内存的
位图。
比如_end 为0xc02e5f18,start_pfn = PFN_UP(__pa(&end)) = 0x2e6,所以
....................
..................
.........
struct inet_protocol *inet_protocol_base = IPPROTO_PREVIOUS; L100
所以它指向的是 icmp_protocol,但是我们再在protocol.c 里向上看,在定义
icmp_protocol 时, IPPROTO_PREVIOUS 指向的是udp_protocol , 所以
icmp_protocol里的next = udp_protocol,同理,向上推,实际上这是在编译时就
完成了一个链表。最后IPPROTO_PREVIOU 指的就是一个头。现在明白之后就
知道循环是怎么回事了。
通过inet_add_protocol把协议添加到inet_protos表中
接着各种注册信息。
整体来说,网络的初始化比较简单。我们会在第二部分从用户角度上来分析网络
具体的流程。
待续...
后记
杨玲
QQ 50111473
Email: yang__ling2000@163.com
OSDL Issues First Release of Desktop Linux Capabilities Docu
BEAVERTON, Ore. - February 14, 2005 - The Open Source Development Labs (OSDL), a global consortium dedicated to accelerating the adoption of Linux®, today announced the availability of Desktop Linux Capabilities, version 1.0, a document created with the participation of key industry vendors, large end user customers and leaders in the development community that defines a target for what will make Linux desktops successful in the enterprise.
''OSDL is committed to accelerating use of Linux on desktop computers in the enterprise,'' said Tim Witham, CTO of OSDL. ''We're fostering an open forum where IT vendors, IT managers, and the Linux development community can discuss and define the capabilities required in future Linux desktops. We invite the Linux community and the rest of the industry to participate.''
The OSDL Desktop Linux Capabilities document was developed by current OSDL member companies after reviewing the requirements of enterprise desktop users. The document defines capabilities that address the needs of four types of desktop Linux users:
''The OSDL Desktop Linux Working Group found that Linux operating system adoption in the enterprise is directly tied to the number of ISV applications available for Linux'' said J. Craig Manning, senior manager, IT for Cisco and chair of the Desktop Linux Working Group Steering. ''We are releasing the first version of the capabilities document to support an open process to solicit feedback on capabilities which we will incorporate into our future work.''
Desktop Linux capabilities are grouped into eight application layers: hardware support, operating system services, application services, system security, network services, browser, installer, and accessibility.
''In keeping with our customer-centric approach, AMD supports the Desktop Linux Capabilities document and encourages our enterprise Linux customers and ISV partners to review the document and provide feedback,'' said Joe Menard, corporate vice president, Software Strategy and Alliances, AMD. ''We will continue support of OSDL and the open source community in their efforts to develop software solutions that meet the needs of the enterprise.''
The Desktop Linux Capabilities document is necessarily forward looking and describes capabilities which may or may not be present, or may not be fully developed on any current system. For this reason the capabilities document should not be regarded as any form of desktop specification which can be used to evaluate a current desktop implementation, rather it captures the needs of the enterprise.
''Novell's support for the OSDL Desktop Linux working group effort further demonstrates our focus on the needs of enterprise customers who are increasingly looking at Linux as a viable desktop choice,'' said Alan Nugent, chief technology officer of Novell. ''We will continue to work closely with the Linux community as the Linux desktop matures.''
''We are seeing widespread worldwide demand for Linux based desktop and client systems,'' said Michael Evans, VP of Partner Development at Red Hat, ''We believe efforts like OSDL DTL that can help gather end user and market input for capabilities in future Desktop Linux versions can be very helpful to the overall market.''
The OSDL Desktop Linux Capabilities document is freely available online from OSDL at OSDL Desktop Linux Capabilities document .
Linux 2.6.8.1 CPU Scheduler Paper
http://josh.trancesoftware.com/linux/
| Linux 2.6.8.1 CPU Scheduler Paper | |
This paper is intended to be an introduction to the Linux 2.6.8.1 CPU scheduler implementation. Please send questions/comments to josh@trancesoftware.com. Click here to download as a PDF Click here to download the LyX file Click here for a patch against the Linux 2.6.8.1 sched.c that adds more comments (note: this has not received as much attention to detail as the paper, but it should be quite accurate - feel free to email corrections to me) By Josh Aas | ![]() |
Ldd3 is out
http://www.oreilly.com/catalog/linuxdrive3/desc.html
Device drivers literally drive everything you're interested in--disks, monitors, keyboards, modems--everything outside the computer chip and memory. And writing device drivers is one of the few areas of programming for the Linux operating system that calls for unique, Linux-specific knowledge. For years now, programmers have relied on the classic Linux Device Drivers from O'Reilly to master this critical subject. Now in its third edition, this bestselling guide provides all the information you'll need to write drivers for a wide range of devices.
Over the years the book has helped countless programmers learn:
The new edition of Linux Device Drivers is better than ever. The book covers all the significant changes to Version 2.6 of the Linux kernel, which simplifies many activities, and contains subtle new features that can make a driver both more efficient and more flexible. Readers will find new chapters on important types of drivers not covered previously, such as consoles, USB drivers, and more.
Best of all, you don't have to be a kernel hacker to understand and enjoy this book. All you need is an understanding of the C programming language and some background in Unix system calls. And for maximum ease-of-use, the book uses full-featured examples that you can compile and run without special hardware.
Today Linux holds fast as the most rapidly growing segment of the computer market and continues to win over enthusiastic adherents in many application areas. With this increasing support, Linux is now absolutely mainstream, and viewed as a solid platform for embedded systems. If you're writing device drivers, you'll want this book. In fact, you'll wonder how drivers are ever written without it.
Cell Architecture Explained
Cell Architecture Explained
The first Cell based desktop computer will be the fastest desktop computer in the industry by a very large margin. Even high end multi-core x86s will not get close. Companies who produce microprocessors or DSPs are going to have a very hard time fighting the power a Cell will deliver. We have never seen a leap in performance like this before and I don't expect we'll ever see one again, It'll send shock-waves through the entire industry and we'll see big changes as a result.
The sheer power and low cost of the Cell means it will present a challenge to the venerable PC. The PC has always been able to beat competition by virtue of it's huge software base, but this base is not as strong as it once was. A lot of software now runs on Linux and this is not dependant on x86 processors or Microsoft. Most PCs now provide more power than is necessary and this fact combined with fast JIT emulators means that if necessary the Cell can provide PC compatibility without the PC.
It will not just attack the PC industry but expect it to be widely used in embedded applications where high performance is required. This means it will be made in numbers potentially many times that of x86 CPUs and this will reduce prices further. This will also hurt PC based vendors desires to enter the home entertainment space as PC based solutions [Entertainment] will be more complex and cost more than Cell based systems.
This is going to prove difficult for the PC as CPU and GPU suppliers will have essentially nothing to fight back with. All they can hope to do is match a Cell's performance but even that is going to be incredibly difficult given the Cell's aggressive Cray-esq design strategy.
Cell is going to turn the industry upside down, nobody has ever produced such a leap in performance in one go and certainly not at a low price. The CPU producers will be forced to fight back and irrespective of how well the Cell actually does in the market you can be sure that in a few short years all CPUs will be providing vastly more processing resources than they do today. Even if the Cell was to fail we shall all gain from it's legacy.
Not all companies will react correctly or in time, this will provide opportunities for newer, smaller and smarter companies. Big changes are coming, they may take years but the Cell means a decade from now the technology world is going to look very different.
Introduction
Designed for the PlayStation 3, Sony, Toshiba and IBM's new "Cell processor" promises seemingly obscene computing capabilities for what will rapidly become a very low price. In these articles I look at what the Cell architecture is, then I go on to look at the profound implications this new chip has, not for the games market, but for the entire computer industry. Has the PC finally met it's match?
To date the details disclosed by the STI group (Sony, Toshiba, IBM) have been very vague to say the least. Except that is for the patent application which describes the system in minute detail. Unfortunately this is very difficult to read so the details haven't made it out into general circulation even in the technical community.
I have managed to decipher the patent and in parts 1 and 2 I describe the details of the Cell architecture, from the cell processor to the "software cells" it operates on.
Cell is a vector processing architecture and this in some way limits it's uses, that said there are a huge number of tasks which can benefit from vector processing and in part 3 I look at them.
The first machine on the market with a Cell processor will steal the performance crown from the PC, probably permanently, but PCs have seen much bigger and better competition in the past and have pushed it aside every time. In part 4 I explain why the PC has always won and why the Cell may have the capacity to finally defeat it.
In part 5 I wrap it up with a conclusion and list of references. If you don't want to read all the details in parts 1 and 2 I give a short overview of the Cell architecture.
In Parts 1 and 2 I look at what the Cell Architecture is. Part 1 covers the computing hardware in the Cell processor.
Part 2 continues the look at the insides of the Cell, I look at the setup for stream processing then move on to the other parts of the Cell hardware and software architecture.
Cells are not like normal CPUs and their main performance gains will come from the vector processing APUs, in this section I look at the type of applications which will benefit from the Cells power.
x86 PCs own almost the entire computer market despite the fact there have been many other platforms which were superior in many ways. In this section I look at how the PC has come to dominate and why the Cell may be able to knock the king from his throne.
Part 5: Conclusion and References
© Nicholas Blachford 2005.
From http://blogs.msdn.com/mikehall/archive/2005/01/13/35247
A few days ago I posted an article from Cots Journal Online which discussed some of the shortcomings of Linux use in embedded systems. Based on some of the comments posted back to the blog it would appear that Linux is used because of the community which surrounds it rather than for the technical merits of the operating system and tools - for someone that's lived in the embedded space before working at Microsoft I find this somewhat surprising - I based my choice of processor, components, and (if needed) operating system on the technical merits of the operating system and tools.
Let me ask this question... If you are starting an embedded system development project next month and you've been asked by your manager to select the appropriate processor, reference board, and operating system - do you choose Linux because it's considered to be hip/trendy or do you make the decision based on the technical merits of the processor, silicon vendor, system integrators, reference hardware, and operating system technologies and tools ? - do you consider using non-Linux operating systems in any of your embedded designs, and if so, why (and why not).
ok, so let's examine the COTS Journal Online article and walk through each of the items and see how Windows Embedded operating systems stack up... - I mentioned in a comment to the original post that I don't want this to turn into a "Linx is better than Windows is better than Linux" discussion, no throwing of mud or Fud - let's try to stick to the facts and consider both operating systems for their technical merits, after all, that's what really matters, right ?
Interrupt Latency
<snip>By definition, a real-time system is one in which an event (for example, an interrupt from an important peri-pheral device) must be handled within a bounded (and typically short) amount of time; failure to respond causes a failure in the embedded system. Many embedded systems have real-time requirements; desktop systems do not. Along with context switch time, interrupt latency is the most often analyzed and benchmarked measurement for embedded real-time systems. Operating system architecture is the most significant factor for determining interrupt latency and thread response times in an embedded system. </snip>
Microsoft has two embedded operating systems (three if you also count SPOT), Windows CE and Windows XP Embedded.
Windows XP Embedded is not a real-time operating system, this is a desktop operating system which has been componentized (approx 12,000 components, 9,000 of which are drivers, 3,000 are operating system components), although Windows XP Embedded is not a real-time operating system it's possible to add real-time response from 3rd party real-time extensions from companies such as Venturcom and Tenasys - check out the Interrupt Latency technical paper on the Tenasys web site (needs registration), Interrupt latencies were consistently measured as being < 20uS on a Pentium 133MHz with 32MB Ram.
Why would someone consider using Windows XP Embedded with a real-time extension ? - surely it makes sense to choose a real-time operating system from the get-go, right? - Windows XP Embedded runs on the x86 processor and contains all the same operating system technologies as the Windows XP Professional operating system, this means that you can quickly configure and build an operating system that supports a wide range of hardware components, ranging from USB2.0/1394 external hard drives, USB WebCam's, high-end video cards, TV recording cards - and also has embedded enabling features for booting from the network, from flash, CD-Rom, headless, and other interesting features - there's a ton of existing programs and drivers that work with Windows 2000 or Windows XP, these can be used without any changes on Windows XP Embedded - so you get the best of both worlds, broad hardware support, quick and easy operating system configuration, and support for Hard-Real-Time extensions.
ok, so what about Windows CE ? - Windows CE is a hard-real-time operating system out of the box (originally the operating system was considered to be soft-real-time, but we made changes to the kernel for the Windows CE 3.0 release which made the operating system hard-real-time - let me know if you would like a discussion about the changes and I will follow up in another blog post). What do we mean by "hard-real-time", take a look at the definition of Hard-Real-Time from Nat Framptons realtimeonline site, let's examine some of the 3rd party tests of Windows CE.
The following Windows CE tutorial may also be of interest to better understand the operating system and interrupt architectures.
Microsoft Windows CE Operating System and Memory Architecture
Watch this video to get an in-depth look at the internal workings of the Windows CE operating system. This tutorial covers operating system architecture and memory management of Windows CE. (51:03 minutes)
100K Version | 300K Version
There are also some resources that may assist with your understanding of Windows CE real-time behavior.
Scheduling
<Snip>Linux has no such provision for prioritizing threads relative to interrupts; however, the actual situation is worse. Real-time operating systems provide priority-based scheduling because it must be possible to guarantee that the most critical threads in the system can run immediately in response to an event. It is forbidden to use heuristics or any other constructs in the kernel that might make this response nondeterministic.</Snip>
Windows CE supports 256 levels of thread priority, all threads in the system are created by default at thread priority 251, this can be adjusted in two ways, first through a call to CESetThreadPriority (which changes the thread priority), and CESetThreadQuantum (which changes the amount of time a thread gets when it's scheduled by the kernel). we can clearly see from the real-time discussion above that Windows CE 5.0 response times for hardware interrupts are within the bounds required by real-time systems.
Device Drivers
<Snip>Device driver code adds less risk to the system if it runs in its own protected address space. An operating system architecture designed to facilitate virtual device drivers is preferred over the traditional method of requiring device drivers to run in physical memory along with the kernel.</Snip>
Windows CE device drivers run in the context of the device driver manager (Device.exe), interrupt handling is divided into two sections, the ISR (Interrupt Service Routine) which runs in the kernel space, and the IST (Interrupt Service Thread) which runs in the context of the device driver manager (or as a thread within a process), the ISR has limited functionality, this has access to physical hardware and memory but doesn't have the ability to make operating system calls - the ISR passes off to the Kernel, which in turn wakes up the appropriate IST thread (through a call to SetEvent on a registered event handle) - the IST is special cased in that it can only make a call to WaitForSingleObject - a call to WaitForMultipleObjects would of course break the determinism of the operating system - at the IST level (since this is running in user mode) the IST has full access to operating system API's (for example a Touch Screen Driver could call mouse_event to synthesize mouse motion and button clicks).
Perceived to be Free
<Snip>The hidden "royalty" due to Linux's large footprint is just one example of the misconception that Linux is "free". MontaVista, purveyors of the "Hard Hat" flavor of Linux, charges $15,000 per developer per year to support its version of Linux.</.Snip>
Windows CE and Windows XP Embedded evaluation tools are free to download from the WindowsEmbeddedKit website - the evaluation tools run for 120 days, after which you will need to use the full version of the operating system development tools which costs $995 - Licensing of the operating system doesn't kick in until you ship a final version of your device, this means that you can configure, build, debug, and ship embedded operating system images to your customers to evaluate and test without needing to license the operating system - it's only when you ship your final product that you need to license the operating system - for hobbyists or home tinkerers this is not an issue, you can build and deploy operating systems for your own use without needing to license the operating system (of course if you're planning on selling the devices then you do need to license the O/S) - How much is a license ? - Check out the "How to Buy" page on MSDN/Embedded.
As far as support is concerned there are various levels of support ranging from free support (newsgroups, online chats, free incidents with the development tools), partner support - there are over 2,500 partners registered on the Windows Embedded Partners site which can assist with hardware development, software application development, BSP (Board Support Package) development, training, real-time on Windows XP Embedded, and so on... - There's also paid support through Microsoft Product Support - for a complete listing of support options, go here.
Long Term Support
<Snip>Most embedded products have a shelf life of several years. An aircraft avionics system may be in development for as long as a decade before it is fielded, and then it might remain in service for much longer than that. Even the life of a handheld PDA may span multiple years from the start of development until obsolescence.
Embedded systems developers put a high value on a vendor that has a stable, successful, proven business model, because they must rely on that vendor to support their electronic products for such an extended period of time and to be around for the next generation of product development as well.</Snip>
Microsoft Embedded operating systems are supported for 7 years after the release date of the operating system - It's generally realized that Embedded Products and Desktop Products are not the same thing, in the desktop world consumers are (perhaps) expected to update to the latest and greatest version of product "x", some embedded devices are shipping and running for 15+ years without having an operating system update - of course this varies depending on the type of device you're building, in the consumer electronics space device updates occur on a far more regular basis than deeply embedded, real-time, robotics and/or telecoms test kit. For a listing of Microsoft's support program for embedded systems take a look at the Embedded Operating Systems Lifecycle page.
The GPL
<Snip>Linux is licensed under the GNU Public License (GPL), which governs how companies may incorporate the licensed software into the products that they sell to their customers. Much has been written about the pitfalls of incorporating GPL software into a product. An often overlooked consideration, however, are the costs of having to even worry about these licensing issues. The obvious concern is whether a proprietary product will be subject to the GPL because of its use of a GPL product. </Snip>
I don't think there's any need to talk to this point, suffice to say that Windows CE is not licensed under the GPL, we do ship 2.5 Million lines of "Shared Source" with the Windows CE 5.0 product, this is available for OEM's to use to get a better understanding of the operating system, assist with debugging and bringing up the operating system on new hardware - any IP that you add to a Windows CE platform continues to be your IP, there's no nead for you to share this with anyone.
The original article from Cots Journal Online made a number of statements about Linux in embedded systems, I've tried to list out how Windows CE compares against each of these items - I would be interested in your view on the Linux article, are the statements correct about the real-time behavior of Linux, Driver model, support, perceived cost etc...
- Mike
posted on Thursday, January 13, 2005 1:45 PM
Well, couple of things regarding the choice of OS:
1) Sometimes, for embedded systems that use off-the-shelf underlying platforms, the system already comes with Linux and busybox, so not much choice there.
2) It's easy to introduce bash and common scripting languages for simple test scripts, saves time on test development.
3) If we're careful to build our apps on top of GPLed code and not violate the terms, we own the complete platform by the time the design goes into production.
4) There's little to nothing as far as tools for writing Windows Embedded apps on Linux desktops (or am I missing something)?
5) The same goes for testing tools, although I suppose LabView would compensate for lack of testing suites for Linux.
6) The components available for Windows seem to target PDA makers. DirectX, .NET Framework, Windows Media. What if I am building a point-of-sale gun for reading UPC & RFID tags?
I am sure I am wrong on several of the issues above or simple lack proper information regarding embedded OSs from Microsoft, but nevertheless that's the usual list.
Well, couple of things regarding the choice of OS:
1) Sometimes, for embedded systems that use off-the-shelf underlying platforms, the system already comes with Linux and busybox, so not much choice there.
2) It's easy to introduce bash and common scripting languages for simple test scripts, saves time on test development.
3) If we're careful to build our apps on top of GPLed code and not violate the terms, we own the complete platform by the time the design goes into production.
4) There's little to nothing as far as tools for writing Windows Embedded apps on Linux desktops (or am I missing something)?
5) The same goes for testing tools, although I suppose LabView would compensate for lack of testing suites for Linux.
6) The components available for Windows seem to target PDA makers. DirectX, .NET Framework, Windows Media. What if I am building a point-of-sale gun for reading UPC & RFID tags?
I am sure I am wrong on several of the issues above or simple lack proper information regarding embedded OSs from Microsoft, but nevertheless that's the usual list.