Историческое. Почему Win 3.x были таким уродством?
От: Michael7 Россия  
Дата: 01.02.18 17:06
Оценка:
Интересно, многие ли на форуме помнят эти системы, а особенно тонкости программирования на них.
Понятно, что это "дела давно минувших дней", но есть некоторый философско-программистский что ли даже интерес, а почему так долго не могли?

Это же надо было умудриться написать ОС, которая формально использовала 32-битный защищенный режим 80386-х и старше процессоров, но таким образом, что его преимущества остались не задействованными для прикладных программ. Что-то сейчас захотелось даже почитать, как им удалось не дать юзеру плоскую память. С высоты времени это просто эталоном маразма выглядит.

Из вики.

Since Windows 3.0 (and later Windows 3.1) runs in 16-bit 286 protected mode and not 32-bit 386 protected mode, the default setup is to use the 64 KB segmented memory model. However, on 32-bit CPUs, the programmer had access to larger memory pointers and so it was possible to expand program segments to whatever size was desired (the maximum limit being 16 MB due to segment descriptors being 24-bit). Since Windows API functions were 16-bit at the time, they could not use 32-bit pointers and thus it was necessary to place the portion of the program code that performed OS calls in a 64 KB segment,[7] like in DOS, although 32-bit instructions may be contained in the code.[8] (Ami Pro was the first Windows application to require a 386). Because of this, Windows 3.0 can access only 16 MB total of RAM, even on 386 or higher CPUs which have a theoretical capability of utilizing 4GB.


В итоге чудная история имела место. Intel выпустила 386-й проц в 1985-м году. Первые AT386 появились в том же году. 486-й вышел в 1989 году. Pentium в 1993-м. И только в 1993-м, у мелкомягких появилась система NT, которая позволила в большинстве прикладных программ отказаться от сегментной модели памяти в 64Кб и организовать относительно нормальное переключение задач. Но в принципе из-за ее дороговизны и требований к аппаратуре, такой системы не было до 1995 года, пока не вышла Win95, впрочем расширение Win32s имелось и ранее.

И никто в общем-то никто MS так и не опередил на рынке. Вот что страннее всего. Да, OS/2 3.0 появилась раньше 95-й, но позже NT. Примечательно, однако, что некоторые шансы были у Linux. Был момент в 1992-1995-м годах, когда он уже был, реально 32-битный и более-менее posix-совместимый, появился даже серьезный интерес к нему. Еще у BSD тоже были шансы.
Получается, что в общем-то задача написания нормальной 32-битной ОС не была какой-то особо сложной.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.