|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Oleg Drokin 2:5020/400 06 Feb 2003 10:42:43 To : Igor Sysoev Subject : Re: 386SX and RedHat_8.0 -------------------------------------------------------------------------------- Hello! Igor Sysoev <is@rambler-co.ru> wrote: IS> Write Protect bit в интеловской терминологии есть ровно один. Живёт он IS> в регистре CR0 в бите за нумером 16. Единица в этом бите запрещает IS> запись в read-only user-level страницы, даже когда процессор IS> работает в 0-2 кольце. В странице же есть бит Read/Write flag, IS> за нумером 1. Единица в этом бите разрешает запись в страницу. Угу. IS> Теперь перейдём к коду. Если мы посмотрим более полный фрагмент по адресу IS> http://linux.bkbits.net:8080/linux-2.4/anno/arch/i386/mm/init.c@1.14?nav=ind IS> ex.html|src/.|src/arch|src/arch/i386|src/arch/i386/mm|hist/arch/i386/mm/init IS> .c|diffs/arch/i386/mm/init.c@1.14 то увидим там комментарий ---------- /* * IS> Test if the WP bit works in supervisor mode. It isn't supported on 386's * IS> and also on some strange 486's (NexGen etc.). All 586+'s are OK. The jumps * IS> before and after the test are here to work-around some nasty CPU bugs. IS> */ ---------- прочитав который, любой, понимающий в интеловских процессорах, IS> скажет, что речь идёт о WP в CR0. Тут, кстати, упоминается 386 - "It IS> isn't supported on 386's", что является истинной правдой и только IS> правдой. Замечу, что про ранние и поздние 386 ничего не сказано. Да, это мои собственные глюки уже ;) Помню что ранние, но вот надо было помнить что ранние модели семейства ia32 (i386 и далее по комментарию), а мне запомнилось что ранние экземпляры модели. >>IS> А какой, кстати, от этого приключается security risk у малтиюзер машинок ? >>Hасколько я помню обсуждения в lkml (которые ясное дело легко гуглятся), >>смысл в том что приложение может подменить мапинг пока кернел собирается туда >>записать, таким образом пока мы проверяли - мапинг RW, затем мы начали туда >>писать, тут все шедулится другой тред этого процесса меняет мапинг, >>все опять шедулится и пишем мы уже совсем не туда, а в другую страничку >>(кторую мы можем примапить как RO-only, например) IS> Вы рассказываете какие-то странные вещи. IS> Прежде всего, мне кажется, что другому трэду, меняющему маппинг странички, IS> которую в данный момент окучивает ядро, это самое ядро должно бы дать IS> по рогам, вернув EBUSY или EACCES. Или же окучивание странички ядром А ядро эту страничку не окучивает еще. IS> должно быть атомарной операцией, то есть, трэд должен быть просто Hесомненно, но ряд операций проверка->подготовка->окучивание атомарными быть не могут. IS> Hо вернёмся к нашим баранам. IS> Баран номер раз - мне не совсем понятно, чем же тут поможет R/W бит IS> в странице. Тем что там где WP работает, нельзя писать в READ_ONLY странички юзерспейса. Соответственно при такой попытке м сразу это заметим. IS> Баран номер два - как вышеописанный случай относится к "security risk IS> у малтиюзер машинок" ? Я пока увидел только brain damaged малтитрэдовую IS> программу. Там сверху уже достаточно ключевых слов чтобы погуглить за более подробной информацией. Bye, Oleg --- ifmail v.2.15dev5 * Origin: Green's home news server (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/15550f0ede88c.html, оценка из 5, голосов 10
|