Форум: "Прочее";
Текущий архив: 2007.11.11;
Скачать: [xml.tar.bz2];
ВнизWinAPI Найти похожие ветки
← →
Fleg © (2007-09-25 20:37) [0]Приветствую!
Вопрос в следующем - что такое WinAPI и какие вы книги можете посоветовать для его изучения
и еще - насколько сильно зависит изучение от используемого языка программирования(я исползую D7).
← →
Dib@zol © (2007-09-25 20:48) [1]http://ru.wikipedia.org/wiki/Windows_API
← →
Ping (2007-09-25 20:50) [2]что такое WinAPI
http://ru.wikipedia.org/wiki/Windows_API
я исползую D7
Без проблем.
← →
Ping (2007-09-25 20:50) [3]гы...
← →
Fleg © (2007-09-25 20:57) [4]
> какие вы книги можете посоветовать для его изучения
??
← →
Anatoly Podgoretsky © (2007-09-25 20:59) [5]Рихтер не плох.
← →
Ping (2007-09-25 21:01) [6]http://msdn2.microsoft.com/en-us/library/Aa383750.aspx
← →
Инс © (2007-09-25 21:05) [7]WinAPI - это интерфейс, функции, что с них взять. Нужно изучать не WinAPI а то, чем с помощью них можно манипулировать.
← →
Инс © (2007-09-25 21:10) [8]
> Рихтер не плох.
Рихтер это конечно хорошо, даже очень, но он книги "по WinAPI" не пишет. К счастью...
← →
Юрий Зотов © (2007-09-25 21:15) [9]Саймон. Справочник по WinAPI.
← →
Rouse_ © (2007-09-25 21:16) [10]
> Инс © (25.09.07 21:10) [8]
> Рихтер это конечно хорошо, даже очень, но он книги "по WinAPI"
> не пишет. К счастью...
Стесняюсь спросить, а по чем пишет?
← →
Инс © (2007-09-25 21:24) [11]
> Стесняюсь спросить, а по чем пишет?
По системному программированию. Надеюсь не нужно объяснять разницу?
← →
DVM © (2007-09-25 21:25) [12]Петзольд
Рихтер
Румянцев
Ганеев
← →
Rouse_ © (2007-09-25 21:27) [13]
> Инс © (25.09.07 21:24) [11]
> По системному программированию
Ух-ты... Эээ, а Шрайбер тогда о чем пишет? (Надеюсь не нужно объяснять разницу?)
← →
DVM © (2007-09-25 21:27) [14]
> По системному программированию.
Ну описывает он именно WinAPI. Правда он не касается оконной подсистемы и GDI почти.
← →
DVM © (2007-09-25 21:27) [15]В дополнение к [12]
Фень Юань
← →
Инс © (2007-09-25 21:29) [16]
> Ну описывает он именно WinAPI.
А что такое WinAPI?
← →
DVM © (2007-09-25 21:31) [17]
> А что такое WinAPI?
Набор функций
← →
tesseract © (2007-09-25 21:32) [18]
> А что такое WinAPI?
Windows Aplication program interface.
← →
Инс © (2007-09-25 21:36) [19]
> [17] DVM © (25.09.07 21:31)
Ну, правильно. А сколько их, функций то? И для чего они нужны? Глубже, глубже копаем...
← →
DVM © (2007-09-25 21:44) [20]
> А сколько их, функций то?
Много.
> И для чего они нужны?
Для взаимодействия программ с операционной системой в большинстве своем.
> Глубже, глубже копаем...
Глубже там NativeAPI
← →
Rouse_ © (2007-09-25 21:44) [21]
> Ну, правильно. А сколько их, функций то? И для чего они
> нужны? Глубже, глубже копаем...
Всегда умилял востор юношей прочитавших Рихтера и сразу считающими себя системщиками...
А DDK оно видать для недоразвитых бурундуков...
Скажи мне мил человек, какие подсистемы поставляются на базе ОС Windows и ты сразу поймешь где система, а где пользовательский уровень...
← →
Anatoly Podgoretsky © (2007-09-25 21:49) [22]> Инс (25.09.2007 21:36:19) [19]
> А сколько их, функций то?
Ужас, уже давно более 10000, а еще плюс структуры, именованые константы.
Умереть можно.
← →
Инс © (2007-09-25 21:52) [23]
> Много.
Много.
> Для взаимодействия программ с операционной системой в большинстве
> своем.
Согласен, для взаимодействия с элементами ОС. Так на чем Рихтер упор делает? На функциях или этих элементах. Я думаю, на втором, а функции - это постольку поскольку. Вот есть действительно книги, претендующие на звание учебников по системному программированию, которые по сути своей представляют собой пересказ MSDN. Их лучше не покупать.
PS: NativeAPi - это тоже API ;-) Хоть и более низкоуровневые
← →
DVM © (2007-09-25 21:56) [24]
> Инс © (25.09.07 21:52) [23]
Так я эта... экзамен на знание Win32 api сдал?
← →
Инс © (2007-09-25 21:57) [25]
> А DDK оно видать для недоразвитых бурундуков...
Причем тут DDK, страшным словом меня пугать будете? Системщик не обязательно должен кодить в kernel-mode.
> Скажи мне мил человек, какие подсистемы поставляются на
> базе ОС Windows и ты сразу поймешь где система, а где пользовательский
> уровень...
Что вы имеете в виду под словом "подсистема"? Я так понял Posix, OS/2 и Win32 или имеется в виду там всякие подсистемы ввода-вывода и т.д?
← →
Rouse_ © (2007-09-25 21:58) [26]Рихтер разьясняет тонкости работы Win32 подсистемы, тот-же POSIX Рихтер не затрагивает. Ну а системный уровнь лежит ниже :)
Надо бы Вам тщательней проштудировать доступные материалы :)
← →
Rouse_ © (2007-09-25 21:59) [27]
> Системщик не обязательно должен кодить в kernel-mode.
Эээ а что тогда в Вашем понятии есть "системщик"? :)))
← →
DVM © (2007-09-25 22:02) [28]Рихтер описывает работу с процессами, потоками, MMF, памятью, dll, окнами, Unicode в книге Создание эффективных WIN32-приложений с учетом специфики 64-разрядной версии Windows. Если это не WinApi, то я папа римский.
← →
Инс © (2007-09-25 22:06) [29]
> Эээ а что тогда в Вашем понятии есть "системщик"? :)))
У нас с вами разные понятия термина "системное программирование". Можно работать с элементами ядра, и в само ядро не залазить. Системное программирование - это взаимодействие с элементами системы.
← →
DVM © (2007-09-25 22:07) [30]
> Системное программирование - это взаимодействие с элементами
> системы.
Любая программа взаимодействует с элементами системы. Причем почти со всеми.
← →
Инс © (2007-09-25 22:10) [31]
> Любая программа взаимодействует с элементами системы. Причем
> почти со всеми.
Точно также я могу сказать "любая программа часть времени проводит в kernel-mode". Хотелось бы тогда услышать ваше определение.
← →
Инс © (2007-09-25 22:13) [32]Хорошо, я подкорректирую свое определение: системное программирование подразумевает воздействие на систему путем манипуляции предоставляемой ею объектов и ресурсов.
← →
DVM © (2007-09-25 22:14) [33]
> Хотелось бы тогда услышать ваше определение.
Определение чего? Системного программирования?
← →
Инс © (2007-09-25 22:14) [34]
> Системного программирования?
Да.
← →
DVM © (2007-09-25 22:21) [35]
> Инс © (25.09.07 22:14) [34]
Честно говоря я затрудняюсь с точным определением. Я бы сказал так, что системное программирование - это расширение или изменение возможностей самой ОС. Например, написание драйверов.
← →
Rouse_ © (2007-09-25 22:24) [36]
> Инс © (25.09.07 22:13) [32]
> Хорошо, я подкорректирую свое определение: системное программирование
> подразумевает воздействие на систему путем манипуляции предоставляемой
> ею объектов и ресурсов.
И вообще на снимке параплан - на этой штуке в отличии от парашюта пилот сам взлетает с земли.
Учите матчасть господа! ©
← →
Инс © (2007-09-25 22:32) [37]
> Честно говоря я затрудняюсь с точным определением. Я бы
> сказал так, что системное программирование - это расширение
> или изменение возможностей самой ОС. Например, написание
> драйверов.
Пример: Написание серверных приложений (работающих от учетной записи Local System), взаимодействующих с клиентом через именнованые каналы, скажем, учитывающие права и привилегии пользователей - это что, прикладное программирование?
← →
homm © (2007-09-25 22:47) [38]> [29] Инс © (25.09.07 22:06)
> У нас с вами разные понятия термина "системное программирование".
> Можно работать с элементами ядра, и в само ядро не залазить.
> Системное программирование - это взаимодействие с элементами
> системы.
Хендл окна это элемент ядра? Или элемент системы? А в чем разница?
← →
DVM © (2007-09-25 22:48) [39]
> это что, прикладное программирование?
Так как данная программа использует исключительно WinAPI и не меняет обычного поведения ОС, то да, это прикладная программа.
← →
DVM © (2007-09-25 22:51) [40]
> Хендл окна это элемент ядра?
Хэндл это ничто. Это число и некоторого списка. А вот объект, который ему сопоставлен это ОБЪЕКТ USER
← →
DVM © (2007-09-25 22:52) [41]и это не объект ядра
← →
Инс © (2007-09-25 22:59) [42]
> то да, это прикладная программа.
Странное название книги, не соответствует содержанию, не находите?
http://www.amazon.com/Windows-Programming-Addison-Wesley-Microsoft-Technology/dp/0321256190
А вот немного странный план учебного курса в каком-то ВУЗе.
http://asu.gubkin.ru/staff/dl/sysprogschedule.html
Дальше спорить не вижу смысла, конструктивного спора не получится.
← →
DVM © (2007-09-25 23:01) [43]
> конструктивного спора не получится.
здесь вообще конструктивных споров не бывает
← →
Инс © (2007-09-25 23:07) [44]
> здесь вообще конструктивных споров не бывает
Мне вас очень жаль...
← →
DVM © (2007-09-25 23:13) [45]
> Мне вас очень жаль...
простите..., не нас а вас...
← →
Anatoly Podgoretsky © (2007-09-25 23:25) [46]> DVM (25.09.2007 23:13:45) [45]
330, каждому.
← →
Petr V. Abramov © (2007-09-25 23:31) [47]shell_notify_icon челу нужно :)
> Fleg © (25.09.07 20:37)
без обид :)
← →
Anatoly Podgoretsky © (2007-09-25 23:39) [48]> Petr V. Abramov (25.09.2007 23:31:47) [47]
Что бы запуздырить?
← →
Германн © (2007-09-26 00:27) [49]
> что такое WinAPI ?
Действительно непонятно. Win - понятно. AP - тоже понятно. Но вот что означает I ???
:-)
← →
Zeqfreed © (2007-09-26 00:28) [50]> Германн © (26.09.07 00:27) [49]
Interactive, разумеется.
← →
Anatoly Podgoretsky © (2007-09-26 00:37) [51]> Германн (26.09.2007 00:27:49) [49]
Интерфейс
← →
Германн © (2007-09-26 00:38) [52]
> Zeqfreed © (26.09.07 00:28) [50]
May be, may be. Who knows?
← →
Германн © (2007-09-26 00:40) [53]
> Anatoly Podgoretsky © (26.09.07 00:37) [51]
И какой у Вас с Виндой интерфейс? Дружественный надеюсь.
:-)
← →
Anatoly Podgoretsky © (2007-09-26 00:42) [54]> Германн (26.09.2007 00:40:53) [53]
У нас договор
← →
Германн © (2007-09-26 00:50) [55]
> Anatoly Podgoretsky © (26.09.07 00:42) [54]
Так я и знал! Всё уже украдено до нас!
← →
Rouse_ © (2007-09-26 08:59) [56]
> Странное название книги, не соответствует содержанию, не
> находите?
> http://www.amazon.com/Windows-Programming-Addison-Wesley-
> Microsoft-Technology/dp/0321256190
Да хоть горшком ее назови, вот тебе ее аннотация:
"Эта книга посвящена вопросам разработки приложений с использованием интерфейса прикладного программирования операционных систем компании Microsoft"
А по второй твоей ссылке вообще промолчу по поводу названия.
ЗЫ: Сервис - это прикладной уровень. Ничего системного в нем нет.
← →
KSergey © (2007-09-26 10:00) [57]> Инс © (25.09.07 22:32) [37]
> Пример: Написание серверных приложений (работающих от учетной
> записи Local System)
Да хоть под NetworkSystem! Какая разница?
взаимодействующих с клиентом через
> именнованые каналы, скажем, учитывающие права и привилегии
> пользователей - это что, прикладное программирование?
нормальная такая прикладная аппликуха.
А что такое "учитывающие права и привилегии пользователей" - это к чему относилось?
← →
Игорь Шевченко © (2007-09-26 10:23) [58]Рихтер не пишет книг по системному программированию
← →
Инс © (2007-09-26 10:35) [59]
> Rouse_ © (26.09.07 08:59) [56]
Вы, надеюсь, сами понимаете несерьезность своих аргументов. Термин Windows System Programming имеет место быть, к счастью, без нашего на то желания. И к DDK он никакого отношения не имеет. Да и книг подобных на самом деле миллион, вот еще пару примеров:
http://www.ozon.ru/context/detail/id/2575245/
http://www.techno.edu.ru/db/msg/16132.html
Теперь возвращаясь к первоначальному вопросу и ответу, из-за которого возник спор... Видимо все-таки нужно объяснить что такое WinAPI и почему WinAPI учить не надо и Рихтер на это и не претендует. API - это только то, что торчит наружу, только ножки от микросхем, все, что внутри, не видно. Рихтер в своей книги описывает не ножки, а сами микросхемы, для чего нужны, где и как их применять и как не применять. При этом немного даже залазит внутрь (хотя не так, как Соломон с Руссиновичем, в прочем, у них и книга носит совсем другое и более красноречивое название). Хотя допускаю, что для некоторых система - это именно WinAPI, и ламероватость не позволяет понять, что это не так. Вот для таких совет: учите, учите винапи, и никого не слушайте и будет вам щастие!
> А что такое "учитывающие права и привилегии пользователей"
> - это к чему относилось?
Системщикам этого не понять, в DDK ведь ничего про имперсонацию клиента сервером не пишут...
← →
em240 © (2007-09-26 10:35) [60]http://www.ozon.ru/context/detail/id/91732/
http://www.ozon.ru/context/detail/id/1261889/
← →
DVM © (2007-09-26 10:40) [61]
> Да и книг подобных на самом деле миллион, вот еще пару
> примеров
У Фленова тоже что ни книга то глазами хакера. Как вы думаете зачем книгам придают звучные названия? Так что это не аргумент.
← →
DVM © (2007-09-26 10:41) [62]
> Инс ©
Вы же в споре смысла не видели, зачем продолжаете?
← →
Инс © (2007-09-26 10:48) [63]
> Рихтер не пишет книг по системному программированию
И точка! А вместо аргументов - подпись. Бога нет, подпись - Бог. :) А по чем он пишет книги?
> Вы же в споре смысла не видели, зачем продолжаете?
А может мне это удовольствие доставляет!
← →
DVM © (2007-09-26 10:52) [64]
> А по чем он пишет книги?
В принципе можно спросить у самого Рихтера. Вроде тут с форума кто-то писал ему как-то. Он ответил.
← →
Rouse_ © (2007-09-26 10:59) [65]
> Инс © (26.09.07 10:35) [59]
Судя по твоим словам, положив кнопку на форму я произвел такие кардинальные изменения в системе что могу себя смело считать ядреным системщиком. Я же затонул то что торчит наружу или нет?
По поводу названия книг - да хоть горшком назови, только в печку не ставь.
У нас до сих пор нити потоком называют, а потоки тридами, и ничего - живем как-то...
Ну и ежели для тебя реализация серверов прикладного уровня, служб, работа с именованными каналами и начальные данные о работе со списками безопасности считается системным программированием, пусть так и будет. Только никогда не говори этого в компании программистов - засмеют и будут правы.
← →
Sonia © (2007-09-26 11:16) [66]
> Rouse_ ©
Прочитав весь этот спор так и не поняла, что же такое системное программирование по твоему мнению :)
← →
Инс © (2007-09-26 11:36) [67]
> У нас до сих пор нити потоком называют
И пусть себе называют, не в этом суть. Термин вполне прижился. Handle как только не называют... Как правильно? Насчет системного программирования я уже сказал в самом начале, у нас с вами разные понятия. Так что имеет смысл добавлять ИМХО и с моей и с вашей стороны. А насчет книг по WinAPI мое мнение непоколебимо, самый правильный ответ в данной формулировке - это [6] и [9]. Все остальные рекомендации свидетельствуют о непонимании того, что такое WinAPI.
← →
Rouse_ © (2007-09-26 11:42) [68]
> Прочитав весь этот спор так и не поняла, что же такое системное
> программирование по твоему мнению :)
Тут все очень просто, все что врамках третьего кольца к системному программированию не имеет никакого отношения :)
> Все остальные рекомендации свидетельствуют о непонимании
> того, что такое WinAPI.
Непониманию со стороны тебя именно или всех остальных участников форума? :)
← →
Инс © (2007-09-26 11:42) [69]
> Sonia © (26.09.07 11:16) [66]
Так и не поймешь, пока Свена Шрайбера не прочтешь, вот только я бы не советовал...
← →
Ega23 © (2007-09-26 11:44) [70]
> Тут все очень просто, все что врамках третьего кольца к
> системному программированию не имеет никакого отношения :)
Продам доступ к Кольцу Всевластия. Дорого.
← →
Инс © (2007-09-26 11:48) [71]
> Тут все очень просто, все что врамках третьего кольца к
> системному программированию не имеет никакого отношения
> :)
Задача практически любой API-функции сводится к переходу в 0-е кольцо и выполнения некоторого действия уже в нем. API это и есть тот самый документированный слой между user и kernel. Не мне вам объяснять, что из user-mode управлять kernel-объектами можно и нужно.
> Непониманию со стороны тебя именно или всех остальных участников
> форума? :)
Не надо говорить за всех. Я пока вижу только вас да DVM. Сейчас возможно остальные "системщики" набегут, но их мнение вполне возможно будет предвзятым. Если считаете, что мое понимание термина WinAPI неверно, будьте добры поправьте.
← →
Ega23 © (2007-09-26 11:51) [72]Вот вы нашли, блин... Из-за семантики дурацкой спорить...
Да какая разница, что такое "системное программирование"? Может это "программирование систем"? :) Типа, канализационных... :)
← →
Игорь Шевченко © (2007-09-26 11:52) [73]Инс © (26.09.07 11:48) [71]
> Задача практически любой API-функции сводится к переходу
> в 0-е кольцо и выполнения некоторого действия уже в нем.
>
Задача практически любого прикладного приложения сводится к вызову API-функций, которые переходят в 0 кольцо и (далее по тексту).
Однако я не считаю себя вправе ставить знак равенства между прикладным программированием и системным, нес па ?
← →
Инс © (2007-09-26 11:53) [74]
> Задача практически любой API-функции сводится к переходу
> в 0-е кольцо и выполнения некоторого действия уже в нем
Даже не так. Задача практически любой API-функции сводится к переходу
> в 0-е кольцо и вызову функции системы, которая уже будет выполнять определенные действия в рамках ядра. Правда это упрощенно, между Win32 API и ядром лежит еще слой NativeAPI.
← →
Инс © (2007-09-26 11:59) [75]
> Игорь Шевченко © (26.09.07 11:52) [73]
В вашей формулировке системных программистов на Delphi нет и быть не может.
← →
palva © (2007-09-26 12:08) [76]
> Может это "программирование систем"? :) Типа, канализационных.
> .. :)
Вот на ВМК МГУ, например есть кафедра системного программирования. Когда я там учился она занималась вопросами разработки операционных систем. Если сейчас посмотреть названия спецкурсов, которые там читаются,
http://www.sp.cs.msu.ru/speccourse/
то вспоминаешь, что СУБД тоже содержит слово Система, поэтому разработка СУБД тоже вроде бы системное программирование. Там же есть вещи посвященные компиляторам, хотя на ВМК есть специальная кафедра Алгоязыков. Тогда такой вопрос: а написание компилятора или интерпретатора это системное программирование? Ведь вроде бы компилятор - не система.
← →
DVM © (2007-09-26 12:17) [77]
> поэтому разработка СУБД тоже вроде бы системное программирование.
> а написание компилятора или интерпретатора это системное
> программирование?
А еще слово "системный" можно трактовать как регулярный, последовательный, методичный поэтому все кто время от времени программирует - это все сплошь законченные системные программисты.
← →
Rouse_ © (2007-09-26 12:20) [78]
> В вашей формулировке системных программистов на Delphi нет
> и быть не может.
Истину глаголишь :)
← →
Игорь Шевченко © (2007-09-26 12:20) [79]
> В вашей формулировке системных программистов на Delphi нет
> и быть не может.
Прежде чем обсуждать формулировки, не лучше ли договориться о терминологии ?
← →
Игорь Шевченко © (2007-09-26 12:21) [80]
> Тогда такой вопрос: а написание компилятора или интерпретатора
> это системное программирование? Ведь вроде бы компилятор
> - не система.
До сих пор было системным
← →
Инс © (2007-09-26 12:23) [81]
> Прежде чем обсуждать формулировки, не лучше ли договориться
> о терминологии ?
Лучше. Говорите.
← →
Игорь Шевченко © (2007-09-26 12:27) [82]Инс © (26.09.07 12:23) [81]
> Лучше. Говорите.
Не я начал вводить термины, не мне и начинать их объяснять, нес па ?
← →
Инс © (2007-09-26 12:29) [83]
> Игорь Шевченко © (26.09.07 12:27) [82]
Какие термины в моем понимании хотите услышать?
← →
Sonia © (2007-09-26 12:48) [84]
> Так и не поймешь, пока Свена Шрайбера не прочтешь, вот только
> я бы не советовал...
А зачем его читать? вот на Вики есть определение по-русски :)
результатом системного программирования является выпуск программного обеспечения, предлагающего сервисы по взаимодействию с аппаратным обеспечением (например, дефрагментация жёсткого диска)
← →
Инс © (2007-09-26 13:06) [85]
> вот на Вики есть определение по-русски :)
LOL. А определение то какое красивое, мама не горюй... Главное в нашем деле научный подход :) Только в сообществе программистов не говори, что по Вики учишься, засмеют и будут правы ;-)
← →
Sonia © (2007-09-26 14:08) [86]
> Только в сообществе программистов не говори, что по Вики
> учишься, засмеют и будут правы ;-)
А я и не говорю ;-)
← →
Инс © (2007-09-26 14:35) [87]Я тут небольшой опрос устроил в "компании программистов", о которой говорит г-н Rouse_. Вопрос звучал так: термин "системное программирование" что в себя включает?
DRON: (http://www.delphikingdom.com/asp/users.asp?ID=7323)
:))) :))) шоб я знал. Специальность у нас называлась "вычислительные системы и сети", но все использовали термин "системный программист". Так что не знаю, давали всё подряд и архитектуру процев (курсовик в стиле "сделай свой проц") и построение ОС и несколько ассемблеров и по сетям теория плюс конкретные реализации и БД было.
SLoW: (http://www.delphikingdom.com/asp/users.asp?ID=7892)
на мое имхо это нечто вроде "высшей математики" т.е. бессмысленно
Интересно бы еще спросить мнение Набережных С., вот только где его найти, конспиратор... :) В общем, и так видно, что у каждого свое системное программирование. Игорь Шевченко предлагал договориться о терминологии, договориться видимо не получится, но высказать еще раз свое мнение я могу. Постараюсь это сделать максимально понятно.
Системное программирование подразумевает операционную систему или ее части (плохое слово части, более точного подобрать не смог, иначе будут разночтения) в качестве объекта воздействия (т.е. направлено на ОС), в отличие от прикладного, которое направлено на решение прикладной задачи (реализация алгоритмов, взаимодействие с пользователем, работа с данными). Прикладное программирование естественно работает "через" систему, ее механизмы, но направлено непосредственно не на нее. И системное и прикладное программирование могут существовать даже в рамках одного проекта. Со мной вместе над одним проектом работает замечательный прикладной программист, но слово MMF хотя бы, для него уже матерное. Разница между прикладным и системным программистом в моем понимании видна очень хорошо невооруженным глазом. Но это мое ИМХО и все сказанное мной выше отталкивается от него.
← →
Rouse_ © (2007-09-26 14:37) [88]Еще раз говорю, в рамках третьего кольца серьезно говорить о системном программировании бессмысленно :)
← →
DVM © (2007-09-26 14:39) [89]
> Системное программирование подразумевает операционную систему
> или ее части (плохое слово части, более точного подобрать
> не смог, иначе будут разночтения) в качестве объекта воздействия
> (т.е. направлено на ОС), в отличие от прикладного, которое
> направлено на решение прикладной задачи (реализация алгоритмов,
> взаимодействие с пользователем, работа с данными). Прикладное
> программирование естественно работает "через" систему, ее
> механизмы, но направлено непосредственно не на нее.
ну я то же самое и говорил, но несколько другими словами:
> Я бы сказал так, что системное программирование - это расширение
> или изменение возможностей самой ОС
← →
Игорь Шевченко © (2007-09-26 14:41) [90]
> Еще раз говорю, в рамках третьего кольца серьезно говорить
> о системном программировании бессмысленно :)
Эта...я тебе как-то писал программку, которая пайпы и майслоты перечисляет. Она прикладная ? :)
← →
DVM © (2007-09-26 14:45) [91]
> Она прикладная ? :)
На мой взгляд прикладная. Какая разница чего она там перечисляет процессы, окна, майлслоты или принтеры.
← →
Rouse_ © (2007-09-26 14:46) [92]Самая что ни на есть :)
Я тоже писал программмку, которая перечисляет открытые в системе хэндлы и это тоже прикладнуха, вот когда она стала работать через драйвер, тогда пользовательсткая часть, оставшись в прикладном уровне обзавелась кодом про который можно сказать как о системном :)
← →
Инс © (2007-09-26 14:49) [93]
> Rouse_ © (26.09.07 14:46) [88]
У нас с вами разное толкование термина и я не вижу никакой причины считать ваше толкование единственно верным.
← →
Игорь Шевченко © (2007-09-26 14:49) [94]Rouse_ © (26.09.07 14:46) [92]
И какую прикладную задачу она решает ?
← →
DVM © (2007-09-26 14:50) [95]
> И какую прикладную задачу она решает ?
узнать список майлслотов :)
← →
Игорь Шевченко © (2007-09-26 14:51) [96]Rouse_ © (26.09.07 14:46) [92]
И еще - процесс SVCHOST.EXE - тоже прикладная программа ? :)
← →
DVM © (2007-09-26 14:52) [97]
> процесс SVCHOST.EXE - тоже прикладная программа ?
это вирус :)
← →
Игорь Шевченко © (2007-09-26 14:53) [98]DVM © (26.09.07 14:50) [95]
Офигительный бизнес-процесс, да ? :)
← →
DVM © (2007-09-26 14:53) [99]установка ловушек или перехват API вызовов с последствиями для всех программ - это какой уровень прикладной или системный?
← →
Rouse_ © (2007-09-26 15:10) [100]
> И какую прикладную задачу она решает ?
Иммено в моем случае сообщает причину сбоя установки обновления ПО и показывает процесс, который залочил файлы :)
← →
evvcom © (2007-09-26 15:13) [101]
> Ega23 © (26.09.07 11:51) [72]
> Вот вы нашли, блин... Из-за семантики дурацкой спорить...
> Да какая разница, что такое "системное программирование"?
> Может это "программирование систем"? :) Типа, канализационных... :)
Не, ты не прав! Системное - это когда есть система в программировании. А когда от случая к случаю, это уже безсистемное :-)
← →
Игорь Шевченко © (2007-09-26 15:20) [102]Rouse_ © (26.09.07 15:10) [100]
Ты на досуге прочитай про прикладное программирование :)
← →
Игорь Шевченко © (2007-09-26 15:20) [103]Удалено модератором
Примечание: Дубль
← →
Rouse_ © (2007-09-26 15:23) [104]
> Ты на досуге прочитай про прикладное программирование :)
Ты наверное даже ссылочку знаешь где именно читать, и где именно написано что есть такое именно это самое - прикладное программирование, не так ли? :)
← →
Игорь Шевченко © (2007-09-26 16:07) [105]Rouse_ © (26.09.07 15:23) [104]
http://www.intuit.ru/department/pl/funcpl/15/funcpl_15.html
Если в двух словах, то системные программисты разрабатывают инструменты, а прикладные этими инструментами пользуются для решения своих задач.
← →
Rouse_ © (2007-09-26 16:19) [106]
> Если в двух словах, то системные программисты разрабатывают
> инструменты, а прикладные этими инструментами пользуются
> для решения своих задач
Собственно я гдето утверждал обратное? :)
← →
Инс © (2007-09-26 16:29) [107]
> Собственно я гдето утверждал обратное? :)
Вы просто определение [105] очень сильно сузили, уцепившись за ring0. Мое определение тоже не противоречит [105]. Оба наши трактования являются подмножеством вышесказанного. Опять таки просто разное толкование термина: я слово "системное" связываю именно с операционной системой, подразумевая англоязычный термин Windows System Programming.
← →
Rouse_ © (2007-09-26 16:38) [108]Windows System Programming... эмм, программирование в системе Windows? :)
И опять же, я остаюсь при своем мнении :) MMF и иже с ним - это не система :)
← →
Alarm © (2007-09-26 16:40) [109]Считаю, что Rouse_ © (26.09.07 16:19) [106] на все 100 прав.
Все программы пишут прикладники, а "системщики" (иногда) умело ими пользуются:)
← →
Инс © (2007-09-26 16:41) [110]
> MMF и иже с ним - это не система :)
А Section? :)
← →
Инс © (2007-09-26 16:59) [111]
> Windows System Programming... эмм, программирование в системе
> Windows? :)
NativeAPI - эмм, это родной программный интерфейс прикладника? :) На этот вопрос отвечать не обязательно, в отличие от прошлого.
← →
Rouse_ © (2007-09-26 17:10) [112]
> А Section? :)
По русски...
> NativeAPI - эмм, это родной программный интерфейс прикладника?
Вообщето натив по большей своей части не документирован, так что это вообще ничей интерфейс :)
← →
Инс © (2007-09-26 17:12) [113]
> По русски...
Что по-русски? Системщики не знают что такое Section? Я вполне понятно и недвусмысленно спросил. Если MMF - это не система, то Section это система или нет? По-русски Section будет раздел.
← →
iZEN © (2007-09-26 17:14) [114]
> DVM © (25.09.07 21:31) [17]
>
>
> > А что такое WinAPI?
>
> Набор функций
Причём часто семантически-разный в разных верcиях Windows, несмотря на одинаковость названий этих функций. ;)
← →
Rouse_ © (2007-09-26 17:16) [115]Ты знаешь сколько трактовок Section -а существует?
WPD Section Data
PE Section
WDK Section Body
Телепатор у меня знаете-ли не резиновый :)
← →
Инс © (2007-09-26 17:17) [116]
> Телепатор у меня знаете-ли не резиновый :)
Из контекста можно было понять. Так каков ответ на вопрос?
← →
evvcom © (2007-09-26 17:18) [117]
> Инс © (26.09.07 14:49) [93]
> > Rouse_ © (26.09.07 14:46) [88]
> У нас с вами разное толкование термина и я не вижу никакой
> причины считать ваше толкование единственно верным.
Ты не прав. Существует всего 2 типа мнений: моё и неправильное! :-)
> DVM © (26.09.07 14:52) [97]
> > процесс SVCHOST.EXE - тоже прикладная программа ?
> это вирус :)
Не... Вирус через нуль называется SVCH0ST.EXE
← →
Инс © (2007-09-26 17:20) [118]
> Ты не прав. Существует всего 2 типа мнений: моё и неправильное!
> :-)
А это к чему было?
← →
evvcom © (2007-09-26 17:23) [119]
> А это к чему было?
это была шутка к
> не вижу никакой причины считать ваше толкование единственно верным.
чтобы как-то обстановку разрядить. А то вы ща взорветесь или на бокс перейдете :)
← →
Инс © (2007-09-26 17:25) [120]
> А то вы ща взорветесь или на бокс перейдете :)
Маловероятно. Это у меня стиль ведения спора такой.
← →
umbra © (2007-09-26 17:25) [121]API - интерфейс операциооно для программирования приложений. Так что все программисты пишущие приложения - прикладные программисты. :)
← →
Rouse_ © (2007-09-26 17:28) [122]
> Так каков ответ на вопрос?
Реализованы КС естественно на уровне ядра... Как и 90 процентов АПИ.
Применение их в пользовательском приложении, это системное программирование?
← →
Инс © (2007-09-26 17:30) [123]
> Реализованы КС естественно на уровне ядра...
Что такое КС?
← →
Rouse_ © (2007-09-26 17:31) [124]Очевидно Критические Секции
← →
Игорь Шевченко © (2007-09-26 17:31) [125]Один я Д"Артаньян
← →
Инс © (2007-09-26 17:35) [126]
> Очевидно Критические Секции
Поздравляю. Ты облажался. Я о критических секциях не говорил и реализованы они не в ядре, это структуры пользовательского режима и переход в режим ядра при работе с КС осуществляется далеко не всегда. А говорил я об объекте ядра "раздел", перечитай внимательно [133]. А заодно подумай, почему я их упомянул вместе с MMF.
← →
Rouse_ © (2007-09-26 17:37) [127]
> Поздравляю. Ты облажался.
Спасибо. Видимо мой телепатор дал сбой...
Знаешь мне лениво сейчас думать - давай ка ты обьясни мне убогому, какое очередное озарение тебе открылось в связи с MMF? :)
← →
Rouse_ © (2007-09-26 17:39) [128]
> Я о критических секциях не говорил и реализованы они не
> в ядре
Мхат... т.е. LMD...
← →
Инс © (2007-09-26 17:40) [129]
> Спасибо. Видимо мой телепатор дал сбой...
Думаю телепатор тут не причем.
> Знаешь мне лениво сейчас думать - давай ка ты обьясни мне
> убогому, какое очередное озарение тебе открылось в связи
> с MMF?
Зачем мне так сразу карты раскрывать? :) Я хочу сначала ответ на вопрос услышать. А для этого давайте сначала убедимся, что вы понимаете о чем вообще я спросил.
← →
Инс © (2007-09-26 17:42) [130]
> Применение их в пользовательском приложении, это системное
> программирование?
А применение разделяемого с драйвером режима ядра объекта Section в пользовательском приложении это системное программирование?
← →
DVM © (2007-09-26 17:43) [131]
> А говорил я об объекте ядра "раздел",
что за объект такой?
Я знаю
access token objects,
file objects,
file-mapping objects,
I/O completion port objects,
job objects,
mailslot objects,
mutex objects,
pipe objects,
process objects,
semaphore objects,
thread objects,
waitable timer objects
← →
Rouse_ © (2007-09-26 17:44) [132]
> Зачем мне так сразу карты раскрывать?
После откровения что критическая секция реализуется не в ядре, я что-то расхотел глядеть в эти открытые карты :)
ЗЫ: а где она реализуется тогда и как ?
← →
Инс © (2007-09-26 17:44) [133]
> DVM © (26.09.07 17:43) [131]
В твоем списке объект-секция есть.
← →
DVM © (2007-09-26 17:46) [134]
> В твоем списке объект-секция есть.
Из этого списка я ничего секциями не называю. Ткни носом.
← →
Инс © (2007-09-26 17:48) [135]
> ЗЫ: а где она реализуется тогда и как ?
Критическая секция представляет собой структуру вида
_RTL_CRITICAL_SECTION = record
DebugInfo: PRTLCriticalSectionDebug;
LockCount: Longint;
RecursionCount: Longint;
OwningThread: THandle;
LockSemaphore: THandle;
Reserved: DWORD;
end;
Эта структура хранится не в системном адресном пространстве, а в адресном пространстве процесса, доступном из user-mode. Именно поэтому она не может быть совместно использована в разных процессах, только в контексте одного. Функции, работающие с КС, как правило в режим ядра даже не переходят и в этом легко самому убедиться.
← →
Инс © (2007-09-26 17:50) [136]
> Из этого списка я ничего секциями не называю. Ткни носом.
Тыкаю. Третий. А у седьмого знаешь какое внутреннее название? MUTANT :)
← →
DVM © (2007-09-26 17:51) [137]
> А у седьмого знаешь какое внутреннее название? MUTANT :)
Про мутанта знаю, про секции нет. Буду знать.
← →
Rouse_ © (2007-09-26 17:59) [138]Опана, Всю жизнь думал что цепочка InitializeCriticalSection -> RtlInitializeCriticalSection -> RtlInitializeCriticalSectionAndSpinCount -> NtCreateEvent незыблема, а оказывается от оно как. Тебе стоит в MS резюме отправить :) Ты знаешь что-то что не знаю даже разработчики :)
← →
Rouse_ © (2007-09-26 18:01) [139]
> Инс © (26.09.07 17:50) [136]
> Тыкаю. Третий.
Ну я ж говорил, у нас книги называют о "системном программировании", нити потоками, FMO секциями... Очевидно скоро мой телепатор с тобой точно отключиться :)
← →
Инс © (2007-09-26 18:55) [140]Ничего нового вы мне не сказали.
> Опана, Всю жизнь думал что цепочка InitializeCriticalSection
> -> RtlInitializeCriticalSection -> RtlInitializeCriticalSectionAndSpinCount
> -> NtCreateEvent незыблема, а оказывается от оно как. Тебе
> стоит в MS резюме отправить :) Ты знаешь что-то что не знаю
> даже разработчики :)
Это потому, что поле LockSemaphore нужно инициализировать. А скажем EnterCriticalSection может в режим ядра и не перейти, полей структуры может оказаться достаточно для того, чтобы принять решение, что КС свободна. Чаще всего так и бывает, ткните меня носом где я сказал иначе. Тем не менее это ничего не меняет, очевидно что критическая секция это структура пользовательского режима, в отличие от семафора или события, которые являются объектами ядра.
> Ну я ж говорил, у нас книги называют о "системном программировании",
> нити потоками, FMO секциями...
Да нет, вы просто свой DDK видимо не внимательно читали. В ядре нет объекта File Mapping. Там этот объект именно так и называется. http://msdn2.microsoft.com/en-us/library/ms796304.aspx
← →
Инс © (2007-09-26 19:02) [141]
> Очевидно скоро мой телепатор с тобой точно отключиться :)
Конечно, когда базовых знаний нет, никакой телепатор не поможет...
← →
Инс © (2007-09-26 19:39) [142]
> Я знаю
>
> access token objects,
> file objects,
> file-mapping objects,
> I/O completion port objects,
> job objects,
> mailslot objects,
> mutex objects,
> pipe objects,
> process objects,
> semaphore objects,
> thread objects,
> waitable timer objects
Кстати, к сведению. Это далеко не все типы объектов. По крайней мере в Win2000 типов объектов 27. А канал и мэйлслот в них не входят. Это сложные объекты, состоящие по крайней мере из двух: Device и Symbolic Link. Полный перечень могу привести.
← →
Rouse_ © (2007-09-26 20:57) [143]
> А скажем EnterCriticalSection может в режим ядра и не перейти
Изчебы, спины они для того и предназначены... Но все крутится на эвенте.
Но вообще-то фраза изначальна выглядела как "и реализованы они не в ядре". Посему и говорю - RTFM прежде чем постить.
> очевидно что критическая секция это структура пользовательского
> режима
Очевидно это структура, созданная в ядре. Где она храниться ее описатель роли не имеет т.к. евент принадлежит именно ядру.
> Конечно, когда базовых знаний нет, никакой телепатор не
> поможет...
Ну чтож... Не буду ругаться про знания, мне всегда хватало стандартных механизмов :) А вот начиная с Device и Symbolic Link - прошу поподробнее, параллельно остановимся на типе "file objects" в рамках NT, ну ты же знаешь о чем я говорю? :)
Да ну и давайте-же вернемся к нашим баранам, т.е. к Рихтеру - пишет ли он книги о Системном программировании? :)
← →
Eraser © (2007-09-26 21:15) [144]не в ту сторону куда-то спор зашел, imho. Какие кольца, какие сервисы? вы о чем? когда в учебных заведениях уже были профессии "программист" или "системынй программист" этих колец и в помине не было.
по-моему самое близкое к истине определение дает википедия http://ru.wikipedia.org/wiki/Системное_программирование
т.е. системным можно назавать тот тип приложений, который нужен для обеспечения работоспособности системы, большенство системных утилит и практически все драйвера попадют под это определение. Редактор реестара, проводник, дефрагментатор, различные оптимизаторы, средства администрирования системы - это все системные утилиты. Прикладыне же программы это другое - калькулятор, блокнот, фотошоп и т.д. Думаю мысль понятна.
← →
Инс © (2007-09-26 21:17) [145]
> Ну чтож... Не буду ругаться про знания, мне всегда хватало
> стандартных механизмов :) А вот начиная с Device и Symbolic
> Link - прошу поподробнее, параллельно остановимся на типе
> "file objects" в рамках NT, ну ты же знаешь о чем я говорю?
> :)
Да, объект файл тоже используется. Да не суть, в любом случае таких объектов ядра, как пайп или мэйлслот нет. Они состоят из других примитивов.
> Да ну и давайте-же вернемся к нашим баранам, т.е. к Рихтеру
> - пишет ли он книги о Системном программировании? :)
А разве мы уже определились с термином? На вопрос [130] ответьте, а то так спрыгнули...
← →
DVM © (2007-09-26 21:39) [146]
> Кстати, к сведению. Это далеко не все типы объектов. По
> крайней мере в Win2000 типов объектов 27.
Возможно. Остальные мне непосредственно не попадались, да и некторые из тех что я привел крайне редко мною используются.
> А канал и мэйлслот в них не входят.
Рихтер пишет, что входят.
← →
Инс © (2007-09-26 21:48) [147]
> Рихтер пишет, что входят.
Рихтер пишет очень упрощенно. Установи себе Object Viewer, сам увидишь, какие типы объектов существуют. А то, о чем ты говоришь - это Win32-объекты. Они уровнем выше и составляются из одного или более объектов исполнительной системы. А уже объекты исполнительной системы состоят из объектов ядра.
← →
Инс © (2007-09-26 21:52) [148]
> Остальные мне непосредственно не попадались
И не попадутся никогда, если учить WinAPI ;-)
← →
DVM © (2007-09-26 22:03) [149]
> И не попадутся никогда, если учить WinAPI
Чего его учить, оно не стихотворение. Его использовать надо.
← →
Инс © (2007-09-26 22:06) [150]
> Чего его учить, оно не стихотворение. Его использовать надо.
Полностью согласен. Посмотри пост [7]
← →
Инс © (2007-09-26 22:16) [151]
> Они уровнем выше и составляются из одного или более объектов
> исполнительной системы.
А почему так сделано, г-н Rouse_ объяснил в [21] сам того не желая :) Подсистем несколько, какой-нибудь Posix не имеет никакого отношения к Win32-объектам, зато имеет самое непосредственное отношение к исполнительной системе и тем более ядру. И на базе этих объектов строит свои ресурсы.
← →
Rouse_ © (2007-09-27 09:01) [152]
> На вопрос [130] ответьте, а то так спрыгнули...
Прикладнуха :)
ЗЫ: Блин, надобыть уже заканчивать а то треть рабочего вре мени на отслеживание только этой ветки уходит :)
← →
Инс © (2007-09-27 09:17) [153]
> Прикладнуха :)
Забыл обосновать и имхо забыл добавить. С тобой ведь не только я один не согласен.
> Но вообще-то фраза изначальна выглядела как "и реализованы
> они не в ядре". Посему и говорю - RTFM прежде чем постить.
Естественно критическая секция реализована в пользовательском режиме. Я и до сих пор это утверждаю. Это ивент в ядре, который КС использует. Я и сам могу реализовать в пользовательском приложении свой объект, работающий по аналогичному принципу. Значит по твоему утверждению я вышел за пределы юзер-мод и стал системеным программистом ;-)
> ЗЫ: Блин, надобыть уже заканчивать а то треть рабочего вре
> мени на отслеживание только этой ветки уходит :)
Аминь. Заканчивай. Жаль только ты мне так и не объяснил, почему я неправилно понимаю термин WinAPI.
← →
Rouse_ © (2007-09-27 09:19) [154]
> почему я неправилно понимаю термин WinAPI.
Потомучто WinAPI существует только в рамках Win32 подсистемы :)
← →
Игорь Шевченко © (2007-09-27 09:24) [155]Хорошо жить с резиновыми пальцами.
← →
Инс © (2007-09-27 10:03) [156]
> Потомучто WinAPI существует только в рамках Win32 подсистемы
> :)
И что? Не хотелось бы тебя огорчать, но я это понимаю. На твой коварный вопрос [21] про подсистемы я ответил вроде бы. Тем не менее это не мешает Win32API из подсистемы воздействовать на систему.
← →
Rouse_ © (2007-09-27 10:05) [157]POSIX тоже воздействует на систему. Я бросил кнопку на форму - тоже произошло воздействие на систему. Но это программирование в рамках подсистемы и для нее-же, а не для системы.
← →
Игорь Шевченко © (2007-09-27 10:06) [158]
> Потомучто WinAPI существует только в рамках Win32 подсистемы
> :)
И эта подсистема гвоздями прибита к ядру и составляет с ним неразделимое целое...
← →
Rouse_ © (2007-09-27 10:08) [159]Лана я закончил, а то на работу времени нема со всей этой байдой :)
← →
Инс © (2007-09-27 10:08) [160]
> Я бросил кнопку на форму - тоже произошло воздействие на
> систему. Но это программирование в рамках подсистемы и для
> нее-же, а не для системы.
Бросить кнопку на форму - да. Это прикладнуха. Объект воздействия - это не система. Объект - это кнопка и форма. А когда объектом воздействия становятся элементы ОС - это системное программирование.
← →
Игорь Шевченко © (2007-09-27 10:10) [161]
> А когда объектом воздействия становятся элементы ОС - это
> системное программирование.
Я тут ссылку давал на терминологию. Авторы с тобой не согласны
← →
Anatoly Podgoretsky © (2007-09-27 10:11) [162]> Rouse_ (27.09.2007 10:08:39) [159]
Подожди, работа была до сих пор, теперь ты пошел развлекаться.
← →
Anatoly Podgoretsky © (2007-09-27 10:12) [163]> Инс (27.09.2007 10:08:40) [160]
Вы никогда не найдете где эти грани. Особенно если примените разум.
← →
Инс © (2007-09-27 10:13) [164]
> Я тут ссылку давал на терминологию. Авторы с тобой не согласны
Надо будет еще почитать, написано тяжело... Но я хотя бы не выдаю свое мнение за единственное правильное, я неоднократно подчеркивал, что это мое ИМХО.
← →
Anatoly Podgoretsky © (2007-09-27 10:19) [165]> Инс (27.09.2007 10:13:44) [164]
Зачем подчеркивал, все сообщения это ИМХО, подчеркивать надо когда не ИМХО - указывать источник.
← →
Инс © (2007-09-27 10:22) [166]
> подчеркивать надо когда не ИМХО - указывать источник.
А я приводил ссылки на книги Харта и Вильямса.
← →
Anatoly Podgoretsky © (2007-09-27 10:25) [167]Я не в претензии когда приводятся ссылки на первоисточник.
Речь только про
> Но я хотя бы не выдаю свое мнение за единственное правильное,
> я неоднократно подчеркивал, что это мое ИМХО.
Если не указано, что это мнение официальное или из источника, то оно ИМХО по определению
← →
Инс © (2007-09-27 10:28) [168]
> Если не указано, что это мнение официальное или из источника,
> то оно ИМХО по определению
Ну да. Я с этим тоже не спорю. Просто на том, что это ИМХО я делал упор, чтобы люди понимали меня правильно.
← →
Инс © (2007-09-27 10:45) [169]
> Вы никогда не найдете где эти грани. Особенно если примените
> разум.
Так я и грани, описанные по ссылке Игоря Шевченко в некоторых случаях не найду :)
← →
Anatoly Podgoretsky © (2007-09-27 11:56) [170]> Инс (27.09.2007 10:28:48) [168]
Делать можно, а вот требовать нельзя, это не к тебе претензия.
← →
Инс © (2007-09-27 14:16) [171]Кстати, если кто не заметил, г-н Rouse_ в [152] сам себе противоречит. Его вывод "прикладнуха" основывается на [21], т.е. по его словам в рамках подсистемы Win32 ни о каком системном уровне речи быть не может, так как подсистема несмотря на приставку "под" лежит на более высоком уровне абстракции, чем непосредственно система. Само по себе утверждение в достаточной степени верное, но. Я ведь не зря спросил про Section в противовес File Mapping. File Mapping - это объект подсистемы Win32, а Section - это объект системы. Объект File Mapping целиком и полностью состоит из одного единственного объекта Section. Функции CreateFileMapping и OpenFileMapping напрямую вызывают соответственно NtCreateSection и NtOpenSection. В примере [130], который я привел, я говорил об объекте секция, а не File Mapping, объекте, который не имеет никакого отношения к подсистеме Win32. Соответственно мне ничего не мешает в моем пользовательском приложении из примера [130] вызвать не Win32, а Native-функции, тем самым целиком и полностью отвязаться от подсистемы. Отвязавшись от подсистемы, (учитывая [21]) по мнению Rouse_ получится что я перейду на более низкий системный уровень. Тогда возникает вопрос, а причем тут кольца? Я при этом как и был на 3-м кольце, так на нем и останусь.
Но если бы передо мной стояла реальная задача разделение секции памяти между приложением и драйвером я бы с вероятностью 99% использовал бы Win32-функции. Просто достаточно понимать, что делают они то же самое, так как правильно заметил Игорь Шевченко, подсистема Win32 очень тесно связана с ядром. Г-н Rouse_ не видит этой связи, он это показал на примере того, что не видит связи между Win32-объектом File Mapping и объектом системы Section.
← →
Rouse_ © (2007-09-27 14:42) [172]Чудак, я не пользуюсь FMO при работе с драйвером. Это первое, по поводу противоречий - посмотри свои выражения о критических секциях, то они у тебя не реализуются в ядре, то все-же вызов ядерных функций происходит.
В третьих, вызвать NtCreateSection напрямую ты не сможешь, ты дернешь лишь ее хвост который тебе доступен в третьем кольце, а sysenter за тебя будет NTDLL делать. Так что ни о каком переходе "на более низкий системный уровень" речи идти не может.
Ну и в четвертых будь поаккуратнее в высказываниях...
← →
Инс © (2007-09-27 14:54) [173]
> Чудак, я не пользуюсь FMO при работе с драйвером.
Э? Причем тут вы, я пример приводил, вы его прокомментировали.
> по поводу противоречий - посмотри свои выражения о критических
> секциях, то они у тебя не реализуются в ядре, то все-же
> вызов ядерных функций происходит.
В самом первом своем утверждении я сказал, что переход в ядро возможен, но происходит редко. Он происходит только в том случае, если без события уже не обойтись. Событие - это не критическая секция, этот объект действительно существует в ядре, в отличие от объекта пользовательского режима - КС, которая ссылается на объект ядра - событие. Я сам могу реализовать КС в пользовательском приложении, в отличие от семафора, например.
> В третьих, вызвать NtCreateSection напрямую ты не сможешь,
> ты дернешь лишь ее хвост который тебе доступен в третьем
> кольце
И что? Я же от подсистемы отвязался! Речь ведь была именно об этом? Или уже не об этом?
> Ну и в четвертых будь поаккуратнее в высказываниях...
Если какое либо из моих высказываний задело вас лично - искренне прошу прощения, так как на личности я переходить не собирался. Я стараюсь вести спор лишь в рамках предмета обсуждения, а вот некоторые ваши высказывания были направлены напрямую на меня и я считаю их наездами. Возможно именно это причина некоторой агрессии с моей стороны.
← →
Игорь Шевченко © (2007-09-27 14:59) [174]
> Я сам могу реализовать КС в пользовательском приложении,
> в отличие от семафора, например.
Кто тебе мешает в пользовательском приложении реализовать семафор ?
← →
Инс © (2007-09-27 15:04) [175]
> Кто тебе мешает в пользовательском приложении реализовать
> семафор ?
То, что семафор хранит информацию о себе в ядре, со всеми вытекающими (возможность разделения между процессами, например)... Я могу сделать лишь некоторую имитацию на основе существующих объектов ядра. А КС можно воспроизвести полностью.
← →
Rouse_ © (2007-09-27 15:06) [176]
> Э? Причем тут вы, я пример приводил, вы его прокомментировали.
Я прокомментировал в рамках моего знания DDK. Естесвенно что ни его ни SDK на 100 процентов я знать не могу, мозги не резиновые все-же. :) Знаю только то, с чем работаю ежедневно...
> И что? Я же от подсистемы отвязался! Речь ведь была именно
> об этом? Или уже не об этом?
Эмм... вот тут не уверен, т.к. не работал с другими подсистемами. В них разве NTDLL доступен? Если да, тогда я немного расширю свое утверждение.
Скажем, в рамках третьего кольца нельзя написать код который изменит логику работы системы (в отличие от того-же простейшего драйвер-фильтра, посредством которого можно сделать многое, вплоть до эмуляции некоего устройства целиком), следственно назвать реализацию такого кода, как системного нельзя.
> а вот некоторые ваши высказывания были направлены напрямую
> на меня и я считаю их наездами. Возможно именно это причина
> некоторой агрессии с моей стороны.
Принято - приношу извинения.
> Я стараюсь вести спор лишь в рамках предмета обсуждения
К сожалению у меня сейчас действительно мало времени, т.к. предрелизный дедлайн, поэтому предлагаю пока остановиться и продолжить через пару недель :)
← →
Инс © (2007-09-27 15:09) [177]
> Принято - приношу извинения.
Принято.
> К сожалению у меня сейчас действительно мало времени, т.
> к. предрелизный дедлайн, поэтому предлагаю пока остановиться
> и продолжить через пару недель :)
Да ладно, не в последний раз надеюсь пересекаемся.
← →
имя (2007-10-07 22:09) [178]Удалено модератором
← →
имя (2007-10-07 22:12) [179]Удалено модератором
← →
имя (2007-10-07 22:26) [180]Удалено модератором
Страницы: 1 2 3 4 5 вся ветка
Форум: "Прочее";
Текущий архив: 2007.11.11;
Скачать: [xml.tar.bz2];
Память: 0.96 MB
Время: 0.048 c