Here are just some of the revolutionary changes introduced in Solaris 10:
DTrace – dynamic tracing
DTrace allows you to dynamically trace anything and everything in real time. You can observe processes both in userland and kernel space, watch them as closely as you want and this all with virtually no performance impact. This allows DTrace to be used on a production system being absolutely sure it’s not going to considerably slow the system down or crash it.
I think it’s one of the best Solaris 10 innovations – all the administrators and developers will like it.
ZFS file system (zettabyte file system)
This is a new filesystem – it promises to put an end to all the standard troubles every system administrator has with file systems. By introducing a virtual storage pool, you will be able to grow or shrink file systems much easier by simply adding new physical disks to this pool. The same storage pool is going to be used for all the filesystems you need – so, having added 10 more physical disks to the pool, you’ll be able to decide which filesystems you want to grow.
Predictive Self-Healing (PSH)
PSH is a set of automated diagnostics, isolation and recovery procedures for most of the hardware and software faults which might occur on your system. In case of hardware failure, PSH will be able to safely isolate the faulty part and notify all the hardware and software resources which might be dependant on this faulty part.
PSH has few components. Someday I’ll write more on it, but in short – here’s how it works: mst of the work is done by Solaris Fault Manager (SFM) and Solaris Service Manager (SSM).
SFM is watching the hardware – if it find a faulty processor, a bad memory region or some faulty I/O device, it will automatically isolate the part before it fails completely and provokes a system crash or some other failure.
SSM in its turn is looking after all the applications – all the daemons are started as services, and with just few commands you can get their status, restart them or set up logical dependancies between them.
For instance, a telnet service will be dependant on the basic network services – the ones which configure network interfaces. Because of the dependancies, if system interfaces weren’t configured on boot-up, the appropriate service will not be in online state and this will make dependant telnet service to fall into the maintenance mode, waiting for the necessary network services to come online. It all sounds rather complicated (and it actually is!), but if you properly configure everything, it works together fairly well.
There was a lot of stuff rewritten in TCP/IP stack and this allowed Solaris 10 to reach a much better performance.
One of the main achievements is the linear scalability on multi-processor systems. All the latest network technologies are obviously supported as well. The project name for these improvements is FireEngine, and I’ll probably try and find some links to the pages related to it.
Janus – Linux environment running on Solaris
It is promised that you’ll be able to run many Linux applications on Solaris systems. Practically, this feature allows you to run any native Linux application without any changes to it or any reboots, with the performance almost as good as original. To make this work, you’ll have to free up some spance on your disks for Linux libraries, and there is still no guarantee that every application will work, but to proove the concept, Sun engineers have already successfully started BEA WebLogic Server and Oracle Database Server for Linux, Samba and Apache were also tested, as well as lots of browsers and office packages.