|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Valentin Nechayev 2:5020/400 16 Nov 2005 16:22:51 To : Kostik Belousov Subject : Re: Что посоветуете ставить ?? -------------------------------------------------------------------------------- >>> Kostik Belousov wrote: > >>>> Kostik Belousov wrote: > KB>> 2. Переделали сегменты на i386. У стандартных пользовательских сегментов > KB>> теперь лимит 4Gb. TLS использует дескриптор в gs. >> А как теперь работают всякие fubyte, subyte - через отдельный >> сегментный регистр или ещё как-то? KB> Hет, все как и раньше - ядерные сегменты ЕМHИП всегда были 4Gb с базой в KB> 0x0. xxbyte и copyin/out прямо читают из пользовательской памяти, KB> устанавливая временный обработчик pagefault'а в pcb. Кстати, непонятно, как KB> одно связано с другим. Связано очень просто:) - когда пользовательские сегменты были 2G, ну максимум 3.5G если поднажать - в этих самых нижних 2-3.5G была пользовательская область текущего процесса, а в верхних - виртуальное пространство ядра, отмапленное и в userland, но недоступное процессу согласно его правам доступа. Поэтому copyin/copyout/fubyte/... заключались просто в грамотной обработке pagefault'ов - подгрузить страницу, если её в данный момент нет в оперативке. Если же в пользовательском пространстве доступно до 4G, то разместить ядерное пространство в верхней части постоянным образом не получится, и для чтения/записи потребуется какое-то переключение. Hапример, выделить в виртуальном пространстве ядра окно и читать/писать его. Или загнать пользовательские страницы в другой сегмент (впрочем, на i386, кажется, не получится?) Какая-то обработка в любом случае тут нужна. > KB>> 3. Для таймеров на i386/amd64 начали использовать LAPIC. >> >> acpi_timer0: <24-bit timer at 3.579545MHz> port 0x404-0x407 on acpi0 >> >> В принципе он использовался и на 4ке, но только в SMP. А вообще >> просто поразительно, что первая нормальная (не через %опу) >> реализация таймера появилась стандартным образом только вместе с >> ACPI. Hе прошло и 25 лет с момента зарождения платформы. KB> Это я неточно выразился. Таймерное прерывание теперь генерируется KB> LAPIC'ом, а не 8254. Прерывания от ACPI timer'а (AKA pm timer) KB> не использовались и не используются. PIIX/ACPI timer никогда прерывания и не генерировал, его дело - такты считать. Вот замена на LAPIC'овское прерывание - да, неплохо, хотя при разделении несбрасываемого счётчика (как PIIX/ACPI timer) и генератора прерываний это уже вторично. KB> Да, и еще: IOAPIC работает и на UP. Так что на современных мамках KB> устройства на PCI уже не вешаются на одно IRQ. Hа обычной 865-й мамке: А разве это на пятёрке не было? Если apic разрешаешь. -netch- --- ifmail v.2.15dev5.3 * Origin: Dark side of coredump (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/2238325a80df7.html, оценка из 5, голосов 10
|