Полезная информация

Юристы зарабатывают огромные деньги и славу, оперируя хорошим знанием законов. Правила форума — простой путь к успешному общению.

№7618-10-2007 15:44:21

Azathoth
Участник
 
Группа: Extensions
Откуда: Хабаровск
Зарегистрирован: 02-02-2005
Сообщений: 2692
UA: Firefox 2.0

Re: альтернативные ОС: Syllable, SkyOS, KolibriOS, MenuetOS, ReactOS и.т.д

OCTAGRAM
Все это вилами по воде писано. У каждого языка есть достоинства и недостатки, а так же сферы применения, даже у Ada. Я не собираюсь тут их рассматривать, т.к. излишнее сотресание воздуха, все равно все останутся при своем мнении. Однако, как показывает практика, за удобство всегда приходится платить (это относится к любому языку). Чем меньше язык требует от программиста, тем меньше возможностей программист получает.
Выбор языка это вопрос прежде всего проектирования. В практике Unix-программирования часто встречаются ситуации когда для разных частей программы выбираются разные языки. Выбор одного лишь C/C++ часто не оправдан, как и выбор только Ada подо все задачи... Ну не может язык рассматриваться в качестве инструмента исходя из одного лишь параметра (в случае Ada я так понял Вы представляете надежность).

Вот мне интересно, в чем причина практической нераспространенности операционок на Ada? Не в том ли, что они узкоспециализированные и не могут решать элементарные задачи десктопа? ;)
На сколько я знаю real-time задачи сильно отличаются от задач обычного десктопного да и серверного приложения. Там как правило не рассматривается возможность работы большого количества процессов, т.к. в этом случае real-time просто не получается.

Тесто для этого у них гораздо более подходящее, чем у Trusted, Linux SE или недавно облажавшейся OpenBSD

В чем собственно она облажалась? И где те самые "very secure Unix like operating system"? Не заметно повального распространения, в отличие от... А кто даст гарантию что при такой же распространенности при той же широте решаемых задач они не окажутся куда менее надежны и удобны? Уверен что задачи перед ними стоят очень узкие.

Отредактировано Azathoth (18-10-2007 15:46:55)


...она старалась, чтобы я больше времени проводил в разных пионерлагерях и группах продлённого дня - кстати сказать, удивительную красоту последнего словосочетания я вижу только сейчас. (c) Виктор Пелевин

Отсутствует

 

№7718-10-2007 17:59:35

Еретик
Revived Phoenix
 
Группа: Members
Откуда: адЪ
Зарегистрирован: 31-08-2006
Сообщений: 114
UA: Firefox 2.0
Веб-сайт

Re: альтернативные ОС: Syllable, SkyOS, KolibriOS, MenuetOS, ReactOS и.т.д

Запускал (LiveCD и с дискет):
ReactOS, AROS, MenuetOS, KolibriOS, RusOS, Syllable.
ИМХО, всё это в настоящее время УЖОСНАХ, хотя KolibriOS понравилась - летает.
После запуска реактоси я понял, что зря винду за нестабильность ругают - у меня МЕ стабильней была...
У реактос идея хорошая, конечно, но вон майкрософт обещают следующую винду без реестра выпустить (хотя, они и висту обещали выпустить без реестра и с новой файловой системой). Когда в реактоси глюки отловят - она уже будет настолько устаревшей, что придётся переписывать... :(


Грех предаваться унынию, когда есть другие грехи.

Отсутствует

 

№7818-10-2007 19:02:30

St.MPA3b
Участник
 
Группа: Members
Откуда: Москва
Зарегистрирован: 23-05-2005
Сообщений: 1852
UA: Konqueror 3.5

Re: альтернативные ОС: Syllable, SkyOS, KolibriOS, MenuetOS, ReactOS и.т.д

Еретик
Почитайте интервью одного из разработчиков реактоси: http://www.computerra.ru/focus/332964/
Это они её just for fun скорей пишут.
ps: лол, винда без реестра. Потом выйдет винда с 4 рабочими столами и 7 консолями?


Я схожу с ума или это глючит Реальность?
Gentoo Linux (~x86) + Konqueror + Kmail ;). Не люблю GTK.

Отсутствует

 

№7918-10-2007 19:12:54

Infant
   «»
 
Группа: Extensions
Откуда: Одесса
Зарегистрирован: 23-12-2004
Сообщений: 3671
UA: Minefield 3.0

Re: альтернативные ОС: Syllable, SkyOS, KolibriOS, MenuetOS, ReactOS и.т.д

OCTAGRAM
Во-первых, когда Симула стала вдруг считаться ОО-языком? Ну уж не в момент своего выхода. Потому как на то время всё произрастало из Алгола, его удобств и покрытия недостатков.

Я тут, понимаешь, ратую за безопасные программы. Каким местом ассемблер вдруг безопаснее Ады?

Во-вторых в плане этой цитаты хочется услышать про безопасность Ады что-то конкретное кроме общих фраз что она лучше. Причём этого что-то не должно быть в С/С++. Жду с нетерпением. Спецификацию 2005 года не читал (как бы за ненадобностью).


Благодарю алфавит за любезно предоставленные буквы.

Отсутствует

 

№8018-10-2007 20:08:28

OCTAGRAM
Участник
 
Группа: Members
Откуда: Барнаул
Зарегистрирован: 29-03-2007
Сообщений: 19
UA: Omniweb 5.5
Веб-сайт

Re: альтернативные ОС: Syllable, SkyOS, KolibriOS, MenuetOS, ReactOS и.т.д

fat_angel

так что уж лучше сразу отказаться от всяких прослоек в виде языков программирования высокого уровня и сразу писать на языке CPU.

Чтобы сделать современное приложение для Mac OS X Leopard, нужно представить его в трёх архитектурах:
x86_64, x86, ppc

x86_64 потому что это основная архитектура
x86 для совместимости с OS X Tiger
ppc потому что PowerPC ещё не вышел из употребления, и его надо поддерживать
Ну, и если программа вычислительная, то неплохо бы ещё и ppc64 версию поставлять

Кроме этого, чтобы приложение было конкурентоспособным, оно должно быть многозадачным. Не горю желанием писать рандеву на ассемблере.

В общем, обычно стремятся от N*M перейти к N+M, а не наоборот.

Ссылки :
Язык Ада — двадцать лет спустя — небольшой обзор
"Адское" программирование — хорошее руководство по языку Ada 95
Обзор стандарта Ада 2005

Хорошие слайды (eng) :
Programming in the Small: C/C++/Java Pitfalls & Ada Benefits

В Java, к счастью, некоторые мелочи пофиксили, например, enum там теперь есть.


Желательно не ограничиваться русским языком. Так уж повелось, что русских адаистов мало, как следствие, на русский мало переводят, как следствие, адаисты читают прям так, по–английски, как следствие, не переводят ещё и потому, что русские адаисты и так по–английски все поймут.

Я вот себе Programming in Ada 2005 прикупил. На русский вряд ли переведут. Про Delphi–Паскали книжные полки ломятся, а про Ada вот так вот не пойдёшь и не купишь, только через Интернет.


Удалено!

Отсутствует

 

№8119-10-2007 21:54:22

Erik
Рупор народной культуры
 
Группа: Members
Откуда: Бавария, Бюргерстан
Зарегистрирован: 25-09-2006
Сообщений: 1341
UA: Firefox 2.0

Re: альтернативные ОС: Syllable, SkyOS, KolibriOS, MenuetOS, ReactOS и.т.д

Еретик пишет

После запуска реактоси я понял, что зря винду за нестабильность ругают - у меня МЕ стабильней была...
У реактос идея хорошая, конечно, но вон майкрософт обещают следующую винду без реестра выпустить (хотя, они и висту обещали выпустить без реестра и с новой файловой системой). Когда в реактоси глюки отловят - она уже будет настолько устаревшей, что придётся переписывать... :(

Ну ты сравнил - альфа-версию реактОС с зарелизенной МЕ. Когда МС выпустит еще одну версию и перестанет поддерживать ХР, реактОС останется единственной поддерживаемой win-32 совместимой системой. У МС один шанс - пойти по стопам Яббл и навесить свой интерфейс на юникс (имхо).

Отсутствует

 

№8220-10-2007 12:52:43

Rohanx
Участник
 
Группа: Members
Зарегистрирован: 24-06-2005
Сообщений: 195
UA: Firefox 2.0

Re: альтернативные ОС: Syllable, SkyOS, KolibriOS, MenuetOS, ReactOS и.т.д

Предлагаю тему про языки вынести в отдельный топик! Тема безусловно интересная , но лучше думаю ее будет обсудить отдельно!

Отсутствует

 

№8320-10-2007 12:57:40

Infant
   «»
 
Группа: Extensions
Откуда: Одесса
Зарегистрирован: 23-12-2004
Сообщений: 3671
UA: Minefield 3.0

Re: альтернативные ОС: Syllable, SkyOS, KolibriOS, MenuetOS, ReactOS и.т.д

Да зачинщик вопроса про языки всё никак не соберётся объяснить преимущества написания ОС на Аде. А так получается что да — оффтопик.


Благодарю алфавит за любезно предоставленные буквы.

Отсутствует

 

№8420-10-2007 18:34:42

Квизац_Хадерач
Джедай
 
Группа: Members
Откуда: Россия|провинция
Зарегистрирован: 28-01-2007
Сообщений: 1228
UA: Seamonkey 1.1
Веб-сайт

Re: альтернативные ОС: Syllable, SkyOS, KolibriOS, MenuetOS, ReactOS и.т.д

Тут пришла мысль, а можноли относить МАК ОС, Линукс, БСД всех мастей к альтернативным осям ? :) Ведь по сути тот же Линукс позиционируется как альтернатива всем осточертевшей винды.


