When you hear "Intel Inside," you're likely to think of hardware, particularly processor technology, chip sets, motherboards, servers, and desktops. But the company has a "softer" side as well — for a number of years, Intel has been building up its software divisions, creating tools that target everything from performance libraries, to XML, to mobility.
When you hear “Intel Inside,” you’re likely to think of hardware, particularly processor technology, chip sets, motherboards, servers, and desktops. But the company has a “softer” side as well — for a number of years, Intel has been building up its software divisions, creating tools that target everything from performance libraries, to XML, to mobility.
The software put together at Intel isn’t going to go mainstream anytime soon — not unless consumers are eager for cluster tools — but has nonetheless become vital for developers who want to utilize Intel technology, such as multi-core processing.
Developer centers have been built not just around the company’s hardware, but also in emerging areas like digital home and media, game development, and mobilized software. Threaded throughout the efforts, too, are open source and Linux, which are gaining increasing attention at Intel now that its efforts in both have been combined for more effectiveness.
Although Intel has been involved in software in some way for many years, its Software and Solutions Group became more visible in 2005 when it announced the creation of the Intel Software Network, a collection of software development products, tools, training, and advisory services geared toward helping developers bring products to market on Intel platforms. Although the network was unveiled during the introduction of the company’s Xeon processor MP line, it actually coincided with a number of other platform efforts that were in the works, including multi-core processors, silicon technologies for virtualization, and multi-threading.
The initial rollout of the network focused on developers working with multi-core architectures, 64-bit extensions, and to a lesser degree, mobile applications. The program included a multi-core readiness program that gave developers Intel Threading Tools, a “Developer Dispatch” containing software tools and technical content, and Intel Software College courses.
The Software College has broadened over the past few years to become a major part of the company’s offering to developers. Programs range from instructor-led classroom training to online courses and Webcasts. Sample classes like “Developing Applications for Multi-Core Processors,” “Application Tuning for Clusters,” and “Multi-Core Programming” give students ample time to play around with Intel Software Development Products, which include tools like compilers and threading analysis kits.
Intel’s compilers, in general, have been especially touted to developers. In 2005, Intel announced new tools for developers that would help them build threaded applications and extract better performance from applications on multi-core platforms. The Intel Compilers version 9.0 for C++ and Fortran also help improve security in Linux and Windows applications, Intel has noted.
The compilers include auto-parallelization options that automatically seeks opportunities in applications to create multiple execution threads, and supports OpenMP 2.5, an industry standard that simplifies the creation and management of multi-threaded application software.
Heading to Open Waters
Even before it got starry-eyed over the compilers, Intel was creating other software-based tools for developers. For instance, in 2004, the company unveiled tools for developers who might have encountered challenges in writing 64-bit code.
In general, the Intel Open Source Technology Center (OSTC) was developed because Intel saw a deeper requirement for software capabilities, one being driven by more platforms. The Center’s mission is to raise the visibility of Intel’s software efforts, and open source projects in particular, says Doug Fisher, vice president of the company’s Software and Solutions Group, and general manager of the group’s Systems Software Division. The worldwide group is responsible for a broad range of development, including pre-boot firmware, operating systems, virtualization, middleware software, graphics, and client/server projections.
“We’ve been participating in software for many years, and it was becoming apparent that there was a deeper requirement for software capabilities,” says Fisher. “Added to that was a continuing demand for platform choice. Those led to Intel fundamentally participating in open source at every level of the stack, so we can drive innovation around the pre-boot environment.”
About five years ago, there was recognition that Intel was in danger of someday working at cross-purposes with its independent software vendors (ISVs), Fisher notes. The decision was made to create more unification of its software efforts to benefit ISVs and Intel alike, so that there was more cohesive innovation around the company’s architecture. “We pulled together various organizations across Intel, and built out what is more of a product division instead of a bunch of labs,” Fisher says. “This enables the industry to take advantage of our platforms.”
Most recently, the company has partnered with Sun Microsystems so that developers can get the best out of Solaris, as well as Windows and Apple. Fisher notes that Intel also works with every major technology player, and is actively involved in community efforts as well. Fisher is on the board of the Linux Foundation, for instance, to help ensure that Intel is participating in the health of the Linux ecosystem.
An example of the type of open source efforts within the company is the formation of the Java Resource Center, which has put Intel developers working together with those from the Apache Harmony community, to create an open source implementation of the J2SE standard, and develop a modular run-time architecture. Intel is also working with Apache Harmony community members on a new garbage collector design and implementation. GCv5.
Intel developers are also working with the Eclipse community to improve the Java development process, particularly around Eclipse version 3.3. Company engineers have been working with the community to create a technology profiler that utilizes the modern Java tools interface, and have been exploring different ways to improve Java debugging by extending Eclipse.
The company has also been one of the first contributors to Xen, the open source virtual machine monitor for x86 that supports execution of multiple guest operating systems. Other projects include OpenHPI, to provide an open source implementation of the Service Availability Forum Hardware Platform Interface, and an open source implementation of Web Services Management.
“Basically, we work on everything when it comes to tools,” says Fisher. “For example, we have our own optimized compiler. It’s natural for Intel to be creating these tools because we’re very close to the internals of the CPU. Not that it’s easy to develop tools, but being so close to the silicon means we can write a better compiler, and we’ve done it for quite a long time.”
In the past, the OSTC overlapped in its efforts with another in-house group devoted to Linux. In 2002, the company started to bring the two groups together, which took about two years, and then brought in talent from the Open Source community, like Keith Packard and Denise Cooper, notes Imad Sousou, director of the OSTC. At Intel for over 10 years, Sousou has been involved in open source since the beginning of Linux strategy at Intel, and is responsible for building the open source competency at the company.
While bringing Linux and open source groups together, the company also began to utilize open source as a key advantage, and to work with the community in a more natural way, Sousou says. “It was somewhat of a change for Intel, to have our engineers working with community in an open way,” he notes. “But we saw that it was the norm for the community, and we wanted to go in that direction. I think this approach is unlike other companies, and it shows our close relationship to the community. It’s an advantage for us, but more importantly, it makes the products better.”
At this point, Intel has a fairly significant footprint in the community, he adds. Intel engineers have made contributions in areas ranging from power management, to graphics, to subsystems.
A notable project is the company’s Linux Kernel Performance group, launched in 2005 by a team of five Intel engineers working with the Linux community to further enhance the performance of the kernel. The data made available through a special site, linked to Intel’s open source software pages, allows community members to track performance gains and losses with every version, notes Intel’s Tim Chen.
“In recent years, Linux has been evolving very rapidly,” Chen writes. “The performance and scalability of the kernel has been a key part of the success. Various discussions have appeared on[ the Linux kernel mailing list] in the past regarding large performance regression between kernel versions. These discussions underscore the need for a systematic and disciplined way to characterize, improve, and test Linux kernel performance.”
To track performance, the engineers run a large set of benchmarks covering core components of the Linux kernel, such as the process scheduler, file system, network, and device drivers, on a variety of platforms every week.
Another Linux effort is the ongoing development of a Linux Ultra-Wide-Band (UWB) stack. UWB is a communication protocol for wide-band, but also serves as the low-level protocol for others like wireless USB and TCP/IP. Engineers have noted that Bluetooth and Firewire are also coming along in development.
OSTC’s graphics team is focused on creating free software drivers for the Intel 965GM Express mobile graphics controller. The Linux drivers include support for 2D and 3D graphics features for the mobile version of the newest generation Intel graphics architecture.
The Linux-ready Firmware Developer Kit team, meanwhile, tinkers with a tool that tests how well Linux works with the firmware of a developer’s machine. The main component of the kit is a bootable CD that can be downloaded from the team’s site and used to start the Linux kernel and launch a test application that assists in running some of the non-automatic parts of a firmware test plan.
The larger goal for the kit is to verify that the platform features are supported on Linux via the firmware, and that there are no “known bad bugs” in the firmware of a machine. By verifying platform features and checking for bad issues, the team is hoping to improve the experience of Linux users by preventing errant interactions between Linux and the firmware on production systems.
One of the most recent developments to come out of OSTC has been the development of PowerTOP, a tool that helps developers determine what software is using the most power.[ See the related story on Linux power management in this month's "Gearheads" column.]
The tool finds the software component that makes a laptop use more power than necessary while it’s idle. When a laptop is determined to be using more power than necessary, PowerTOP displays the top 10 activities on the computer during the sampling period. For example, the ipw2200 wireless driver may be waking up the CPU frequently even though the laptop might be connected to the network by an Ethernet cable.
As of kernel 2.6.21, the kernel no longer has a fixed timer tick. In theory, this could constitute a significant power savings because the CPU stays in lower power mode for longer periods of time while idle. More efficiency can make Linux more competitive with Windows on portable computers, Intel believes, since it can extend battery life on laptops, and especially be beneficial for servers that run constantly.
Although there’s more work to be done, Intel kernel programmer Arjan van de Ven has noted that what’s being seen at the company’s labs recently is that Linux on a laptop is consuming 15 to 25 percent less power during idle, compared to a code base just months ago.
Another development originates from Intel’s partnership with Red Hat. Red Hat has announced it will deploy appliances in a virtual machine to bring enterprise-class management and security to business PCs. Red Hat will deliver a software platform that supports desktop PCs using Intel vPro chip technology. Intel isn’t just providing the chips, though. The company is actively involved in the development of the necessary software components, including the hypervisor, software development kit, and service operating system, in collaboration with Red Hat.
The partnership, which is due to yield beta software by the end of the year and a general release next year, aims to bring the power of hardware-assisted virtualization to business desktop computing. It’s an aim that many companies have stated over the past few years as virtualization on the desktop becomes an ever-hotter topic, but Fisher believes that the Intel and Red Hat project will truly bring the built-in virtual appliance capability of business PCs into the market.
As it goes full steam ahead with its other Linux projects and gathers more open source interest along the way, the company has embarked on a new major effort that could have an effect on the realm of how Linux and mobile computing come together.
The company has recently taken the wraps off the Mobile Internet Linux Project, an open source project to provide Linux infrastructure and framework for a number of devices, according to Dirk Hohndel, chief Linux and open source technologist for Intel’s Software and Solutions Group.
The project is an extension of mobility-based work that’s been done at the company for the past few years. In particular, it synchs with the Intel Ultra Mobile Platform 2007, announced by senior VP and general manager Anand Chandrasekher at the Intel Developer Forum in Beijing in April.
At the forum, Intel unveiled how Santa Rosa processor technology — comprised of an Intel Core 2 Duo processor, Mobile Intel 965 Express chipset, and Intel Next-Gen Wireless-N Network connection — would reduce system power consumption to deliver the kind of battery life and energy efficiency so needed in the mobile technology arena.
Chandrasekher also announced the formation of the Mobile Internet Device Innovation Alliance, put together to work on engineering challenges like power management, wireless communications, and software integration.
The Mobile Internet Linux Project will provide a complete set of binaries, from power management, to the GUI framework and streaming media, as well as other components, notes Hohndel. There will also be downloadable images for developers to “play around with,” he adds.
Intel’s efforts with mobile Linux have already been praised by research firm Gartner, which lauded the company’s switch to Linux for mobile Internet devices, because it represents a shift away from operating system platform and towards content. In a research paper published last spring, the firm noted that the switch will be a critical success factor for the ecosystem, opening it up to new targeted development.
“The main goal at this point is to get the environment up,” Hohndel says. “This is just getting started, but it’s a very strong start.”
The impetus for the project came as a result of customer talks, Hohndel says. The OEMs that work with Intel kept noting that they wanted Linux for its small footprint, and believed that the operating system would give them more flexibility for working on different platforms. “Linux is already very established in the embedded area,” says Hohndel. “A bunch of vendors have been very successful, so it seemed like a logical choice.”
The company’s track record with Linux and its in-place Open Source development team also made the choice a natural one. Working within the Open Source community, and with developers like Red Flag Software and Canonical and key Linux distribution companies, Intel and others were able to come up with early versions and the innovation cycle began taking off from there.
“One of the things that’s really good about the Open Source community of developers, is that they love to see early code, they expect it,” says Hohndel. “In a funny way, developers are excited when something doesn’t work, because it gives them something they can work on. That really helps in terms of innovation, and that’s important, because in many ways, this is a new class of devices.”
The project is being driven out the company’s Open Source Technology Center, and Hohndel notes that although the full range of details will only roll out over the next few months, the company expects momentum to come quickly, particularly because Intel doesn’t see itself in competition with other mobile Linux efforts, such as those happening at Nokia.
“Open Source is a wonderful space, because you’re not competing with other projects trying to fill the same niche,” he says. “Instead, you’re just trying to provide good software for people that want to work with it.”
Linux All Around
In addition to the company’s open source software efforts, Intel has been very active in integrating Linux into its hardware realms as well. Major endeavors include:
Virtualization. Linux-based virtualization through Intel Virtualization Technology runs multiple operating systems in virtual machines, and Intel claims that it delivers near-native performance while maximizing the performance gains seen with multi-core platforms. Intel also continues to be a contributor to open source virtualization projects such as Xen, UML, and KVM, which advance virtualization capabilities in hardware and software combinations.
Graphics. Intel maintains and supports open source projects for four generations of graphics hardware, including the latest Intel 965 Express chipset, designed to support advanced rendering features.
Mobile and Embedded Devices. As seen in its announcements at the developer conference in Beijing last April, Intel is participating with the Open Source community to place Linux more deeply into mobile and embedded devices, and has been steadily cranking out products that use Linux, such as business laptops and home desktops.
Kernel and Firmware. Using the reliability, availability, and serviceability features built into Intel platforms, the company offers Linux kernel and firmware to support hot-plug for devices, and to enable error handling of system failures.
Power Management. Since Linux has proven to be adept at managing power consumption, Intel has integrated it into the company’s systems, using it for multi-core-aware scheduling and demand-based switching. The company has also been working to establish industry standards for compatible products for power management.
Networking and Wireless. Intel uses advanced Linux drivers for a number of hardware options, including PCI, WiFi, and copper. Intel also supports and provides open source drivers for all wired and wireless networking adapters.
Out of the Box. A major effort at Intel has been to create a more “out of the box” experience with Linux on the Intel platform, by making Linux drivers readily available, working with Linux distributors on testing and integration, helping hardware vendors by giving them a Linux-ready firmware development kit, and standardizing and supporting the Extensible Firmware Interface on Linux.
The next step will be to host a community portal, which the company hopes will draw even more developers and spark more community involvement with early devices and discussions about more features and stability. The challenges of bringing Linux and mobility together aren’t unique to Intel, Hohndel says. On many projects in the past, there have been issues with finding a GUI framework designed for a higher resolution, for example. Also, user interaction occurs in a different way, so there’s a need to create a new user front-end that accommodates how people might use mobile Linux.
“The core message is that we’re going to create a tool that allows you to build a software stack, and it will be optimized for memory and power,” says Hohndel. “What we’re doing is a community effort that enables others to create products based on this. We’re seeing this as an incubator.”