[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).