Friday Aug 26, 2005

I'm headed out for yet another year at Burning Man. I'm rather new from some perspectives -- I've only been attending since 2000, but have been there religiously since my inaugural year. This is the first time since that first year I have the luxury of arriving on Sunday and staying the whole week. Hurrah! Seeing an essentially empty plot of land grow to a city of 35,000+ (complete with roller coasters(!), churches, mail delivery, roller rinks, bars, pools, an opera, newspapers, radio stations, an incredible array of art, and most anything else you can imagine) and then all completely disappear within 7 days is an experience that's hard to replicate elsewhere.

Plenty of people have drawn parallels between open source communities and the Burning Man community. What Burning Man has that most open source software projects don't have is that tear-it-apart moment. The transient nature of the physical community is part of the appeal. At the end, you watch lots of incredible things literally go up in flames, and the rest of it disappear overnight. Walking around the last night is incredibly surreal; the landmarks you used for navigation all week have vanished and you're left a little lost and confused as the ephemeral community precipitates back into their everyday lives. While it's a crucial part of playa life, I expect to never have that moment with OpenSolaris.

All of this is a pretty long winded way of saying that I'm taking a vacation, and will return to blogging after I dig myself out of the overwhelming email backlog that accompanies any sort of time away.

Technorati Tags: and

Thursday Aug 25, 2005

The :kill method token is kind of cool. Rather than maintaining a pid file or using some grungy invocation of pkill (which almost always is incorrect for services that may run on a system with zones) to find all the processes required to stop your service, you can use the :kill token in your method to simply say "kill off all the processes in this service". Works great with contract type services in startd (but not so much with transient services). You can see smf_method(5) and the developer intro for more details about :kill from the service developer's point of view.

I found out recently that I didn't talk about how the :kill method token works when I talked about general fault isolation in smf(5). It's just so simple that I forgot to mention it. But still, you need to know the key...

Since contracts already take care of grouping the processes for us into services, and extended the appropriate kernel interfaces to allow operations on contracts, we can actually just send a signal to all processes in the contract easily with sigsend(2). So, the contract kill function in svc.startd(1M) is mind-bogglingly simple. All you need is a contract id.

int
contract_kill(ctid_t ctid, int sig, const char *fmri)
{
        if (sigsend(P_CTID, ctid, sig) == -1 && errno != ESRCH) {
                log_error(LOG_WARNING,
                    "%s: Could not signal all contract members: %s\n", fmri,
                    strerror(errno));
                return (-1);
        }

        return (0);
}

Nice, huh? Having contracts as a well-supported kernel feature makes some previously impossible things now possible, and generally makes the life of the restarter author easier. This is, to me, one of the truly significant benefits of having a kernel that evolves in concert with its userland tools.

Technorati Tags: , , and .

Friday Aug 19, 2005

Well, I've passed the expiration date for a useful trip report of OSCON. I'll keep this short and sweet and get a few pictures posted. It was my first time at OSCON, and I'm glad I went. It was great to go and talk about OpenSolaris and Solaris in general; among the fun was our rockstar-style suite (complete with getting admonished by the hotel for talking about OpenSolaris too loud on Wednesday night), the booth, a number of good talks by Bryan and Keith, and a small but fun BoF.

From an smf(5) point of view, I got to chat with one of Apple's launchd guys, which was definitely interesting. launchd had a very different design center and problem definition than the smf(5) team was working with, but ended up with strong similarities to smf(5) in their solution. We also have some diverging functionality too, but the similarities often generate comment. And to dispel any myths... launchd wasn't yet out when we were releasing smf(5) in Solaris 10, and the launchd guys say they didn't see our stuff until they were nearly complete. Chalk it up to "great minds think alike", if you're feeling charitable. :)


Jon Masters, Devon O'Dell, and I showed our stripes and shared a drink at the OpenSolaris suite.


Sara Dornsife, Patrick Finch, and Claire Giordano from OpenSolaris marketing.


Some dorky-looking geek with Teresa Giacomini of the OpenSolaris team and Casper Dik: CAB member, security guru, and Solaris expert.


Technorati Tags: , , and .

Monday Aug 01, 2005

As folks like Keith and Bryan have already noted, there are plenty of OpenSolaris happenings at OSCON this year. I'll be at the OpenSolaris BOF at 8:30pm Wednesday evening, so stop by if you're around.

I'll also be knocking about the conference/Portland in general Tuesday night through Friday. Leave a message for me at my hotel (503-222-0001) if you'd like to meet up for a beer and talk about OpenSolaris, Solaris, or smf(5). I'll even be happy to help you write an smf(5) manifest for any open source or commercial service; conditional only on your willingness to publish the manifest for others to use. :)

Technorati Tags: , , and .

This blog copyright 2009 by lianep