OSDev

для всех
Текущее время: 30 апр 2024, 07:28

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 36 ]  На страницу Пред.  1, 2, 3, 4
Автор Сообщение
СообщениеДобавлено: 22 июн 2011, 12:43 

Зарегистрирован: 10 май 2007, 11:33
Сообщения: 1206
OK ...меня понимают те, с кем я часто обсуждаю подобные темы. "Закрепление" я обычно называю фиксацией или блокировкой памяти (это на будущее, чтобы было меньше недопонимания из-за расхождений в используемой терминологии).


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 22 июн 2011, 13:12 

Зарегистрирован: 28 окт 2007, 18:33
Сообщения: 1418
Фиксация -- вполне понятная вещь (для меня), а вот блокировку я бы воспринял как получение монопольного доступа. В общем, терминология -- великая сила, особенно для создания путаницы :)

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

Ну а возвращаясь к теме... Доступ к адресному пространству другой задачи (процесса) может требоваться не только загрузчику, но и, например, отладчику. Так что полноценная система должна давать такой доступ. Другое дело, что необходимо обеспечить необходимый уровень защиты (права доступа и всё такое).


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 22 июн 2011, 14:22 

Зарегистрирован: 10 май 2007, 11:33
Сообщения: 1206
Уже не помню, откуда появилось слово "блокировка". Наверное пошло от названия соответствующей ядерной функции.

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

Отладка - одно из немногих разумных объяснений доступа к пространству другого процесса. И хотя я серьезно вопросами отладки не занимался, работа отладчика у меня укладывается в ту же схему, что и работа загрузчика - отладчик (точнее его "серверная" часть) как компонент ядра работает в отлаживаемом процессе. Ну и плюс примитивный вариант, когда отлаживаемый модуль запускается в процессе-отладчике. Не вижу здесь никакой необходимости в дополнительных средствах доступа к памяти другого процесса к тем имеющимся, которые предоставляет обычный IPC. Если я не прав, то поправьте меня.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 22 июн 2011, 14:58 

Зарегистрирован: 16 фев 2010, 22:03
Сообщения: 101
У меня микроядро, поэтому за загрузку процессов будет отвечать user-mode сервер. Соответственно у него должны быть механизмы для того, чтобы распределить память в новом процессе и скопировать туда код и данные из исполняемого файла. Да и для отладки такое может пригодится. И вообще много для чего. Не зря в таких ОС как Windows и Linux есть штатные средства для доступа к памяти других процессов. Разумеется, потом я планирую реализовать и систему прав доступа, чтобы процесс мог манипулировать памятью только тех процессов, которые находятся на более нижнем уровне прав доступа, либо на равне с ним. Таким образом процесс пользователя может делать что угодно с другими такими же процессами, но не может повлиять на какой-нибудь системный сервис. В свою очередь системный сервис может вообще всё.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 22 июн 2011, 16:13 

Зарегистрирован: 28 окт 2007, 18:33
Сообщения: 1418
У меня монолит, но, как сказал, из-за требований к предсказуемости времени исполнения критических функций ряд вещей из ядра вынесен (хотя при желании может быть внесён и в ядро -- ценой потери предсказуемости). Загрузчик, понятно, относится к числу таких плохо предсказуемых вещей, а посему находится снаружи.

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 24 июн 2011, 18:48 

Зарегистрирован: 21 сен 2007, 17:24
Сообщения: 1088
Откуда: Балаково
KIV писал(а):
У меня микроядро, поэтому за загрузку процессов будет отвечать user-mode сервер. Соответственно у него должны быть механизмы для того, чтобы распределить память в новом процессе и скопировать туда код и данные из исполняемого файла.

Лучше, чтобы этот user-mode сервер временно загружался в создаваемую задачу, тогда он сможет всё сделать в контексте нужной задачи без сложной манипуляции с памятью.
Всё-равно для полной инициализации приложения недостаточно будет куска памяти с кодом и данными. Это всего лишь 10% от необходимого. Среда выполнения гораздо сложнее приложения.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 36 ]  На страницу Пред.  1, 2, 3, 4

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB