posted by Eugenia Loli-Queru on Wed 18th Jun 2003 15:47 UTC
"Solaris Interview, Part II"
6. Is OS research dead? In the past, there was a great deal of research about the basics of OS design, like allocators and scalable scheduling. Today, the focus seems to be on application-level advancements like new virtual machines and user-level development frameworks. Have OS kernels pretty much reached the end of their evolution, or do they see kernels continue to evolve, perhaps incorporating some of the research techniques like orthogonal persistence or exokernels?

CDE Andy Tucker: The nature of OS research has changed over the years. In the 80's and early 90's, there was a lot of "big systems" research; universities and industry labs would start by building an operating system, and then use that as a platform for investigating new ideas. So CMU had Mach, Berkeley had Sprite, Stanford had the V System, etc.. This meant that there was a lot of re-examination of basic OS constructs --- how to best build an OS from the ground up. As a result we had work on distributed systems, microkernels, etc. --- but the systems were all aimed at supporting the same applications, essentially the ones running on the researchers' desktops.

Now most of the research I see is based on existing OS platforms, usually Linux or one of the *BSDs. The focus is often on improving support for new types of applications --- multimedia, mobility, etc.. So we have fewer people looking at the basic structure of operating systems (with some notable exceptions), but more looking at how to make operating systems perform better from a user's point of view. The use of existing OS platforms also removes some of the barriers to entry for OS research --- universities with small OS groups and budgets can do interesting research without having to build an entirely new operating system.

7. 30 years after UNIX was recoded in C, most people still use C (or in some cases a little bit of C++) for the OS kernel. Is C perfectly adequate, or do they see some of the newer languages (C#, Java, or even modern C++ paradigms) being applied to OS design?

Andy Tucker: There have been various experiments in this area; as an example, Sun has developed operating systems in both C++ (SpringOS) and Java (JavaOS). While object-oriented languages offer a number of advantages in terms of ease of development for higher-level programming abstractions, this doesn't always benefit OS kernels as much as it would user applications. Since the kernel is the piece of software that most directly interacts with the hardware, the benefits of having a simple mapping between the language and machine instructions is often more compelling than ease-of-development features like garbage collection and templates. There are also issues like runtime support requirements that can be extensive, depending on the language. What we often wind up doing instead is taking some of the concepts from object-oriented languages, such as polymorphism, and finding creative ways to implement them in non-OO languages like C.

8. How do you feel Solaris process management technologies like the Fair Share Scheduler will stack up to the Linux O(1) scheduler. Furthermore, has Sun ever attempted to implement an O(1) scheduler for Solaris and if so, what problems/drawbacks they encountered which kept it out of the released kernels.

Gnome2 Andy Tucker: Solaris has actually had an O(1) scheduler for a number of years. The run queues are also per-CPU to maximize scalability. This isn't a secret, but we haven't talked about the technology itself much; we've been mostly focused on the results.

The "fair-share scheduler" is one of several scheduling policies in Solaris, which control how priorities are assigned to individual processes. This is separate from the scheduler, which handles dispatching processes onto processors in priority order.

The fair-share scheduler allows the allocation of CPU in the system to be divided among groups of processes according to proportions defined by an administrator. For example, on a system running both a mail server and a web server, the administrator might decide that if the system is busy, 2/3 of the CPU should go to the mail server, and 1/3 should go the web server. Although in the past the fair-share scheduler was available only as a separate product (Solaris Resource Manager), we decided that it was important enough technology for our customers to bundle in the core operating system.

9. Sun killed-off the Sun Linux distribution, but are you going ahead with Project Mad Hatter which includes a Red Hat Linux 9.x distro serving as a cheaper thin client for your existing customers? If yes, when is the project going to be deployed and how important the usability of the user interface and OS is? Is Sun going to pay extra attention in Gnome and its better integration to the underlying OS in the future?

Robert O'Dea: Project Mad Hatter is moving ahead as planned with a release targeted for the second half of this year. Mad Hatter provides an integrated client solution for Linux based on open source technology. The graphical desktop will be LSB compliant, which is more important to our customers than the particular open source components provided.

We are also focusing our efforts on the user experience, interoperability, and enterprise specific functionality. Enhancements include a unified Sun look and feel, enhanced Microsoft interoperability [by which we mean Samba integration, ability to access MS file shares and access to Exchange servers], printer management, file management and sync. Additionally, we will be providing enterprise functionality such as system administration and configuration tools, single-sign on and other applications.

As for GNOME, this is an integral part of the Mad Hatter software stack. Sun has been working with GNOME for many years, has made significant contributions to the GNOME community as well as integrated GNOME with the Solaris Operating Environment. With our experience, you can expect that integration with the Linux OS will be tightly integrated.

10. What is the future holds for Solaris 10? What enhancements are in-store in the OS and kernel level? Are there any plans to integrate the Gridengine into Solaris rather than being a separate application?

Andy Tucker: Solaris 10 will have a number of new features that we think are pretty exciting. One is Solaris Zones --- this takes an idea that was initially developed for FreeBSD (jails) and extends it to address the needs of our customers. It allows administrators to divide up a single system into a number of separate application environments, called zones, where processes in one zone are not able to see or interact with those in other zones. This means that multiple applications can run on the same system without conflicting with each other, but the administrator only has to deal with one OS kernel for backups, patches, etc..

We're also looking at ways to improve system reliability and observability. Solaris 10 will include tools that allow tracing not only what's going on at user level, but also what's going on in the kernel. So a developer trying to understand why their application is performing poorly can get information from the whole software stack and get a much better picture of what's really going on. We're also using these tools internally to improve the performance and reliability of Solaris and other Sun software.

Table of contents
  1. "Solaris Interview, Part I"
  2. "Solaris Interview, Part II"
e p (0)    43 Comment(s)

Related Articles