The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"За неделю загружено 473 тысячи копий LibreOffice 7.2"
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Подсказка: Для контроля за появлением новых сообщений - перед выходом жмите "Пометить прочитанным".
. "За неделю загружено 473 тысячи копий LibreOffice 7.2" +/
Сообщение от n00by (ok), 29-Авг-21, 12:32 
>> При том что я описывал загрузку образа Portable Executable в NT, а
>> именно, что содержимое файла считывается по мере надобности, при доступе к
>> соответствующим страницам ОЗУ. Про невозможность удаления файла указано в скобочках и
>> как следствие. Сам файл, кстати, закрывается; но счётчик ссылок на связанный
>> объект ядра ненулевой и не то что удалить, даже переоткрыть файл
>> с несовместимыми правами нельзя.
> я, собсно, обострился на фразу "(поэтому невозможно удалить запущенный экзешник)". не поэтому,
> а потому что вообще любой открытый файл в винде удалить нельзя.

Только выглядело обострение так: "А чо, в линуксе возможно удалить запущенный бинарник?" :) https://www.opennet.ru/openforum/vsluhforumID3/125112.html#168

Что касается "любых файлов", это верно в первом приближении. Если детальнее, то не всё так однозначно:

1. Формально, указанный при открытии файла флажок FILE_SHARE_DELETE позволяет успешно отработать функции удаления; последующие попытки открыть файл обломятся -- с точки зрения пользователя, файл удалён. Подсчёт ссылок на нижележащем уровне -- это отдельная тема, в т.ч. "If you rename or delete a file and then restore it shortly afterward, the system searches the cache for file information to restore. Cached information includes its short/long name pair and creation time." https://docs.microsoft.com/en-us/windows/win32/api/fileapi/n...

2. Файл "экзешника" закрывается сразу после создания секции. Именно права на секцию не позволяют сделать с файлом ничего лишнего, иначе это нарушит работу менеджера памяти. Для OpenNet-а этот нюанс не важен, но механизм напрямую с файлами не связан, просто так совпало.

>> При чём тут нынешнее положение дел в Linux и inode -- понятия
>> не имею. Эксперт же написал https://www.opennet.ru/openforum/vsluhforumID3/125112.html#102
>> что в _то_время_ mmap() не было -- стало быть и открытым файл
>> некому держать.
> mmap тут я вообще хз причем.

Про mmap() я написал как об аналоге, поскольку используемая в Виндосе NtMapViewOfSection() здесь мало кому понятна.

> при загрузке elf бинарника в память
> грузятся все сегменты PT_LOAD, elf должен запускаться даже там, где mmap
> нет в принципе.

Да. Поэтому, когда типовой объём ОЗУ был мал, NT немножко экономила память и выигрывала. Ныне наоборот выгоднее сразу считать весь файл.

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
За неделю загружено 473 тысячи копий LibreOffice 7.2, opennews, 26-Авг-21, 15:29  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру