posted by Eugenia Loli on Mon 28th Apr 2003 15:48 UTC

"Optimizations, SPARC/PPC/Itanium/Opteron ports, third party tools"
8. Are there any plans to optimize FreeBSD by default for the i586 or i686 architectures only as opposed to plain i386? How are your port to PPC is coming along? Are there any plans for a working SPARC port? Most importantly, what about support for the AMD Opteron and Intel Itanium?

Scott Long: FreeBSD 5.0 stopped support for the 80386 in the default installation due to the pessimisation it brings to kernel. The 'make world' command makes it very easy to rebuild the entire OS, so we leave it up to users to decide what optimizations they want to enable.

FreeBSD 5.0 introduced support for the sparc64 platform. With used UltraSparc systems cheaply and easily available, this has been a hit. There are no plans for supporting the older sparc32 platform as it is quite dated in comparison.

AMD64 platform support is quickly gaining momentum. Peter Wemm from Yahoo! has a native 64-bit amd64 kernel booting right now, and it is only a matter of time before it is running useful userland applications. FreeBSD 5.0 also introduced support of the ia64 platform, though it only supported the Itanium1 systems. Itanium2 support has progressed significantly since then.

Wes Peters: i586 or i686 only? No, but FreeBSD already has a number of optimizations that are specific to each class of Intel (and AMD) processor.

Even more than that, parts of the kernel support functionality that only works on 586 or 686 processors. FreeBSD 5.1 will ship with support for PAE, the Physical Address Extensions in the 686-class processors. This means you can put more than 4GB physical RAM in a machine and make use of it. Each process still has a 4GB virtual address space, but you can have more than one 4GB process resident in memory without paging to external storage. This is very important for databases, for instance, where you may need to store large index tables in memory.

This doesn't mean we're going to remove support for 386- or 486-class processors, these optimizations are produced as you build the kernel or the rest of the system. In the BSD world, rebuilding the system is not seen as a barrier; in my home workstation it takes 30 minutes or so, on a garden-variety Athlon XP 2000+ system.

Note that some of gcc's optimizations produce code that fails, you do have to be careful when trying to optimize some kernel functions. We try to focus on correct and elegant code rather than relying on esoteric compiler optimizations to achieve performance. At the lowest levels, understanding the interactions between critical code segments, the data structures they reference, locking issues, and cache interactions lends enough complexity without worrying about what the compiler might be doing behind your back as well.

The SPARC64 and IA64 (Itanium) ports have been running stably for months now and were included in the 5.0 release. We even have clusters of machines building binary packages from the ports system for these architectures. x86-64 (Opteron) boots and runs but is still in the early stages of development. It is in the hands one one of our most experienced and capable developers (a fellow Core Team member) and I expect it to progress rapidly.

The PowerPC port has been progressing slowly, only a single developer is working on it. He has gotten the kernel booting on at least one of his development systems. You can keep up to date with his progress at the Daily Daemon News site. ;^)

Greg 'groggy' Lehey: Yes, we've been doing this for some time, and we'll continue to do so.

[ How is your port to PPC is coming along?]

Slowly. PPC is not a priority for the FreeBSD project: if you want BSD on PPC, buy a Mac. MacOS X is a BSD operating system, and it's not clear what advantages a FreeBSD implementation on this hardware would have for normal users.

Yes, we have a working SPARC port.

M. Warner Losh : The Sparc64 port is one of the tier 1 platforms in FreeBSD 5.x. A tier one platform has full support, and everything is expected to work on that platform. In addition, full releases are built by our release engineering team.

9. Are there any talks with Intel to port their compiler and tools to native FreeBSD? How about Rational's Purify? (commercial companies developing for or under FreeBSD might be in great need of these tools).

Scott Long: Intel's 'icc' and Rational's Purify both run great under FreeBSD's Linux emulation layer. This layer provides a linux-like kernel and userland environment for linux applications to run in. Linux games like Quake 3, Return To Castle Wolfenstien, and NeverWinter Nights also run flawlessly on FreeBSD via this layer. Some say they even perform better than running on native linux.

Wes Peters: Not that I know of, in either case. The Intel compiler for Linux runs adequately on FreeBSD and can be used to compile C source files into object files that are linked into FreeBSD executables. While the Intel compiler produces object files that are in some cases quite a bit faster on Pentium 4 processors, making a compiler that can't just plug into the Linux native development tools was a curious step.

If they would release the source code to the compiler we would have a port to FreeBSD in short order at no expense to Intel, but I dont' foresee that happening anytime soon.

Table of contents
  1. "Intro, Java, Corporate Support"
  2. "Linux, the desktop market"
  3. "Maturity of 5.x branch, speed of development compared to Linux"
  4. "How FreeBSD compares to other Unices"
  5. "Bug resolution, team work, graphical installer"
  6. "Optimizations, SPARC/PPC/Itanium/Opteron ports, third party tools"
  7. "XFree86 issue, re-unification of the BSDs, UFS2"
  8. "The SCO questionmark"
e p (0)    94 Comment(s)

Technology White Papers

See More