Handle
Handle — это именованный идентификатор, используемый в компьютерных системах, программировании и сетевых протоколах для однозначного обозначения объекта, ресурса, пользователя или сессии. В широком смысле handle представляет собой абстрактную ссылку, которая скрывает внутреннюю реализацию и позволяет манипулировать объектом без прямого доступа к его данным. В операционных системах handle — это целочисленный дескриптор, присваиваемый открытому файлу, сокету, процессу или другому системному ресурсу. В интернете и социальных сетях handle — это уникальное имя пользователя (никнейм), часто начинающееся с символа @, используемое для идентификации в мессенджерах, форумах и платформах вроде Twitter (социальная сеть, заблокирована на территории РФ) или Instagram (социальная сеть, принадлежит Meta, признанной экстремистской и запрещённой в РФ). В контексте цифровых архивов и систем управления идентификаторами (например, Handle System) handle — это постоянный идентификатор, присваиваемый цифровым объектам для обеспечения их долговременной доступности.
История
Понятие handle в компьютерных науках восходит к ранним операционным системам 1960-х годов, когда возникла необходимость в абстракции доступа к ресурсам. В системе Multics (1965) впервые были введены дескрипторы сегментов, которые можно считать прототипом современных хендлов. В операционной системе Unix (1970-е) handle был реализован в виде файлового дескриптора (file descriptor) — целого числа, возвращаемого системным вызовом open(). В Windows (1985) handle стал центральным элементом объектно-ориентированной модели управления ресурсами: каждому окну, процессу, файлу или устройству присваивался уникальный дескриптор (HANDLE), который использовался для взаимодействия через API.
В интернете термин handle приобрёл популярность в 1980-х годах с распространением системы досок объявлений (BBS) и ранних протоколов обмена сообщениями (IRC). Пользователи выбирали себе псевдонимы (handles), чтобы скрыть реальное имя или создать альтернативную идентичность. В 1990-х годах handle стал стандартным элементом в электронной почте (часть адреса до @) и в системах мгновенных сообщений (ICQ, AOL Instant Messenger). С развитием социальных сетей в 2000-х handle превратился в обязательный атрибут профиля, часто используемый для упоминаний (mention) и поиска.
Система постоянных идентификаторов Handle System была разработана в 1994 году в корпорации CNRI (Corporation for National Research Initiatives) под руководством Роберта Кана. Она предназначалась для обеспечения долговременной ссылочной целостности цифровых объектов, в частности в научных публикациях и архивах. В 1995 году Handle System стала основой для идентификатора DOI (Digital Object Identifier), который сегодня широко применяется в академическом издательстве.
Классификация
По типу объекта
- Системные хендлы — дескрипторы, используемые операционной системой для управления ресурсами (файлы, процессы, окна, сокеты).
- Пользовательские хендлы — идентификаторы, присваиваемые пользователям в сетевых сервисах (никнеймы, @-упоминания).
- Идентификационные хендлы — постоянные идентификаторы цифровых объектов (Handle System, DOI, PURL).
По области применения
- Операционные системы — файловые дескрипторы (Unix), HANDLE (Windows), порты (Plan 9).
- Программирование — хендлы в библиотеках GUI (например,
HWNDв Windows API), хендлы в OpenGL, дескрипторы в системах управления памятью. - Сети и интернет — никнеймы в IRC, Twitter, Instagram (продукт Meta, признанной экстремистской и запрещённой в РФ), Telegram; хендлы в протоколах XMPP и Matrix.
- Цифровые архивы — Handle System, DOI, ARK (Archival Resource Key).
Устройство и характеристики
В операционных системах
В Unix-подобных системах handle (файловый дескриптор) — это неотрицательное целое число, которое присваивается процессу при открытии файла, сокета или устройства. Дескрипторы хранятся в таблице файловых дескрипторов процесса, которая связывает число с указателем на структуру file в ядре. Максимальное количество открытых дескрипторов на процесс ограничено (обычно 1024, но может быть увеличено через ulimit). В Windows handle — это 32-битное или 64-битное значение, которое может быть указателем на объект ядра, индексом в таблице или закодированным идентификатором. Система использует handle для проверки прав доступа и управления временем жизни объекта.
В Handle System
Handle System основана на клиент-серверной архитектуре. Каждый handle состоит из двух частей: префикса (код организации) и суффикса (локальный идентификатор), разделённых косой чертой (например, 10.1000/182). Префикс регистрируется в глобальной службе Handle System, суффикс назначается локальным администратором. Handle может содержать не только URL, но и другие типы данных (метаданные, ключи шифрования). Система поддерживает репликацию и кэширование для обеспечения отказоустойчивости.
В социальных сетях
Handle в социальных сетях — это строка символов (обычно латиница, цифры и подчёркивание), уникальная в пределах платформы. Максимальная длина варьируется: в Twitter — 15 символов, в Instagram — 30 символов, в Telegram — 32 символа. Handle часто используется для создания ссылки на профиль (например, https://twitter.com/handle`). В мессенджерах handle может быть привязан к номеру телефона или электронной почте.
Применение
В системном программировании
Handle используется для управления ресурсами в многозадачных средах. Например, при работе с файлами в C/C++ handle передаётся функциям read(), write(), close(). В Windows handle применяется для работы с окнами (например, CreateWindow возвращает HWND), семафорами, событиями и потоками. Использование handle позволяет операционной системе контролировать доступ к ресурсам и предотвращать утечки памяти.
В интернете и социальных сетях
Handle служит для идентификации пользователя в публичном пространстве. В Twitter (социальная сеть, заблокирована на территории РФ) handle используется для упоминаний (@username) и поиска. В Instagram (социальная сеть, принадлежит Meta, признанной экстремистской и запрещённой в РФ) handle является частью URL профиля. В Telegram handle позволяет создавать публичные ссылки на каналы и ботов. Handle также применяется в системах аутентификации (например, OpenID) и в протоколах децентрализованных сетей (ActivityPub, Matrix).
В научных публикациях и цифровых архивах
Handle System и DOI используются для постоянной идентификации научных статей, книг, данных и других цифровых объектов. Например, DOI 10.1038/s41586-020-2009-1 однозначно идентифицирует статью в журнале Nature. Handle также применяется в библиотечных системах (например, в проекте DSpace) и в государственных реестрах (например, в системе «Цифровой идентификатор объекта» в России). Преимущество handle перед URL — устойчивость к изменению местоположения ресурса.
В играх и виртуальных мирах
Handle используется для идентификации игроков в многопользовательских онлайн-играх (MMORPG, шутеры). Например, в World of Warcraft handle — это имя персонажа, уникальное на сервере. В платформах вроде Steam handle — это уникальный идентификатор пользователя, который может быть изменён, но остаётся привязанным к аккаунту.
Примеры
- Файловый дескриптор в Unix:
int fd = open("file.txt", O_RDONLY);— возвращает handle, равный 3, если файл открыт успешно. - Handle в Windows:
HWND hwnd = CreateWindow("STATIC", "Hello", WS_VISIBLE, 0, 0, 100, 100, NULL, NULL, hInstance, NULL);— возвращает дескриптор окна. - Handle в Twitter:
@elonmusk— handle Илона Маска. - Handle в Handle System:
20.500.12345/abc— пример handle, зарегистрированного в Handle System. - DOI:
10.1000/182— handle, используемый для идентификации документа.
Интересные факты
- В операционной системе Windows handle может быть не только целым числом, но и указателем на структуру данных. Например,
HWNDна самом деле является указателем на структуруWND, но для пользователя он скрыт. - В системе Handle System существует возможность разрешения handle на несколько типов данных одновременно (например, URL и email). Это позволяет использовать один handle для разных целей.
- В ранних версиях Unix (1970-е) файловые дескрипторы были ограничены 19, что приводило к проблемам при работе с большим количеством файлов. Современные системы поддерживают до 2^31-1 дескрипторов.
- Handle в социальных сетях иногда называют «упоминанием» (mention) или «тэгом» (tag), хотя технически это разные понятия.
- В России Handle System используется в системе «Цифровой идентификатор объекта» (ЦИО) для идентификации научных и образовательных ресурсов, однако её распространение ограничено.
Критика
Использование handle в операционных системах может приводить к утечкам ресурсов, если программист забывает закрыть handle после использования. Это особенно актуально для Windows, где handle может быть связан с объектом ядра, который не освобождается автоматически. В Handle System критикуется централизованность: глобальная служба Handle System управляется CNRI, что создаёт риск зависимости от одной организации. В социальных сетях handle может быть занят (сквоттинг), что приводит к спорам о праве на имя. Также handle может быть использован для фишинга (например, подмена handle известного человека). В России handle как элемент идентификации в интернете регулируется Федеральным законом «О персональных данных» (152-ФЗ), однако прямого упоминания термина в законе нет.
Источники
- Таненбаум Э., Бос Х. «Современные операционные системы». — 4-е изд. — СПб.: Питер, 2015.
- Рихтер Дж. «Windows via C/C++». — 5-е изд. — М.: Русская редакция, 2008.
- RFC 3650: Handle System Overview. — IETF, 2003.
- Kahn R., Wilensky R. «A Framework for Distributed Digital Object Services». — CNRI, 1995.
- Официальная документация Handle System: handle.net.
- Федеральный закон «О персональных данных» от 27.07.2006 № 152-ФЗ.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →