Текущий архив: 2005.02.20;
Скачать: CL | DM;
ВнизО профессионализме программиста Найти похожие ветки
← →
Rule © (2005-01-27 19:00) [120]esu © (27.01.05 18:57) [119]
теперь осталось сделать так, чтобы все файлы там стояли а не лежали :)
← →
Kerk © (2005-01-27 19:05) [121]Piter © (27.01.05 17:37) [92]
не понял, что ты хотел сказать.
это я в отрыве от вопроса о перегрузке. )
о том что процедура и метод имеют разный тип..
← →
default © (2005-01-27 19:19) [122]Игорь Шевченко © (27.01.05 18:20) [114]
ну должна же ОС знать когда можно выгрузить DLL из ОП, а когда нет
← →
GuAV © (2005-01-27 19:20) [123]Piter © (27.01.05 15:18) [36]
>а что тебе не нравится? Про AV упомянуть?
> Ну это и так понятно, если объект не создан, то вызов
> его метода может окончиться плохо.
Нет. Дело в том, что если изначально Obj равен nil то ничего плохого не предвидится.
Так как же определить объекты ядра, чтобы туда попали и окна ?
← →
Юрий Зотов © (2005-01-27 21:58) [124]Кто как, а я придерживаюсь "родной" терминологии Microsoft.
Ядро - это Kernel. Согласно прямому переводу. Значит, объекты ядра - это Kernel objects. И более ничего.
И какие именно это объекты - сказано в документации. Все прочее - это объекты чего угодно другого (или не объекты вовсе), но только не объекты ядра.
А с вольной трактовкой слишком далеко уйти можно. Терминология - штука строгая и серьезная.
← →
Nous Mellon © (2005-01-27 22:45) [125]ЮЗ, как всегда, рулит
← →
Игорь Шевченко © (2005-01-28 10:26) [126]Юрий Зотов © (27.01.05 21:58) [124]
Юра, объясни ты мне бестолковому, какое отношение, согласно документации Microsoft, к объектам ядра имеют DLL и кучи ?
Только потому, что так в MSDN написано ?
С уважением,
← →
NewDelpher © (2005-01-28 11:12) [127]Помимо профессионализма программиста очень важную роль играют и чисто человеческие качества. Будь ты хоть супер-мега-гением программизма, но если как человек ты - моральный урод, то далеко не уедешь...
← →
Gero © (2005-01-28 12:05) [128]
> Будь ты хоть супер-мега-гением программизма, но если как
> человек ты - моральный урод, то далеко не уедешь
Это тебе кто такое сказал?
← →
esu © (2005-01-28 12:13) [129]
> Только потому, что так в MSDN написано ?
А MSDN вообще есть четкие критерии по которым системные объекты поделены на 3 вышеупомянутые группы одка из которых называется kernel ?
← →
esu © (2005-01-28 12:14) [130]
> Gero © (28.01.05 12:05) [128]
Ну если это одиночка то почему бы и да... Хотя рок музыкантам с этим явно попроще ;)
← →
Набережных С. (2005-01-28 13:06) [131]>esu © (28.01.05 12:13) [129]
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/sysinfo/base/object_categories.asp
и далее
← →
Юрий Зотов © (2005-01-28 13:13) [132]> Игорь Шевченко © (28.01.05 10:26) [126]
> какое отношение, согласно документации Microsoft, к объектам
> ядра имеют DLL и кучи?
Если говорить формально, то в документации Microsoft черным по белому написано, что Heap и Module - это объекты ядра:
ms-help://MS.MSDNQTR.2005JAN.1033/sysinfo/base/kernel_objects.htm
То есть, согласно документации Microsoft, DLL и кучи имеют к объектам ядра такое отношение - они ими являются. Это и есть прямой ответ на твой вопрос.
А если говорить не формально, а по смыслу, то по поводу DLL и кучи могу сказать следующее.
Загрузкой и выгрузкой DLL занимается ядро. Все наши вызовы LoadLibrary/FreeLibrary - это всего лишь запросы, не более. Удовлетоворять их, или нет, когда и как именно, какие при этом производить дополнительные операции (или не производить никаких) - все это решает и исполняет ядро. О счетчике пользователей уже говорилось. Проецированием DLL, подгрузкой ее страниц, их кэшированием и т.д. тоже занимается ядро.
По куче: управление памятью - это тоже задача ядра (притом традиционная и одна из важнейших). Все наши вызовы, связанные с распределением памяти - это тоже всего лишь запросы. Будут ли они обслужены, когда и как именно, какие при этом будут призведены дополнительные операции (или не будет призведено никаких) - все это решает ядро. Об управлении своппингом даже и говорить не приходится.
Если коротко, то я бы сказал, что объект ядра - это объект, владельцем которого является ядро. Запрос на создание, использование или уничтожение такого объекта может выдать кто угодно, но только ядро может его создать, дать к нему какой-то доступ, осуществить с ним какие-то операции и уничтожить. Причем как и когда это делать - решает тоже ядро.
Пример - система может выгрузить DLL не сразу после обнуления счетчика ее пользователей, а тогда, когда сочтет нужным и своевременным. Принимает и осуществляет такое решение именно ядро и никто другой на это повлиять не может.
Потому что владелец - ядро. Оно и рулит.
← →
Игорь Шевченко © (2005-01-28 13:23) [133]Юрий Зотов © (28.01.05 13:13) [132]
> Загрузкой и выгрузкой DLL занимается ядро. Все наши вызовы
> LoadLibrary/FreeLibrary - это всего лишь запросы, не более.
> Удовлетоворять их, или нет, когда и как именно, какие при
> этом производить дополнительные операции (или не производить
> никаких) - все это решает и исполняет ядро.
Нет, Юра, это решает пользовательский режим. Загрузчик находится для NT-систем в ntdll.dll, он все и определяет.
> О счетчике пользователей уже говорилось
Какие именно разговоры о счетчике имеются в виду ?
> Проецированием DLL, подгрузкой ее страниц, их кэшированием
> и т.д. тоже занимается ядро.
Проецированием любых страниц занимается ядро, из этого не следует, что мы будем объявлять все-все, что связано с проецируемыми страницами, объектами ядра.
> По куче: управление памятью - это тоже задача ядра (притом
> традиционная и одна из важнейших). Все наши вызовы, связанные
> с распределением памяти - это тоже всего лишь запросы. Будут
> ли они обслужены, когда и как именно, какие при этом будут
> призведены дополнительные операции (или не будет призведено
> никаких) - все это решает ядро.
Юра, кучи - это надстройка пользовательского режима над стандартными функциями управления памятью (VirtualAlloc, VirtualFree).
> Пример - система может выгрузить DLL не сразу после обнуления
> счетчика ее пользователей, а тогда, когда сочтет нужным
> и своевременным. Принимает и осуществляет такое решение
> именно ядро и никто другой на это повлиять не может
Плохой пример. Даже приведенный код KaZaNova несколькими постами выше его опровергает.
С уважением,
← →
Игорь Шевченко © (2005-01-28 13:28) [134]Набережных С. (28.01.05 13:06) [131]
По той ссылке и ресурсы относятся к объектам ядра. Что вообще-то неверно :)
С уважением,
ЗЫ: Ты б перерегистрировался.
← →
Игорь Шевченко © (2005-01-28 13:32) [135]
> А MSDN вообще есть четкие критерии по которым системные
> объекты поделены на 3 вышеупомянутые группы одка из которых
> называется kernel ?
Сначала я полагал, что критерием является та библиотека пользовательского режима, в которой находятся функции для управления теми или иными объектами. Потом понял, что ошибся, так как объекты Desktop и WindowStation относятся к kernel objects (и являются ими, кстати, говоря), а функции управления ими находятся в user32.dll
С уважением,
← →
АлексейК (2005-01-28 13:56) [136].... и управляет ими ядерная часть подсистемы Win32....
УБЕРИТЕ ДЕТЕЙ ОТ КОМПЬЮТЕРОВ.
P.S. Теперь то понятно почему у компьютера радиация.
← →
Набережных С. (2005-01-28 14:38) [137]Если кто интересуется, по загрузке ДЛЛ есть добрая статья
http://msdn.microsoft.com/msdnmag/issues/02/03/Loader/default.aspx
>http://msdn.microsoft.com/msdnmag/issues/02/03/Loader/default.aspx
>ЗЫ: Ты б перерегистрировался.
А смысл? Опять исчезну - опять удалят. Пусть будет как есть.
← →
Набережных С. (2005-01-28 14:41) [138]Во, плоды технологии Copy-Paste:) В предыдущем посте вместо дубля ссылки должно было быть:
>Игорь Шевченко © (28.01.05 13:32) [135]
← →
Игорь Шевченко © (2005-01-28 14:45) [139]Набережных С. (28.01.05 14:38) [137]
<offtopic>
> А смысл? Опять исчезну - опять удалят. Пусть будет как есть.
Да никто тебя не удалял - база анкет сломалась. Потому и просьба перерегистрироваться.
</offtopic>
А статья эта печаталась в MSDN Magazine Russian Edition на русском языке: "Внутри загрузчика", если мне память не изменяет.
С уважением,
← →
Digitman © (2005-01-28 14:55) [140]
> Игорь Шевченко © (28.01.05 13:32) [135]
Абсолютно верно, Игорь.
Страницы: 1 2 3 4 вся ветка
Текущий архив: 2005.02.20;
Скачать: CL | DM;
Память: 0.76 MB
Время: 0.047 c