Главная страница


ru.linux

 
 - RU.LINUX ---------------------------------------------------------------------
 From : Sergey Mudry                         2:5020/400     14 Oct 2004  23:47:30
 To : Zahar Kiselev
 Subject : Re: неисполняемый стэк в 2.4 ?
 -------------------------------------------------------------------------------- 
 
 On Wed, 13 Oct 2004, Zahar Kiselev wrote:
 
 SM>> Да можно. Всего-то надо сделать так, чтобы сегменты программы 
 SM>> (исполняемые) и данных (принципиально неисполняемые) не пересекались.
 SM>> Ограничить их размеры.
 ZK> Более того, и код и данные вообще-то не обязаны состоять каждый из
 ZK> единственного сегмента.
 
 Тогда указатели будут "нестандартного" размера - 6 байт.
 16-битный селектор (сегмент) + 32-битное смещение.
 Кроме того, локальных сегментов для одной задачи может всего 8192, чего 
 может не хватить.
 Я пишу так, чтобы хоть какая-то совместимость была с моделью памяти 
 flat.
 
 ZK> И это было реализовано в частности в дос-экстендерах
 ZK> (это то, с чем я имел дело лично, про другое спорить не буду).
 
 Так это же, наверное, для 16-битной платформы...
 
 SM>> При этом возникают некоторые проблемы с 
 SM>> динамической сборкой и разделением библиотек, нужно организовать две 
 SM>> кучи, исполняемую и неисполняемую, причем каждая - в непрерывном 
 SM>> линейном адресном пространстве.
 ZK> Кто и когда сказал, что линейное непрерывное пространство
 ZK> обязательно с точки зрения компьютера?
 
 Чтобы все уложить в два-три сегмента (для каждой задачи). Кода, данных, 
 и опционально стека.
 Иначе делать другую модель памяти, с вышеуказанными указателями.
 
 ZK> По-моему оно возникло по двум
 ZK> причинам - проще создать средства разработки(прежде всего линкер) и
 ZK> удобно делить на одинаковые страницы для свопа, который был
 ZK> черезвычайно актуален тогда, когда эти средства разработки
 ZK> создавались - ведь память тогда стоила по полтиннику баксов за
 ZK> мегабайт.
 
 Про исторические причины ничего сказать не могу.
 Hо в средствах разработки что-то несовместимое может быть.
 Hе помню где (вроде в gcc-mingw32) видел, что в исполнимом файле код и 
 данные стоят вперемешку. Текстовые константы прямо посреди кода. 
 Попробуй, запрети исполнение этих кусочков!
 Linux'овый gcc, вроде данные пишет в отдельные сегменты.
 
 SM>> Hо с учетом того, что сегменты можно 
 SM>> перемещать, а страницы переставлять, это все решаемо.
 ZK> Hо кто это будет реализовывать? Это же кучу всего переписывать надо!
 
 По идее, только менеджер памяти. И, возможно, динамический линкер.
 Кстати, как это в BSD, никто не в курсе?
 
 SM>> Вопрос только насколько оно будет совместимо с другими архитектурами?
 SM>> И вообще с архитектурой UNIX.
 ZK> А вот что такое "архитектура UNIX" применительно к данному вопросу -
 ZK> можно обсудить. Hапример были юниксоподобные ОС (несколько!),
 ZK> работавшие на 286 процессоре, у которого вся защита памяти основана
 ZK> именно на сегментах.
 
 Hу еще бы, у них просто не было другого механизма.
 
 ZK> Будем считать эти ОС несовместимыми с архитектурой UNIX?
 
 Просто я подумал, допустимо ли загонять исполнимый код в разделяемую 
 память? :)
 Hаверное, ты прав, архитектура UNIX тут ни при чем.
 
 ZK> Также существуют клоны юникса, работающие на процессорах, вообще не
 ZK> имеющих аппаратной защиты памяти - экзотика конечно, но тем не менее
 ZK> существуют и даже используются(как правило только в embedded
 ZK> применениях).
 
 Там и сабжевые вопросы не возникают :)
 
 ZK> И свопили целыми сегментами. Потом стали свопить страницами, опять
 ZK> же чтобы экономить память, и название поменяли на "пейджинг". 
 
 А еще свопинг по страницам проще, потому как все страницы одного 
 размера, в отличие от сегментов.
 
 -- 
 С уважением, Serg.
 --- ifmail v.2.15dev5.3
  * Origin: Donbass InterNet Center DIPT (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 неисполняемый стэк в 2.4 ?   Zahar Kiselev   09 Oct 2004 02:46:36 
 Re: неисполняемый стэк в 2.4 ?   Nick Gazaloff   09 Oct 2004 05:11:39 
 Re: неисполняемый стэк в 2.4 ?   Sergey_Afonin   09 Oct 2004 13:55:07 
 Re: неисполняемый стэк в 2.4 ?   Nick Gazaloff   09 Oct 2004 21:03:42 
 Re: неисполняемый стэк в 2.4 ?   Sergey_Afonin   09 Oct 2004 22:51:14 
 Re: неисполняемый стэк в 2.4 ?   Zahar Kiselev   10 Oct 2004 06:11:10 
 Re: неисполняемый стэк в 2.4 ?   Zahar Kiselev   09 Oct 2004 20:41:58 
 Re: неисполняемый стэк в 2.4 ?   Slava Astashonok   09 Oct 2004 22:56:48 
 Re: неисполняемый стэк в 2.4 ?   Max Krasilnikov   09 Oct 2004 23:43:53 
 Re: неисполняемый стэк в 2.4 ?   Slava Astashonok   09 Oct 2004 23:57:39 
 Re: неисполняемый стэк в 2.4 ?   Max Krasilnikov   10 Oct 2004 00:08:36 
 Re: неисполняемый стэк в 2.4 ?   Zahar Kiselev   10 Oct 2004 01:56:12 
 Re: неисполняемый стэк в 2.4 ?   Slava Astashonok   10 Oct 2004 10:39:22 
 Re: неисполняемый стэк в 2.4 ?   Nick Gazaloff   10 Oct 2004 17:12:30 
 Re: неисполняемый стэк в 2.4 ?   Slava Astashonok   11 Oct 2004 01:57:11 
 Re: неисполняемый стэк в 2.4 ?   Nick Gazaloff   11 Oct 2004 09:15:57 
 Re: неисполняемый стэк в 2.4 ?   Slava Astashonok   11 Oct 2004 09:27:52 
 Re: неисполняемый стэк в 2.4 ?   Nick Gazaloff   11 Oct 2004 09:33:43 
 Re: неисполняемый стэк в 2.4 ?   Slava Astashonok   11 Oct 2004 09:43:40 
 Re: неисполняемый стэк в 2.4 ?   Nick Gazaloff   11 Oct 2004 10:15:16 
 Re: неисполняемый стэк в 2.4 ?   Slava Astashonok   11 Oct 2004 11:05:29 
 Re: неисполняемый стэк в 2.4 ?   Nick Gazaloff   11 Oct 2004 11:18:25 
 Re: неисполняемый стэк в 2.4 ?   Slava Astashonok   11 Oct 2004 11:29:50 
 Re: неисполняемый стэк в 2.4 ?   Sergey Kudriavtsev   12 Oct 2004 15:41:28 
 Re: неисполняемый стэк в 2.4 ?   Slava Astashonok   11 Oct 2004 13:15:34 
 Re: неисполняемый стэк в 2.4 ?   Sergey Kudriavtsev   12 Oct 2004 15:56:59 
 Re: неисполняемый стэк в 2.4 ?   Sergey Kudriavtsev   12 Oct 2004 15:35:46 
 Re: неисполняемый стэк в 2.4 ?   Nick Gazaloff   13 Oct 2004 14:42:50 
 Re: неисполняемый стэк в 2.4 ?   Sergey Kudriavtsev   13 Oct 2004 19:53:13 
 Re: неисполняемый стэк в 2.4 ?   Zahar Kiselev   12 Oct 2004 19:23:38 
 Re: неисполняемый стэк в 2.4 ?   Nick Gazaloff   12 Oct 2004 23:36:14 
 Re: неисполняемый стэк в 2.4 ?   Zahar Kiselev   13 Oct 2004 02:33:28 
 Re: неисполняемый стэк в 2.4 ?   Nick Gazaloff   13 Oct 2004 11:59:08 
 Re: неисполняемый стэк в 2.4 ?   Zahar Kiselev   13 Oct 2004 14:15:14 
 Re: неисполняемый стэк в 2.4 ?   Nick Gazaloff   13 Oct 2004 23:07:35 
 Re: неисполняемый стэк в 2.4 ?   Zahar Kiselev   14 Oct 2004 00:29:08 
 Re: неисполняемый стэк в 2.4 ?   Roman Belenov   14 Oct 2004 11:40:48 
 Re: неисполняемый стэк в 2.4 ?   Sergey Kudriavtsev   15 Oct 2004 22:58:33 
 Re: неисполняемый стэк в 2.4 ?   Slava Astashonok   14 Oct 2004 10:16:11 
 Re: неисполняемый стэк в 2.4 ?   Sergey Kudriavtsev   15 Oct 2004 22:56:43 
 Re: неисполняемый стэк в 2.4 ?   Sergey Mudry   13 Oct 2004 23:16:54 
 Re: неисполняемый стэк в 2.4 ?   Zahar Kiselev   14 Oct 2004 00:59:28 
 Re: неисполняемый стэк в 2.4 ?   Sergey Mudry   14 Oct 2004 23:47:30 
 Re: неисполняемый стэк в 2.4 ?   Kirill Frolov   15 Oct 2004 00:26:31 
 Re: неисполняемый стэк в 2.4 ?   Zahar Kiselev   13 Oct 2004 21:46:46 
 Re: неисполняемый стэк в 2.4 ?   Sergey Kudriavtsev   15 Oct 2004 22:57:32 
 Re: неисполняемый стэк в 2.4 ?   Slava Astashonok   16 Oct 2004 14:07:35 
 Re: неисполняемый стэк в 2.4 ?   Sergey Kudriavtsev   13 Oct 2004 19:56:25 
 Re: неисполняемый стэк в 2.4 ?   Nick Gazaloff   15 Oct 2004 14:49:59 
 Re: =?koi8-r?B?zsXJ09DPzM7Rxc3ZyiDT1NzLINcgMi40ID8=?=   Unrau Alexander   15 Oct 2004 17:35:19 
 Re: неисполняемый стэк в 2.4 ?   Alexei Takaseev   10 Oct 2004 13:15:41 
 Re: неисполняемый стэк в 2.4 ?   Sergey_Afonin   09 Oct 2004 13:55:07 
 Re: неисполняемый стэк в 2.4 ?   Max Krasilnikov   09 Oct 2004 23:45:57 
Архивное /ru.linux/13331435650d4.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional