Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2005.02.20;
Скачать: [xml.tar.bz2];

Вниз

О профессионализме программиста   Найти похожие ветки 

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.77 MB
Время: 0.044 c
1-1107279996
new11
2005-02-01 20:46
2005.02.20
Images в TreeView


1-1107707313
beginnn
2005-02-06 19:28
2005.02.20
StatusBar


4-1105004843
Molchanov
2005-01-06 12:47
2005.02.20
Имя модуля, загрузившего DLL


14-1106902612
Antonn
2005-01-28 11:56
2005.02.20
Про мощные видяхи и хилые БП


14-1107255697
Dimedrol
2005-02-01 14:01
2005.02.20
Мелодию конвертнуть в "кнопки" для Nokia





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский