> Актуально только для обработки более 4-х гигов данных за один заходнет(c).
Актуально для _любой_ работы с данными больше 4G - в том числе банально прочитать один байт со смещением 4G+1
(а учитывая помянутые любителями XP особенности плоской модели памяти - на самом деле 3 или 2 - в линуксе это, сюрприз, настраивается, но системе все равно сколько-то нужно оставить)
> Почему бы не обрабатывать эти 8 Тб данных порциями по 4 гига?
а если там перекрестная ссылка из третьей порции в первую? Как она должна быть записана, и как мы это будем засовывать в код, уже написанный и отлаженный на архитектуре без ненужных ограничителей? Правильно - читать по пол-ссылки за раз, потом вручную манипулировать "склеенным" указателем, вручную же обрабатывая ошибку переполнения, потом снова раскладывать получившееся на адрес "страницы" + адрес внутри нее. Очень удобно, приятно, и позволяет потратить много времени на увлекательный поиск ошибок. Все ради того, чтоб тебе подольше не менять давно снятый с производства процессор.
> А если оперативки всего 2 гига?
размер адресного пространства в общем не имеет никакой связи с наличием физической памяти. Если я mmap'ну шестигиговый файл - программа отнюдь не сожрет 6 гиг физической памяти, пока я не прочитаю все шесть (то есть не сделаю какую-то операцию с данными хотя бы через каждый 4k при стандартной странице - а если это на самом деле пришлось делать, и страницы не освобождаются, то есть к ним снова нужно обращаться - поздравляю, дорогой друг, но у тебя все ж таки слишком сложная обработка слишком больших данных для такой дряхлой машинки, пора апгрейдиться)
Но вообще-то твой компьютер безнадежно устарел, в любом случае.