WelcomeWelcome | FAQFAQ | DownloadsDownloads | WikiWiki

Author Topic: Applications and bundled libraries  (Read 13954 times)

Offline roberts

  • Retired Admins
  • Hero Member
  • *****
  • Posts: 7361
  • Founder Emeritus
Applications and bundled libraries
« on: March 26, 2010, 11:01:15 AM »
A very interesting article concerning the future direction of Linux applications.
http://lwn.net/Articles/378865/

I was always aware of OSX style of application and bundled libraries.
I believe Gobo Linux also uses this method.

It does mean using much more memory and disk space.

I had seriously considered this model for Tiny Core.
The advantage being easily unmounting self contained applications.
10+ Years Contributing to Linux Open Source Projects.

Offline lucky13

  • Jr. Member
  • **
  • Posts: 76
    • my mostly linux-related blog
Re: Applications and bundled libraries
« Reply #1 on: March 26, 2010, 08:59:25 PM »
PC-BSD also uses self-contained applications.
http://www.pcbsd.org/content/view/39/30/

It doesn't necessarily need to use a lot more memory/storage. It depends how many libraries are deemed "essential" and therefore in a base (whether in a distro's base or in some package) -- e. g., so that the most commonly needed GTK-related libs are either in the base or in one grand unified package rather than in separate packages. That would mean that some users would end up with certain unnecessary libraries (rather than the piecemeal approach which saves a marginal amount of space) just to use some small application built off some of those combined libraries. I always thought it would make more sense to bundle more of those kinds of things anyway, and IIRC that was one of the suggestions I made if DSL had gone to more of a rox-ish AppDir paradigm to get around the inode issue that could cause to older, smaller drives.

Offline Jason W

  • Retired Admins
  • Hero Member
  • *****
  • Posts: 9730
Re: Applications and bundled libraries
« Reply #2 on: March 28, 2010, 08:33:25 AM »
Xine-xvesa is built this way as to not interfere with other Xine extensions, and same with Pysolfc.  I needed a certain lib built a certain way for pysol to run so I just put it in the extenison itself to get loaded.  And since pysol remains self contained into it's own directory, it works equally well with either python-2.5 or python-2.6 installed.  When pysol is installed into /usr/local with it's installer, then it can only be used with the version of python it is installed with as it resides then under /usr/local/lib/python-version.  I would rather avoid having to rebuild apps when library versions change when it is possible.

 If you build a self contained application installed into it's own directory, you don't have to worry about it conflicting with other extensions and you can pack in needed libs that will not conflict with other versions of those libs in the repo.  As we have seen the headache of dealing with and updating openssl versions, I am personally going to either build statically against openssl or include the openssl libs I built against into a special directory in the extenison and use LD_LIBRARY_PATH to find them in preference to /usr/local/lib.  At least for small, simple apps.  Not all apps take to upgrading patchlevels of openssl and if you include your ssl libs in your extension in a different directory than /usr/local, then you will never have to worry about openssl version changes.  This works with apps, though I know that with libs like qt it is not so easy and would just have to use the version found in the standard path.   Of course, this is not meaning that openssl will be built into it's own directory again, but that I will include the libs I built against in the extension itself to avoid future conflict and reduce the openssl dependency.    

#Clarification, only apps that will never be used as a dependency of others, or there could be the issue of 2 ssl versions if there were libs bundled with a dependency.  Packing ssl libs into an app that has dependencies that also rely on openssl is perhaps asking for trouble.  Better to use the standard openssl extension as a dep or build statically.

This approach works well with the current tcz extension type, though it could also allow the simple mountable app that does not require it's files to be symlinked to the system.  And to me probably the main advantage is being more independent of other extenisons in the repo and avoid having to rebuild the extension when lib X or Y is updated.
« Last Edit: March 28, 2010, 05:09:00 PM by Jason W »

Offline SamK

  • Hero Member
  • *****
  • Posts: 713
Re: Applications and bundled libraries
« Reply #3 on: March 30, 2010, 06:26:43 AM »
Related comments on a similar topic:
http://forum.tinycorelinux.net/index.php?topic=5601.0
   

Offline bigpcman

  • Hero Member
  • *****
  • Posts: 719
