Capabiliities

Discussions on more advanced topics such as monolithic vs micro-kernels, transactional memory models, and paging vs segmentation should go here. Use this forum to expand and improve the wiki!
Post Reply
PeterX
Member
Member
Posts: 590
Joined: Fri Nov 22, 2019 5:46 am

Capabiliities

Post by PeterX »

OK, we have discussed capabilities here:
viewtopic.php?f=15&t=37387
viewtopic.php?f=15&t=36596

But I still don't know why access control lists aren't capabilities.

And is there a simple pseudo-code algorithm for managing capabilities?

Greetings
Peter
Korona
Member
Member
Posts: 1000
Joined: Thu May 17, 2007 1:27 pm
Contact:

Re: Capabiliities

Post by Korona »

Responding to Schol-R-LEA here: you are of course correct that ACLs (and UNIX permissions) are an entirely different model than capabilities. I should have expressed my point more clearly: the file descriptor is a capability, the file on the file system is not! In UNIX, there are no ACL checks on file descriptors. If you have the file descriptor, you have the right to access the corresponding resource (and that's exactly the definition of a capability - a handle that allows access to a resource).

EDIT, @PeterX: in a capability-based system, you can access a resource whenever you have a handle to it. In a ACL-based design, on the other hand, you perform a permission check before accessing the resource.
managarm: Microkernel-based OS capable of running a Wayland desktop (Discord: https://discord.gg/7WB6Ur3). My OS-dev projects: [mlibc: Portable C library for managarm, qword, Linux, Sigma, ...] [LAI: AML interpreter] [xbstrap: Build system for OS distributions].
PeterX
Member
Member
Posts: 590
Joined: Fri Nov 22, 2019 5:46 am

Re: Capabiliities

Post by PeterX »

Korona wrote:EDIT, @PeterX: in a capability-based system, you can access a resource whenever you have a handle to it. In a ACL-based design, on the other hand, you perform a permission check before accessing the resource.
Ah, ok. Thanks.

So a capability is like a handle or (file) descriptor or maybe like a key.

And ACL is the bigger brother of file permissions, I guess.

And a C-list is simply an number-index referring to capabilities, do I understand that right?
https://en.wikipedia.org/wiki/C-list_(c ... _security)

Greetings
Peter
Post Reply