I've had some experience with this, trying to get the oss tuxracer to stop crashing under certain conditions.

Here are my 2 cents:

1. If one application wants to be prebound, all of its libraries and dependencies must be compiled prebound. That means X11, qt3, and everything elseif you're going for kde. It is a pain in the butt, but unless all dependancies are built in the proper order and are prebound, one app cannot use prebinding.

2. I'm not completely sure there is a space limit for prebinding apps, but I could be wrong. I was under the impression that prebinding information was stored in a file and referred to by the kernel when needed to speed up system performance. Any app can be launched unprebound, but performance will suffer as a result since mach has to locate all the memory addresses. The "Big Prebinding" file, that mach refers to, works very much like a cache would, except this cache is for memory addresses.

3. The update_prebinding daemon likes to make sure everything is prebound, and that includes fink software that has none of the prebinding markers. You'll notice, after starting up, your hard drive clicking in the background after all your dock, finder, etc. has come up. This is the daemon at work, and it marks certain files as "unprebindable" during your session on the computer. Every hour or so, the daemon checks to see if any changes have been made to anything known as an application. Mac OS X's UNIX layer does not see programs like pico or emacs as applications, but rather as documents. Only when telling the system to execute the specific binary will the system know "to prebind, or not to prebind?" (as from within a Terminal).

4. If you look at 'top' or the 'process viewer' during the "Optimizing system performance..." of an install, the update_prebinding command is called, which recomputes memory addresses and inserts them into an individual programs' place in the cache. This makes the program use the right memory addresses when it needs to call them on launch.

5. There are man pages on redo_prebinding, update_prebinding, fix_prebinding, and probably some others I never bothered to look for (man pages are always so dull).


I'm totally self-taught, so I could be wrong in a few (or many) places. I'd love to get some expert feedback about the (1) mach-o/BSD core and (2) how mutilated my description was.
(^disclaimer for stupidity^)

Regards,
Andrew Hoyt
(s/n mkiwi)



-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
Fink-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/fink-devel

Reply via email to