Click here to learn
about this Sponsor:
Home  |  News  |  Articles  |  Polls  |  Forum  |  Directory

Keywords: Match:
Interview: Porting Windows CE .NET to the Xbox
(Jan. 7, 2004)

According to its website, the "xbox-windows project" is an effort to bring Microsoft Windows operating systems to the Microsoft Xbox hardware platform. Members of the project recently announced that Windows CE .NET is now booting on the Xbox . . .
"Currently, we have a partial BSP for CE .NET 4.20, and working PCI, USB, Display, and Mouse drivers. Most of the "important" parts of the BSP are done, however some features are still lacking or bug ridden. We also have a simple, preliminary bootloader based on xbeboot from the xbox-linux project. With these in place, CE loads and runs properly, but is not yet very useful."
Additionally, the project has adopted the following guidelines:
  • Open Source; All of our works will be LGPL and readily available. (Note: GPL is NOT an option in most cases, as we are STATICALLY linking against closed, copyrighted code from Microsoft)
  • Legality; All of our works must remain legal, and not infringe upon anyone's copyrights or binding licensing.
  • Community; Anyone may contribute to the project in any area they choose, and anyone may use the project for whatever purpose they see fit, within the limitations set forth by "Open Source" and "Legality"
Intrigued by this open source community effort of porting Windows CE .NET to a popular and readily available consumer device (the Xbox), WindowsForDevices contacted the project's originator, who prefers to be known by the pseudonym "Artifex", to gain insight into the project's origins, goals, and plans for the future. Here's what we learned . . .



WindowsForDevices: How and when did the project originate, and who started it? How many developers are currently working on it?

Artifex: The project started about four months back, when, at my place of employment, we began to evaluate Pocket PC as a potential replacement platform for a rapidly aging Palm/Handspring solution. I decided that I would take a look at the Platform Builder, and the "guts" of the OS as part of my evaluation. Around the same time, I was running out of ideas for things to do with the Xbox. After building a few CEPC platforms, and reading over the CEPC source, it seemed only natural to create a BSP for the Xbox.

At first, I was the only developer. I did almost all of the BSP work, fixed a few bugs in the "xbeboot" bootloader from the xbox-linux project in order to get minimal kernels booting, and started the initial platform work. I only brought another developer, "stealth," on after being stuck with an especially frustrating bug, related to IRQ-SysIntr mappings. Being recently married, however, he didn't have much time to work with me on it, and mostly just "looked over my shoulder" and caught some of my mistakes.

Interestingly, I couldn't seem to get anyone else interested in doing development before release.

Now that it has gotten stable (and "pretty") enough for an initial release to the public, and now that an open, public project has been created, there are several people actively working on the project, more trying to learn the Platform Builder and Windows CE environment so that they can help, and some doing various other tasks related to the project, such as setting up the website and designing logos. At any given moment there are about 20 to 30 people in our IRC channel, and 5-10 of them tinkering with something-or-other.

WindowsForDevices: What are the goals of the effort?

Artifex: This will really be up to the people contributing to the project, as they will be the ones deciding the direction, and what "big picture" tasks take priority. I know that everyone seems to have a strong drive towards an eventual XP Embedded implementation, but most of us realize that this is a somewhat distant goal. Short-term, our focus is on device support. We are still lacking drivers for the network adapter, gamepad, and the Xbox file system. We all feel that these three components are crucial to any potential application of the project.

WindowsForDevices: How far have you progressed?

Artifex: The project is far enough along, now, that people can see it running and immediately realize the potential applications. However, the project is still in its infancy. Although most of the "fundamentals" are in place, and we can even build reasonably stable platforms with GUI and applications, there are still quite a few little bugs to be worked out, and even more work that has to be done on making it the sort of complete, friendly, easy-to-use platform that people expect from a Windows OS.

WindowsForDevices: Are you making use of Microsoft's "shared source" program to collaborate on the CE .NET sources in this project? Are you using the "shared platforms" option?

Artifex: Yes, we are making use of the Shared Source program for our work. As the Xbox is very similar to a PC platform, our BSP is based heavily on pieces from the CEPC platform. Also, our initial plans for support of the Xbox filesystem include extending the existing FAT filesystem code. However, we hope to eventually re-implement as much as possible of the portions of our bsp currently drawing from Microsoft's source. We have not yet reviewed and considered the Shared Platforms program to any major extent, and don't have any specific plans with it, currently.

WindowsForDevices: What have been the toughest challenges in the project, so far?

Artifex: I would have to say that the biggest roadblock has been in debugging. The Xbox lacks a serial port, and I had little success using the Ethernet for debugging. In the very beginning of the project, I used the LEDs on the box, and simple framebuffer fills for debugging, and later got a rudimentary "text mode" up. When I began to build more complete platforms, I started to write the debug logs out to some Flash attached to the LPC (X-Bus), the only open expansion on the hardware, and then read the flash back on a PC. This got to be tedious, and I eventually built some custom hardware to monitor the onboard I2C bus, and wrote the debugging information there. No interactive debugging was ever successfully implemented, and this proved to be a major hurdle in the end.

