LINUX.ORG.RU
Ответ на: комментарий от anonymous

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

ХМ, и что за баги с памятью могут быть в реальном режиме, или сегментация вас слишком смущает? Касательно языка: я пишу на Си в kernel-mode для embedded-ppc и как раз ищу причину (программную), почему там (linux-2.6.24) безбожно глючит ioremap, так что ваши нравоучения адресуйте кому-то другому

anonymous
()
Ответ на: комментарий от KRoN73

> Всё с Вами ясно :D (альтернативное определение операционной системы Вы так и не дали)

Из педивикии:

An operating system (OS) is software that manages computer resources and provides programmers with an interface used to access those resources. An operating system processes system data and user input, and responds by allocating and managing tasks and internal system resources as a service to users and programs of the system. An operating system performs basic tasks such as controlling and allocating memory, prioritizing system requests, controlling input and output devices, facilitating computer networking and managing files.

Из всех типов ресурсов ДОС реально менеджит только диск. И то - из-за отсутствия защиты никто не мешает приложению забить на этот менеджмент. Формально, есть простейшие функции ввода-вывода - но мало-мальски продвинутые проги должны были обращаться к железу, тащить с собой свои драйвера (вспомним какой-нибудь кайрайтер).

svu ★★★★★
()
Ответ на: комментарий от KRoN73

> В таком случае создание «операционной системы» под 8086/80186 (а также под огромную массу других процессоров, начиная от Z80, кончая 68К) принципиально невозможно :D

Возможно. Но она должна быть на основе виртуальной машины. Типа Инферно.

svu ★★★★★
()
Ответ на: комментарий от anonymous

> Аппаратура вся стандартная-одинаковая была вплоть до адресов и регистров.

Ага. В первые годы. Потом появились разные видяхи CGA/EGA/VGA (плюс расширения от производителей). Потом появились звуковухи. И однажды появились сетки.

А если Вы еще вспомните экзотические pc jr, то окончательно убедитесь, что одинаковость того железа - это легенда. Как только межбизмаш разрешил клонирование - начался бардак. Благотворный, но бардак.

svu ★★★★★
()
Ответ на: комментарий от svu

>Из всех типов ресурсов ДОС реально менеджит только диск.

А про функции ввода/вывода, выделения памяти, TSR и т.п. ты не слышал? Или полагаешь, что под DOS каждая прикладная софтина работала как ей бог на душу положит, хватала сама всё, до чего дотянуться могла? :D

>И то - из-за отсутствия защиты никто не мешает приложению забить на этот менеджмент.

Повторюсь - т.е. на процессорах, не имеющей аппаратной защиты памяти, операционные системы не возможны в принципе? :)

>Формально, есть простейшие функции ввода-вывода - но мало-мальски продвинутые проги должны были обращаться к железу,

Проги? Не знаю... Клаву DOS обеспечивала, мышь - тоже. Даже световое перо. А если кому-то было мало - так, ведь и сейчас:

>тащить с собой свои драйвера

Вот у меня сканер Epson FS200. Linux-драйвера под него нет. Драйвер тащит с собой прикладная программа, VueScan. Так что же, Linux - это не ОС?

А если бы под DOS был драйвер под нужную железку - она стала бы от этого ОС? :D

...

В общем, я пока логики в твоих словах не вижу. Одно только твоё собственное мнение :)

KRoN73 ★★★★★
()
Ответ на: комментарий от svu

>Но она должна быть на основе виртуальной машины.

Гы. Виртуальная машина на 8086? Это, типа, каждую инструкцию эмулировать софтверно?

Друк, выдыхай! :D

KRoN73 ★★★★★
()
Ответ на: комментарий от svu

>Как только межбизмаш разрешил клонирование

А он когда-то его запрещал? ЕМНИП, архитектура PC изначально была открытой.

KRoN73 ★★★★★
()
Ответ на: комментарий от svu

Да... с появлением _принципиально_ новых ОС назовет кто-нибудь вашу макось гламурным скринсейвером - и будет прав, а потом попробуй докажи ему (как вам сейчас), что он неправ.

frame ★★★
()
Ответ на: комментарий от KRoN73

> А про функции ввода/вывода

Слышал. Но кроме hello world их никто не пользовал. Чуть что - лезли с ногами в видеопамять. TSR это вообще было очень странное костыльное явление - недомногозадачность. При этом ни TSR не был защищет от кривых прог, ни наоборот.

> Проги? Не знаю... Клаву DOS обеспечивала, мышь - тоже. Даже световое перо. А если кому-то было мало - так, ведь и сейчас

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

> А если бы под DOS был драйвер под нужную железку - она стала бы от этого ОС? :D

Дело не в нужной железке. Дело в том, что там в принципе архитектура драйверов практически отсутствовала. Да, были .sys файлы и документация на то как их делать. Но оно не позволяло создать хоть что-то более-менее серьезное. Соббсно, не было и рассчитано.

> В общем, я пока логики в твоих словах не вижу. Одно только твоё собственное мнение :)

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

svu ★★★★★
()
Ответ на: комментарий от KRoN73

> Виртуальная машина на 8086? Это, типа, каждую инструкцию эмулировать софтверно?

Смотря какие инструкции. Например, сделать ОС для основе какого-нибудь Форта;)

> Друк, выдыхай! :D

Суббота, пыщщ;)

svu ★★★★★
()
Ответ на: комментарий от frame

> вашу макось

Она такая же моя, как и Ваша;)

> потом попробуй докажи ему (как вам сейчас), что он неправ.

Вот я уже выше и сказал "понятие ОС с точностью до эпохи"

svu ★★★★★
()
Ответ на: комментарий от svu

>Слышал. Но кроме hello world их никто не пользовал. Чуть что - лезли с ногами в видеопамять.

и правильно делали

>TSR это вообще было очень странное костыльное явление - недомногозадачность.

Это то, что программситы называли interrupt handler и более-менее примерные аналоги чего сейчас используются практически везде

>При этом ни TSR не был защищет от кривых прог, ни наоборот.

Защита памяти - задача MMU, а не прикладной программы

frame ★★★
()
Ответ на: комментарий от frame

> и правильно делали

Только было чревато. Особенно если вдруг TSR захотел что-то сказать пользователю.

> Это то, что программситы называли interrupt handler и более-менее примерные аналоги чего сейчас используются практически везде

Если Вы хотите обобщить до уровня event-driven программирования - то да, конечно. Или Вы о чем-то другом? В реальности отсутствия менеджмента памяти и железа приводило к тому, что TSRы порой конфликтовали с обычными программами.

> Защита памяти - задача MMU, а не прикладной программы

Это задача ОС. MMU - это основа одной из возможных реализаций. Пожалуй, самой эффективной.

svu ★★★★★
()
Ответ на: комментарий от svu

>Только было чревато. Особенно если вдруг TSR захотел что-то сказать пользователю.

например?

>Или Вы о чем-то другом?

я про обработчики аппаратных сигналов (исключений)

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

никогда подобного не наблюдал, приведите пример

>Это задача ОС. MMU - это основа одной из возможных реализаций. Пожалуй, самой эффективной.

для однозадачной ОС реального времени MMU не нужен

anonymous
()
Ответ на: комментарий от tailgunner

оговорился - в реального режима (real-mode) =)

anonymous
()
Ответ на: комментарий от svu

>Слышал. Но кроме hello world их никто не пользовал.

Пипец. Походу, слышал ты только краем уха. Весь основной системный софт работал именно через DOS. Реже - через BIOS.

В видеопамять лазил только прикладной софт. И не весь.

>TSR это вообще было очень странное костыльное явление - недомногозадачность.

Как бы там ни было, но интерфейс для TSR реализовала MS-DOS.

>При этом ни TSR не был защищет от кривых прог, ни наоборот.

Да. Но ОС тут не при чём. Это 8086.

>Сейчас практически ни одна программа не обращается на писюке к железу напрямую

Конечно. Время на месте не стоит :)

>Дело не в нужной железке. Дело в том, что там в принципе архитектура драйверов практически отсутствовала. Да, были .sys файлы и документация на то как их делать. Но оно не позволяло создать хоть что-то более-менее серьезное. Соббсно, не было и рассчитано.

Опять двадцать пять. Операционка - позволяла делать драйвера. То, что кому-то было проще работать напрямую с железом - не говорит о том, что этого не делала ОС. А то, что она могла пускать к железу - неужели ты сейчас скажешь, что и Win9x/Me - не операционки? Или, там MacOS9? :D

>На сегодняшний день нет общепринятого утверждения о минимальной функциональности, которая должна быть в ОС.

А как по мне - всё достаточно чётко сформулировано на той же Википедии: «Операцио́нная систе́ма, ОС (англ. operating system) — базовый комплекс компьютерных программ, обеспечивающий управление аппаратными средствами компьютера, работу с файлами, ввод и вывод данных, а также выполнение прикладных программ и утилит.»

Просто мне, вот, интересно, к какому классу программ ты относишь MS-DOS, TR-DOS, CP/M? :) Вот ты не говори, что MS-DOS - не операционная система, ты скажи, что такое, по-твоему, MS-DOS сотоварищи.

>Нынешние фирмвары порой имеют более продвинутую архитектуру, чем старый ДОС - но они только фирмвары.

М... Фирмвары позволяют на себе непосредственно запускать прикладные программы, обеспечивая весь необходимый интерфейс программе и возможность работы с программами пользователю? Тогда это уже не фирмварь, а ОС :)

Фирмрварь - это, всё же, ближе к BIOS. В продвинутых случаях - аналог Мониторов, если ты помнишь этот термин на до-MS-DOS'овских машинах.

KRoN73 ★★★★★
()
Ответ на: комментарий от svu

>Смотря какие инструкции. Например, сделать ОС для основе какого-нибудь Форта;)

Форт или будет, опять же, незащищённым, или будет настолько тормозным, что будет пофиг, работает программа на таком Форте или в полном эмуляторе 8086 на 8086 :)

KRoN73 ★★★★★
()
Ответ на: комментарий от anonymous

> например?

Был такой TSR калькулятор. Если его вызвать в графическом режиме - глючило.

> я про обработчики аппаратных сигналов (исключений)

Да, это есть в любой ОС. Но TSR использовались не только для этого.

> для однозадачной ОС реального времени MMU не нужен

Да пожалуйста. Я ж говорю - это только один из вариантов.

svu ★★★★★
()
Ответ на: комментарий от svu

>Был такой TSR калькулятор. Если его вызвать в графическом режиме - глючило.

Ы! Есть такие ATI-драйвера видео. В ряде версий, при переключении в консоль по Ctrl-Alt-F1 машина зависала.

Ы? :)

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

>> При этом ни TSR не был защищет от кривых прог, ни наоборот.

> Да. Но ОС тут не при чём. Это 8086.

ОС тут очень даже причем - она могла хотя бы предоставить "официальные" средства какскадирования обработчиков событий. Из-за отсуствия MMU нельзя было обеспечить _полной_ защиты, но DOS не делала даже того, что могла бы.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

>ОС тут очень даже причем - она могла хотя бы предоставить "официальные" средства какскадирования обработчиков событий.

Хм. И чем бы эти средства были лучше нескольких команд на ассемблере? :) Защиты бы они лишней не дали, а формат векторов прерываний были итак документирован и описан.

KRoN73 ★★★★★
()
Ответ на: комментарий от svu

>Был такой TSR калькулятор. Если его вызвать в графическом режиме - глючило

я бы тоже удивился появлению текстового калькулятора, играя в Wolfenstein :-D А вообще можно было бы детектировать видеорежим в TSR при желании, так что тут никаких принципиально неразрешимых проблем нет, разве что ресурсы

>Но TSR использовались не только для этого.

и?

>Да пожалуйста. Я ж говорю - это только один из вариантов.

в чем сомнения?

frame ★★★
()
Ответ на: комментарий от KRoN73

> Защиты бы они лишней не дали

Дали бы - хотя бы тем, что среди их пользователей не было бы конфликтов.

> а формат векторов прерываний были итак документирован и описан.

Ога, и функция Terminate but Stay Resident, и флаг DosOk тоже :D

tailgunner ★★★★★
()
Ответ на: комментарий от KRoN73

> Весь основной системный софт работал именно через DOS. Реже - через BIOS.

Да, про это я не упомянул. Считалось нормой жизни восполнять недостающие функции инт21 (и пр. досовских) вызовами функций биоса. Что еще раз показывает несамодостаточность этой системы.

> интерфейс для TSR реализовала MS-DOS.

Кто б спорил. Но это был именно костыль. Причем со множеством дыр.

> Да. Но ОС тут не при чём. Это 8086.

Это 8086 + соображения производительности. См. выше про виртуальные машины. Если нет MMU - его функции берет на себя ОС. Если она ОС.

> А как по мне - всё достаточно чётко сформулировано на той же Википедии

Это определение не специфицирует минимум функций.

> Просто мне, вот, интересно, к какому классу программ ты относишь MS-DOS, TR-DOS, CP/M? :) Вот ты не говори, что MS-DOS - не операционная система, ты скажи, что такое, по-твоему, MS-DOS сотоварищи.

С позиций 1985 - это ОС. Сегодняшнего дня - это "запускалка", предоставляющая несколько простеньких и корявеньких API.

> Тогда это уже не фирмварь, а ОС :)

Совершенно верно. Граница между фирмварью и ОСью условна. Например, фирмварь АСУСовских роутеров изначально не рассчитана на запуск программ. А что с ней делают народные умельцы?...

> Фирмрварь - это, всё же, ближе к BIOS.

Во, мы начинаем вводить некую шкалу. Это уже любопытно (кроме шуток). Что мы будем по ней откладывать? Мощность множества предоставляемых интерфейсов (описываемых этими интерфейсами объектов)? Да, честно признаюсь - с Мониторами дела не имел. Мне они представлялись скорее аналогом какого-нибудь Xen...

svu ★★★★★
()
Ответ на: комментарий от KRoN73

В линухе есть средства менеджмента доступа к ресурсам железа. Да, оно не защищает от того, что приложение, получившее доступ к железу, не убьет себя и систему. Но в ДОСе нет даже самого менеджмента. Два приложения, одновременно залезшие в видеопамять (точнее, приложение и TSR) - да как нефиг делать!

svu ★★★★★
()
Ответ на: комментарий от frame

> А вообще можно было бы детектировать видеорежим в TSR при желании, так что тут никаких принципиально неразрешимых проблем нет, разве что ресурсы

Именно! Память - бесценна. Особенно для TSR, который обязан быть максимально беспамятным.

svu ★★★★★
()
Ответ на: комментарий от tailgunner

>Дали бы - хотя бы тем, что среди их пользователей не было бы конфликтов.

А что, в современных системах dead-lock'и исчезли как класс? Конфликт пары досовских TSR'ов по сравнению с ними - как первоклассник по сравнению с Санычем в плане сексуального опыта

anonymous
()
Ответ на: комментарий от tailgunner

>Дали бы - хотя бы тем, что среди их пользователей не было бы конфликтов.

Ну так не было же. Сохраняешь старый вектор, ставишь свой, если не обработал - дёргаешь старый. Какие проблемы? :)

KRoN73 ★★★★★
()
Ответ на: комментарий от svu

>Именно! Память - бесценна. Особенно для TSR, который обязан быть максимально беспамятным.

А ещё X-овый калькулятор не работает в консоли! Ладно, поставлю вопрос с другой стороны: зачем в Wolfenstein текстовый калькулятор?

frame ★★★
()
Ответ на: комментарий от frame

Hint: графический режим используется не только игрушками. Например, уже упомянутый научный редактор chiwriter.

svu ★★★★★
()
Ответ на: комментарий от svu

>Во, мы начинаем вводить некую шкалу. Это уже любопытно (кроме шуток). Что мы будем по ней откладывать? Мощность множества предоставляемых интерфейсов (описываемых этими интерфейсами объектов)?

Для меня критерий такой. ОС - это прослойка между железом и программой, предоставляющая программе базовый функционал работы с железом и имеющая интерфейс пользователя, позволяющий управлять прикладными программами (устанавливать, удалять, запускать).

BIOS - это прослойка между железом и софтом, обеспечивающая некоторый базовый функционал, но не обеспечивающая пользователю работу с программами.

>Да, честно признаюсь - с Мониторами дела не имел. Мне они представлялись скорее аналогом какого-нибудь Xen...

Монитор - это BIOS с функциями загрузки и запуска программ :) То, что было на БК-0010/86РК/Орион-128/ZX-Spectrum и т.д.

Отличие от ОС в том, что он не позволяет манипулировать программами.

Вот для Орион-128, кстати, в варианте с ROM-диском была уже операционная система, ORDOS. Которая, как раз, и позволяла уже манипулировать прикладными программами и файлами.

KRoN73 ★★★★★
()
Ответ на: комментарий от svu

>Два приложения, одновременно залезшие в видеопамять (точнее, приложение и TSR) - да как нефиг делать!

Хм. В Linux тоже самое :D Запусти при живых иксах что-нибудь во фреймбуфере или svga. Можно обнаружить ряд интереснейших эффектов, вплоть до зависа.

Кроме того - а если машина без GUI вообще. Тогда как? :)

KRoN73 ★★★★★
()
Ответ на: комментарий от anonymous

>> Дали бы - хотя бы тем, что среди их пользователей не было бы конфликтов.

> А что, в современных системах dead-lock'и исчезли как класс?

А что, дэдлок уже не считается ошибкой? От программ с ошибками вообще нет защиты, они что угодно сделают :D

tailgunner ★★★★★
()
Ответ на: комментарий от svu

>Hint: графический режим используется не только игрушками. Например, уже упомянутый научный редактор chiwriter.

так может стоит найти нужную программу, а не требовать от существующей то, на что она не рассчитана?

frame ★★★
()
Ответ на: комментарий от tailgunner

>А что, дэдлок уже не считается ошибкой? От программ с ошибками вообще нет защиты, они что угодно сделают :D

просто порядок инициализации устройств в linux четко определен, а тут мы сами все запускаем, и, как в случае с линуксом - ошибка будет исправлена только _после_ обнаружения, так что тут совершенно никакой принципиальной разницы

anonymous
()
Ответ на: комментарий от KRoN73

> предоставляющая программе базовый функционал работы с железом

Тут я согласен. Просто функционал ДОСа я считаю менее чем базовым, недостаточным. И при том что лазить в железо напрямую приходилось почти всем - сама ДОС никак этот доступ не менеджила.

> имеющая интерфейс пользователя, позволяющий управлять прикладными программами (устанавливать, удалять, запускать).

Гхм. Немного странный критерий. Кто из нынешних ОС (ядер) умеет устанавливать и удалять?

> BIOS - это прослойка между железом и софтом, обеспечивающая некоторый базовый функционал, но не обеспечивающая пользователю работу с программами.

OpenWRT - это что?

> Монитор - это BIOS с функциями загрузки и запуска программ :)

Мне кажется - или наша шкала стала совсем расплывчатой?;) Интересно, в архитектуре на основе мониторов - сетевые вопросы, наверное, каждой проге решать приходилось (бы?) самостоятельно... Да, и еще - не счесть ли микроядро монитором?;)

svu ★★★★★
()
Ответ на: комментарий от KRoN73

Он может имел ввиду случай, когда нужно выгрузить промежуточный обработчик, но обычно они с собой такого сделать не позволяют, если текущее значение в таблице векторов не совпадает с их точкой входа, поскольку в этом случае нужно модифицировать адрес возврата другого обработчика (что довольно трудно)... правда, и необходимость в такой операции встречается редко и лечится раз и навсегда правильным порядком загрузки резидентов =)

anonymous
()
Ответ на: комментарий от KRoN73

> Запусти при живых иксах что-нибудь во фреймбуфере

У админа есть контроль над этими вещами. Впрочем, да - кривизна дров и железо способна на многое, ничего не попишешь. Штука в том, что ДОС даже не пытается эти вещи регулировать. resource management практически отсутствует.

svu ★★★★★
()
Ответ на: комментарий от svu

Ланн, пора закруглять этот спор о терминах. Фактически, мы понимаем под ОС разные вещи, и вряд ли кто согласится с определением термина оппонента. Просто давайте сойдемся на том, что эти понятия довольно расплывчаты;)

svu ★★★★★
()
Ответ на: комментарий от svu

>Штука в том, что ДОС даже не пытается эти вещи регулировать. resource management практически отсутствует.

Ну блин, что вы хотите от real-mode ?! Бинарник ядра линукса при том же размере по сравнению с досовским будет иметь практически нулевую функциональность! Кстати, о функциональности: не подскажете аналогов (нативных) MHDD или Vicrotia для линукса?

anonymous
()
Ответ на: комментарий от svu

> мы понимаем под ОС разные вещи

Нутакть. DOS был _дисковой_ операционной системой назван, для того большей частью и использовался. Всё остальное обычно делали через бивис или напрямую. Да и сравнивать его корректнее с CP/M а не с Linux.

anonymous
()
Ответ на: комментарий от svu

Сейчас самое время задать вопрос: а был ли DOS?

soomrack ★★★★★
()
Ответ на: комментарий от KRoN73

> Фирмвары позволяют на себе непосредственно запускать прикладные программы, обеспечивая весь необходимый интерфейс программе и возможность работы с программами пользователю? Тогда это уже не фирмварь, а ОС :)

позволяют. например, загрузить программу - ядро ОС :) то же http://en.wikipedia.org/wiki/Open_Firmware понимает ФС (как запускалка-GRUB) и имеет драйвера устройств карт ввода-вывода. и вполне годится на роль микроядра-гипервизора.И да, Линукс -- лучшая запускалка других ОС :))

>Фирмрварь - это, всё же, ближе к BIOS. В продвинутых случаях - аналог Мониторов, если ты помнишь этот термин на до-MS-DOS'овских машинах.

угу, по уровню предоставляемого АПИ.

anonymous
()
Ответ на: комментарий от tailgunner

>> а формат векторов прерываний были итак документирован и описан.

> Ога, и функция Terminate but Stay Resident, и флаг DosOk тоже :D

В 5-м досе -- да.

acheron ★★★★
()
Ответ на: комментарий от anonymous

>Я ДОСом пользовался до 2001 года. Потом Линукс - и, между прочим, та же история - лет 5 пользовался консолью, потом пришлось переходить в Х - ибо новые программы, юникод и т. д.

а потом купил монитор? :P

>Почему диалог с машиной заменяется на тупое тыканье по картинкам?

зависит от. Кто-то читал в деццве книжки, придумывал свои языки и системы как чОрный ясчег. Кто-то смотрел картинки, перекладывал бумажки и работал руками (им по идее нужен нормальный интерфейс, BCI, VR и 3d)

anonymous
()
Ответ на: комментарий от anonymous

>>Где в ДОСе управление памятью??

>Выделение блоков было. Но можно и тупо писать куда вздумается. Оттуда и надёжность.

и производительность. В том же Wolfenshtein 3d уже писали свой менеджер памяти (а в Думе -- зональный аллокатор, memory pool) -- чтобы оно быстро работало (ибо MCB, kak и FCB тормозило)

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.