OSDev

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

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




Начать новую тему Ответить на тему  [ Сообщений: 190 ]  На страницу Пред.  1 ... 15, 16, 17, 18, 19
Автор Сообщение
 Заголовок сообщения: Re: Express OS
СообщениеДобавлено: 25 янв 2017, 21:42 
Аватара пользователя

Зарегистрирован: 16 май 2007, 23:46
Сообщения: 1126
Там целая система. Которая организует доверенную зону. Для этого требуется соблюдения ряда простых условий порядка 10-20 но есть нюансы в том смысле что доказательство носит сложный и запутанный характер. Поэтому для правильности применяют математические методы но они не дают гарантий, поэтому привлекают специальные лаборатории.

Хотя в виндоусе это сделано через одно место.

После запуска от администратора система снимает ряд ограничений. Делается это по классической виндоуской схеме User-space API далее API-сервиса далее ядро. Хотя такое должно делаться через ядро. Но по факту вызываеьтя CredUIPromptForCredentials().

Потоки хранят свою информацию в ядре. Поэтому из User-space до неё не добраться. Каждый поток имеет имя пользователя и его привилегии. Думаю можно начинать рыть от LPSECURITY_ATTRIBUTES lpSecurityAttributes. Насколько помню каждый объект-ядра имеет уровень привилегий.

1)
При снятии ограничений ряд объектов в ядре и user-space получают разрешения на чтение и запись функция VirtualProtect. Делается это обычно через страницы. Ничего сверх естественного. Но какие участки разумеется засекречено.
Отслеживания какой участок имеет какие права делается через списки. Скорее всего хранятся в User-spase в одной из системных куч.

2)
Что касается исключений, то ядерные функции просто проверяют привилегии и вызывают исключение. Исключение бросается аналогично тому как вызывается функция. Хотя по форме выглядит как магия аппаратной защиты. Дело в том что установка привилегий и проверка разнесена в пространстве и времени.
В прикладном уровне такого кода нет. Так как если бы он был то это бы нарушает понятие доверенной зоны.
Шифрование находиться в User-space поэтому там и применяют методы для закрытия от записи и чтения. Но защиту они там используют по мнимому.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Express OS (2012)
СообщениеДобавлено: 18 июл 2018, 09:39 

Зарегистрирован: 10 июл 2018, 12:33
Сообщения: 10
Himik писал(а):
В данный момент планирую переход на 64-битный режим, совместно с 32-битным и виртуальным 16-битным (потому что ОС использует BIOS).
16-битный режим несовместим с 64-битным, поэтому системе нужен 2х-ядерный процессор, на первом ядре проца будет постоянно работать 64-битное ядро системы, на втором проце тоже будет работать 64-битное ядро, но периодически переходить на 32-битное ядро с виртуальной 16-битной задачей (по мере вызова BIOS процедур).

Я до такого, к сожалению, не додумался. Жаль, что сейчас не на всех 64битных устройствах есть полноценный 16-битный BIOS!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Express OS
СообщениеДобавлено: 18 июл 2018, 19:42 

Зарегистрирован: 21 сен 2007, 17:24
Сообщения: 1088
Откуда: Балаково
От 32-битного ядра и виртуального режима VM86 я отказался, поэтому для вызова BIOS делается сразу переключение из 64-битного в реальный режим и обратно в 64-битный.
Да, в режиме UEFI нет BIOSа, поэтому надо будет переделывать.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Express OS
СообщениеДобавлено: 19 июл 2018, 08:21 

Зарегистрирован: 10 июл 2018, 12:33
Сообщения: 10
Можно попробовать и не ради BIOSа отключить на одном из логических процессоров Long mode, и планировать на него 32-разрядные, 16-разрядные и V86 задачи.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Express OS
СообщениеДобавлено: 19 июл 2018, 08:36 

Зарегистрирован: 10 июл 2018, 12:33
Сообщения: 10
Где, кстати, сейчас можно смотреть последние изменения?
На Яндекс.Диске?
Ссылки в начале темы протухли за прошедшие годы.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Express OS
СообщениеДобавлено: 19 июл 2018, 20:59 

Зарегистрирован: 21 сен 2007, 17:24
Сообщения: 1088
Откуда: Балаково
Да, на разных ядрах можно крутить задачи разной разрядности.
Ни каких изменений пока нет, если вдруг появятся то сообщу сюда ссылку. Да, я использую Яндекс.Диск.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Express OS
СообщениеДобавлено: 20 июл 2018, 08:55 

Зарегистрирован: 10 июл 2018, 12:33
Сообщения: 10
То есть, всё сейчас тут
https://yadi.sk/d/RJ_W8nEqctQuJ


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Express OS
СообщениеДобавлено: 01 окт 2019, 23:03 

Зарегистрирован: 21 сен 2007, 17:24
Сообщения: 1088
Откуда: Балаково
Выпустил новую версию. Ни каких новых функций не добавлено, только внутренняя реорганизация кода. Такие модули, как драйвера и файловые подсистемы теперь работают на 0 кольце защиты, раньше были на 3 пользовательском уровне. Для приложений они теперь доступны через системные вызовы int 0x80 и syscall на подобии Linux, а так же через механизм сообщений.
В создании процесса через функцию fork теперь не делается динамического копирования страниц во время исполнения, а все адресное пространство копируется на этапе создания дочернего процесса. Оказалось, что так проще и надёжнее, а разницы в скорости ни какой.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Express OS
СообщениеДобавлено: 11 ноя 2019, 20:15 

Зарегистрирован: 21 сен 2007, 17:24
Сообщения: 1088
Откуда: Балаково
Довольно долго искал глюк в системе, который происходил в разное время в случайных местах. Проблема оказалась в системной функции execve (POSIX), которая должна очистить текущее адресное пространство и загрузить в него новое приложение. После очистки памяти путём удаления всех виртуальных страниц, забыл сбросить процессорный кэш страниц, путём перезагрузки CR3. Теперь точно могу сказать - в любой непонятной ситуации :-) ставьте по всему коду перезагрузку CR3, и возможно вы найдёте источник проблемы :ugeek:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Express OS
СообщениеДобавлено: 12 ноя 2019, 12:15 

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


Ну, уж точно не в любой. Надо обеспечить обновление TLB при изменении отображения виртуальных адресов на реальные (т.е., по сути, при изменениях в таблицах переадресации), но, понятно, это не поможет, если причина глюка не в этом. А межпроцессорная синхронизация -- так ващще адЪ и израiль зачастую.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 190 ]  На страницу Пред.  1 ... 15, 16, 17, 18, 19

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


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

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


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

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