Re: [PATCH] driver-core: devtmpfs - driver core maintained /dev tmpfs

Brian Swetland
2009-05-02T04:42:20Z

On Fri, May 1, 2009 at 7:28 PM, Kay Sievers <kay.sievers@vrfy.org> wrote:
> On Sat, May 2, 2009 at 04:02, Brian Swetland <swetland@google.com> wrote:
>> On Fri, May 1, 2009 at 6:48 PM, Kay Sievers <kay.sievers@vrfy.org> wrote:
>
>>>> I would love to have a way for the kernel to do something like devfs
>>>> (it'd let me kill some ugly userspace code on my side)....
>>>
>>> How are permissions defined in your environment? What's the set of
>>> permissions you need to apply?
>>
>> In our world we use groups to provide access to specific classes of
>> hardware resources (audio, video, display, dsp, etc) and processes
>> that have the appropriate permissions are arranged to run with
>> necessary additional groups for the hardware they need to access.
>
> These group numbers are always static on your system, and don't get
> changed while the system is running? Like you always assign gid X to
> all sound devices? Or do you need to manage them dynamically?

The gids for device access are static, part of the platform
definition. I could imagine a model where the board file for a target
defined the ownership for devices or that was loaded in from userspace
at boot (just a table of path-match-string, uid, gid, perms). Not
sure if that'd be considered too ugly, but it would certainly solve
the problem in a straightforward way. Early on the "device ownership
policy" is installed and then userspace can leave everything to the
kernel.

The uids for applications are dynamic, assigned on app install (every
app gets its own uid).

> Do your device nodes permissions/ownership ever change on the running
> system after the device is alive?

We never change device node permissions or ownership at runtime. I
could see situations in which that would be useful, but it's not
something that is currently used by the platform.

Brian