Application Installation And Management In Operating Systems

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
meh
Member
Member
Posts: 52
Joined: Sun Oct 21, 2007 4:30 pm

Application Installation And Management In Operating Systems

Post by meh »

Hello, everyone! I've been coming to this website for some time now but haven't posted very often. I hope to be more active on this website now though.

What I was wanting to ask is a question about application installation and management in operating systems. What is the best way to do it? Windows applications usually use their own installers, Mac uses application bundles which you can drag to your applications folder, and some Linux distributions use package management systems like Debian, RPM, Pacman, etc.

I recently bought a Mac, and I like the idea of application bundles that you can just drag into your applications folder, but it bothers me that all they are are folders with the .app extension. Maybe they could be archives of some sort? That would probably make it slower though.

The only thing that I don't like about package management in most Linux distributions is dependencies. Where I live, I can't get high-speed Internet yet, and I can't get a modem driver working in Linux. Trying to install an application with 20 dependencies without Internet isn't very easy.

I hope to start working on my operating system soon, but I was just wondering what you think is the best way to install and manage applications.
User avatar
Firestryke31
Member
Member
Posts: 550
Joined: Sat Nov 29, 2008 1:07 pm
Location: Throw a dart at central Texas
Contact:

Re: Application Installation And Management In Operating Systems

Post by Firestryke31 »

I, personally, would like to see a system with a combination of the package system and the installer system. I like the installer system because it gives you everything a program needs to get running, and I like the package system because it is a central place for program/dependency management and updating (i.e. no visiting 100 websites to download patches, just start up the package manager and choose "update all"). I would suggest trying to make it so an application programmer has to be able to handle updated versions of dependencies so you don't have 20 versions of some library installed.
Owner of Fawkes Software.
Wierd Al wrote: You think your Commodore 64 is really neato,
What kind of chip you got in there, a Dorito?
User avatar
NickJohnson
Member
Member
Posts: 1249
Joined: Tue Mar 24, 2009 8:11 pm
Location: Sunnyvale, California

Re: Application Installation And Management In Operating Systems

Post by NickJohnson »

@firestryke: I don't see how you couldn't have both - in my mind, a package manager is just a superset of a installer: an installer that is able to install dependencies separately and update them. My suggestion would be to have packages be able to install, update, and safely remove themselves, but with a *very* well defined interface (see 90% of Windows software for what not to do), and a way to officially check and request dependencies, instead of installing them themselves. That way, you don't have to use a centralized package manager, but avoid messy installation and "dll hell" or equivalent.

I do very much like the Mac approach of putting a fully functional application in one directory/package. However, the lack of a required, centralized location for applications makes use of a command line very hard, as well as searching for libraries. It also lends itself to large, monolithic applications, instead of small, discrete filters or tools. It depends on what you want the system to be like in the end.

I would put off thinking about package management until a much much later stage of OS development - you will probably forget about whatever you had thought was a good plan by that point anyway. If you want to test installation system ideas now, try just making a Linux distro with a new package manager/installer/filesystem structure.
tantrikwizard
Member
Member
Posts: 153
Joined: Sun Jan 07, 2007 9:40 am
Contact:

Re: Application Installation And Management In Operating Systems

Post by tantrikwizard »

AusZero wrote:Windows applications usually use their own installers
To a degree, Windows Logo compatibility applications (the 'Made For Windows' logo) must use MSI installers (At least that was the case last time I looked at logo compliance.) MSI installers are a form of versioning database and installation script that describes the components, their version and what versions they upgrade. This information is stored in the system registry and is used by various sub-systems to load the appropriate 'latest version' implementation of an interface. It's actually a nice way to go but could use some changes just depending on your likes and dislikes. The concept is pretty standard, implementation is of course very specific.
User avatar
Brendan
Member
Member
Posts: 8561
Joined: Sat Jan 15, 2005 12:00 am
Location: At his keyboard!
Contact:

Re: Application Installation And Management In Operating Systems

Post by Brendan »

Hi,
AusZero wrote:The only thing that I don't like about package management in most Linux distributions is dependencies. Where I live, I can't get high-speed Internet yet, and I can't get a modem driver working in Linux. Trying to install an application with 20 dependencies without Internet isn't very easy.
For dependencies, I like the idea of providing a "standard base" that is guaranteed to be present and guaranteed to comply with a set of specifications; where all applications have no dependencies that aren't part of this standard base. Dependency checking would be a little like "if(standard_base_version < required_version) { printf("You need to update the standard base before using this application\n"); }".

For installing applications, I think the OS should do the installing and the application shouldn't need it's own installer (basically, the OS's standard installer is part of the OS's "standard base"). Applications should go in a specific directory - "/apps/<manufacturer_name>/<application_name>/<application_version>". For e.g. if a company called "mega-hard" creates an application called "foo-bar", then the only place that "version 1.23" of this application can be installed is in the "/apps/mega-hard/foo-bar/v1.23" directory. The installer mostly just unzips the application into the right directory. The application's global configuration files go in the same directory as the application (e.g. "/apps/mega-hard/foo-bar/v1.23/config"), and the "per user" configuration files go in "/home/<user>/apps/<manufacturer_name>/<application_name>/<application_version>" (e.g. "/home/Brendan/apps/mega-hard/foo-bar/v1.23/config").

I also think that, for the purpose of file permissions, applications should be treated as users. For example, if you install an application made by "mega-hard" then "mega-hard" becomes a special type of user. The file permissions give "mega-hard" read/write access to the "/apps/mega-hard" directory and nothing else. When a user starts an application they give that application temporary additional permissions. For e.g. if "Brendan" starts using mega-hard's "foo-bar" application, then that application can access anything that "mega-hard" has permission to access and anything that "Brendan" has permission to access.


Cheers,

Brendan
For all things; perfection is, and will always remain, impossible to achieve in practice. However; by striving for perfection we create things that are as perfect as practically possible. Let the pursuit of perfection be our guide.
MasterLee
Member
Member
Posts: 90
Joined: Fri Mar 13, 2009 8:51 am

Re: Application Installation And Management In Operating Systems

Post by MasterLee »

I like unzip and run or unzip, compile and run version of program installation. Also i like to be informed about the dependences and needs of a program in 'FILE_ID.DIZ'. To remove the program nothing more should be needed as removing the folder.
50₰
meh
Member
Member
Posts: 52
Joined: Sun Oct 21, 2007 4:30 pm

Re: Application Installation And Management In Operating Systems

Post by meh »

Thank you for all of the suggestions. I won't be getting to that part of my operating system any time soon, but I was just wondering what people think about application installation and management. When I do get to that part of my operating system, I'll probably use a package manager.
Post Reply