> man operating_systems
Центр информации по операционным системам :: Форумы :: Общие :: Разное
 
<< Предыдущая тема | Следующая тема >>
Язык как основа операционной системы
Переход на страницу  1 2 3 ... 13 [14] 15 16 17
Модераторы: Roman I Khimov, Wanderer, Dron
Автор Добавил
alman
Четверг 01.11.2007 13:14

ID пользователя #753
Зарегистрирован: Суббота 28.10.2006 01:21
Местонахождение: планета Земля
Сообщений: 95
ossadchy написал(а) ...

Думаю, что логичен такой план построения и развития системы(не значит что уже собрался писать!):


Сейчас я на Вас подам в суд, чтобы не крали идеи из Xameleon

ossadchy написал(а) ...

0. Все классы и компоненты для построения приложений с использованием технологии, выбранной в качестве основы. Кроссплатформенность поощряется.


Технология синхронных IPC, обернутая COM (Component Object Model) - это прравильно.

ossadchy написал(а) ...

1. Система на базе ядра UNIX. Все основные компоненты реализованы в рамках системных вызовов UNIX.


да ну? То есть всё-таки монолит? Или истемные вызовы распределены между модулями?

ossadchy написал(а) ...

2. Уменьшение и упрощение ядра UNIX -- "чистка". Введение возможностей написания и использования драйверов на выбранном языке наряду с драйверами UNIX


Посмотри внимательно на Xameleon.

ossadchy написал(а) ...

3. Постепенное исключение(вытеснение) "пережитков" прошлого


Я тоже в будущем планирую уйти от POSIX. Но в далёком-далёком. Что именно ты называешь "пережитком прошлого"?
Наверх
Сайт
alman
Четверг 01.11.2007 13:36

ID пользователя #753
Зарегистрирован: Суббота 28.10.2006 01:21
Местонахождение: планета Земля
Сообщений: 95
Мне кажется вот эта статья немного пересекается с обсуждением:

Отчёт о проделанной работе




[ Редактирование Четверг 01.11.2007 14:47 ]
Наверх
Сайт
ossadchy
Четверг 01.11.2007 13:57
ID пользователя #941
Зарегистрирован: Среда 10.10.2007 22:55
Местонахождение: Украина, Николаевская обл., г. Первомайск
Сообщений: 181
2alman: понимаете ли, основная задача исключить разделение на разные адресные пространства, посему монолит -- оптимал, тем более учитывая то что в результате от ядра остануться рога & копыта.

Да и, если и писать с использованием чего-то в качестве основы, нужен надежный базис с солидной базой драйверов. Не примите как личное оскорбление.
Наверх
Сайт
alman
Четверг 01.11.2007 14:13

ID пользователя #753
Зарегистрирован: Суббота 28.10.2006 01:21
Местонахождение: планета Земля
Сообщений: 95
ossadchy написал(а) ...

2alman: понимаете ли, основная задача исключить разделение на разные адресные пространства, посему монолит -- оптимал, тем более учитывая то что в результате от ядра остануться рога & копыта.


Я слабо представляю, как можно обойтись без различных адресных пространств. Использовать сегментную адресацию? Использовать позиционно независимый код с относительной адресацией CALL/JMP? Загружать объектные файлы и динамически линковать по загруженному адресу?
Не думаю, что среды типа .NET или Java машина работают без понятия адресных пространств.

ossadchy написал(а) ...

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


Да нет, какое оскорбление, я всё понимаю. Кстати, ко мне лучше на ты.
Надёжный базис - это L4 Pistachio.
А солидная база драйверов... Вот это меня меньше всего беспокоит. Написавши несколько штук и заимствовав один из FreeDOS, я лишний раз убедился что проблема с драйверами надумана.
Дравера пишутся очень просто и легко отлаживаются. Главное - это спецификация на железо.
Наверх
Сайт
Dron
Четверг 01.11.2007 17:23


ID пользователя #13
Зарегистрирован: Понедельник 05.07.2004 11:16
Местонахождение: Москва
Сообщений: 651
alman написал(а) ...

ossadchy написал(а) ...

2alman: понимаете ли, основная задача исключить разделение на разные адресные пространства, посему монолит -- оптимал, тем более учитывая то что в результате от ядра остануться рога & копыта.


Я слабо представляю, как можно обойтись без различных адресных пространств. Использовать сегментную адресацию? Использовать позиционно независимый код с относительной адресацией CALL/JMP? Загружать объектные файлы и динамически линковать по загруженному адресу?
Не думаю, что среды типа .NET или Java машина работают без понятия адресных пространств.


Ключевым принципом организации Singularity является запрещение динамических расширений процессов. В частности, не допускаются загружаемые драйверы и подключаемые модули браузеров, поскольку они могут привнести непроверенный код, который может повредить основной процесс. Такие расширения должны запускаться, как отдельные процессы, полностью отгороженные и общающиеся на основе стандартного механизма IPC.


Упоминавшийся выше link.

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

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

Андрей Валяев
Наверх
Сайт
ossadchy
Четверг 01.11.2007 18:10
ID пользователя #941
Зарегистрирован: Среда 10.10.2007 22:55
Местонахождение: Украина, Николаевская обл., г. Первомайск
Сообщений: 181
alman написал(а) ...

