The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Увидел свет Debian GNU/Hurd 2017"
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Заметили полезную информацию ? Пожалуйста добавьте в FAQ на WIKI.
. "Увидел свет Debian GNU/Hurd 2017" +1 +/
Сообщение от www2 (ok), 21-Июн-17, 17:59 
>> Процессы в DOS? Уже смешно. Вы его хоть видели-то, прежде чем говорить такое?
> Даже в убер-шелле DOS Navigator - были облегчённые-процессы, можно было например копировать
> файлы и читать что то или писать причём хоть сразу 100
> файлов.

Вы про DOS вещаете или про навигатор там какой-то?

> В некоторых играх под ДОС судя по всему - и обычные потоки
> были, просто редко,

И каким системным вызовом под DOS можно было создать поток?

> по крайне мере точно видел даже отдельный DOS extender в котором такое
> заявлялось.

DOS extender'ы переводили компьютер в защищённый режим, чтобы им была доступна оперативная память свыше 1 мегабайта без всяких приёмчиков типа оверлеев. Когда программа вызывала программное прерывание, DOS extender переводил на время компьютер в реальный режим, а после возврата из прерывания возвращал обратно в защищённый.

> В самом (MS)DOS пусть не было потоков "из коробки" - но, многозадачность
> была!

Там не было ни процессов, ни потоков. Запустить можно было только одну задачу. Даже запустить из одной задачи другую задачу - было непростой... задачей. Вся виденная вами многозадачность представляла собой функции самой программы - она работала в цикле и вызывала в нём разные функции, которые выполняли разную работу, так что это выглядело как многозадачность. Были ещё резидентные программы, что тоже было только трюком, а не штатной возможностью DOS - резидентные программы перезаписывали адрес в таблице обработчиков прерываний, чтобы какой-то кусок этой программы вызывался при вызове обработчика прерывания, этот кусок потом вызывал тот обработчик, который был записан в таблице обработчиков прерываний до него. Резидентная программа завершалась, прося DOS не удалять себя из памяти. Ещё раз - все эти трюки к DOS отношения не имеют.

> Вполне можно было себе обращаться с сетевой картой параллельно работе её драйвера
> или звуковушки, т.е.вручную и авоматически ветесняющая многзадачность

Вытесняющая многозадачность имеет место тогда, когда операционная система принудительно прерывает выполнение одного процесса, сохраняет его состояние и восстанавливает состояние другого процесса. В DOS процессов не было. Процессы и кооперативная многозадачность были в Windows до появления Windows NT и её потомков - это широко известные версии Windows 3.11, 95, 98 и ME. Вытесняющая многозадачность появилась только в Windows NT и продолжилась в её потомках - Windows 2000, XP и т.д. до нынешних времён.

Сеть в DOS была реализована методом резидентных программ. Драйверы сети не были отдельными процессами.

>(посмотрите скольк
> осейчас пооков в ОС под указанные драйвера) что то типа OVERLAPPED,
> более того - мало ктознает, но аналогичным методом(OVERLAPPED) - можно было
> и к диску обращаься!

Что такое OVERLAPPED и сколько потоков у ОС под "указанные драйвера"? Драйверы в Linux являются модулями ядра и чаще всего не создают отдельных внутриядерных потоков, они просто встраиваются в пространство ядра и могут выполняться даже на нескольких процессорах одновременно, обрабатывая данные от разных устройств параллельно - никаких внутриядерных потоков специально под обработку данных от устройства при этом не создаётся.

> И это втихую использовали разные графические ДОС-шеллы и тем более убер ДОС
> шеллы от MS'же - начиная с win1.0-3.1

Windows 1.0-3.1 представляли собой программу, которая работает поверх DOS. Windows 1.0-3.1 были надстройками.

> и даже вся линейка
> win9x сама использовала такие обращения к DOS

Windows 95, 98 и ME были самостоятельными операционными системами с DOS'ом как собственной подсистемой. DOS был частью Windows 95, 98 и ME, но не подложкой, поверх которой работала Windows 95, 98 или ME. У этой серии Windows для каждого устройства были собственные драйверы и была кооперативная многозадачность.

> файловому вводу-вывода [и что
> осбенно было полезно - даже предосавляя доступ к DOS драйверам диска
> от третьих производителей, когда под w9x небыло от производителя вообще, например
> минимум для BIOS-удалённых-дисков, это была ОС с истинной обратная совместимость...].

В Windows 95, 98 и ME обращения к прерываниям DOS и BIOS перехватывались и обрабатывались самим Windows и её драйверами.

> Просто во времна DOS это было слишком сложно и главное ненужно/неоплачиваемо, тем
> более при неочевидной пользе при всего 1 ЦПУ, думать о каких
> о там процессах для линейного однопроцессоного мышления большинства рядовых программистов
> того времени, ну да да и сама MS - сильно не
> афишировала конечно все возможности своего клона DOS, оставляя полный функционал только
> своим же играм и своим шеллам/ОС, а может просто преподам и
> книгописателям не вмещалсь зачем такой функционал нужен, а раз им не
> нужно - то и их ученикам...

Сейчас есть версии ядра Linux, которое работает на системах без MMU - там есть процессы. Прошивки коммутаторов и маршрутизаторов, сколько помню, всегда представляли собой монолитную прошивку, но и в некоторых из моделей коммутаторов и маршрутизаторов всё равно были процессы. Процессы есть там, где есть хотя бы кооперативная многозадачность. В DOS не было процессов и не было кооперативной многозадачности - DOS была чисто однозадачной системой.

Больше не говорите о том, в чём вообще нихрена не понимаете. Тем более так много.

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
Увидел свет Debian GNU/Hurd 2017, opennews, 18-Июн-17, 21:30  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру