Re: уникальная идентификация экземпляров устройств компа
В сообщении от 16 Апрель 2003 21:42 Andrey Kiselev написал:
> On Wed, Apr 16, 2003 at 06:15:43PM +0300, sixthfish wrote:
> > >> А в каких юниксах через ф-ии?
> >
> > AK> ИМХО, на всех остальных :-) Только в Линуксе через прерывание 0x80.
> >
> > FreeBSD, NetBSD, OpenBSD (x86) тоже int 80h
>
> Согласен. Поковырявшись немного, установил, что мои знания по этому
> вопросу существенно протухли. lcall в FreeBSD использовался раньше, а
> в новых ELF-версиях применяется int 0x80.
>
> А как дела обстоят в Solaris? Там, по-моему, до сих пор lcall.
а какая собственно раздница как осуществляется передача управления ядру? если
при этом происходит смена конткста в кернелмоде (или переход к кольцу с
большим уровнем привелегий для х86) на х86 этого же результата можно добиться
и с помощью lcal и даже ljmp. при этом будет использоваться практически тот
же механизм, что и при int 0х80. только нужно забить под это дело стандартный
дискриптор...
а int 0х80 испоьзуют (на сколько я понимаю) чтобы вообще не трахаться с
таблицами дискрипров для каждой задачи --- для flat модели они не нужны... а
таблица дискрипроров прерываний всеравно должна быть, но она одна на всю
систему... а 0х80 вектор выбран из соображений совместимости с остальнымм
системами --- чтобы можно было пускть бинарники, собранные для другого
юникса...
Reply to: