Suggestion Box

Suggestions about something related to Haiku? Post here.

Sandbox Security/Multi user Idea

Forum thread started by Izomiac on Wed, 2009-07-29 23:44

Here's a basic idea I had pertaining on how to implement both multi-user support, and security in one go.

First off, the simple way of implementing multi-user:

  • In the directory /Users/ there are mountable filesystem images. Each is encrypted and has metadata for a password hint, contact information, whether or not the user is an administrator, an encrypted version of the main crypto key for the image, and an icon to represent the user.
  • Early in the boot system an application will present a list of files in /Users/, the user picks one and types a password (which is used to decrypt the main crypto key). The system can be booting what it can in the background to save time.
  • This file is then mounted as /home, or at least there is an attempt to do so. If the password is incorrect then the main crypto key will be wrong and the image can't be mounted.
  • Administrators are prompted in Vista UAC style if they attempt to change files outside of their home directory. Less privileged users are informed that they can't do that.

Next is how to ensure applications behave:
Applications can be run in two ways. The first is the traditional way, with the full privileges of the user (Tracker would probably be run like this). The second is using "application virtualization".

  • This involves the application residing in a file system image, and all of it's disk reads and writes are redirected to that same image.
  • Upon user login each application's image is mounted on top of the root filesystem.
  • There would also be a shared documents folder where any application can write to the root filesystem, but it can only read/overwrite files that it created (indicated by metadata).
  • When a program attempts to do something for the first time, the user is prompted about whether to allow it to do so or not. Examples include accessing the internet, reading from the root filesystem, accessing other partitions (which aren't handled by the image redirection mechanism), or sending BMessages to other applications.
  • Rules can be more advanced than all or none. Internet access could be restricted much like a software firewall can do. BMessages could be restricted to certain types (Copy/Paste) or to certain applications. Root filesystem access could be limited to a directory or two.

So, for an internet browser you'd want to allow it access to the internet (perhaps add a custom rule to only allow outbound port 80 & 443 and block access to pornographic hostnames), but you would not allow it read access for the root filesystem (breach of privacy). Furthermore, if there was an exploitable security hole all an attack could do would be mess up the insecure application (and access the internet in this case).

[suggestion] Open audio drivers to port

Forum thread started by forart.it on Sun, 2009-07-26 08:57

I just discovered that there are a good number of (open) audio drivers for Haiku.

Here's a list of interesting open source audio drivers to port (if someone is interested in):
- http://www.gadgetlabs.org/
- http://isisalsa.sourceforge.net/?page=docs
- http://sourceforge.net/projects/zaudiodriverwin/ and http://sourceforge.net/projects/zaudiodrivermac/
- http://sourceforge.net/projects/osx-sigmatel/

I honestly don't know how mutch these drivers are portable to Haiku, btw something like UNIAUD would be great (IMHO):

http://uniaud.netlabs.org/
http://svn.netlabs.org/uniaud/

Hope that inspires !

AppFile

Forum thread started by D on Tue, 2009-07-21 16:03

Today with advent of netbooks and high emphasize on portability it occurs to me that perhaps having a slew of highly portable applications a welcome addition to Haiku.

Firstly I'd like to note I'm not too much familiar with Haiku's current application installation system but from what I gather it will be quite different from my suggestion, so here it goes.

Basically my whole idea is based on klik. What it does is compresses all needed files into a single file which is then mounted and unmounted in order to respectively load and unload it from the memory. Using this approach comes with great advantages:

  1. Highly portable applications - if constructed properly (meaning lots and lots of hours of developer work) these applications could be frozen and redeployed elsewhere in the exact same state as they were before they were frozen.
  2. Intuitive way of handling applications - applications could be deinstalled by deleting and installed by just moving/copying file from one computer to another
  3. Multiple versions of applications running side by side - rename your file and voila you can run programX v2.0 and v3.0 seamlessly without much confusion or fuss

But you may ask why is this any different from apple's AppDir approach except that it is a compressed folder? Well for one this is a single file meaning that when you overwritte an existing file it doesn't merge new and old files into a single entangled mess like AppDir do.

Of course there is also a great deal of disadvantages when dealing with a single file:

  1. Meta data retrieval - it is harder to get meta data such as assosiations and icons from a single file unlike the folder structure
  2. Current application would be hard to transform into an AppFile format - It is pretty much an issue of standardization and order. Some applications might want to store their settings and config files somewhere else on the system leaving behind tails.
    Possible solution: Internalize configuration files into the application file, which might be a hard task for some apps
  3. Bloat - since bascially all apps would carry their own non-core libraries there is a chance that your apps will simultaneously load same version of certain libraries into the memory.
    Possible solution: Force AppFiles to check a common library repository for a library they might use before using their internal version.
  4. Security issues - making the instalation this easy could be exploited by a third party to gain access.
    Possible solution: some form of control when accessing the application for the first time
  5. Updates - Some older versions of the software could use older internal libraries instead of using newer which break compatibility.
    Possible solution: Design a way for upgrades to replace your current version while preserving settings.

The list of disadvantages does seem a bit bigger but I believe that the pros though less numerous outweigh the cons.

A new compiler?

Forum thread started by Dreamcast270mhz on Sat, 2009-07-18 01:36

I don't know if this has crossed anybody's mind, but I've noticed that since ZETA and BeOS seem to have problems with any GCC's newer than 2.95, maybe it's time to make a compiler for the BeOS family (including Haiku) that may be able to keep compatibility with the newer GCC4 build, making way for an easier dev path. What I propose is making a new compiler with compatibility among the related OSes not much of an issue. Maybe you could make a BeGCC4 by taking the 2.95 codebase, and merge parts of GCC4 with it, of course adding other enhancements. The main reason I've brought this up because it seems that the path with the hybrid builds seems to compromise too much. Or, if that is impossible, perhaps write an all new one from scratch, then you can further distance yourself from GNU GPLed things. Just some food for the thought for people like me.

[port request] FFADO - Free Firewire Audio Drivers

Forum thread started by forart.it on Wed, 2009-06-10 08:39

From ffado.org website:

Introduction
The FFADO project aims to provide a generic, open-source solution for the support of FireWire based audio devices for the Linux platform. It is the successor of the FreeBoB project.

FFADO is a volunteer-based community effort, trying to provide Linux with at least the same level of functionality that is present on the other operating systems. It is a work in progress, we are close, but we are not quite there yet. We are currently preparing the last beta releases before an official FFADO 2.0 release - your help with testing is very welcome!

http://www.ffado.org/files/bluemarine_logo.png
Official website

Xbox Development Bounty

Forum thread started by vote_gough on Mon, 2009-05-18 12:59

Hi everyone.
I know there is a thread discussing this just below, but I think that a seperate topic needs to be set up for this.
The Xbox (original) has been neglected in recent years with releases of os' for it being far and few.
It basically is a legacy pc and I feel that a low resource os like Haiku would be perfect for it.
I am willing to start a bounty for this at Haikuware, but I need to know if there is enough interest in it before I go ahead.
The roadmap could look like this (I know its not very technical, but it outlines the basics)

Alpha:
-Tracker must work
-Support for USB mouse and keyboard at least
-Initial support for nvidia chipset
-Use custom bootloader or cromwell
-Fix problems which may prevent bootup (ghost pci ports, no super I/O chip etc.)
-Synch with xbox CPU clock speed

Beta:
-Xpad support
-Network support
-CD eject must work
-Better graphics support (maybe 480p and 720p)
-Allow install to the F: partition
-Xbox shutdown/restart sequences included

Possible inclusions:
-10 foot user interface
-IR remote support
-FATX read support
-Loopback file install
-New name for distro (Xaiku?) and new theme

Any refinements or additions to this are appreciated.
More porting information can be found at:
Porting Operating Systems to Xbox

Middle button functionally

Forum thread started by nonne on Wed, 2009-05-06 04:51

The middle button isn't really much used currently in Haiku, so I have been thinking about how it could be used to speed upp some tasks for the poweruser. One nice thing would be to use it for moving windows in the background or just give a backround app focus without bring it to front. Another thing it could do is to let the user select options in a menu without closing it. As an example at the deskbar if i would like to select 24 hour clock, show seconds and european date in deskbar settings I could this much faster because the menu wouldn't close when I select an option. The middle button could also be used to open folders in new windows if you have choosen single window navigation or in the same window if you use default navigation. It would also reverse the the move/copy dragging compared to the left button. Would it be easy to implement this behaviour to Haiku? I think it would be really useful for speeding up things for the user.

Syndicate content