OSDev

для всех
Текущее время: 22 ноя 2019, 06:19

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




Начать новую тему Ответить на тему  [ Сообщений: 30 ]  На страницу Пред.  1, 2, 3  След.
Автор Сообщение
СообщениеДобавлено: 17 сен 2011, 13:59 

Зарегистрирован: 30 янв 2010, 19:44
Сообщения: 63
хм! пусть 64х..

где теперь почитать об этом чтонибудь вводное..


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

Зарегистрирован: 10 май 2007, 11:33
Сообщения: 1204
Intel® 64 and IA-32 Architectures Software Developer’s Manual


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

Зарегистрирован: 21 сен 2007, 17:24
Сообщения: 1096
Откуда: Балаково
Некоторые переводы.
http://ru.osdev.wikia.com/wiki/IAM:%D0% ... B2%D0%B0_2
http://ru.osdev.wikia.com/wiki/%D0%A0%D ... %BC_IA-32e
В Intel 64-битный режим называется IA-32e.


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

Зарегистрирован: 30 янв 2010, 19:44
Сообщения: 63
в процах такая задача кажется вообще без танцев не реализуема...
вариантов сделать два непересекающихся сегмента максимальной длины - нет.
буду делать простой вариант: два сегмента код и данные где буду помечать зоны кода и зоны данных.. чтоб не наслоились..


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

Зарегистрирован: 28 окт 2007, 18:33
Сообщения: 1391
А вообще, если честно, все попытки использовать сегментацию мне кажутся... хм... чем-то из серии: "раз оно предусмотрено, значит, я должен его использовать" независимо от того, есть ли в этом хоть какой-то практический смысл, не говоря уже об эффективности и прочих подобных вещах.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 20 сен 2011, 10:33 
Аватара пользователя

Зарегистрирован: 20 апр 2011, 10:54
Сообщения: 145
SII писал(а):
А вообще, если честно, все попытки использовать сегментацию мне кажутся... хм... чем-то из серии: "раз оно предусмотрено, значит, я должен его использовать" независимо от того, есть ли в этом хоть какой-то практический смысл, не говоря уже об эффективности и прочих подобных вещах.

Просто сегенты интуитивно понятны. Страницы очень запутаны, и до идеи как их правильно исполизовать новичку сразу не дойти.

А вообще можно же поддерживать и то и другое. Нативный интерфейс ядра орентирован на страницы, есть LDT и функции вставки/удаления сегментов. А как приложение распорядится - это уже его дело.

_________________
Found a CPU. LAPIC ID: 00


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

Зарегистрирован: 10 май 2007, 11:33
Сообщения: 1204
418ImATeapot писал(а):
Просто сегенты интуитивно понятны. Страницы очень запутаны, и до идеи как их правильно исполизовать новичку сразу не дойти.
И при этом ты говоришь: "Пусть x64" :)

Цитата:
А вообще можно же поддерживать и то и другое. Нативный интерфейс ядра орентирован на страницы, есть LDT и функции вставки/удаления сегментов. А как приложение распорядится - это уже его дело.
Естественно сегментация работает поверх пейджинга, но это не означает, что ее нужно использовать по полной. Использовать LDT необязательно, нет функций вставки/удаления сегментов. Зачем городить лишние преграды в пределах одного приложения, если суммарный объем доступного пространства от этого больше не становится. Можешь "огородить" только прикладное пространство, сделать прикладные стеки неисполняемыми и т.п. Можешь ввести понятия область, секция, слой и т.п. Но аппаратную сегментацию на прикладной уровень выносить не нужно.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 20 сен 2011, 15:41 
Аватара пользователя

Зарегистрирован: 20 апр 2011, 10:54
Сообщения: 145
phantom-84 писал(а):
418ImATeapot писал(а):
Просто сегенты интуитивно понятны. Страницы очень запутаны, и до идеи как их правильно исполизовать новичку сразу не дойти.
И при этом ты говоришь: "Пусть x64" :)



Цитата:
А вообще можно же поддерживать и то и другое. Нативный интерфейс ядра орентирован на страницы, есть LDT и функции вставки/удаления сегментов. А как приложение распорядится - это уже его дело.
Естественно сегментация работает поверх пейджинга, но это не означает, что ее нужно использовать по полной. Использовать LDT необязательно, нет функций вставки/удаления сегментов. Зачем городить лишние преграды в пределах одного приложения, если суммарный объем доступного пространства от этого больше не становится. Можешь "огородить" только прикладное пространство, сделать прикладные стеки неисполняемыми и т.п. Можешь ввести понятия область, секция, слой и т.п. Но аппаратную сегментацию на прикладной уровень выносить не нужно.


Говорю 64 не я!

Сегментация удобна для всяких модулей, дллешек и т. п.

Кстати, смежный вопрос. Как сделать N стеков в одном плоском АП?

_________________
Found a CPU. LAPIC ID: 00


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

Зарегистрирован: 28 окт 2007, 18:33
Сообщения: 1391
Ну так менять указатель стека, и всё. В чём проблема-то?


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

Зарегистрирован: 10 май 2007, 11:33
Сообщения: 1204
418ImATeapot писал(а):
Говорю 64 не я!
Понял.

Цитата:
Сегментация удобна для всяких модулей, дллешек и т. п.
На самом деле не факт. Могу утверждать это на основе собственного опыта.

Цитата:
Кстати, смежный вопрос. Как сделать N стеков в одном плоском АП?
Просто.

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

Стеки ядра имеют фиксированный размер 12 кб и размер стоп-фрейма 4 кб и располагаются последовательно. Стеки прерываний не используются. Первичная обработка прерывания происходит с использованием текущего стека ядра. На дне стеков ядра резервируется небольшой участок памяти специально для первичной обработки прерываний.


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

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


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

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


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

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