Re: уникальная идентификация экземпляров устройств компа

2003-04-16 Пенетрантность Dimitry N. Naldaev
В сообщении от 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 вектор выбран из соображений совместимости с остальнымм 
системами --- чтобы можно было пускть бинарники, собранные для другого 
юникса...



Re: уникальная идентификация экземпляров устройств компа

2003-04-16 Пенетрантность Dimitry N. Naldaev
В сообщении от 16 Апрель 2003 12:26 Vlad Harchev написал:
> On Wed, Apr 16, 2003 at 09:58:37AM +0400, Victor B. Wagner wrote:
> > On 2003.04.16 at 10:48:58 +0500, Vlad Harchev wrote:
> > > 3) Хранятся ли где-либо еще какие-либо серийные номера в x86 железе и
> > > как их можно под линуксом узнать?
> >
> > Единственное, на что РЕАЛЬНО можно рассчитывать, это серийный номер
> > процессора. Который добывается из него одной инструкцией.
>
> В процессорах выше PII (или даже PIII) этой инструкции уже нету. Спасибо
> интелу, блин..
В свое время на сколько я помню, во Франции даже запретили импорт этих самых 
прцессоров из индентификационного кода... во всех факах писали, как эту фичу 
можно отключить через биос и что это нужно сделать пренепременно...
>
> > Обращение к любой другой железяки потребует системного вызова.
> > А там где есть системный вызов, есть LD_PRELOAD, или возможность
> > подредактировать драйвер в ядре. Читайте тьюринговскую лекцию
> > одного из отцов-основателей - Кена Томпсона по-моему.
> > Или Кернигана
>
> Системные вызовы в юниксах вызываются через прерывания - их не перехватить
> кроме как подменив ядро ОС.
а кто мешает пропатчить ядро?
> Через LD_PRELOAD можно перехватить libc-обертки для них.
>
> > > Этот вопрос меня интересует в целях привязки софта к конкретному
> > > серверу.
> >
> > Поубивал бы! Железо нынче штука ненадежная, его постоянно менять
> > приходится.
>
> Ну это зависит от обстоятельств. Если железо менять разрешено только
> вендору софта, то никаких осложнений это не принесет.
ага через пару лет от вендора след простынет и облом :-( сколько уже таких 
случаев было... нет уж пользователей тоже нужно уважать...