Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
vazhnoe.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
843.48 Кб
Скачать

17. Понятие объекта ядра ос Windows. Виды объектов ядра. Атрибуты защиты объекта ядра. Дескриптор защиты объекта ядра. Создание и удаление объектов ядра.

  • Виды объектов:

    • Объекты оконной системы – User Objects

    • Объекты графической системы – GDI Objects

    • Объекты ядра – Kernel Objects

Объекты ядра с атрибутами защиты:

  • Атрибуты защиты – SECURITY_ATTRIBUTES:

    • struct SECURITY_ATTRIBUTES { DWORD nLength; void* lpSecurityDescriptor; bool bInheritHandle; };

  • Дескриптор защиты – SECURITY_DESCRIPTOR:

    • Owner security identifier (SID)

    • Primary group SID

    • Discretionary access control list (DACL)

    • System access control list (SACL)

  • Функции создания и редактирования дескриптора защиты:

    • bool InitializeSecurityDescriptor(PSECURITY_DESCRIPTOR pSecurityDescriptor, DWORD dwRevision);

    • SetSecurityDescriptorXxx, GetSecurityDescriptorXxx.

  • Создание объекта ядра:

    • HANDLE CreateXxx(SECURITY_ATTRIBUTES* lpAttributes, …, LPCTSTR lpName);

    • HANDLE OpenXxx(DWORD dwDesiredAccess, bool bInheritHandle, LPCTSTR lpName);

    • bool DuplicateHandle( HANDLE hSourceProcessHandle, HANDLE hSourceHandle, HANDLE hTargetProcessHandle, HANDLE* lpTargetHandle, DWORD dwDesiredAccess, bool bInheritHandle, DWORD dwOptions);

    • bool SetHandleInformation(HANDLE hObject, DWORD dwMask, DWORD dwFlags); HANDLE_FLAG_INHERIT, HANDLE_FLAG_PROTECT_FROM_CLOSE.

    • bool GetHandleInformation(HANDLE hObject, DWORD* lpdwFlags);

  • Удаление объекта ядра:

    • bool CloseHandle(HANDLE hObject);

18.Проецирование файлов в память. Отличие в механизме проецирования файлов в память в ос Windows и unix/Linux. Действия по проецированию файла в память.

                  На платформах Win/Unix существуют средства для работы с файлами как с оперативной памятью. Техника работы с ФПВП отличается в ОС Unix (Linux) & Win.

                                        

                   Идея в том, чтобы закрепить за началом файла какой-либо адрес памяти, а дальше выполнять чтение и запись файла методом чтения/записи байтов оперативной памяти. Т.к. файл не может поместится в оперативной памяти целиком, он делится на страницы и в оперативную память подгружаются лишь те страницы, с которыми происходит работа. Адресное пространство файла является виртуальным, оно может значительно превосходить по размерам оперативную память. Для прозрачной поддержки проецирования файлов в память необходимо иметь поддержку виртуальной памяти на уровне процессора и архитектуры компьютера. Оптимальное соотношение Вирт к физ памяти 1:1 – 1:1,25.

                   В ОС Win процессы работают в виртуальном адресном пространстве, для которого создается на диске файл подкачки (swap). При проецировании файлов в память, файл подкачки не затрагивается, хотя проецирование происходит в виртуальное адресное пространство процесса. Такое возможно за счет аппаратной поддержки сложных таблиц страниц. В WIN – File Mapping; Unix – Memory Mapping.

Хотя в Win существует OpenFile, но использовать ее не рекомендуется. Открытие/создание рекомендуется производить CreateFile. Для создания проекции важны первые 4 параметра.

2ой – указывается, будет файл читаться, записываться или и то и другое.

3ий – будет ли файл доступным для совместного использования со стороны других процессов. 0 – запретить сторонним процессам открывать этот файл.

4ый – атрибуты защиты.

                   Шаги:

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]