Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Открытая операционная система с нуля.

1.8K
01 апреля 2004 года
Sanya DLR
123 / / 03.03.2004
Не стану отвечать на вопрос ЗАЧЕМ.
Предлагаю написать операционную систему.
1. Задумка эта не коммерческая.
2. Пишется всё с нуля, без использования сторонних продуктов - на голом железе и собственных мозгах.
3. Все происходит прямо здесь, пока это не перестанет быть возможным.
Существует много проектов, но эта затея для тех кто хочет родить операционную систему и воспитывать ее с пеленок (а не содержать пенсионерку). Вот как раз сейчас мы ее зачали.
Надеюсь многому научиться, найти единомышленников, а также найти предел своих возможностей.

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

Пишется все по порядку - шаг за шагом. Официальный язык - машинный код или то, что напишем на нем сами. Разумеется в мнемониках ассемблера или чего угодно другого, но без использования КОНКРЕТНОГО компилятора.
Главная идея - понимание каждого байта своей системы.

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

Идея подана.
Если она прижилась, то говорите что делать в первую очередь (разумеется не надо начинать с того, как будет выглядеть окно интернет-браузера и каким будет цвет рабочего стола :).
Что должна уметь система в самом фундаменте?
Наверное она должна запускать процессы и соединять их с ресурсами.
Какие могут быть процессы? Какие ресурсы?
Разумеется, система не имеет права зависнуть ни в каком случае по собственной вине или по вине программы.
Нужно придумать универсальные интерфейсы, чтобы система была модульной (универсальность за счет драйверов и т.п.).
Еще раз скажу, что этот велосипед изобретается в первую очередь для собственного развития участников. Поэтому не надо говорить что все уже кем-то создано.
Бог вот человека создал и ладно (раз работает, то ради бога ничего не трогай!), а тебе так - слабо? (я в том смысле, который тут уместен...)
Страницы:
2.2K
29 декабря 2005 года
Brezhnev1980
156 / / 13.08.2005
Может такие и будут,лет через 20 :D жди
(И что нового будет в операционках?)
349
30 декабря 2005 года
Phantom-84
656 / / 27.10.2005
Mamontoboy, после появления твоего предложения я соглашусь с твоей оценкой написанного здесь за последнее время, правда, лишь частично, так как считаю, что здесь только одно сообщение в полной мере соответствует тому слову, которое ты так грамотно употребил :)

Попробую внести адекватное твоему предложение и предлагаю подождать появления процессоров на ядре с искусственным интеллектом, авось необходимость в ОС вообще отпадет :)
2.2K
30 декабря 2005 года
Brezhnev1980
156 / / 13.08.2005
В 2130 году примерно будет :D
349
05 января 2006 года
Phantom-84
656 / / 27.10.2005
Судя по всему эта ветка форума становится моей личной доской для отчетов :( Если эти отчеты хоть кому-то интересны, сообщите мне об этом!

Мой адрес: [EMAIL=phantom-84@mail.ru]phantom-84@mail.ru[/EMAIL]
349
11 января 2006 года
Phantom-84
656 / / 27.10.2005
Мои последние рассуждения при разговоре с JhuSSом могли показаться вам сильно отвлеченными. Хочу объяснить, что я имел в виду и почему считаю это весьма важным. Дело в том, что по моему мнению операционная система должна быть компактной и мобильной. Что такое компактность, думаю, объяснять не нужно :) Под мобильностью же я понимаю способность ОС загружаться со съемных носителей или по сети, а также возможность ее установки с помощью обычного копирования и, если это необходимо, перезаписи первичного загрузчика. Чтобы реализовать мобильность в современной системе, необходимо опираться на определенный аппаратный стандарт по совместимости, а также иметь в составе ОС подключаемый при необходимости во время запуска модуль аппаратной идентификации и автоконфигурирования. Идея состоит в том, чтобы иметь современную многозадачную ОС, работающую в защищенном режиме, пусть даже и с простой, но универсальной консолью на любом компьютере, с которым приходится иметь дело. Для такой системы очень важно, чтобы все связи между ее отдельными модулями были предельно прозрачны и просты и чтобы количество типов таких связей и модулей было минимальным.
10
13 января 2006 года
Freeman
3.2K / / 06.03.2004
Цитата:
Originally posted by Phantom-84
Под мобильностью же я понимаю способность ОС загружаться со съемных носителей или по сети, а также возможность ее установки с помощью обычного копирования и, если это необходимо, перезаписи первичного загрузчика.


В описанном виде это самоцель, лучшее применение которой - LiveCD. Если имеется в виду тиражируемость конфигураций, ее надо называть именно так.

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


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

2
13 января 2006 года
squirL
5.6K / / 13.08.2003
Цитата:
Originally posted by Freeman
А это фигня, очень просто доказываемая математически. Пример большой слабосвязанной системы у нас уже есть - Линукс. Вы хотите такую же?


что значит слабосвязанная система? применительно к Linux?

349
16 января 2006 года
Phantom-84
656 / / 27.10.2005
Freeman, честно говоря, мне бы хотелось создать нечто большее, чем Линукс :))) Кстати, Линукс таков в основном из-за того, что он является "общим ребенком" пингвинов, бенгальских тигров и еще тех, чью видовую принадлежность так и не удалось установить :) Этот проект так зарождался, так развивался, так и продолжает жить! LiveCD - это попытка разместить на CD систему со всем сопутствующим добром, причем систему уже существующую, а как известно современные системы очень громоздки и из-за бредовой идеи поддерживать все и вся имеют в своем составе много того, что никогда не пригодится. Я не сторонник спартанских систем, но хочу хотя бы в начальной конфигурации обозреть свою систему, прежде чем ее дополнять новыми модулями, а точнее новыми драйверами. Меня сильно раздражают приспособленческие решения, которыми изобилует современное ПО, в том числе и системное. Мой подход состоит в том, чтобы сделать ОС изначально мобильной, нежели пытаться создать из неразворотливого стопудового слона легкую как перышко газель :) А сообщить про математическое доказательство ты поторопился! Начни с простых фактов, может для меня этого будет достаточно :) Лично у меня перед глазами ОС, состоящая из семи модулей, причем только три являются бинарными файлами, при этом два из этих трех появились путем разбиения первоначально монолитного ядра, остальные же четыре - это конфигурационные файлы!
10
16 января 2006 года
Freeman
3.2K / / 06.03.2004
Цитата:
Originally posted by Phantom-84
Freeman, честно говоря, мне бы хотелось создать нечто большее, чем Линукс :)))


Я понял. Сразу на двух DVD или на трех?

Цитата:
Originally posted by Phantom-84
А сообщить про математическое доказательство ты поторопился! Начни с простых фактов, может для меня этого будет достаточно :)


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

Цитата:
Лично у меня перед глазами ОС, состоящая из семи модулей, причем только три являются бинарными файлами, при этом два из этих трех появились путем разбиения первоначально монолитного ядра, остальные же четыре - это конфигурационные файлы!


Смешно. Что делает эта ОС?

252
16 января 2006 года
koderAlex
1.4K / / 07.09.2005
А не заколебало ещё ? ))
Кто то хвастался новыми идеями - вот и расказуйте , что вы нового (вечного , доброго)придумали и что из этого уже реализовано ? :D
349
16 января 2006 года
Phantom-84
656 / / 27.10.2005
Цитата:
Originally posted by koderAlex
А не заколебало ещё ? ))
Кто то хвастался новыми идеями - вот и расказуйте , что вы нового (вечного , доброго)придумали и что из этого уже реализовано ? :D



Если ты обращаешься ко мне, то отвечаю, что лично меня не заколебало! А рассказывать просто так мне не интересно, ведь я даже не знаю, нужны ли кому-нибудь мои рассказы...

349
16 января 2006 года
Phantom-84
656 / / 27.10.2005
Freeman, эта ОС делает все, для чего предназначена! Пусть пока и не самым эффективным образом (над чем я сейчас и работаю), но зато так, как я считаю правильным! Чем больше я расширяю свою систему, тем все больше и больше мне нравится ее изначально созданная архитектура. Очень приятно развивать систему, когда не приходится каждый раз возвращаться к переработке общей концепции. Твой последний вопрос вполне понятен, но и ты должен понять, что речь не идет о прикладных возможностях системы! В то число 7, о котором я говорил, не входит даже оболочка ОС. У меня это обычная прикладная программа, имя которой прописано в одном из конфигурационных файлов. Что за нотки скептицизма присутствуют в твоих словах, когда я, говоря об ОС немного иначе, чем можно обычно слышать, вижу твои возражения. Неужели ты выходец из МИЭТа, выпускники которого так склонны к консерватизму! Пойми, я абсолютно не против большого дистрибутива ОС, но я категорически против того, что в этом дистрибутиве все повязано вдоль и поперек, а иногда еще и вглубь, и что все это перекочевывает с установочного на системный диск во время инсталляции системы. Мой девиз: "Инсталляция системы - это операция для рядовых ее пользователей!" Пусть они сами выбирают подходящий дистрибутив, пусть для них программа установки в автоматическом режиме отформатирует системный диск, скопирует на него все необходимые файлы, настроит оборудование и сконфигурирует графическую оболочку так, чтобы она запустилась уже при первом старте системы... Для меня выжно, чтобы я мог с того же самого дистрибутива переписать на дискету, внешку, флэшку или CD ядро, пару-тройку универсальных драйверов, простенькую оболочку, несколько служебных программ и пойти помочь другу устранить проблемы, возникшие с его компьютером, и чтобы, когда я загружу с этого носителя ОС, я не чувствовал себя ущемленным из-за того, что приходится работать с реликтовой системой, потому что кто-то там решил, что современная ОС - это мегабайты кода и данных, требующие для штатного режима работы размещения на жестком диске компьютера! Простота, о которой я говорил в предыдущем сообщении, как раз и нужна для того, чтобы система легко поддавалась переносу и масштабированию, но в ее основе всегда должно оставаться неизменным мощное ядро.
10
17 января 2006 года
Freeman
3.2K / / 06.03.2004
Цитата:
Originally posted by Phantom-84
Чем больше я расширяю свою систему, тем все больше и больше мне нравится ее изначально созданная архитектура. Очень приятно развивать систему, когда не приходится каждый раз возвращаться к переработке общей концепции.


Подождем...

Цитата:
Твой последний вопрос вполне понятен, но и ты должен понять, что речь не идет о прикладных возможностях системы! В то число 7, о котором я говорил, не входит даже оболочка ОС.


Ты сам себе противоречишь. Если ОС создается для пользователей, их совершенно не волнует, отдельная программа оболочка или часть ОС. Главное - чтобы перед глазами окошки рисовались. А администраторам от сохи есть непаханое поле деятельности в виде остальных ОС (не будем показывать пальцем). Твоя делянка, созданная по образу и подобию, ничего не изменит. Пахари будут пахать, им большие поля интересны, а обществу потребления по фигу, лишь бы хлеб на полке был.

Цитата:
Что за нотки скептицизма присутствуют в твоих словах, когда я, говоря об ОС немного иначе, чем можно обычно слышать, вижу твои возражения.


Ты - человек думающий, вот и завязался диалог.

Цитата:
Неужели ты выходец из МИЭТа, выпускники которого так склонны к консерватизму!


Бог миловал. :) В Зелеке я, можно сказать, случайно оказался. И не так давно.

Цитата:
Пойми, я абсолютно не против большого дистрибутива ОС, но я категорически против того, что в этом дистрибутиве все повязано вдоль и поперек, а иногда еще и вглубь, и что все это перекочевывает с установочного на системный диск во время инсталляции системы.


Подумай внимательно - почему потенциально ненадежны все сегодняшние ОС? Все просто - слишком много точек администрирования. Забыл что-то, и - на тебе! Вот и гложет ностальгия по временам DOS.

Соответственно, чем меньше зависимостей в системе, тем больше дублирующегося кода, и тем система потенциально ненадежнее. Один пример с KDE и Gnome чего стоит.

Цитата:
Мой девиз: "Инсталляция системы - это операция для рядовых ее пользователей!"


Мой тоже.

Цитата:
Для меня выжно, чтобы я мог с того же самого дистрибутива переписать на дискету, внешку, флэшку или CD ядро, пару-тройку универсальных драйверов, простенькую оболочку, несколько служебных программ


Ага, угу. Предварительно угрохав несколько дней на поиск и выбор более-менее приличной программы в каждой номинации из хаоса на 3-х DVD.

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


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

Для современной ОС ядро - далеко не такая важная часть, как пытаются представить многие. Гораздо важнее архитектура системы с точки зрения ее "дистрибутивности". Есть два способа развития ОС:

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

- открытая разработка, по принципу "с миру по нитке"

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

Решение есть: надо заложить будущий хаос в концепцию системы. Т. е. модель должна описывать произвольный набор компонентов, любая комбинация которых остается контролируемой. Если система будет поддерживать собственную целостность без посторонней помощи, количество точек администрирования уменьшится на порядок, как минимум. Концепция контролируемого хаоса - главный критерий надежности современной ОС.

252
17 января 2006 года
koderAlex
1.4K / / 07.09.2005
Цитата:
Originally posted by Freeman
Решение есть: надо заложить будущий хаос в концепцию системы. Т. е. модель должна описывать произвольный набор компонентов, любая комбинация которых остается контролируемой. Если система будет поддерживать собственную целостность без посторонней помощи, количество точек администрирования уменьшится на порядок, как минимум. Концепция контролируемого хаоса - главный критерий надежности современной ОС.


Интересная концепция - избежать проституции и наркомании невозможно , так давайте их узаконим :D ;)
Если чего избежать низя , то это не значит что не надо бороться .:)

252
17 января 2006 года
koderAlex
1.4K / / 07.09.2005
Цитата:
Originally posted by Phantom-84
Если ты обращаешься ко мне, то отвечаю, что лично меня не заколебало! А рассказывать просто так мне не интересно, ведь я даже не знаю, нужны ли кому-нибудь мои рассказы...


Лучше поэмы :D :D .
Спрашую - значит интересно .:)

349
22 января 2006 года
Phantom-84
656 / / 27.10.2005
Freeman, я не помышляю о промышленных масштабах развития системы. Ее разработкой я занимаюсь лишь время от времени и лишь для собственного удовольствия. Скажем так, это один из способов отдохнуть от работы и при этом не потерять профессиональное чутье :) О пользователях я тоже иногда вспоминаю, тогда и работаю :) Количество зависимостей между модулями в моей системе велико, а вот количество типов зависимостей мало, что и упрощает ее администрирование. По поводу подбора необходимых модулей ОС и программ для нее с большого по емкости носителя я с тобой совершенно не согласен. Но понимаю, почему ты так считаешь, когда сам пытаюсь что-то выбрать из состава многотомных дистрибутивов существующих систем. Про криворучек от мира программирования ты здорово сказал, но ведь с этим ничего не поделаешь, если конечно не объявить их вне закона и официально не разрешить их отстрел :) Твоя концепция тоже хороша, только ты забыл, что степень энтропии можно привести к оптимальному значению только в идеальной системе, а в реальных условиях нельзя не учитывать внешнее воздействие на систему, причем воздействие как положительное, так и отрицательное. Если считать отрицательным воздействием попытки нарушить целостность системы, то положительным воздействием можно считать меры, направленные на нейтрализацию этих попыток как в прошлом, так и в будущем, т.е. грамотное и регулярное администрирование. Иными словами, реальная ОС не сможет гарантированно поддерживать собственную целостность, если ее будут использовать обычные пользователи, но не будет обслуживать администратор :)
349
22 января 2006 года
Phantom-84
656 / / 27.10.2005
koderAlex, рассказываю, что должно быть... защищенная на уровне программ и пользователей многозадачная многопоточная ОС, построенная на базе IA32. А теперь, что есть... некоторое подобие ОС с пока еще очень сырым исходным кодом, но уже обладающее всеми заявленными выше свойствами (если конечно не учитывать возможные баги :) кроме многопоточности (планирование пока ведется лишь по основным потокам процессов). Консоль на данный момент только текстовая. Как можно реализовать графическую оболочку в этой операционной среде, я уже примерно представляю, а остальное - это пока не первоочередная задача. Что касается программной защиты, то здесь все достаточно стандартно. Ядро для своей защиты использует соответствующие возможности микропроцессора, а также многочисленные программные проверки. В межпроцессной защите важную роль играет страничный механизм (подкачка применяет не всегда), на основе которого для каждого процесса строится свое виртуальное адресное пространство, в рамках которого он и существует. К совместно используемым ресурсам организуется поочередный доступ, причем если предполагается изменение состояния ресурса, то предварительно выполняется его блокировка. Для разделения данных между отдельными пользователями системы используется т.н. механизм профилирования, а также некоторые особенности файловой подсистемы. Суть профилирования заключается в том, что во время загрузки системы сначала выполняется общее конфигурирование, затем происходит регистрация пользователя, после чего выполняется персональное конфигурирование и запуск программы-оболочки, имя которой записано в профильном файле прошедшего регистрацию пользователя. В зависимости от типа учетной записи пользователя система может работать либо в обычном режиме, либо в т.н. режиме настройки системы (режиме администрирования). Обычный режим работы не позволяет выполнять некоторые служебные операции, например, изменение системных файлов, настройку даты и времени и т.п. Для защиты от изменений данные отдельно взятого пользователя должны быть полностью скрыты от других пользователей системы. Чтобы это сделать, в процессе загрузки ОС каталоги, содержащие личные данные пользователя, подключаются (монтируются) к единой структуре лишь на этапе персонального конфигурирования, причем только тогда, когда конфигурирование выполняется именно для данного пользователя. Это конечно очень поверхностное описание, поэтому если тебя интересуют подробности, можешь смело обо всем спрашивать. Кстати я все это тебе рассказал не потому, что я такой альтруист. Просто у меня в процессе разработки иногда возникают ситуации, когда мне трудно выбрать оптимальный вариант из нескольких возможных. В этом случае я готов прислушаться к мнению человека, который хорошо понимает, о чем идет речь, если конечно это мнение обосновано и не противоречит моим взглядам на возможное разрешение возникшей ситуации.
10
23 января 2006 года
Freeman
3.2K / / 06.03.2004
Цитата:
Originally posted by Phantom-84
Количество зависимостей между модулями в моей системе велико, а вот количество типов зависимостей мало, что и упрощает ее администрирование.


Типов зависимостей достаточно двух.

Цитата:
Но понимаю, почему ты так считаешь, когда сам пытаюсь что-то выбрать из состава многотомных дистрибутивов существующих систем.


Я не против выбора, я против ручного выяснения зависимостей методом тыка. Т. е. хочу в процессе выбора руководствоваться не только удобством той или иной программы, но еще и числом библиотек, которые она требует для работы. В идеале - получить зависимости одним запросом и начать изучение с конца списка (от меньших зависимостей).

Цитата:
Твоя концепция тоже хороша, только ты забыл, что степень энтропии можно привести к оптимальному значению только в идеальной системе, а в реальных условиях нельзя не учитывать внешнее воздействие на систему, причем воздействие как положительное, так и отрицательное.


Я не отрицаю, что систему можно и нужно администрировать. Но просто так культуру администрирования не привьешь. Надо, чтобы система уважала время потенциальных администраторов и их труд.

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

Линукс (и любой другой Юникс) можно довести до ума администрированием, но потратить на это придется неоправденно много времени. Зачастую настройки программ имеют собственный формат конфига, и т. д. Короче, надо собаку съесть, чтобы начало получаться. Нет уважения к пользователю - не могут все быть администраторами.

При этом, как в Линукс, так и в Винде задача администратора часто сводится к тупому кликанью (или изменению конфигов) плюс запоминанию, что где надо сделать. Фактически - это и есть ручное отслеживание зависимостей. А компьютер на что? Мне подобное администрирование напоминает недалекого бухгалтера, вводящего цифры в столбик в Excel и считающего сумму на калькуляторе. Соответственно, нет и мотивации делать что-то серьезное.

Кстати, ты где обитаешь? Вот с тобой было бы интересно встретиться и поговорить.

252
23 января 2006 года
koderAlex
1.4K / / 07.09.2005
Цитата:
Originally posted by Phantom-84
koderAlex, рассказываю, что должно быть... защищенная на уровне программ и пользователей многозадачная многопоточная ОС, построенная на базе IA32. А теперь, что есть... некоторое подобие ОС с пока еще очень сырым исходным кодом, но уже обладающее всеми заявленными выше свойствами (если конечно не учитывать возможные баги :) кроме многопоточности (планирование пока ведется лишь по основным потокам процессов). Консоль на данный момент только текстовая. Как можно реализовать графическую оболочку в этой операционной среде, я уже примерно представляю, а остальное - это пока не первоочередная задача. Что касается программной защиты, то здесь все достаточно стандартно. Ядро для своей защиты использует соответствующие возможности микропроцессора, а также многочисленные программные проверки. В межпроцессной защите важную роль играет страничный механизм (подкачка применяет не всегда), на основе которого для каждого процесса строится свое виртуальное адресное пространство, в рамках которого он и существует. К совместно используемым ресурсам организуется поочередный доступ, причем если предполагается изменение состояния ресурса, то предварительно выполняется его блокировка. Для разделения данных между отдельными пользователями системы используется т.н. механизм профилирования, а также некоторые особенности файловой подсистемы. Суть профилирования заключается в том, что во время загрузки системы сначала выполняется общее конфигурирование, затем происходит регистрация пользователя, после чего выполняется персональное конфигурирование и запуск программы-оболочки, имя которой записано в профильном файле прошедшего регистрацию пользователя. В зависимости от типа учетной записи пользователя система может работать либо в обычном режиме, либо в т.н. режиме настройки системы (режиме администрирования). Обычный режим работы не позволяет выполнять некоторые служебные операции, например, изменение системных файлов, настройку даты и времени и т.п. Для защиты от изменений данные отдельно взятого пользователя должны быть полностью скрыты от других пользователей системы. Чтобы это сделать, в процессе загрузки ОС каталоги, содержащие личные данные пользователя, подключаются (монтируются) к единой структуре лишь на этапе персонального конфигурирования, причем только тогда, когда конфигурирование выполняется именно для данного пользователя. Это конечно очень поверхностное описание, поэтому если тебя интересуют подробности, можешь смело обо всем спрашивать. Кстати я все это тебе рассказал не потому, что я такой альтруист. Просто у меня в процессе разработки иногда возникают ситуации, когда мне трудно выбрать оптимальный вариант из нескольких возможных. В этом случае я готов прислушаться к мнению человека, который хорошо понимает, о чем идет речь, если конечно это мнение обосновано и не противоречит моим взглядам на возможное разрешение возникшей ситуации.


Меня больше интересуют обещанные "новые идеи" . Если не секрет , в чём их суть ? и на каком этапе их реализация ?

349
27 января 2006 года
Phantom-84
656 / / 27.10.2005
Цитата:
Originally posted by Freeman
Типов зависимостей достаточно двух.


И конечно это импорт и экспорт :) Опять прикладной подход :)))

Цитата:
Originally posted by Freeman
Я не против выбора, я против ручного выяснения зависимостей методом тыка. Т. е. хочу в процессе выбора руководствоваться не только удобством той или иной программы, но еще и числом библиотек, которые она требует для работы. В идеале - получить зависимости одним запросом и начать изучение с конца списка (от меньших зависимостей).


У меня подобной проблемы не существует вообще, правда, это может быть связано с тем, что я еще и не приступал к реализации поддержки динамически подключаемых библиотек :) Когда это сделаю, тогда и поговорим по существу :)))

Цитата:
Originally posted by Freeman
Линукс (и любой другой Юникс) можно довести до ума администрированием, но потратить на это придется неоправденно много времени. При этом, как в Линукс, так и в Винде задача администратора часто сводится к тупому кликанью (или изменению конфигов) плюс запоминанию, что где надо сделать. Фактически - это и есть ручное отслеживание зависимостей. А компьютер на что?


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

Цитата:
Originally posted by Freeman
Кстати, ты где обитаешь? Вот с тобой было бы интересно встретиться и поговорить.


Я обычно обитаю на юге, хотя в общем птица перелетная :) В Зеленограде бываю очень редко, а в столицу летаю на конкретные мероприятия и прибываю там, постоянно поглядывая на часики, от которых отвожу взгляд только во время брачных игр, но тогда, как ты понимаешь, мне не до интеллектуальных бесед :) Если хочешь, мы можем пообщаться через ICQ

349
27 января 2006 года
Phantom-84
656 / / 27.10.2005
koderAlex, я не говорил, что идеи, заложенные мной в систему, абсолютно новы и что их реализация нигде не встречается! Новизна, главным образом, заключается в том, что идеи, взятые мной из принципиально разных систем, сосуществуют в одной системе и причем весьма эффективно. При этом я абсолютно не боюсь отказываться от хорошо зарекомендовавших себя решений, реализованных в других системах, если они не согласуются с концепцией моей системы. Например, я отказался от поддержки параллельной работы нескольких пользователей, причем не потому, что ее трудно реализовать, а потому что такая поддержка на данный момент по-моему неактуальна, а кроме того привязывала бы ОС к сложным файловым системам, обеспечивающим единовременное разделение данных между несколькими пользователями. Еще мне нравится, что для успешной загрузки моей системы нет необходимости в том, чтобы модуль ядра содержал встроенный дисковый драйвер или драйвер какой-то конкретной файловой системы. Новинкой можно считать и полностью виртуальный корень файловой системы, правда, это пока не окончательный вариант и я, возможно, еще вернусь к наложению монтируемых каталогов на реальный корень хотябы на этапе инициализации системы. Далее, насколько мне известно, в большинстве современных систем для того, чтобы приложение могло выполнить простейший ввод-вывод, оно должно подключиться к одной из уже существующих консолей или же сама система при необходимости должна создать для него подобную консоль. В некоторых ОС потребность приложения в текстовой консоли даже отражена в формате исполняемого файла. У меня же само приложение отвечает за создание собственной виртуальной консоли, а задачей системы является активация этой консоли в определенных условиях и уведомление об этом приложения. Не ново, но весьма оригинально и то, что механизм подкачки страниц активизируется только при наличии хотябы одного виртуального устройства подкачки, которое может появиться в системе лишь при успешной инициализации соответствующего драйвера. Следовательно, чтобы отключить подкачку, нужно просто убрать ссылку на этот драйвер в конфигурационном файле. Иногда подкачка может осуществляться и при загрузке со съемного носителя. Это происходит, когда драйвер в процессе своей инициализации автоматически находит исправный и подходящий по формату дисковый том. Вот так-то...
10
30 января 2006 года
Freeman
3.2K / / 06.03.2004
Цитата:
Originally posted by Phantom-84
И конечно это импорт и экспорт :)


Не угадал.

Цитата:
Опять прикладной подход :)))


Практика показывает, что у хороших прикладников мышление более свободно, а вот незакостенелые системщики, похоже, вымирают, как класс - всех сгубил Линукс. Ничего личного.

Цитата:
Важно то, что эта программа предлагает не только построить какую-то конкретную защитную модель путем настройки множества различных параметров, но еще и выбрать одну из предопределенных или ранее созданных и сохраненных моделей, а это очень удобно и позволяет существенно уменьшить количество ошибок, возникающих в процессе администрирования системы и влияющих на ее защищенность!


Кем, как и чем они создаются?

2
31 января 2006 года
squirL
5.6K / / 13.08.2003
Цитата:
Originally posted by Freeman
Практика показывает, что у хороших прикладников мышление более свободно, а вот незакостенелые системщики, похоже, вымирают, как класс - всех сгубил Линукс. Ничего личного.


ПРОТЕСТУЮ!!! :D системщиков профессия обязывает мыслить более шаблонно :)

10
31 января 2006 года
Freeman
3.2K / / 06.03.2004
Цитата:
Originally posted by squirL
ПРОТЕСТУЮ!!! :D системщиков профессия обязывает мыслить более шаблонно :)


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

2
31 января 2006 года
squirL
5.6K / / 13.08.2003
Цитата:
Originally posted by Freeman
Ну, тем более. Значит, надо системщиков вообще отстранить от проектирования систем. Проектировать должны проектировщики согласно поставленной задаче. И не имеет значения, какие средства при этом будут применены. Вообще, деление программирования на системное и прикладное надуманно.


ааа... речь об этом? так я двумя руками за. задача системщиков вроде меня - знать как работает от корки до корки. и уметь настроить/отладить/починить за малый промежуток времени. а проектируют пусть умные :)

10
31 января 2006 года
Freeman
3.2K / / 06.03.2004
Цитата:
Originally posted by squirL
ааа... речь об этом? так я двумя руками за. задача системщиков вроде меня - знать как работает от корки до корки. и уметь настроить/отладить/починить за малый промежуток времени. а проектируют пусть умные :)


Когда речь идет о разработке, под системщиками подразумеваются системные программисты, а не админы. Вы - потребители.

2
31 января 2006 года
squirL
5.6K / / 13.08.2003
Цитата:
Originally posted by Freeman
Когда речь идет о разработке, под системщиками подразумеваются системные программисты, а не админы. Вы - потребители.


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

2
31 января 2006 года
squirL
5.6K / / 13.08.2003
админить, не пользоваться.
349
05 февраля 2006 года
Phantom-84
656 / / 27.10.2005
Цитата:
Originally posted by Freeman
Не угадал.

Что же тогда?..

Цитата:
Originally posted by Freeman
Практика показывает, что у хороших прикладников мышление более свободно, а вот незакостенелые системщики, похоже, вымирают, как класс - всех сгубил Линукс. Ничего личного.

Ничего личного.
Я считаю себя универсалом, т.е. в равной степени прикладником и системщиком.

Цитата:
Originally posted by Freeman
Кем, как и чем они создаются?

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

10
05 февраля 2006 года
Freeman
3.2K / / 06.03.2004
Цитата:
Originally posted by Phantom-84
Что же тогда?..


Наследование и владение.

Цитата:
Наиболее общие схемы заложены в саму программу.


Если это так - поздравляю. Ты на правильном пути. Честно. На сегодня единообразная система-монолит и есть то, что может получить успех. Можно сказать, применение технологий встроенных систем для настольных ПК.

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

349
13 февраля 2006 года
Phantom-84
656 / / 27.10.2005
Freeman, я смог бы сделать все сам, если бы не одно но: мне не угнаться в одиночку за стремительно развивающимися технологиями. По поводу контролируемых зависимостей могу сказать только то, что если моя система хотябы в умелых руках сможет стать полностью защищенной от неумелых или наоборот слишком умелых рук, да в добавок еще окажется кому-то полезной, я буду абсолютно счастлив :)
349
26 февраля 2006 года
Phantom-84
656 / / 27.10.2005
У меня тут возник один вопрос: кто знает, как программно заглушить компьютер в корпусе ATX? Сам не нашел точных сведений по этому вопросу, поэтому буду весьма благодарен, если вы поделитесь своими знаниями или сообщите адреса соответствующих ресурсов сети.
349
07 марта 2006 года
Phantom-84
656 / / 27.10.2005
Во время бесед со своими виртуальными и не только знакомыми у меня вырисовалась одна интересная мысль: при проектировании ОС лучше всего, когда координатором и главным архитектором создаваемой системы является один человек; вносить свои предложения, заниматься исследованиями и выполнять кодирование могут тысячи, но все должно укладываться в идею, возникшую у одной биологической единицы :)

Что вы думаете по этому поводу?
10
07 марта 2006 года
Freeman
3.2K / / 06.03.2004
Цитата:
Originally posted by Phantom-84
Что вы думаете по этому поводу?


Конгениально! Я даже догадываюсь, кто им будет.

349
13 марта 2006 года
Phantom-84
656 / / 27.10.2005
Цитата:
Originally posted by Freeman
Конгениально! Я даже догадываюсь, кто им будет.

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

5.3K
17 марта 2006 года
r000n_m
177 / / 26.02.2006
Цитата:
Originally posted by Phantom-84
У меня тут возник один вопрос: кто знает, как программно заглушить компьютер в корпусе ATX? Сам не нашел точных сведений по этому вопросу, поэтому буду весьма благодарен, если вы поделитесь своими знаниями или сообщите адреса соответствующих ресурсов сети.

1.9K
17 марта 2006 года
disasm
232 / / 06.02.2006
А в protected mode?
1.9K
17 марта 2006 года
disasm
232 / / 06.02.2006
To Phantom-84

Внимательно прочитал вашу беседу.

Я серьезно настроен на написание новой ОСи,
или корректировку своей старой.

Я считаю, что было бы целесообразным оговорить некоторые тех. тонкости,
из-за которых можно стать в тупик, в частности так случилось у меня...

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

Поэтому я предлагаю сразу использовать дескриптор шлюза вызова в GDT,
а в проге (в служебных объектных файлах, которые автоматом линкуются
к проге) использовать прототип вида
int syscall(int,int,int,int,int,int,int);
И не надо делать никакой трансляции параметров в регистры.

Связи с этим такой вопрос: после вызова шлюза указатель стека не
изменяется ( в смысле в сравнении до и после дальнего call-а )?

То, что прописывается во всех шлюзах вызова и прерываний это
физический адрес или виртуальный? (т.к. в моей ОС пока что все равно -
у меня первые 4Мб памати проецируются в 0x00000000 и 0xf0000000)

Категорически отрицаю возможность использования сегментно-страничной
организации памяти т.к. её можно (и нужно) заменить на страничную.

Для какой цели существует NMI? Зачем существует порт, в котором можно
его замаскировать?

Цитата:
Мне же кажется, что в системах с виртуальной памятью вполне
можно остановиться на программном переключении. Как минимум
не придется перегружать LDTR, если LDT вообще используется.


>Если так, то куда записывать дескрипторы сегментов стека
для каждого потока?

>Как правильно (через порты может) узнать объем ОЗУ?
Метод "записал=>проверил=>если равно, то здесь ОЗУ" не канает под
эмулатором Bochs например...

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

По поводу "хитрого" ребута из "защищенного" "нуля" кто не знает - расскажу.
А вообще это есть в книге изд. Питер "ASSEMBLER Специальный справочник".

>Как правильно перейти в ring0+paging? Какой должен быть порядок настройки
GDT, таблицы страниц и Far Jmp-ов. Если кто желает помочь - могу выслать
исходники загрузчика ядра второго уровня, в котором собственно и глюк.
Закрузчик второго уровня у меня - файл на флопе, который загружается
бутсектором, а сам загружает ядро [в проекте - добавление туда дров на
устройства HDD,FDD,Flash,CD,DVD, а также закрузка вместе с ядром нужных
модулей].

>У меня еще идея появилась - сам придумал. Для доступа к физической
памяти, проецирования страниц можно воспользоваться следующим трюком:
в главном каталоге страниц (первого уровня) в 1024 (последней) ячейке
создается ссылка на страницу как обычно. В этой таблице(странице) в
первой ячейке делается ссылка на саму себя... Благодаря этому без
хитростей в этой странице можно создать еще 1023 дескриптора на нужные
физические страницы.
Если эта идея не нова - скажите, но я все равно рад, что до нее
додумался сам.

>Мое мнение по поводу защиты: надо сначала написать Ось, которая относилась
бы ко всем программам в том числе и драйверам как к очень злобным хакерам,
а потом делать поддержку защиты в ФС, сети, и т.д.
Из первого вытекает, что драйвера не должны быть на "нуле",
из последнего - что FAT не покатит.

Пишу ОС под FreeBSD 5.4, использую NASM(кстати, вещчь!), GCC (Си часть), Bochs
Все бинарники забиваю на образ флопика, ну а потом Bochs запускаю.
По поводу перехода на раздел винта еще не думал, т.к.:
- У меня на винте и так уже 4 раздела.
- Бинарники пока еще достаточно мало весят.

Писать ОСь под форточками как-то не хотелось...

Кстати, кому нужна кучища пакаджей под FreeBSD 5.4,6.0 лезьте
сюда: s28.zp.ua, а именно ftp://s28.zp.ua/pub/...
Там и NASM и Bochs и KDE...

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

Единственно, что качественно(и то вроде бы) написано - так это подсистема
управления памятью (выделение, освобождение для каждого процесса).
Многозадачности пока нет.

Короче, че это тут я. Надо идеи обсуждать, а потом вместе что-то хорошее
слепить...

Я предлагаю такие идеи:
- ввести новый привелегированный режим(доступный только супервайзеру) -
режим полной занятости. Т.е. некая программа может полностью занимать
рабочее время проца, а другие проги пусть стоят. Можно еще добавить
возможность временного отключения прерываний при работе в таком режиме.
Режим будет очень полезен для крупных расчетов, которые редко (а именно,
лучше только в начале и в конце работы) используют ресурсы диска и другие
устройства - таких приложений достаточное количество.
Режим выборочный - т.к. его использование возможно лишь на отдельных
(и от сети в том числе) рабочих станциях. Тут как раз что-то несетевое
предлагали писать...
- Ведение всевозможной статистики во всех "районах" ядра, а тем более в
драйверах устройств. Может быть полезно для мониторинга оптимальности
работы, для оптимизации операций ввода/вывода.

5.3K
18 марта 2006 года
r000n_m
177 / / 26.02.2006
NMI возникает при фатальных ошибках, когда невозможно продолжить нормальный ход вычислительного процесса, например, при ошибке четности ОЗУ. Но в некоторых ситуациях, например при переключении в защищенный режим, НИКАКИЕ прерывания недопустимы, иначе комп зависнет просто между небом и землей, а прерывания все равно не будут обработаны. Поэтому из двух зол выбирают меньшее при переключении в PM запрещают в том числе NMI
1.9K
19 марта 2006 года
disasm
232 / / 06.02.2006
Цитата:
Originally posted by r000n_m
NMI возникает при фатальных ошибках, когда невозможно продолжить нормальный ход вычислительного процесса, например, при ошибке четности ОЗУ. Но в некоторых ситуациях, например при переключении в защищенный режим, НИКАКИЕ прерывания недопустимы, иначе комп зависнет просто между небом и землей, а прерывания все равно не будут обработаны. Поэтому из двух зол выбирают меньшее при переключении в PM запрещают в том числе NMI


Спасибо, а то я думал, если эмулатор не умеет запрещать NMI, и без этого хорошо работает, то
на компе запрещать тоже не надо...
Откуда: ОС под Bochs работает, а на компе - вылетает...
А его надо обратно разрешать после перехода в protected mode?

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог