[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: X and other visions
Re: X and other visions
Tue, 15 Jun 2004 20:29:53 +0200
Wanderlust/2.10.1 (Watching The Wheels) SEMI/1.14.6 (Maruoka) FLIM/1.14.6 (Marutamachi) APEL/10.6 Emacs/21.3 (i386-pc-linux-gnu) MULE/5.0 (SAKAKI)
At Sun, 13 Jun 2004 19:43:14 +0200,
Bas Wijnen wrote:
> [1 <multipart/signed (7bit)>]
> [1.1 <text/plain; us-ascii (quoted-printable)>]
> A comments which I consider more important, which is also the reason I
> crosspost this to l4-hurd:
> Suppose we have a system in a classroom, as described below. At (local)
> login, a capability for the sound card should be given out. At logout, this
> capability should be revoked, including all copies made of it. This to
> prevent the user from setting up a server in the background enabling him or
> her to use the sound card remotely.
> Does the capability library have a system for that? If not, can it easily be
> implemented in the server using the lib? I think it should be in the library,
There is a lot one can say about this, and it is all interesting and
relevant. However, one should not lose focus. The application you
mention is just one specific possible scenario.
First, this has almost nothing to do with capabilities. Capabilities
are managed by the server, and he can revoke access to a capability
object on a per-task base. This is all you need to implement such
functionality. Either by allowing a login session manager to revoke
the access, or by revoking the access yourself if you act as a proxy
between the system and the user. So, let's put the cap system aside.
The cap system's funcationality is very low level, and it tells us
almost nothing about the specific issues with sound and the console.
There are basically two philosophies when it comes to a sound card:
One is to think of it as an integral part of the system console.
Which is the physical devices that make up the human-computer
interface at a single place. Other parts are one or several monitors,
keyboards, mice, touchpads, microphone, a web cam etc etc. You seem
to think of it this way in your scenario. In this case, you want to
control access to the sound card in the same way as with the other
devices: The device gets a dedicated use for that user's login session
for the time the user is logged into the machine at that physical
In this case, the ideal scenario is sound integration into something
like KGI, which provides abstract consoles which are then
mapped/multiplexed to several groups of devices. In this case, the
sound card could be shared among several consoles easily (for example,
X sessions at VT7 and VT8), pretty much in the same way as the kbd,
monitor and mouse are. In this case, you don't really think about
sound cards, but more about sound output channels, and maybe input
channels (microphone for voice over IP etc).
This is all a evry legitimate and useful look at the situation. If
this is how you want to use the soundcard, a setup like the one you
describe is natural. And its implementation would be in the form of a
management layer like KGI which maps virtual console instances to
hardware console devices in a clever and useful, and configurable way.
Developing such a management layer is a huge task in itself, but it
would basically allow you to watch a video on one VT, and have a
telephone conference on another VT, and switch between the VTs to hear
the sound from the video or continue your phone call. Interesting
scenario, and totally unimplemented even in GNU/Linux or BSD, as far
as I know. Even KGI doesn't tackle sound issues at all. And desktop
environments like Gnome or KDE rely on a sound daemon which usually
uses a dedicated sound card.
The other way to look at the sound card is that of a dedicated
hardware. A hardware that is stand-alone and not associated with an
abstract console entity. It is not grouped with other input/output
devices. For example, a sound card that you use to monitor the sounds
in the room where your baby is sleeping is such a dedicated device.
You would probably _want_ to access that sound card remotely. Or
another example: You use the sound card in a professional sound
studio. Actually, I am a bit unimaginative here. I am sure lots of
people can come up with clever ideas that totally break havoc with
your login session idea in certain applications.
So, what's the solution? The trick is to stay configurable. The
management layer would only make use of the soundcard if it is
configured to do so, and that's the main purpose of the sound card.
If the sound card is used in other ways (as sound server, whatever),
then you would not configure the management layer to use the
soundcard, and instead use it directly pretty much in the way it is
used today under GNU/Linux. You can probably even share a single
soundcard to some extent, if you take a more abstract look at a
soundcard as a provider of many audio channels.
This field is probably as rich or richer than video cards, but mostly
unexplored. It's certainly way outside the scope of anything we are
working on right now. In any case, the cap system is flexible enough
to allow all this and more. This shouldn't come as a surprise, of