[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: