[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: MiNT 1.10 re-sync



>> Hmm.. I think this is bad as many programs have code after an exec which
>> takes alternate action if the exec fails.
>
> well that still works for the usual cases (bad magic, ENOMEM, ENOENT...)
>the kill should only happen when the executable header looked ok and the
>error is somewhere later in the file.  i.e. you need a broken linker,
>overwritten blocks, or some filesystem error for this to happen...

Aha.. I see..

>>  The alternative, of course, is to
>> copy the original text elsewhere before loading the new program if the new
>> program's text is smaller or the same size as the original program. If the
>> exec fails then it can be copied back and the process resumed.
>
> thats another idea but is it worth it? :)
>
>>  If the new
>> process being exec()ed is larger than the original program (and the memory
>> above the current program isn't free) then exec()ing as we do now would be
>> no problem.
>
> hmm but you'd still get a hole?

You'd get a hole anyway as the space left behind by the original program is
too small for the new one, so it will have to go elsewhere in memory.

>> The only sure way to stop memory fragmentation is to start using paged
>> memory management. This, of course, can only be done on the 68030 and above.
>
> yup
>> 
>> > or whats on systems that demand-page text instead of loading it all at
>> >once...  do they always check the entire file before?
>> >> 
>> >> Opinions?
>> >
>> > should there be some flag to turn it off?  in mint.cnf?
>
> cheers
>	Juergen
>-- 
>J"urgen Lock / nox@jelal.north.de / UUCP: ..!uunet!unido!uniol!jelal!nox
>								...ohne Gewehr
>PGP public key fingerprint =  8A 18 58 54 03 7B FC 12  1F 8B 63 C7 19 27 CF DA 
>

Steve

-- 
---------------------------------------------------------------------------
Computer Systems Administrator, Dept. of Earth Sciences, Oxford University.
E-Mail: steve@uk.ac.ox.earth (JANET) steve@earth.ox.ac.uk (Internet).
Tel:- Oxford (0865) 282110 (UK) or +44 865 282110 (International).