Re: Applications and bundled libraries
« Reply #4 on: April 11, 2010, 11:06:50 AM »
PC-BSD also uses self-contained applications.
http://www.pcbsd.org/content/view/39/30/

It doesn't necessarily need to use a lot more memory/storage. It depends how many libraries are deemed "essential" and therefore in a base (whether in a distro's base or in some package) -- e. g., so that the most commonly needed GTK-related libs are either in the base or in one grand unified package rather than in separate packages. That would mean that some users would end up with certain unnecessary libraries (rather than the piecemeal approach which saves a marginal amount of space) just to use some small application built off some of those combined libraries. I always thought it would make more sense to bundle more of those kinds of things anyway, and IIRC that was one of the suggestions I made if DSL had gone to more of a rox-ish AppDir paradigm to get around the inode issue that could cause to older, smaller drives.

For those of us not completely aware of the linux library system here's some background:

http://www.innovationsts.com/blog/?p=1042
big pc man

Offline tclfan

  • Sr. Member
  • ****
  • Posts: 286
Re: Applications and bundled libraries
« Reply #5 on: April 12, 2010, 09:30:02 AM »
A very interesting article concerning the future direction of Linux applications.
http://lwn.net/Articles/378865/

I was always aware of OSX style of application and bundled libraries.
I believe Gobo Linux also uses this method.

It does mean using much more memory and disk space.

I had seriously considered this model for Tiny Core.
The advantage being easily unmounting self contained applications.
Similarly, this trend is very strong on Windows side. Portable applications, which you can put on usb stick and boot from any computer existed for many years, but the real breakthrough was the concept and implementation of application virtualization, where VMware (bought Thinstall) ThinApps and Xenocode allow to virtualize any application, including very complex ones.  Something that was unthinkable two years ago now is happening. You can put the entire Office 2007 as one or two files on usb stick and use anywhere without installing... Applications are self-contained. All the dreaded dll hell and files installed all over the place - this problem is gone...

Offline tclfan

  • Sr. Member
  • ****
  • Posts: 286
Re: Applications and bundled libraries
« Reply #6 on: April 12, 2010, 10:26:45 AM »
I had seriously considered this model for Tiny Core.
The advantage being easily unmounting self contained applications.
This would bring immensely more value to TinyCore than anything else.
After testing this (ThinApps and Xenocode)  a lot on Windows side and with Igelle distro on Linux side, there is no going back to old messy way...

Offline bmarkus

  • Administrator
  • Hero Member
  • *****
  • Posts: 7183
    • My Community Forum
Re: Applications and bundled libraries
« Reply #7 on: April 12, 2010, 10:31:22 AM »

This would bring immensely more value to TinyCore than anything else.
After testing this (ThinApps and Xenocode)  a lot on Windows side and with Igelle distro on Linux side, there is no going back to old messy way...


You are right, if you don't care hardware resources. And you are right, no way back to an economical system. Long live memory manufacturers...
Béla
Ham Radio callsign: HA5DI

"Amateur Radio: The First Technology-Based Social Network."

Offline bigpcman

  • Hero Member
  • *****
  • Posts: 719
Re: Applications and bundled libraries
« Reply #8 on: April 12, 2010, 10:35:25 AM »

This would bring immensely more value to TinyCore than anything else.
After testing this (ThinApps and Xenocode)  a lot on Windows side and with Igelle distro on Linux side, there is no going back to old messy way...


You are right, if you don't care hardware resources. And you are right, no way back to an economical system. Long live memory manufacturers...

I don't get why TC could not be made to support both the tcz of today and future "all in one packages".  What's the fundamental technical roadblock? I love the Tinycore Burger King theme "have it your way".
« Last Edit: April 12, 2010, 10:37:06 AM by bigpcman »
big pc man

Offline tclfan

  • Sr. Member
  • ****
  • Posts: 286
Re: Applications and bundled libraries
« Reply #9 on: April 12, 2010, 10:37:39 AM »
You are right, if you don't care hardware resources. And you are right, no way back to an economical system. Long live memory manufacturers...
I do not think so. I certainly care about memory utilization and always memory-optimize my systems. E.g. I was able to run XP in 64M...
However, from the perspective of memory eficient user, the new trend is worth some memory incremental for the sake of freedom from dll hell and system mess, where installed files are all over the place. This desease started on Windows spread to Linux big way. Now the time has come to put an end to this with new architecture running self-contained applications.  It brings back the freedom of installing and deleting applications without causing system rot and conflicts. Un-installing application is basically deleting the application folder and it is gone completely! No more hunting for installation remnants, impossible to track...

This new way is not for really old hardware, such as 486 or 128M , but anything but really old one should be fine... E.g. Igelle requires 256M memory.  Nowadays 1G memory is a very basic amount, although most of my systems have much less than that and I have no problems running this architecture.
« Last Edit: April 12, 2010, 11:04:43 AM by tclfan »

Offline curaga

  • Administrator
  • Hero Member
  • *****
  • Posts: 11044
Re: Applications and bundled libraries
« Reply #10 on: April 12, 2010, 11:50:19 AM »
I thought tcz packages were already one-file-uninstalls, if the deps aren't counted of course. I think appsaudit can delete unused deps as well.

Self-contained apps are a security nightmare, and somewhat bigger. They are also bigger in ram, which starts to suck as a thought when one realizes there's 15 copies of gtk2 in the ram :P

What I find frightening, is that ram prices are 3x of what they were ~year ago. Holy crap, the cheapest 2gb ddr2 stick online (in my country, after a quick search) is now 51e.

I don't get why TC could not be made to support both the tcz of today and future "all in one packages".  What's the fundamental technical roadblock? I love the Tinycore Burger King theme "have it your way".
We already do, there's nothing much to add support for. Just either compile things statically or include the libs, and it's a self-contained extension.
The only barriers that can stop you are the ones you create yourself.

Offline bmarkus

  • Administrator
  • Hero Member
  • *****
  • Posts: 7183
    • My Community Forum
Re: Applications and bundled libraries
« Reply #11 on: April 12, 2010, 12:18:14 PM »
For me it just doesn't fit to Tiny Core Linux philosophy, it is something else.
Béla
Ham Radio callsign: HA5DI

"Amateur Radio: The First Technology-Based Social Network."

Offline bigpcman

  • Hero Member
  • *****
  • Posts: 719
Re: Applications and bundled libraries
« Reply #12 on: April 12, 2010, 12:33:54 PM »
For me it just doesn't fit to Tiny Core Linux philosophy, it is something else.

I suppose you are right in so much as tc does not support the philosophy of dynamically uninstalling applications. The focus has been on maintaining a pristine system through the use of reboot after extensions are removed from the local extension repository (or boot list).
« Last Edit: April 12, 2010, 12:39:46 PM by bigpcman »
big pc man

Offline tclfan

  • Sr. Member
  • ****
  • Posts: 286
Re: Applications and bundled libraries
« Reply #13 on: April 12, 2010, 01:04:22 PM »
For me it just doesn't fit to Tiny Core Linux philosophy, it is something else.
I suppose you are right in so much as tc does not support the philosophy of dynamically uninstalling applications. The focus has been on maintaining a pristine system through the use of reboot after extensions are removed from the local extension repository (or boot list).
TinyCore is a very nice concept as it is now, maintaining a pristine state through reboot.
However after loading a number of applications that users use, at some point memory requirement becomes quite significant.  We come to a point of paradox that some users are reporting TinyCore as using 1G of memory fully loaded with applications they use while Zenwalk or Windows XP can run them in 256M... The capability to unload unused applications from memory without rebooting becomes increasingly important feature to have, while preserving modular architecture and maintaining pristine state.

Offline bmarkus

  • Administrator
  • Hero Member
  • *****
  • Posts: 7183
    • My Community Forum
Re: Applications and bundled libraries
« Reply #14 on: April 12, 2010, 01:15:35 PM »
We come to a point of paradox that some users are reporting TinyCore as using 1G of memory fully loaded with applications they use while Zenwalk or Windows XP can run them in 256M...

Loaded into the RAM or using RAM while mounted? Don't tell me that XP is running applications in RAM!
« Last Edit: April 12, 2010, 01:17:09 PM by bmarkus »
Béla
Ham Radio callsign: HA5DI

"Amateur Radio: The First Technology-Based Social Network."