WindowsForDevices: Have you received any help from Microsoft?

Artifex: No, nor have I contacted them for any. We did make a few postings to the newsgroups with general questions, but nothing directly related to Xbox. I'm not quite sure how they'd take to the project. They have a long standing reputation of mostly ignoring what people are doing with the Xbox, with a few exceptions. I'm not sure if this would be one of them, and if it were, I'm not sure if they would respond positively or not. I'd be interested to hear their take on my work, and the project, however, and would welcome any friendly contact or assistance from them. I do have an indirect contact at Microsoft Games Studios, who told me that some of the staff there have tried CE on the Xbox, with mixed success.

WindowsForDevices: What can the modified Xbox (i.e. running CE .NET) be used for?

Artifex: Microsoft has made great efforts recently to make CE a practical operating system for more then just PDAs and cellphones. I wouldn't be surprised to see eventual CE-Xbox platforms for set-top home media centers, I-Appliances, embedded servers, etc. Heck, it's even been proposed that it would make a decent gaming platform! ;-)

WindowsForDevices: What are the next steps to the project?

Artifex: Most of our top priorities are related to getting organized and collaborating efforts. We're also working on making it as painless as possible to get a development environment up and running. After the initial "settling in" phase, our focus will be on Ethernet, filesystem, and gamepad support. After that, we will probably work on a more suitable bootloader, and building useful platforms. Like I said, however, the direction of the project is really up to those who chose to involve themselves.

WindowsForDevices: How can other developers get involved? And where can they download source code and other background info?

Artifex: Right now, the best way to get involved is to join our IRC channel which is #xbox-windows on server irc.oftc.net and speak to people there. We are working on setting up forums and a mailing list now, and will have these linked from the webpage when they are ready. We have a few developers, now, with some small amount of time behind Platform Builder, who have the initiative to really get the project rolling, but we can use as much help and support as we can get, obviously. Also, as one of our "down the road" goals is to bring XP Embedded to the Xbox, we'd certainly welcome, with open arms, anyone with experience with that platform, as well.

WindowsForDevices: Anything else you'd like to add?

Artifex: The Xbox "scene" in general has done some amazing things with the platform, and created an incredible community of thousands of enthusiasts who practically live, breath, eat, and sleep Xbox. I've always been a bit of a Microsoft "zealot," and think that some of the things that they've been doing lately are just incredible. The .NET initiative has dramatically changed my daily software development routine over the past couple of years, and in a very good way. I'm very glad that there has been such a positive response to my work, from users, interested developers, and the media. I've always firmly believed that great technology should not only be put to good use, but actively celebrated and, as far as I'm concerned, both CE.NET and the Xbox are great technologies.

WindowsForDevices: Thanks very much for sharing this information with the Windows Embedded Community, and good luck with your interesting and challenging project!


Why do it?



In the words of the project's README file . . .

"Because we can, and it's cool"



Further info



For further details on this project, please visit the project's website:

Xbox-Windows project website




About the interviewee: Nate (who prefers to be known as "Artifex" ) is 21 years old, lives in the northeastern U.S. and spends most of his time programming. He's been working with computers since early grade school, and is currently employed as a software engineer, mostly doing asp/asp.net work. He spends most of his evenings doing the sort of programming he really enjoys -- writing embedded software for the Xbox, various microcontroller projects, and, recently, experimenting with CPLD and FPGA projects including learning VHDL.



Related stories:

(Click here for further information)


7 Advantages of D2D Backup
For decades, tape has been the backup medium of choice. But, now, disk-to-disk (D2D) backup is gaining in favor. Learn why you should make the move in this whitepaper.

4 Legal Reasons to Control Internet Access
The Internet is obviously a valuable resource for many organizations. However, many are exposed to legal liability concerns because they fail to control Internet access. Learn if you're safe in this white paper.

Rapidly Resolve J2EE Application Problems
Whether you are in the process of building J2EE applications or have J2EE applications already running in production, you must ensure that they deliver the expected ROI. Learn how in this white paper.

Load Testing 2.0 for Web 2.0
There are many unknowns in stress testing Web 2.0 applications. Find out how to test the performance of Web 2.0 in this white paper.

Build Better Games Online
For the game infrastructure providers, life is complex. Making money from games has become more complicated. Why? Find out in this white paper.

Building a Virtual Infrastructure from Servers to Storage
This white paper discusses the virtual storage solutions that reduce cost, increase storage utilization, and address the challenges of backing up and restoring Server environments.

Gaining Faster Wireless Connections with WiMAX
Welcome to what is quickly becoming the hyperconnected world where anything that would benefit from being connected to the network will be connected. Learn more in this white paper.

Is Your Desktop a Security Threat?
The new wave of sophisticated crimeware not only targets specific companies, but also targets desktops and laptops as backdoor entryways into those business’ operations and resources. Learn how to stay safe in this white paper.

Increasing SAN Reliability by 100 Percent
Storage area networks (SAN) are a strong part of storage plans. Learn how to increase your reliability and uptime by 100 percent in this case study.

 


Got a HOT tip?   please tell us!
Free weekly newsletter
Enter your email...
Click here for a profile of each sponsor:
PLATINUM SPONSORS
(Become a sponsor)

ADVERTISEMENT
(Advertise here)


Updated! The latest Windows-powered...

mobile phones!

other cool
gadgets

HOT TOPICS
Microsoft targets PNDs with new embedded OS
Microsoft tips .NET MF 3.0 highlights
Microsoft previews Windows Embedded Standard
Microsoft offers free Windows CE 6.0 textbook
Microsoft renames embedded operating systems
Microsoft unveils Windows Mobile 6.1
New Atom models target low-cost PCs
REFERENCE GUIDES
Windows Device Showcase
Intro to Windows Embedded
Intro to Shared Source
Real-time Windows Embedded
Windows Embedded books
Join our Windows Embedded discussion forums:
Windows XP Embedded
Windows CE
Windows Mobile


Windows Embedded developer newsgroups
Windows CE
XP Embedded
PocketPC
Smartphone

Microsoft's Windows Embedded resources
Embedded dev center
Mobile dev center
Windows CE tutorials
XP Embedded tutorials
Windows Embedded seminars
Windows Embedded application categories
3rd-party partners


BREAKING NEWS

• XPe tablet is daylight-readable
• Rugged handheld offers SPI expansion
• 32GB flash chips target mobile devices
• Panel PC doubles up on gigabit, Firewire
• Free tool tracks Windows Mobile API usage
• Windows XP "not ready for prime time" on XO
• Car PC drives multiple displays
• App keeps Mac in sync with Windows Mobile
• Power meter transmits data to Windows Mobile devices
• Atom-based tablet runs Windows XP Embedded
• Low-cost ARM9 SBC supports Windows CE
• Lenovo launches a netbook
• High-end phone market defies economic woes
• Intel aims x86 at GPU market
• Satellite phone service will launch with Windows Mobile


MOST POPULAR (last 90 days)
• Updated! Windows Mobile Showcase
• "Netbook" uses Intel's Atom N270
• Windows Mobile trouncing the iPhone?
• Windows Mobile 6.1 phone has GPS
• iPhone-like Windows Mobile device stores 16GB
• Asus shipping Atom-ized Eee PCs
• Windows CE thin client hides in wall sockets
• Intel's Atom powers mini-ITX board
• WinMo hacker .NETS an app a day
MOST POPULAR (Classics from the vault)
The Windows Mobile Phones Showcase
Windows XP Embedded USB boot
Troubleshooting Windows XPe's blue screen "Stop 0x0000007B" error
Asus reveals $190 mini notebook
HTC adds GPS to Windows Mobile Touch line
Windows Mobile VPN client plays with Cisco
Guide to HTC's Windows Mobile smartphone platforms
Customizing Windows XP Embedded thin clients
The Windows Mobile Pocket PCs Showcase

Also visit our sister sites:


Sign up for WindowsForDevices.com's...

news feed

Home  |  News  |  Articles  |  Polls  |  Forum  |  Directory  |  About  |  Contact
 

Ziff Davis Enterprise Home | Contact Us | Advertise | Link to Us | Reprints | Magazine Subscriptions | Newsletters
Tech RSS Feeds | White Papers | ROI Calculators | Tech Podcasts | Tech Video | VARs | Channel News

Baseline | Careers | Channel Insider | CIO Insight | DesktopLinux | DeviceForge | DevSource | eSeminars |
eWEEK | Enterprise Network Security | LinuxDevices | Linux Watch | Microsoft Watch | Mid-market | Networking | PDF Zone |
Publish | Security IT Hub | Strategic Partner | Web Buyer's Guide | Windows for Devices

Developer Shed | Dev Shed | ASP Free | Dev Articles | Dev Hardware | SEO Chat | Tutorialized | Scripts |
Code Walkers | Web Hosters | Dev Mechanic | Dev Archives | igrep

Use of this site is governed by our Terms of Service and Privacy Policy. Except where otherwise specified, the contents of this site are copyright © 1999-2008 Ziff Davis Enterprise Holdings Inc. All Rights Reserved. Reproduction in whole or in part in any form or medium without express written permission of Ziff Davis Enterprise is prohibited. Windows is a trademark or registered trademark of Microsoft Corporation in the United States and/or other countries and is used by WindowsForDevices under license from owner. All other marks are the property of their respective owners. WindowsForDevices is an independent publication not affiliated with Microsoft Corporation.