Поиск:

Ответ в темуСоздание новой темы Создание опроса
> уровни привилегий в *NIX 
V
    Опции темы
ksili
Дата 1.10.2007, 04:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2069
Регистрация: 3.11.2005
Где: Красноярск

Репутация: нет
Всего: 17



Ни UNIX, ни Linux не пользовал никогда, поэтому не пинайте сильно...
Общеизвестно, что процессоры семейства x86 поддерживают 4 уровня привилегий для организации механизма защиты. Эти уровни используются и в селекторах сегментов, и в дескрипторах сегментов, и для защиты ввода/вывода. Известно также, что Windows из 4-х уровней использует только 2 крайних - 0 и 3. 
И мне стало интересно, как здесь дела обстоят с UNIX и Linux. Используют ли они этот механизм по полной, или там вообще все в этом смысле равны? Или ещё как-то?


--------------------
Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с)
PM MAIL   Вверх
bilbobagginz
Дата 1.10.2007, 06:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Naughtius Maximus
****


Профиль
Группа: Экс. модератор
Сообщений: 8813
Регистрация: 2.3.2004
Где: Israel

Репутация: нет
Всего: 317



а вы знаете что значат эти "4 уровня привилегий" ?



--------------------
Я ещё не демон. Я только учусь.
PM WWW   Вверх
ksili
Дата 1.10.2007, 07:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2069
Регистрация: 3.11.2005
Где: Красноярск

Репутация: нет
Всего: 17



знаю. а вы ответ на мой вопрос знаете?


--------------------
Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с)
PM MAIL   Вверх
bilbobagginz
Дата 1.10.2007, 07:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Naughtius Maximus
****


Профиль
Группа: Экс. модератор
Сообщений: 8813
Регистрация: 2.3.2004
Где: Israel

Репутация: нет
Всего: 317



не знаю о "UNIX", т.к. есть несколько ОС на подходящих под этот "формат".
Линукс работает в только в 2-х режимах: ядра и пользователя.
т.е. когда происходит системный вызов, программа из режима "пользователя" ( ring3 ) передает данные каким-то там системным библиотекам в форме загружаемого модуля, и эти библиотеки бегут в режиме "ядра", т.е. ring0.

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

и еще в последнее время Xen бежит в режиме ring0, и соответственно ядро в ring1, a приложения в ring3.

короче ответ: линукс в стандартной ( пока ) конфигурации использует только 2 режима, как и винда.






--------------------
Я ещё не демон. Я только учусь.
PM WWW   Вверх
ksili
Дата 1.10.2007, 07:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2069
Регистрация: 3.11.2005
Где: Красноярск

Репутация: нет
Всего: 17



Спасибо


--------------------
Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с)
PM MAIL   Вверх
MAKCim
Дата 1.10.2007, 09:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 2
Всего: 207



Цитата(bilbobagginz @  1.10.2007,  07:46 Найти цитируемый пост)
т.е. когда происходит системный вызов, программа из режима "пользователя" ( ring3 ) передает данные каким-то там системным библиотекам в форме загружаемого модуля, и эти библиотеки бегут в режиме "ядра", т.е. ring0.

выделенную фразу не понял
данные передаются через регистры, для перехода используются 
int 0x80 / sysenter (X86)
syscall (X64)
также, о каких библиотеках идет речь?
есть функции, выполняющиеся в режиме ядра, но не более того
Цитата(bilbobagginz @  1.10.2007,  07:46 Найти цитируемый пост)
я полагаю, что один из оставшихся режимов используется при работе SMI прерываний, но этого линукс не "чувствует".

опять не понял
вообще говоря SMI# переводит CPU в нереальный режим (unreal mode), где нет понятия об уровнях привилегий


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
bilbobagginz
Дата 1.10.2007, 10:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Naughtius Maximus
****


Профиль
Группа: Экс. модератор
Сообщений: 8813
Регистрация: 2.3.2004
Где: Israel

Репутация: нет
Всего: 317



ну не совсем я понятный, когда пишу что-то в 7:46 ( до того как лег спать ) smile
Цитата

выделенную фразу не понял

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

опять не понял

это значит следующее:  в любом более защищенном режиме, жем незащищенный ring3 процессор может выполнять больше инструкций и реагировать на больше прерываний, и "быстрее". значит, теоритически ядро, находясь в таком режиме должно быть с т.з. безопасности в "kernel space", и запускать в это время код ядра.
Фактически же (правда это еще не смогли использовать не поназначению, ПОКА) в режим SMM процессор приходит каждое прерывание SMI.
и теоритически существует возможность выполнения в это время пользовательского кода.  тут есть статья: http://www.securityfocus.com/columnists/402






--------------------
Я ещё не демон. Я только учусь.
PM WWW   Вверх
ksili
Дата 1.10.2007, 11:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2069
Регистрация: 3.11.2005
Где: Красноярск

Репутация: нет
Всего: 17



Я посмотрел статью и у меня возникли вопросы  smile .
1) SMM-режим и нереальный режим  - это одно и то же?
2) 
Цитата(bilbobagginz @  1.10.2007,  15:29 Найти цитируемый пост)
теоритически существует возможность выполнения в это время пользовательского кода

Как его можно выполнять в этом режиме? В статье сказано вроде, что этот режим прозрачен для операционной системы и тем более для пользоательских программ. Они просто не замечают как проц переходит из защищённого в SMM и обратно.
3) В статье сказано, что проц может работать в четырёх режимах, там упоминаются SMM и защищёный. Ещё один - реальный. А чётвёртый? Virtual Mode 8086? Или ещё какой-то?


--------------------
Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с)
PM MAIL   Вверх
bilbobagginz
Дата 1.10.2007, 11:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Naughtius Maximus
****


Профиль
Группа: Экс. модератор
Сообщений: 8813
Регистрация: 2.3.2004
Где: Israel

Репутация: нет
Всего: 317



1. имхо - да.
2. если бы я знал ответ, то этот дядя уже наверное изучил это дело.
3. их проще нумеровать. насколько я понял "имена" - это семантика оперативной системы. и полная разница немного может отличаться от реализации к реализации... надо RTFM делать.


--------------------
Я ещё не демон. Я только учусь.
PM WWW   Вверх
ksili
Дата 1.10.2007, 12:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2069
Регистрация: 3.11.2005
Где: Красноярск

Репутация: нет
Всего: 17



Цитата(bilbobagginz @  1.10.2007,  16:45 Найти цитируемый пост)
их проще нумеровать

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


--------------------
Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с)
PM MAIL   Вверх
bilbobagginz
Дата 1.10.2007, 12:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Naughtius Maximus
****


Профиль
Группа: Экс. модератор
Сообщений: 8813
Регистрация: 2.3.2004
Где: Israel

Репутация: нет
Всего: 317



Цитата

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

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




--------------------
Я ещё не демон. Я только учусь.
PM WWW   Вверх
MAKCim
Дата 1.10.2007, 12:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 2
Всего: 207



bilbobagginz
отдохнуть бы тебе (не обижайся, просто посты у тебя какие-то сумбурные и трудночитаемые)  smile 
по теме
Цитата(bilbobagginz @  1.10.2007,  10:29 Найти цитируемый пост)
это значит следующее:  в любом более защищенном режиме, жем незащищенный ring3 процессор может выполнять больше инструкций и реагировать на больше прерываний

большее число инструкций - да
однако, реагирование процессором на прерывания не зависит от режима его работы
теперь по поводу SMM
SMRAM не доступен пользователю в виду следующих ограничений:
1. Защита на уровне чипсета
2. (в случае отсутствия п. 1) Эта область все-равно защищена, поскольку по-умолчанию в качестве SMBASE используется 
адрес < 1MB, а ядро не выделяет страницы памяти из диапозона 0-0xFFFFF (точнее выделять то и нечего, поскольку они все используются)
Цитата(ksili @  1.10.2007,  11:24 Найти цитируемый пост)
1) SMM-режим и нереальный режим  - это одно и то же?

нет, не одно и то же
Цитата(ksili @  1.10.2007,  11:24 Найти цитируемый пост)
3) В статье сказано, что проц может работать в четырёх режимах, там упоминаются SMM и защищёный. Ещё один - реальный. А чётвёртый? Virtual Mode 8086? Или ещё какой-то? 

да, Virtual 8086
Цитата(ksili @  1.10.2007,  11:24 Найти цитируемый пост)
Как его можно выполнять в этом режиме? В статье сказано вроде, что этот режим прозрачен для операционной системы и тем более для пользоательских программ. Они просто не замечают как проц переходит из защищённого в SMM и обратно.

если стоит аппаратная защита на SMRAM, тогда никто кроме BIOS не может эту область использовать (а тем более изменять)
если защиты нет, теоретическая возможность существует, но это уже серьезная дыра в ОС

Это сообщение отредактировал(а) MAKCim - 1.10.2007, 12:31


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
bilbobagginz
Дата 1.10.2007, 12:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Naughtius Maximus
****


Профиль
Группа: Экс. модератор
Сообщений: 8813
Регистрация: 2.3.2004
Где: Israel

Репутация: нет
Всего: 317



Цитата

отдохнуть бы тебе (не обижайся, просто посты у тебя какие-то сумбурные и трудночитаемые) 

100% прав. скоро уже, лет через 70-80 пойду на отдых. надеюсь заслуженный smile



--------------------
Я ещё не демон. Я только учусь.
PM WWW   Вверх
MAKCim
Дата 1.10.2007, 12:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 2
Всего: 207



Цитата(ksili @  1.10.2007,  12:21 Найти цитируемый пост)
не понял. так что ли каждый режим соответствует кольцу? По-моему режим это нечто более широкое, чем просто уровень привилегий... там же адресное пространство, наборы команд, и т.д. 

естественно
в защищенном режиме, например, предусмотрена 4-х уровневая модель защиты, в виртуальном - лишь 2-х уровневая (CPL = 3, CPL = 0)
в реальном режиме (как и в SMM) вообще нет понятия уровня привилегий


Это сообщение отредактировал(а) MAKCim - 1.10.2007, 12:40


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
ryzubexx
Дата 6.3.2009, 20:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 6.3.2009

Репутация: нет
Всего: нет



А я вобще их не использую. Слишком они сложные.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm для Linux/Unix"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm для Linux/Unix | Следующая тема »


 




[ Время генерации скрипта: 0.1459 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.