3 ms·
The main point of contention with SMF was the dismal lack of documentation on the XML required when it was first introduced into Solaris 10 (what we call "putba
by Annatar 7y ago
The main point of contention with SMF was the dismal lack of documentation on the XML required when it was first introduced into Solaris 10 (what we call "putback"). At the time, Sun had the inventor of XML on their payroll and suddenly XML started showing up everywhere, but XML has no business in configuration files on UNIX, which were traditionally designed to be trivial to understand and parse by both humans and tools like sed, AWK, grep and cut. As if that wasn't bad enough, adding insult to injury was that the configuration to various services was being stored in a private copy of SQLite, and there was no documentation on which application was storing which settings -- the only way to know was from reading the blogs of the engineers working on SMF. As you can imagine, this led to a lot of frustration, because the primary users of SMF were system administrators and they were basically left to fend for themselves: lacking documentation and third party developers not wanting to waste their time reverse-engineering SMF to write XML manifests for their services.
However, SMF is actually very well designed and this makes it very powerful: I can for example declare configuration files as my dependencies in the XML manifest and when I import it, SMF will know to watch those files. If they change, SMF will call the manifest's refresh method, whatever it is. That's barely scratching the surface. What I think no one on the outside realized when SMF came out is that it was part of FMA, the fault management architecture, which makes Solaris and his derivatives be able to heal themselves provided the system is configured with enough redundancy, even on really unreliable shitty hardware like intel / AMD based systems. Nowadays SMF is well regarded and well understood, but the engineers rightly regret making it use XML, and it took years for the documentation to reach that expected level of high quality which we're so spoiled with in the rest of Solaris and illumos manual pages.