none
вопрос про системные вызовы RRS feed

  • Вопрос

  • Здравствуйте! Пишет вам студент одного из московских вузов. В данный момент мне предстоит написание диплома на тему: сравнительный анализ интерфейса системных вызовов windows и linux. Я долго и упорно искал информацию об интерфейсе системных вызовов в windows, но к сожалению, ничего не нашел, даже в книге Марка Руссиновича. Поэтому решил обратиться к вам. Не могли бы вы посоветовать или подсказать, где я могу найти информацию об интерфейсе системных вызовов? Или рассказать о том, как функционирует интерфейс системных вызовов и сами системные вызовы.
    Заранее благодарен
    24 ноября 2007 г. 20:57

Все ответы

  • Конечно же все "системые вызовы" описаны на MSDN. Начать можно тут.

    24 ноября 2007 г. 21:24
    Модератор
  • Как я понимаю, речь об этих книга?

    http://www.piter.com/book.phtml?978531800545

    http://www.piter.com/book.phtml?978546901174

     

    Думаю, будет очень полезна к прочтению эта:

    http://www.piter.com/book.phtml?978531800487

    24 ноября 2007 г. 21:47
  • Здравствуйте еще раз! Я смотрел только книгу Марка Руссиновича "Внутреннее устройство Microsoft Windows: Windows Server 2003, Windows XP и Windows 2000". Отдельно  книгу "Внутреннее устройство Microsoft Windows 2000" я не читал. Я еще указанную книгу про недокументированные возможности Windows 2000 не скачал, но раньше я вроде бы ее просматривал. Скажите пожалуйста,  большая ли разница между реализациями интерфейсов системных вызовов в Windows 2000 и Windows XP? В этой книге присутствует информация об организации интерфейса системных вызовов? Я так понимаю, что что в Windows немного размыто представление между системными вызовами и функциями API, и системными вызовами просто являются функции API  для работы с системными компонентами. Я так понимаю большинство системных вызовов содержится в dll. Так? Я так думаю, что в kernel32.dll. Может в ntdll.dll А в neta32api gdi32, advapi системных вызовов нет. Извините, что так много вопросов. Просто больше нигде информации не нашел. Спасибо за то, что отвечаете.
    А та ссылка на msdn, которую вы мне дали, я ее глянул. Там написано system services. Эти я думал просто системные службы. Или это все таки системные вызовы?
                                                             
    25 ноября 2007 г. 20:32
  • и еще, извините, что это не очень относится к данной теме, но подскажите, что за файл в system32 - wuauclt1? в этой папке есть еще и просто файл wuauclt. Должно ли быть два файла?
    25 ноября 2007 г. 20:39
  •  navy85 написано:
    Скажите пожалуйста,  большая ли разница между реализациями интерфейсов системных вызовов в Windows 2000 и Windows XP?
    Нет, данные в книге не потеряли актуальности.

     

     navy85 написано:
    В этой книге присутствует информация об организации интерфейса системных вызовов?
    Интерфейс Native API - то что вам нужно? Если да, то эта книга самое то!

     

     navy85 написано:
    Я так понимаю большинство системных вызовов содержится в dll. Так?
    Найдите книгу и начните читать со 121-й страницы - куча вопросов отпадёт...

    25 ноября 2007 г. 21:36
  • Я так понял, что системные вызовы описаны в WinAPI, а часть в Native API.
    Мне нужна информация о том, как работает интерфейс системных вызовов в Windows. Насколько я понял, Native API схожа c WInAPI, но в ней есть другие по сравнению с WinAPI функции, которые недокументированы. Сформулирую свой вопрос иначе: я бы хотел знать как работают системные вызовы в Windows и как работает механизм системных вызовов. Хотелось бы узнать, что происходит при вызове системного вызова, вплоть до конца его выполнения. Подскажите пожалуйста.
    26 ноября 2007 г. 8:31
  •  navy85 написано:
    Хотелось бы узнать, что происходит при вызове системного вызова, вплоть до конца его выполнения.
    Шрайбер даст вам развёрнутый ответ...
    26 ноября 2007 г. 9:19
  • Либо Шрайбер устарел, либо у него неточность, либо я не совсем понял описание Руссиновича (четвёртое издание). Проблема касается вызовов функций User и Gdi.

    Шрайбер указывает, что абсолютно все вызовы проходят диспетчеризацию через ntdll.dll и показывает соответсвующую картинку:

     

    При этом Руссинович говорит о том, что диспетчеризация вызовов функций User и Gdi происходит, соответвенно, в user32.dll и gdi32.dll, которые передают вызов в win32k.sys мимо ntdll.dll

     

     

     

    Наверное я как-то не так понял руссиновича?


    Давайте начнем считать ИТ точной наукой, а не ремеслом, когда каждый делает так, как у него получается. (c)
    9 июня 2011 г. 18:19