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


ru.linux

 
 - RU.LINUX ---------------------------------------------------------------------
 From : Igor Sysoev                          2:5020/400     06 Feb 2003  01:20:35
 To : Oleg Drokin
 Subject : Re: 386SX and RedHat_8.0
 -------------------------------------------------------------------------------- 
 
 Oleg Drokin <green@linuxhacker.ru> wrote:
 
 >Igor Sysoev <is@rambler-co.ru> wrote:
 
 >>> I> 2.Подддерживают ли "ядра" 2.2.X vs 2.4.X 386SX-процессор ?
 >>> Да. Правда если там WP-bit не учитывается процессором при
 >>> выполнении кода в ring 0 (был такой трабл у ранних трешек,
 >>> помнится), то это security risk у малтиюзер машинок.
 
 >IS> Вы об какой WP-bit рассказываете ? Об тот, что живёт в CR0 ?
 
 >Hет, тот который живет в page table.
 >arch/i386/mm/init.c:test_wp_bit
 
 >        printk("Checking if this processor honours the WP bit even
 >  in supervisor mode... ");
 
 >        pgd = swapper_pg_dir + __pgd_offset(vaddr);
 >        pmd = pmd_offset(pgd, vaddr);
 >        pte = pte_offset(pmd, vaddr);
 >        old_pte = *pte;
 >        *pte = mk_pte_phys(0, PAGE_READONLY);
 >        local_flush_tlb();
 >
 >        boot_cpu_data.wp_works_ok = do_test_wp_bit(vaddr);
 
 >ну а в do_test_wp_bit мы пытаемся в тот пейдж записать.
 
 >IS> Так там нет этого трабла, потому что в 386 WP нет вообще.
 >IS> Как класса. Hи у ранних, ни у поздних.
 
 >Мы видимо говорим о разных WP, я говорю про write protect ;)
 
 Write Protect bit в интеловской терминологии есть ровно один. Живёт он
 в регистре CR0 в бите за нумером 16. Единица в этом бите запрещает
 запись в read-only user-level страницы, даже когда процессор
 работает в 0-2 кольце. В странице же есть бит Read/Write flag,
 за нумером 1. Единица в этом бите разрешает запись в страницу.
 
 Теперь перейдём к коду. Если мы посмотрим более полный фрагмент по адресу
 
 http://linux.bkbits.net:8080/linux-2.4/anno/arch/i386/mm/init.c@1.14?nav=index.h
 tml|src/.|src/arch|src/arch/i386|src/arch/i386/mm|hist/arch/i386/mm/init.c|diffs
 /arch/i386/mm/init.c@1.14
 
 то увидим там комментарий
 
 ----------
 /*
  * Test if the WP bit works in supervisor mode. It isn't supported on 386's
  * and also on some strange 486's (NexGen etc.). All 586+'s are OK. The jumps
  * before and after the test are here to work-around some nasty CPU bugs.
  */
 ----------
 
 прочитав который, любой, понимающий в интеловских процессорах, скажет,
 что речь идёт о WP в CR0. Тут, кстати, упоминается 386 - "It isn't
 supported on 386's", что является истинной правдой и только правдой.
 Замечу, что про ранние и поздние 386 ничего не сказано.
 
 А бит этот устанавливается в
 
 http://linux.bkbits.net:8080/linux-2.4/anno/arch/i386/kernel/head.S@1.8?nav=inde
 x.html|src/.|src/arch|src/arch/i386|src/arch/i386/kernel
 
 ----------
 is486:
         movl %cr0,%eax          # 486 or better
         andl $0x80000011,%eax   # Save PG,PE,ET
         orl $0x50022,%eax       # set AM, WP, NE and MP
         jmp 2f
 
         ...
 
 2:      movl %eax,%cr0
 ----------
 
 Хотя, конечно, фраза
 
 >        printk("Checking if this processor honours the WP bit even
 >  in supervisor mode... ");
 
 в контексте комментария некорректна. Она должна звучать или "checking
 if this processor honours the R/O bit even in supervisor mode", или
 "checking if this processor honours the WP bit in supervisor mode".
 Во втором случае я опустил слово "even".
 
 >IS> А какой, кстати, от этого приключается security risk у малтиюзер машинок ?
 
 >Hасколько я помню обсуждения в lkml (которые ясное дело легко гуглятся),
 >смысл в том что приложение может подменить мапинг пока кернел собирается туда
 >записать, таким образом пока мы проверяли - мапинг RW, затем мы начали туда
 >писать, тут все шедулится другой тред этого процесса меняет мапинг,
 >все опять шедулится и пишем мы уже совсем не туда, а в другую страничку
 >(кторую мы можем примапить как RO-only, например)
 
 Вы рассказываете какие-то странные вещи.
 Прежде всего, мне кажется, что другому трэду, меняющему маппинг странички,
 которую в данный момент окучивает ядро, это самое ядро должно бы дать
 по рогам, вернув EBUSY или EACCES. Или же окучивание странички ядром
 должно быть атомарной операцией, то есть, трэд должен быть просто
 заблокирован при вызове mprotect (или что там принято вызывать
 в Линуксе в таких случаях). Я не знаю, что происходит на самом деле -
 это просто мои пожелания разработчикам ядра. Hе более того.
 
 Hо вернёмся к нашим баранам.
 
 Баран номер раз - мне не совсем понятно, чем же тут поможет R/W бит
 в странице.
 
 Баран номер два - как вышеописанный случай относится к "security risk
 у малтиюзер машинок" ? Я пока увидел только brain damaged малтитрэдовую
 программу.
 -- 
 Игорь Сысоев
 http://sysoev.ru
 --- ifmail v.2.15dev5
  * Origin: Rambler Office news site (2:5020/400)
 
 

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

 Тема:    Автор:    Дата:  
 386SX and RedHat_8.0   Igor   29 Jan 2003 09:36:05 
 Re: 386SX and RedHat_8.0   Oleg Drokin   29 Jan 2003 11:16:55 
 Re: 386SX and RedHat_8.0   Igor   29 Jan 2003 15:48:26 
 Re: 386SX and RedHat_8.0   Oleg Drokin   29 Jan 2003 22:45:42 
 Re: 386SX and RedHat_8.0   Igor   30 Jan 2003 08:52:47 
 Re: 386SX and RedHat_8.0   Oleg Drokin   30 Jan 2003 11:30:54 
 Re: 386SX and RedHat_8.0   Igor   30 Jan 2003 12:28:04 
 Re: 386SX and RedHat_8.0   Oleg Drokin   30 Jan 2003 12:48:34 
 Re: 386SX and RedHat_8.0   Dmitry Ponyatov   30 Jan 2003 23:20:16 
 Re: 386SX and RedHat_8.0   Dmitry Ponyatov   30 Jan 2003 20:04:34 
 Re: 386SX and RedHat_8.0   Vladimir Bormotov   29 Jan 2003 23:40:53 
 Re: 386SX and RedHat_8.0   Igor   30 Jan 2003 09:14:05 
 Re: 386SX and RedHat_8.0   Vladimir Bormotov   30 Jan 2003 14:45:02 
 Re: 386SX and RedHat_8.0   Victor Wagner   30 Jan 2003 15:08:33 
 Re: 386SX and RedHat_8.0   Aleksey Cheusov   30 Jan 2003 17:19:46 
 Re: 386SX and RedHat_8.0   Victor Wagner   30 Jan 2003 18:29:08 
 Re: 386SX and RedHat_8.0   Valentin Nechayev   31 Jan 2003 14:25:22 
 Re: 386SX and RedHat_8.0   Victor Wagner   31 Jan 2003 14:31:34 
 Re: 386SX and RedHat_8.0   Aleksey Cheusov   31 Jan 2003 15:35:07 
 Re: 386SX and RedHat_8.0   Victor Wagner   31 Jan 2003 16:00:15 
 Re: 386SX and RedHat_8.0   Eugene Karpachov   31 Jan 2003 16:50:52 
 Re: 386SX and RedHat_8.0   Victor Wagner   31 Jan 2003 17:07:41 
 Re: 386SX and RedHat_8.0   Valentin Nechayev   31 Jan 2003 17:24:32 
 Re: 386SX and RedHat_8.0   Aleksey Cheusov   31 Jan 2003 23:14:44 
 Re: 386SX and RedHat_8.0   Valentin Nechayev   03 Feb 2003 16:54:23 
 Re: 386SX and RedHat_8.0   Aleksey Cheusov   04 Feb 2003 20:24:15 
 Re: 386SX and RedHat_8.0   Valentin Nechayev   04 Feb 2003 21:27:58 
 Re: 386SX and RedHat_8.0   Alexander S. Usov   05 Feb 2003 03:03:55 
 Re: 386SX and RedHat_8.0   Valentin Nechayev   05 Feb 2003 12:10:04 
 Re: 386SX and RedHat_8.0   Alexander S. Usov   05 Feb 2003 16:17:41 
 Re: 386SX and RedHat_8.0   Aleksey Cheusov   05 Feb 2003 12:04:25 
 Re: 386SX and RedHat_8.0   Alexander S. Usov   05 Feb 2003 16:37:11 
 Re: 386SX and RedHat_8.0   Eugene Karpachov   05 Feb 2003 10:37:11 
 Re: 386SX and RedHat_8.0   Eugene Karpachov   31 Jan 2003 17:25:33 
 Re: 386SX and RedHat_8.0   Alex Korchmar   31 Jan 2003 23:13:43 
 Re: 386SX and RedHat_8.0   Aleksey Cheusov   01 Feb 2003 00:18:25 
 Re: 386SX and RedHat_8.0   Alex Korchmar   01 Feb 2003 01:01:12 
 Re: 386SX and RedHat_8.0   Valentin Nechayev   03 Feb 2003 16:54:21 
 Re: 386SX and RedHat_8.0   Vasily Tchekalkin   31 Jan 2003 18:36:59 
 Re: 386SX and RedHat_8.0   Valentin Nechayev   31 Jan 2003 17:24:31 
 Re: 386SX and RedHat_8.0   Aleksey Cheusov   31 Jan 2003 17:09:43 
 Re: 386SX and RedHat_8.0   Victor Wagner   31 Jan 2003 17:14:17 
 Re: 386SX and RedHat_8.0   Aleksey Cheusov   31 Jan 2003 22:10:07 
 Re: 386SX and RedHat_8.0   Valentin Nechayev   31 Jan 2003 17:14:48 
 Re: 386SX and RedHat_8.0   Victor Wagner   31 Jan 2003 17:23:00 
 Re: 386SX and RedHat_8.0   Valentin Nechayev   31 Jan 2003 17:44:55 
 Re: 386SX and RedHat_8.0   Oleg Drokin   31 Jan 2003 18:35:56 
 Re: 386SX and RedHat_8.0   Valentin Nechayev   31 Jan 2003 19:23:30 
 Re: 386SX and RedHat_8.0   Oleg Drokin   31 Jan 2003 19:34:36 
 Re: 386SX and RedHat_8.0   Oleg Drokin   31 Jan 2003 18:15:27 
 Re: 386SX and RedHat_8.0   Victor Wagner   31 Jan 2003 18:51:22 
 Re: 386SX and RedHat_8.0   Aleksey Cheusov   31 Jan 2003 22:14:43 
 Re: 386SX and RedHat_8.0   Aleksey Cheusov   31 Jan 2003 16:29:54 
 Re: 386SX and RedHat_8.0   Victor Wagner   31 Jan 2003 16:57:59 
 Re: 386SX and RedHat_8.0   Aleksey Cheusov   31 Jan 2003 17:14:49 
 Re: 386SX and RedHat_8.0   Valentin Nechayev   31 Jan 2003 17:14:48 
 Re: 386SX and RedHat_8.0   Eugene Karpachov   31 Jan 2003 17:30:37 
 Re: 386SX and RedHat_8.0   Valentin Nechayev   31 Jan 2003 17:44:25 
 Re: 386SX and RedHat_8.0   Eugene Karpachov   31 Jan 2003 19:06:42 
 Re: 386SX and RedHat_8.0   Valentin Nechayev   31 Jan 2003 19:37:41 
 Re: 386SX and RedHat_8.0   Eugene Karpachov   31 Jan 2003 23:25:34 
 Re: 386SX and RedHat_8.0   Aleksey Cheusov   01 Feb 2003 00:00:03 
 Re: 386SX and RedHat_8.0   Victor Wagner   01 Feb 2003 00:50:57 
 Re: 386SX and RedHat_8.0   Artem Chuprina   30 Jan 2003 20:43:48 
 Re: 386SX and RedHat_8.0   Igor   30 Jan 2003 15:59:29 
 Re: 386SX and RedHat_8.0   Victor Wagner   30 Jan 2003 16:31:40 
 Re: 386SX and RedHat_8.0   Vladimir Bormotov   30 Jan 2003 17:17:13 
 Re: 386SX and RedHat_8.0   Zahar Kiselev   31 Jan 2003 01:50:02 
 Re: 386SX and RedHat_8.0   Igor   31 Jan 2003 09:23:41 
 Re: 386SX and RedHat_8.0   Zahar Kiselev   31 Jan 2003 01:17:12 
 Re: 386SX and RedHat_8.0   Igor   31 Jan 2003 09:55:18 
 386SX and RedHat_8.0   Svyatoslav Abramenkov   31 Jan 2003 10:50:45 
 Re: 386SX and RedHat_8.0   Victor Wagner   31 Jan 2003 16:27:21 
 386SX and RedHat_8.0   Svyatoslav Abramenkov   31 Jan 2003 20:40:43 
 386SX and RedHat_8.0   Zahar Kiselev   01 Feb 2003 16:18:00 
 Re: 386SX and RedHat_8.0   Ian Dichkovsky   31 Jan 2003 18:23:06 
 386SX and RedHat_8.0   Nikolay Popov   12 Feb 2003 00:54:14 
 386SX and RedHat_8.0   Dmitry Novikov   30 Jan 2003 21:07:15 
 Re: 386SX and RedHat_8.0   Vladimir Bormotov   31 Jan 2003 15:07:31 
 Re: 386SX and RedHat_8.0   Igor Sysoev   05 Feb 2003 20:28:53 
 Re: 386SX and RedHat_8.0   Oleg Drokin   05 Feb 2003 22:14:03 
 Re: 386SX and RedHat_8.0   Igor Sysoev   06 Feb 2003 01:20:35 
 Re: 386SX and RedHat_8.0   Oleg Drokin   06 Feb 2003 10:42:43 
 Re: 386SX and RedHat_8.0   Igor Sysoev   06 Feb 2003 14:03:21 
 Re: 386SX and RedHat_8.0   Oleg Drokin   06 Feb 2003 15:18:57 
 Re: 386SX and RedHat_8.0   Igor Sysoev   06 Feb 2003 17:46:51 
 Re: 386SX and RedHat_8.0   Oleg Drokin   06 Feb 2003 18:39:10 
 Re: 386SX and RedHat_8.0   Roman Belenov   06 Feb 2003 19:52:12 
 Re: Re: 386SX and RedHat_8.0   Alexandr S. Agranovsky   06 Feb 2003 22:48:30 
 Re: 386SX and RedHat_8.0   Alexandr S. Agranovsky   29 Jan 2003 22:35:32 
 Re: 386SX and RedHat_8.0   Dmitry Ponyatov   30 Jan 2003 20:02:52 
Архивное /ru.linux/29343b2f4878f.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional