What's with the common folder?

The recent image files have a folder /boot/common that does not belong. In BeOS, all the stuff the user is not to touch is under /boot/beos. Any file that is not under /boot/beos is the users domain.

From what appears in the /common tree, it seems that these files either belong in /boot/beos or /boot/home/config. There is no need for /boot/common.

Let’s not make Haiku look like Linux!

Actually there is a reason for /boot/common

It has to do with multi-user support which will be added to Haiku sometime later on ( R2? ).

Files, libraries, add-ons, etc. that is for everyone ( all users ) will go into /boot/common

That means, all files and folders in /boot/common will be accessible and used by all.

/boot/home will be restricted on a per individual basis. Each user will have their own /boot/home folder assigned to them. That’s why /boot/common was created. It will make more sense when multi-user comes into play.

I only know the basic details so that is the best explanation I can give you.

Multiuser is great, but we should stick to the BeOS file system. If we indeed need add-ons etc that are not included in the OS, they should be placed in /boot/beos/common or /boot/beos/barron rather than /boot/common as this will place the files under the beos folder where users should not mess with files. This will also keep our KISS file system and not give us a kluge that looks and smells like Linux.

The funny part is - I recall reading that there were already constants defined in the BeOS API for these common folders, but they weren’t ever used…

See the BeBook (original from BeOS) for more proof:

http://www.haiku-os.org/legacy-docs/bebook/BDirectory.html#Constants_directory_which

You’ll see there it defines BEOS (system stuff), COMMON (shared stuff), and USER (user-specific stuff) constants already.

The thing is that they are relocating /boot/home/config subfolders and files to /boot/common. I believe they want to eventually remove /boot/home/config from the OS and have /boot/common replace it ( or to keep /boot/home/config and have it affect single user while /boot/common to affect all users ). I’m not clear which one of these they want to do.

/boot/common is a user area, for all users, for configuration, libs, etc…
/boot/beos is the system area.
/boot/home/config either for single user config or may be removed.

You actually wouldn’t want /boot/beos/common because then that makes it look like the files belong to the system ( are from Haiku ). For instance, if a user compiles a non-standard POSIX library and wants it available to all. It would now go into /boot/common/lib

If a 3rd party creates a new add-on for everyone to use. Then it will go into /boot/common/add-on. etc.

Only libs, headers, shell commands coming from Haiku directly go under /boot/beos.

I understand what you’re saying but I believe the devs have it right - makes sense to me.

Yep, /boot/common makes sense, since /boot/beos is “beos-owned” stuff (system), while /boot/home is user-owned stuff…

see the blurb in the above bebook link:

“The B_BEOS_* constants refer to BeOS-owned directories, the B_COMMON_* constants refer to directories that are common to all users of the system, and the B_USER_* constants refer to the current user’s directories (currently these are all in a subtree rooted at /boot/home, but when multiuser support is implemented in a future version of BeOS, these won’t necessarily all be the same anymore).”

On a multi-user system both the system files and any common files need the same protection. Both need to be “root” or for Haiku maybe “barron” files. I would not wat a user without barron privileges to add a library or add-on that might have negative effects on other users. It just makes the system simpler to have all the barron owned files under /boot/beos. This way we don’t look like a Linux kludge.

Just my 2cents.

It’s important to note this paradigm isn’t specific to linux/unix, but also Windows.

I believe the “system” files are supposed to represent the components necessary to make the OS run, while “common” would be user-installed software that they want all users of the machine to have access to. You see this now on Windows where software asks if it should be “for everyone, or just me” - in some cases, the permissions on the files are set accordingly as well, and only administrative users can install software that others can access.

Your assertion that the common folder should only be root-accessible is great, but I think we can also elevate this to users who have near-root access (power users, admins of the machine) which may or may not be equivalent to root priveleges. This would allow power users of the system to install software that others users can use, without having access to destroy the base OS files.

Ultimately, this is all forward-looking stuff at this point, but doesn’t prevent packages from being designed to run in /boot/common already.

Important to note: the only software that gets installed into /boot/common now are optional packages that aren’t required to make Haiku run, thus destroying all of /boot/common should not break Haiku. This could also allow /boot/common to easily reside on an entirely different partition from /boot/beos.

There’s been a discussion on the /boot/common/ folder on the mailinglist recently: http://www.freelists.org/archives/haiku-development/10-2008/msg00366.html
I also wrote about it in the user guide, but that page hasn’t made it into SVN yet for some reason.

Jim has a point restricting access to the common folder. Although that would only concern /boot/common/config/ or what it will be called in the end (I wish the folder structure would be set ASAP). The rest is supposed to be used by everybody to share data.

Regards,
Humdinger

Yes, and it has been discussed numerous times in fact, a couple notable threads to review from the last 6 months: