Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 29 Jan 2008 14:07:47 +0200
From:      Andriy Gapon <avg@icyb.net.ua>
To:        freebsd-gnome@freebsd.org
Cc:        freebsd-arch@freebsd.org
Subject:   HAL/freebsd architecture
Message-ID:  <479F1713.2030705@icyb.net.ua>

next in thread | raw e-mail | index | archive | help

This is not a concrete suggestion and I can not volunteer to write any
code yet (unfortunately).

Recently I played a little bit with DesktopBSD live CD and liked some
add-on software provided there and some implementation approaches were
quite interesting for me too.

Just in case, the tools can be found in sysutils/desktopbsd-tools and
there is a FAQ page on using them in "plain" FreeBSD:
http://desktopbsd.net/wiki/doku.php?id=doc:desktopbsd_tools_in_freebsd

This got me thinking: maybe we could also apply the same approach as
used for dbsd-hwnotify to HAL/FreeBSD. I.e. hald could do initial
querying of devices and then just wait for notification from devd about
any changes.

This, of course, would require some changes to the base system, but I
think that these would be useful for many more applications than just hald.

Some things that come to mind first: "forward" instruction to devd.conf
to execute some action for all events in addition to any event-specific
actions. This is so that we could preserve current devd functionality
but also allow to delegate some decisions to other software.

I think that this way we could get a lot of current hald functionality
for free, without the special probing/polling routines that have to
written at present.
But this would probably mean some additional changes in kernel-land. For
example, there are complaints now that CD-ROM drivers do not
automatically notice media removal/change and, for instance, do not
update GEOM_LABEL information [*]. This is important for HAL
functionality too. So, media checking/polling would probably have to go
to the CD-ROM drivers.
But, as I said earlier, this would probably be a universal good - we
could kill several birds with one stone.

To summarize: most of what FreeBSD hald currently does in userland is
either already done in kernel as well or it better be done in kernel.
hald should just mostly listen to notifications coming from kernel. Most
likely this is best done via devd. Such approaches, of course, would
require changes to pieces of kernel and to devd.

And, for sure, there could be some quite hard cases. E.g. I don't how to
notify userland about media change via devctl mechanism.

[*]
http://www.freebsd.org/cgi/query-pr.cgi?pr=119743

-- 
Andriy Gapon



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?479F1713.2030705>