Каждый ответственен за то добро, которое не совершил.

Отсутствует

 

№8520-10-2007 18:50:33

DrLabRus
minefield
 
Группа: Members
Откуда: НН
Зарегистрирован: 16-09-2006
Сообщений: 565
UA: Minefield 3.0

Re: альтернативные ОС: Syllable, SkyOS, KolibriOS, MenuetOS, ReactOS и.т.д

Квизац_Хадерач
Я думаю нет. На мой взгляд можно назвать три основных ветки: Win, *nix, MacOS. А вот все остальное - альтернативное...


Ceterum censeo, Carthaginem esse delendam.

Отсутствует

 

№8620-10-2007 18:54:33

Квизац_Хадерач
Джедай
 
Группа: Members
Откуда: Россия|провинция
Зарегистрирован: 28-01-2007
Сообщений: 1228
UA: Seamonkey 1.1
Веб-сайт

Re: альтернативные ОС: Syllable, SkyOS, KolibriOS, MenuetOS, ReactOS и.т.д

три основных ветки: Win, *nix, MacOS

Я бы вделил просто  UNIX а линукс которому отрожденья 16 лет все же альтернатива :)


Каждый ответственен за то добро, которое не совершил.

Отсутствует

 

№8720-10-2007 19:05:15

DrLabRus
minefield
 
Группа: Members
Откуда: НН
Зарегистрирован: 16-09-2006
Сообщений: 565
UA: Minefield 3.0

Re: альтернативные ОС: Syllable, SkyOS, KolibriOS, MenuetOS, ReactOS и.т.д

Квизац_Хадерач
Сначал был UNIX (если ничего не путаю, то прямо так это и называлось). Потом Э.Таненбаум написал учебную ОС MINIX, взяв за основу UNIX. И только потом :) Линус, наш, Торвальдс, взяв за основу MINIX, написал ядро Linux. И понеслась...
А BSD - это вроде одна из модификаций UNIX.
PS могу в чем-то и ошибаться, т.к. пишу, что знаю, а проверять себя по другим источникам пока лень...

Отредактировано DrLabRus (20-10-2007 19:07:40)


Ceterum censeo, Carthaginem esse delendam.

Отсутствует

 

№8820-10-2007 19:09:21

Квизац_Хадерач
Джедай
 
Группа: Members
Откуда: Россия|провинция
Зарегистрирован: 28-01-2007
Сообщений: 1228
UA: Seamonkey 1.1
Веб-сайт

Re: альтернативные ОС: Syllable, SkyOS, KolibriOS, MenuetOS, ReactOS и.т.д

DrLabRus
Я Вам это и объясняю, следуя вашей логике выделять надо Win, Unix, MacOS  а остальное уже альтернатива. Тровальдс кстати писал Линукс как альтернативу дорогому Unix  :)


Каждый ответственен за то добро, которое не совершил.

Отсутствует

 

№8920-10-2007 19:20:10

DrLabRus
minefield
 
Группа: Members
Откуда: НН
Зарегистрирован: 16-09-2006
Сообщений: 565
UA: Minefield 3.0

Re: альтернативные ОС: Syllable, SkyOS, KolibriOS, MenuetOS, ReactOS и.т.д

Квизац_Хадерач
Очевидно, проблема возникла из-за моей неправильной терминологии - когда я писал *nix, я подразумевал UNIX и всех ему подобных: MINIX, Linux, BSD ..... (также, как Win обозначает Win3.11, Win98 ...)
Что же на самом деле подразумевается под *nix ?

Отредактировано DrLabRus (20-10-2007 19:22:12)


Ceterum censeo, Carthaginem esse delendam.

Отсутствует

 

№9020-10-2007 19:26:24

Квизац_Хадерач
Джедай
 
Группа: Members
Откуда: Россия|провинция
Зарегистрирован: 28-01-2007
Сообщений: 1228
UA: Seamonkey 1.1
Веб-сайт

Re: альтернативные ОС: Syllable, SkyOS, KolibriOS, MenuetOS, ReactOS и.т.д

DrLabRus
Я предлагаю расматривать UNIX, Windows (все версии, т.к. одна следует из другой), и MacOS как основные системы, а вот Линукс уже как альтенативную ось, ибо она создавалась как альтернатива платному UNIX.
З.Ы. МакОС в принципе тоже выросла на основе BSD но там очень много чего оригинального, так что ее как раз можно считать одной из основных ОС.


Каждый ответственен за то добро, которое не совершил.

Отсутствует

 

№9120-10-2007 19:50:58

krigstask
друг народа
 
Группа: Members
Откуда: Rampova, Inkerimaa
Зарегистрирован: 13-09-2005
Сообщений: 4593
UA: Opera 9.5
Веб-сайт

Re: альтернативные ОС: Syllable, SkyOS, KolibriOS, MenuetOS, ReactOS и.т.д

Мне кажется, граждане, что вы погрязли в словоблудии.
Для меня есть три "основных" ветки ОС: Windows, MacOS и Linux вместе с *BSD. Всё остальное я воспринимаю как экзотику. Это восприятие основано исключительно на личных впечатлениях.


Ядрёная консоль делает меня сильней!

Отсутствует

 

№9220-10-2007 20:05:47

DrLabRus
minefield
 
Группа: Members
Откуда: НН
Зарегистрирован: 16-09-2006
Сообщений: 565
UA: Minefield 3.0

Re: альтернативные ОС: Syllable, SkyOS, KolibriOS, MenuetOS, ReactOS и.т.д

krigstask
Мое мнение такое же.
Квизац_Хадерач
Не поленился и открыл Таненбаума "Современные операционные системы". Вот цитаты(обе с 35 стр, если что):

Кен Томпсон <...> решил написать усеченную однопользовательскую версию системы MULTICS. Эта работа позже развилась в операционную систему UNIX.

Желание иметь свободнораспространяемую рабочую(в противоположность образовательной) версию MINIX подвигло финского студента Линуса Торвальдса к написанию системы Linux. Эта система была разработана на основе MINIX и первоначально обладала ее характерными особенностями.

Там же сказано, что MINIX основан на UNIX.

Отредактировано DrLabRus (20-10-2007 20:07:28)


Ceterum censeo, Carthaginem esse delendam.

Отсутствует

 

№9320-10-2007 20:43:34

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 2.0
Веб-сайт

Re: альтернативные ОС: Syllable, SkyOS, KolibriOS, MenuetOS, ReactOS и.т.д

Там же сказано, что MINIX основан на UNIX.

Что, то не верится, что-нибудь вроде "на стандарте posix", скорее ?


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№9420-10-2007 20:49:53

DrLabRus
minefield
 
Группа: Members
Откуда: НН
Зарегистрирован: 16-09-2006
Сообщений: 565
UA: Minefield 3.0

Re: альтернативные ОС: Syllable, SkyOS, KolibriOS, MenuetOS, ReactOS и.т.д

Anton
Привожу точную цитату:

С тех пор система Linux была значительно расширена, но она все еще сохраняет большую часть структуры, общей как для системы MINIX, так и для системы UNIX(на которой и была основана система MINIX).

Тоже 35 страница, кому интересно.


Ceterum censeo, Carthaginem esse delendam.

Отсутствует

 

№9525-10-2007 14:10:13

Rohanx
Участник
 
Группа: Members
Зарегистрирован: 24-06-2005
Сообщений: 195
UA: Firefox 2.0

Re: альтернативные ОС: Syllable, SkyOS, KolibriOS, MenuetOS, ReactOS и.т.д

К сожалению тему мою про Syllable прикрыли, сказав что и тут можно поговорить. Поэтому очень кратко опишу саму систему.

Syllable не является "еще одним клоном unix". Основной задачей разработчики ставят создание быстрой и надежной операционной системы для дома. Свои корни Syllable берет от проекта под названием AtheOS, первая публичная версия которого вышла в 1997 году, но к сожалению был заброшен своим автором. Так же проект никогда не был связан с BeOS и не является его клоном. Имеются далекие отголоски AmigaOS и некоторых других мало известных у нас систем.

Syllable имеет модульное ядро, это позволяет достичь высокой скорости работы, а так же позволяет подключать драйвера именно как модули, без необходимости пересборки ядра как в Linux. Конечно некоторые драйвера и часть приложений приходится портировать с nix, но тем не менее Syllable имеет ряд нативных приложенийи свою собственную файловую систему AFS. Так же поддерживается posix, что позволяет компилировать ряд консольных приложений для системы без их серьезной модификации.

Так же существует Syllable Server, использующая ядро Linux, но она не является приоритетной веткой в развитии. Ядро Linux было выбрано так как оно обеспечивает функционирование всех необходимых сетевых сервисов и его относительно легко можно пересобрать под свои нужды.
Можно сказать так: разработчики решили сделать сетевую версию системы, но при этом решили отделаться малой кровью, так получилась Syllable Server на ядре Linux.

www.syllable.org
www.syllable.org.ru

movingqueenpurijl8.th.png

Отсутствует

 

№9625-10-2007 22:17:15

Rohanx
Участник
 
Группа: Members
Зарегистрирован: 24-06-2005
Сообщений: 195
UA: Firefox 2.0

Re: альтернативные ОС: Syllable, SkyOS, KolibriOS, MenuetOS, ReactOS и.т.д

Обзор последнего билда SkyOS можно прочитать тут http://sysbin.com/files/articles/skyos_6796.html

Отредактировано Rohanx (25-10-2007 22:17:31)

Отсутствует

 

№9728-10-2007 09:43:46

OCTAGRAM
Участник
 
Группа: Members
Откуда: Барнаул
Зарегистрирован: 29-03-2007
Сообщений: 19
UA: Omniweb 5.5
Веб-сайт

Re: альтернативные ОС: Syllable, SkyOS, KolibriOS, MenuetOS, ReactOS и.т.д

Infant пишет

OCTAGRAM
Во-первых, когда Симула стала вдруг считаться ОО-языком? Ну уж не в момент своего выхода.

Не знаю, когда она там официально вышла, но Simula 67 — это то, с чего пошло ООП, и это как бы общеизвестно. Недолго гуглив, получаем INTRODUCTION TO OOP IN SIMULA:

The first Object Oriented Language (OOL) Simula 67 was officially introduced ...

Infant пишет

Спецификацию 2005 года не читал (как бы за ненадобностью).

Поправка: 2007 года. В 2005м году появился только первый черновик. Так бы её и назвали Ada 2007, но с лёгкой руки AdaCore, в темпе реализовывавшей новые фичи, название Ada 2005 укрепилось в исходниках и документации, и менять его не стали.

Azathoth пишет

Все это вилами по воде писано. У каждого языка есть достоинства и недостатки, а так же сферы применения, даже у Ada. Я не собираюсь тут их рассматривать, т.к. излишнее сотресание воздуха, все равно все останутся при своем мнении.

Вот уж точно. Будучи пессимистом, я тоже думаю, так и будет. Я бы даже ожидал приведения в действие следующего эмпирического закона:
How come Ada isn't more popular?

I'm reminded of Babbage's (allegorical) lament when the
British government cut funding for the analytical engine: "Propose to
an Englishman any principle, or any instrument, however admirable, and
you will observe that the whole effort of the English mind is directed
to find a difficulty, a defect, or an impossibility in it. If you
speak to him of a machine for peeling a potato, he will pronounce it
impossible: if you peel a potato with it before his eyes, he will
declare it useless, because it will not slice a pineapple."

Rohanx
Но попробовать стоит.
Мысли

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

Azathoth пишет

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

Есть в C++ некоторые "удобства", за которые я платить отказываюсь. В первую очередь, это совместимость с C на уровне исходных текстов. Это преподносится как нечто очень полезное, как нужное и важное свойство. На деле же кара за рекламную ложь ощутима. Во–первых, простота смешивать вот так вот просто языки, как предложено, это преувеличение. В C исключений не было, так что писать исходный текст на нём следует в пессимистичном стиле. А в C++ — есть, и там нужен оптимистичный стиль. Нужно конвертировать коды ошибок C в исключения C++ и делать некоторую другую работу. Но если, как ни крути, на стыках возникают impedance mismatch, то зачем вообще вся эта совместимость на уровне исходных текстов? В Аде языковое смешение было предусмотрено. По стандарту с C, Fortran и COBOL. А в компиляторах GNAT ещё и C++. Но не на уровне исходных текстов. А так, что понятно, вот здесь legacy C, а здесь Ада.

Далее, в C можно было менять входные параметры. Собственно, C лишь был кроссплатформенным ассемблером, и эта возможность просто отражала возможности процессора. Но наш доблестный C++ ведь очень хотел быть совместимым с C! И, поэтому, даже если мы пишем в C++ методе входным параметром сам объект, а не ссылку на него, объект скопируется. Для нашего же удобства. Вдруг мы его копию изменить захотим. Принято считать, что в C++ за те удобства, которые не используем, мы и не платим, но есть кое–что, что имеет более высокий приоритет. Совместимость с C. Причём, в C–то это проблемой не было, C же не претендовал на язык с шаблонами (будь в C++ инты изменяемы, а более сложные — нет, это привело бы к противоречиям в языке; как вариант, сделать read-only входной параметр типа–параметра, даже если этот тип–параметр может быть параметризован как int, но это что–то нездоровое, тем более, что struct в C уже копировались, опять противоречие). И то, что в C структура вот так же просто копировалась, не было чем–то странным. Это проблема именно C++. Да, там есть ссылки, и их приходится использовать. Тем временем в Аде входные параметры по умолчанию доступны только на чтение, соответственно, разговоров об избежании копирования даже не начинается. Компилятор сам разберётся, как ему там эти параметры переслать. (Замечание: C.6 Shared Variable Control: If an actual parameter is atomic or volatile, and the corresponding formal parameter is not, then the parameter is passed by copy. Так что и тут всё гладко)

Возврат результата тоже сделан грамотно. Если результат достаточно мал, он передаётся по значению. Если больше, но известного (на этапе компиляции) размера, под него отводится место на стеке, и на это место функции передаётся указатель. Если неизвестного размера, то функция размещает объект на втором стеке и возвращает указатель на него. Все эти вопросы прекрасно может разруливать компилятор. Это особенно важно при программировании дженериков. Мало ли, как его параметризовать могут. Будет там что известно на этапе компиляции или нет...

Одним "необходимым" (да–да, в кавычках) для программирования знанием меньше. Все эти const & и последующие за ними специализации шаблонов для int и т. д., в Аде не нужны. В Аде писать дженерики проще. Причём, заметьте, эта не та рекламная "простота", за которую нужно чем–то платить, как в Яве или C#. Нет, это одна из сложностей, которых можно избежать при грамотном проектировании языка.

Azathoth пишет

Выбор языка это вопрос прежде всего проектирования. В практике Unix-программирования часто встречаются ситуации когда для разных частей программы выбираются разные языки. Выбор одного лишь C/C++ часто не оправдан, как и выбор только Ada подо все задачи... Ну не может язык рассматриваться в качестве инструмента исходя из одного лишь параметра (в случае Ada я так понял Вы представляете надежность).

Я не говорил про замену Адой всего, я упомянул лишь C(++). Да, было бы неплохо видеть побольше программ на спайке Ада+Лисп (также, как в Mozilla C++ + JavaScript). Хотя можно и не Лисп, но Ада уж точно. Эти части (статика/динамика) таковы, что выбирать их можно независимо. А коль уж топик про операционные системы, нас должно интересовать системное программирование. Тем более, что сами динамические языки так или иначе тоже надо на чём–то реализовывать.

Azathoth пишет

Вот мне интересно, в чем причина практической нераспространенности операционок на Ada?

То, что в десктопном варианте их нет. Lovelace OS, призванная это исправить, делается 4мя людьми. Для сравнения, Psi делается семерыми. Но это не значит, что не стоит пытаться. Был бы остов, а добровольцы ещё могут найтись. На выборы ведь тоже можно не ходить, но если все так будут думать, и никто не пойдёт...

Azathoth пишет

Не в том ли, что они узкоспециализированные

Существующие операционки — да, а язык — нет. Embedded — это основное поле деятельности для Ады, но сама Ада — язык универсальный.

Azathoth пишет

И где те самые "very secure Unix like operating system"? Не заметно повального распространения, в отличие от...

Если в реале всё хреново, почему в виртуале должно быть лучше? Люди–то те же самые.

Мысли: Об алгоритмах и программах

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

[...]

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

Тем не менее, микроскопическими шагами, но вперёд двигаемся. Раньше вот была FAT, и ничего, что она к сбоям неустойчива. Сейчас у большинства HFS+, NTFS или другие, от сбоев защищённые. И это не вызывает насмешек типа да зачем нам эти журналы–транзакции. То же самое и с Ada vs. C(++). Глядишь, тоже дойдёт когда–нибудь.

Infant пишет

Во-вторых в плане этой цитаты хочется услышать про безопасность Ады что-то конкретное кроме общих фраз что она лучше. Причём этого что-то не должно быть в С/С++. Жду с нетерпением.

Поконкретнее было по ссылке :
Слайды : Programming in the Small: C/C++/Java Pitfalls & Ada Benefits

В Аде более строгие правила работы со указателями. Вот просто так не возьмёшь и не присвоишь указатель на локальный объект переменной типа указатель на глобальный объект. В Аде есть проверка на выход за границу массива (а не только вектора). В C++ нетривиально сделать проверку для массивов, созданных new []. В C++ нельзя объявить указатель not null. В Аде RAII действует не только на объекты–переменные, но и на те, что были созданы new. Они будут финализированы не позже выхода из области видимости типа указателя.

Это только те фичи, которые непосредственно усиливают безопасность и безошибочность. C++ славится своими патогенными особенностями (об этом на слайдах линк выше, а также на FQA Lite линк ниже).

Все методы безопасности в Аде можно подавлять и обходить. Но при этом те места, где это было сделано, локализуемы. Я бы предпочёл отвечать за то, что я снял проверку в известном месте, чем за то, что я её где–то не поставил.



Ada helps churn out less-buggy code

Ada is good at detecting errors in programs early in the programming lifecycle. You submit your code to an Ada compiler, and it will inform you right away that you made mistakes that a lot of languages would let go right by. For some people, that’s the bottom line. Errors cost money. The sooner you catch them, the less they cost.

If the compiler misses an error, Ada has another line of checking when you run the program. People who use Ada generally find that if the program makes it through the compile-time and run-time checks, it’s remarkably close to doing what it should. That gives them a sense of productivity and pride in the quality of their work.

Video System Reduces Test and Debug Time with Ada

The division found that just ridding the software of C's undefined pointers and array index out of bounds errors translated into a significant savings, as these were traditionally the most time-expensive errors to find. In Ada, engineers found one error every 270 lines, compared with C, which recorded one bug every eighty. The time spent fixing error rates plummeted from a traditional four hours to twenty minutes.

No call for it

I can tell you my personal experience. My first tries at Ada where
painful: For a start, it was hard (comparatively to other languages
anyway) to get your program compiled... these damn compiler complaining
about anything. Then, I was always getting "constraint_error" and such.
Mind you, in C these errors could go unnoticed for quite some time.
In the end, when you get used to the Ada way, you realize how productive
it makes you, but at first it was exactly as you depict it.

I've always said: Ada doesn't catch with the general populace because
isn't a language for everyone: it requires extra-discipline and other
qualities from the programmer. It's like fast-food and sane food:
everyone knows the later is better, but not everyone has the will to
renounce to the first. In the 20/80 rule, Ada is for the better 20% of
the programmers... or so I like to think ;)

Technical Features
Business Benefits
Advocacy
Choose Ada : The Most Trusted Name in Software™

В C++ очень многое решается костылями. Размер массива должен быть известен на этапе компиляции. А пофиг, пусть vector юзают, если нужен с заранее неизвестными границами. Псевдомодульность обеспечивает препроцессор. А пофиг, работает же и ладно. (повторюсь) параметры без ссылок будут копироваться. А пофиг, программисты всё стерпят, от них не убудет пару лишних специализаций написать.

C++ FQA Lite — здесь много, чего описано. Я сам к этому материалу неоднозначно отношусь в свете того, что знаю, как некоторые проблемы всё–таки можно решить в рамках языка системного программирования. Например:

C++ operator overloading has all the problems of C++ function overloading (incomprehensible overload resolution rules), and then some. For example, overloaded operators have to return their results by value - naively returning references to objects allocated with new would cause temporary objects to "leak" when code like a+b+c is evaluated. That's because C++ doesn't have garbage collection, since that, folks, is inefficient. Much better to have your code copy massive temporary objects and hope to have them optimized out by our friend the clever compiler. Which, of course, won't happen any time soon.

В Аде для этого есть extended return statement (return-do-end return), конструирующий объект прямо на нужном месте и позволяющий с ним ещё что–нибудь сделать. Как видите, можно обойтись и без сборки мусора. Хотя... Ада может работать и в средах со сборкой мусора, стандарту это не противоречит.

Про совместимость с C

C++ — это куча костылей. А где костыли, там и грабли.

Помимо тех фич Ады, которые на самом деле недоработки C++, есть в стандарте Ады секции стандарта, относящиеся именно к низкоуровневому программированию. А низкоуровневые фичи Ады как раз могли бы найти применение в OS.
Далее информация касается более C, т. к. низкоуровневые фичи в C++ остались без особых изменений.

Например, битовые поля в C ограничены размером целого числа.

источник

This historical limitation of C has resulted in the construction of many standards-based binary records that have boundaries naturally suited to C. Just look at TCP/IP headers, for example.

А в Аде — нет. В Аде можно сначала объявить запись, а потом задокументировать, с каких битов начинаются какие поля. А можно просто поставить Pragma Pack и все поля по возможности будут упакованы до битов. А работать с этой записью можно будет как ни в чём не бывало. Понятно, что программист должен представлять, с чем имеет дело, и, тем не менее, одной проблемой меньше. Кстати, битовый массив в Аде — это всего лишь array of Boolean с pragma Pack : Pragma Pack for Arrays

Change of Representation

Философия C — то, что можно сделать эффективно, нужно делать эффективно (а не так, что 20Mb на Hello, World! в Java). Философия Ады — не только не мешать программисту делать эффективно то, что можно сделать эффективно, но и не мешать делать неэффективно то, что эффективно сделать не получится.

В C мы были бы вынуждены (если, конечно, нам повезло, и битовое поле влезло в целое число) вручную присвоить каждое поле. Да, это неэффективно — взять и перетасовать зараз кучу битов. Но ведь конечная цель не описывать всё подряд на низком уровне, а достичь поставленной цели.

Что касается C++, там можно прикрутить какой–нибудь libbit, но это будет не то же самое. Change of representation столь же гладко не получится.

Добавлено Sun Oct 28 09:44:48 2007 :
В Аде очень хорошо сделано управление стеком. Стек — это великая вещь. С него можно быстро брать память. И быстро отдавать. Быстрее, чем это происходит с кучей. Мы ведь всё ещё про OS говорим, верно? Там это всё полезно. Адская строка представляет из себя не что иное, как массив символов с недоопределёнными границами. И, если ничто этому не мешает, живёт эта строка на стеке. В Аде, как и в C99, границы (и вообще размеры) могут быть неизвестны на этапе компиляции. Но эта фича C99 "не досталась" C++. В C++ можно разве что использовать всякие alloca, но их переносимость ограничена. И, опять же, это костыль, а в Аде динамическая работа со стеком поддерживается и обеспечивается компилятором.

Вот агрегатов ещё в C++ нету (зато есть в C99). Конструкторы есть, но их в таком случае ещё написать надо. Для каждой Plain Ol' Data структуры, в то время как в C99 это не нужно.

Как же хорошо, что есть Ада, и что можно не волноваться, кому там что не досталось (кстати, вот список), а просто иметь лучшие фичи и от того, и от другого.

Конечно, есть в Аде и традиционные строки, Bounded_String и Unbounded_String.


Удалено!

Отсутствует

 

№9828-10-2007 10:15:11

Infant
   «»
 
Группа: Extensions
Откуда: Одесса
Зарегистрирован: 23-12-2004
Сообщений: 3671
UA: Minefield 3.0

Re: альтернативные ОС: Syllable, SkyOS, KolibriOS, MenuetOS, ReactOS и.т.д

С трудом дочитал до половины. Дорогой друг возьмите в библиотеке института/университета какую-нибудь книгу из классиков и почитайте про языки с сильно типизированными данными и языки без них. Всё сравнение которые вы здесь провели (или откуда-то переписали) не стоит выеденного яйца.
Давайте вернёмся от ООП к нормальному программированию, например, Паскалю. Не будем плодить этих гигабайтных монстров "Привет, мир!" с кучей ненужного кода внутри. Потому как все расписанные удобства пошли от того, что сам программист свой код уже не понимает и понять не может по определению ООП. Поэтому контроль за валидностью надо возложить на компилятор. Но компилятор не человек и адаптироваться на ходу он не умеет. Значит надо ввести в стандарт новые правила ограничивающие написание конструкций жёсткими рамками. Как только вышел за них — получи алерт. А то понимаешь массивы им с неизвестным до компиляции размером подавай, "кучу", строки переменной длины и т.д.
Опять же так понравившиеся вам исключения — так они даже в первых Бейсиках от Майкрософт присутствовали. Может на Бейсике будем писать ОС?
Мне лично с этой точки зрения вообще Форт нравится. Сразу и ОС, и среда программирования и разработки, и компиляторов не надо, и данные хранятся в простом и понятном виде — блоки.


Благодарю алфавит за любезно предоставленные буквы.

Отсутствует

 

№9928-10-2007 11:25:10

Infant
   «»
 
Группа: Extensions
Откуда: Одесса
Зарегистрирован: 23-12-2004
Сообщений: 3671
UA: Minefield 3.0

Re: альтернативные ОС: Syllable, SkyOS, KolibriOS, MenuetOS, ReactOS и.т.д

Ковырял тут одно расширение — оказалось в Java тоже есть исключения: конструкция try|catch|finally.


Благодарю алфавит за любезно предоставленные буквы.

Отсутствует

 

№10028-10-2007 18:48:35

Rohanx
Участник
 
Группа: Members
Зарегистрирован: 24-06-2005
Сообщений: 195
UA: Firefox 2.0

Re: альтернативные ОС: Syllable, SkyOS, KolibriOS, MenuetOS, ReactOS и.т.д

OCTAGRAM
и другие
Настоятельно рекомендую перейти в отдельный топик!

Не нужно никому ничего рекомендовать.
Достаточно одной темы!
Устное предупреждение.
Sergeys

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]