ossadchy написал(а) ...

2alman: понимаете ли, основная задача исключить разделение на разные адресные пространства, посему монолит -- оптимал, тем более учитывая то что в результате от ядра остануться рога & копыта.


Я слабо представляю, как можно обойтись без различных адресных пространств. Использовать сегментную адресацию? Использовать позиционно независимый код с относительной адресацией CALL/JMP? Загружать объектные файлы и динамически линковать по загруженному адресу?
Не думаю, что среды типа .NET или Java машина работают без понятия адресных пространств.

ossadchy написал(а) ...

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


Да нет, какое оскорбление, я всё понимаю. Кстати, ко мне лучше на ты.
Надёжный базис - это L4 Pistachio.
А солидная база драйверов... Вот это меня меньше всего беспокоит. Написавши несколько штук и заимствовав один из FreeDOS, я лишний раз убедился что проблема с драйверами надумана.
Дравера пишутся очень просто и легко отлаживаются. Главное - это спецификация на железо.


По поводу простоты написани драйверов -- проблема не надумана, есть очень много железа со своими особенностями. Есть очень много устройств. В общем есть проблемы с ними.

JDistro пример десктопа на Java, поверьте -- ни о каких адресных пространствах VM Java и .NET не знает.

2dron & alaman: защита основывается на совершенно четко определенном механизме -- программе запрещено делать действия которые могут привести к краху. Вопрос контроля -- уже третий. Это может быть реализовано как в рамках виртуальной машины, так и с помощью верификатора нативного кода так и другими методами.

Т.е. ПРОСТО НЕТУ ВОЗМОЖНОСТИ ОБРАТИТСЯ К НЕИЗВЕСТНОМУ коду объекту, нету возможности использовать указатели и все вопросы снимаются.
Наверх
Сайт
alman
Четверг 01.11.2007 18:45

ID пользователя #753
Зарегистрирован: Суббота 28.10.2006 01:21
Местонахождение: планета Земля
Сообщений: 95
ossadchy написал(а) ...

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


Unix - SIGSEGV
Windows - "Программа выполнила недопустимую операцию и будет закрыта".

В чём новшество?

ossadchy написал(а) ...

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


С виртуальной машиной всё понятно - и Юниксы и Виндовсы начиная с NT исполняют все приложения в машинах с виртуальной памятью и устройствами ввода/вывода.

Будем обсуждать верификаторы нативного кода и другие методы?
Наверх
Сайт
alman
Четверг 01.11.2007 18:54

ID пользователя #753
Зарегистрирован: Суббота 28.10.2006 01:21
Местонахождение: планета Земля
Сообщений: 95

jmp_buf e;

void fault_signal_handler( int nSignalNumber )
{
    printf("Signal handler for fault [%d].\n",  (void*) nSignalNumber );
    longjmp( e, 0xfeedfeed );
}

int main(int argc, char * argv[] )
{
    int    nResult;

    signal( SIGSEGV, fault_signal_handler );

    nResult = setjmp(e);
    switch( nResult  )
    {
    case 0:    // First pass
        {
            // Now exit by memory fault
            char * p = (char*) 0x77777777;
            *p = 0x12;
        }
        break;
    
    case 0xfeedfeed:
        _printf("Restoration point from the memory fault\n" );
        break;
    
    default:
        _printf("longjmp called with argument %x\n", nResult);
        break;
    }
     return 0;
}



[ Редактирование Четверг 01.11.2007 19:00 ]
Наверх
Сайт
ossadchy
Четверг 01.11.2007 19:02
ID пользователя #941
Зарегистрирован: Среда 10.10.2007 22:55
Местонахождение: Украина, Николаевская обл., г. Первомайск
Сообщений: 181
Ну C++ не типобезопасный язык. Суть в том что валидная программа на таком языке как Java(к примеру) НИКОГДА по определению не приведет к SIGSEGV.
Наверх
Сайт
alman
Четверг 01.11.2007 19:24

ID пользователя #753
Зарегистрирован: Суббота 28.10.2006 01:21
Местонахождение: планета Земля
Сообщений: 95
ossadchy написал(а) ...

Ну C++ не типобезопасный язык. Суть в том что валидная программа на таком языке как Java(к примеру) НИКОГДА по определению не приведет к SIGSEGV.

Существуют ли в мире компиляторы Java, способные генерировать объектный код в любом из распространённых форматов?
Наверх
Сайт
Переход на страницу  1 2 3 ... 13 [14] 15 16 17  

Перейти:     Наверх

Транслировать сообщения этой темы: rss 0.92 Транслировать сообщения этой темы: rss 2.0 Транслировать сообщения этой темы: RDF
Powered by e107 Forum System

© OSRC.info, 2004-2010.
Авторские права на любые материалы, авторы которых явно указаны, принадлежат их авторам. По вопросам публикации таких материалов обращайтесь к авторам.
Авторские права на любые другие материалы принадлежат OSRC.info.
Сайт является помещением библиотеки. Копирование, сохранение на жестком диске или иной способ сохранения произведений осуществляются пользователями на свой риск.
При использовании материалов сайта ссылка на OSRC.info обязательна.