Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Клуб программистов > Свободное общение
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.10.2007, 18:23   #1
Slovinsky
Пользователь
 
Регистрация: 26.10.2007
Сообщений: 79
По умолчанию Что такое Win32 API

Добрый день, господа. У меня несколько необычное обращение. В данный момент провожу небольшую скорее социологическую работу - опрос системных программистов разного уровня, стажа, квалификации. Цель данного опроса - выделить те самые уровни, провести между ними грань, чтобы программисты смогли узнать себя на одном из этих уровней и наметить правильный путь дальнейшего развития.
Всем участникам опроса задается один и тот же вопрос, который вы можете увидеть в заголовке темы. Просьба всем заинтересовавшимся не давать ссылки на источники в интернете в качестве ответов а также для чистоты эксперимента давать ответы не пользуясь вообще никакими подручными материалами. Чисто отвечать так, как представляешь себе ответ на этот вопрос. Если все пройдет нормально, возможно, будет еще несколько таких вопросов, а также обещаюсь предоставить результаты данной работы

Заранее спасибо всем откликнувшимся.
Slovinsky вне форума Ответить с цитированием
Старый 28.10.2007, 18:47   #2
AlDelta
Реанимируюсь...
Участник клуба
 
Аватар для AlDelta
 
Регистрация: 19.07.2007
Сообщений: 1,445
Хорошо Win32 API

Если без подручных материалов, то:
Win32 API - это все множество системных фунций Windows которые предоставленны приложению для прямого взаимодействия с самой Windows.
(о как замолотил )

Ошибка - это не ошибка, а системная функция
Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте.
Правила форума => Правила раздела => Для общего развития => Помощь студентам => Перед тем, как создавать тему, скачайте себе...
P.S.: форум не песочница (с)
название статьи на сайте MS: "Отмена принудительного отключения автоматического запуска в реестре Windows"
AlDelta вне форума Ответить с цитированием
Старый 28.10.2007, 19:09   #3
Slovinsky
Пользователь
 
Регистрация: 26.10.2007
Сообщений: 79
По умолчанию

Так, один вариант принят, спасибо. Будут ли еще варианты? Первое определение пока не отражает истины...
Slovinsky вне форума Ответить с цитированием
Старый 28.10.2007, 20:03   #4
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

теперь я попытаюсь что-нибудь намутить...
если бы все программы могли получать доступ к системным данным, файловой системе и физическим устройствам, то вне всякого сомнения возникла бы реальная угроза пользовательским данным. Для того что бы обезопасить пользовательские данные операционная система запрещает доступ к системной памяти, файловой системе и к физическим устройствам. Тогда программы ничего полезного не смогут сделать. Операционная система имеет базовый список функций (для работы с системными объектами, физическими устройствами и файловой системой) которыми можно восьпользоваться через команду sysenter. Программы могут воспользоваться этими функциями через так называемые функции Native API которые находятся в библиотеке NTDLL.DLL (это конечно неверное название потому что Native API это функции в ядре системы, но так как они имеют одинаковые названия то можно их тоже можно так назвать). Таким образом программы пользуются функциями предостваленными самой системой, и система может проверять к чему программа пытается получить доступ и запретить доступ если это требуется. Но эти функции сложны (например, строки принимают только в UNICODE и через особую структуру) для пользования. Поэтому были созданы API функции которые являются оболочками фокруг Native API. Каждая API решает свою более узкую задачу и принимает параметры в более понятном для человека виде.
Эти API - это и есть Win32 API

P.S. реальная отсебятина!!!

Последний раз редактировалось rpy3uH; 28.10.2007 в 20:17.
rpy3uH вне форума Ответить с цитированием
Старый 28.10.2007, 21:13   #5
merax
Форумчанин
 
Регистрация: 27.12.2006
Сообщений: 955
По умолчанию

А теперь моё мнение...
Все прекрасно знают, что Windows на 90% состоит из DLL из которых в реальном времени обрабытываються функции реализованные программистами Microsoft. Всем понятно, что DLL занимает в памяти места намного меньше чем такой же exe файл... Функции WinAPI напрямую взаимодействуют с системой и предоставляют пользовательскому приложению получать привелегии и наоборот ограничиваться только тем доступом который предоставит система...
Плюс это уже реализованные, протестированные и обкатанные функции которые не требуют изобретение велосипеда, а только передачу нужных параметров, для получения нужного результата!!!


З.Ы. Грузин прав, точного понятия нет... Даже "Вики" не дает полного определения....

Последний раз редактировалось merax; 28.10.2007 в 21:19.
merax вне форума Ответить с цитированием
Старый 28.10.2007, 23:45   #6
xTANATOSx
Подтвердите свой е-майл
 
Регистрация: 15.07.2007
Сообщений: 72
По умолчанию

Ето низкоуровневий набор функций которий используетса для взаемодействий с виндой
xTANATOSx вне форума Ответить с цитированием
Старый 29.10.2007, 01:35   #7
Slovinsky
Пользователь
 
Регистрация: 26.10.2007
Сообщений: 79
По умолчанию

to rpy3uH
Уже ближе, но немного прокомментирую для внесение некоторой ясности...

Цитата:
если бы все программы могли получать доступ к системным данным, файловой системе и физическим устройствам, то вне всякого сомнения возникла бы реальная угроза пользовательским данным. Для того что бы обезопасить пользовательские данные операционная система запрещает доступ к системной памяти, файловой системе и к физическим устройствам. Тогда программы ничего полезного не смогут сделать.
Насколько я понял, этим вы хотели сказать, что система обеспечивает разделение пользовательского кода и кода режима ядра. Пользовательскому коду недоступна возможность работы с физической памятью, устройствами ввода/вывода. И судя по тому, что вы говорите дальше, NativeAPI предоставляют тот самый шлюз для перехода в ядро (тот самый sysenter). Так? И из ваших слов не совсем ясно, NativeAPI функции - это те, которые непосредственно взаимодействуют с аппаратными устройствами или нет? И вообще - это функции из ntdll.dll или из ntoskrnl.exe или и то и другое? И зачем вообще было их вводить и делать над ними надстройку в виде Win32 API? Почему нельзя было sysenter вызывать из Win32 API (подсказка, ответ на этот вопрос содержится в самом слове Win32 )?

to merax
Функции WinAPI не взаимодейтсвуют с системой напрямую, попытайтесь понять что происходит, например, при вызове функции CreateFile и поймете, где заканчивается WinAPI...

xTANATOSx
Спорно... Очень даже высокоуровневый... Вот я тут набросал на бумажке те самые "уровни" от прикладной программы до аппаратных устройств, всего таких уровней у меня получилось семь, слой Win32 API - второй сверху.

to Всем:
Подскажу. Почему не прозвучало слово "интерфейс"? Ответ частично в нем! И заметьте, что Win32 API и API вообще - это не одно и то же. Посмотрите как задан вопрос

Последний раз редактировалось Slovinsky; 29.10.2007 в 01:52.
Slovinsky вне форума Ответить с цитированием
Старый 29.10.2007, 08:17   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну и опрос... Вообще-то социолог не имеет морального права подсказывать или опровергать, так что пост #7 реальное наклонение на свой лад. Win32 API это тупо набор функций, на которые опирается прога если хочет работать в системе Win32.
Тоже самое можно сказать про прерывания БИОСа, Это просто приготовленный стандартный набор фунок для ускорения, упрощения работы.
Цитата:
Вот я тут набросал на бумажке те самые "уровни"
Любопытно, что это за уровни...
Цитата:
Функции WinAPI не взаимодейтсвуют с системой напрямую
Спорно. Виндовс тоже система.
[QUOTE] И заметьте, что Win32 API и API вообще - это не одно и то же[/
QUOTE]
А это не важно. API это очередная прослойка между человеком и камушком.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 29.10.2007, 09:20   #9
Slovinsky
Пользователь
 
Регистрация: 26.10.2007
Сообщений: 79
По умолчанию

Цитата:
Вообще-то социолог не имеет морального права подсказывать или опровергать, так что пост #7 реальное наклонение на свой лад.
Тут вы правы вообще-то, но так как я все-таки на самом деле не социолог, а программист, то это видимо он (прогарммист) во мне просыпается. Сейчас собираюсь написать статью на тему "Программист или кодер", вот и обратился за помощью. Нужно эти самые уровни кодера и программиста разделить, чтобы помочь кодеру стать программистом. В прочем, буду стараться больше слушать, но и оставляю право за собой иногда вмешиваться, чтобы направить как мне кажется в правильную сторону. Вот например ваше сообщение прокомментирую:

Цитата:
Спорно. Виндовс тоже система.
Windows то система, но вот Win32 API функции - это точки входа, которые содержат код только пользовательского режима, так что взаимодействовать с элементами системы напрямую они не могут по определению.

Цитата:
Любопытно, что это за уровни...
Не хотелось бы сейчас это говорить, хотелось бы послушать вас, но раз сказал "раз", нужно говорить и "два". У меня получилось, что между человеком и железякой лежат:
1. Код пользовательского приложения
2. API подсистем окружения (в т.ч. Win32 API)
3. Слой NativeAPI
4. Исполнительная система
5. Элементы ядра (драйверы устройств)
6. Уровень абстрагирования от оборудования (HAL)
7. Порты ввода-вывода

У каждого из слоев свое предназначение. У Win32 API - свое, у исполнительной системы - свое. Вопрос в том, какое предназначение у слоя Win32 API.
Slovinsky вне форума Ответить с цитированием
Старый 29.10.2007, 09:56   #10
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

Цитата:
Вопрос в том, какое предназначение у слоя Win32 API.
так вот же и ответ
Цитата:
Win32 API функции - это точки входа, которые содержат код только пользовательского режима, так что взаимодействовать с элементами системы напрямую они не могут по определению
и вообще, тут же и прикладные программисты есть (большинство), а не только системщики.

Цитата:
И судя по тому, что вы говорите дальше, NativeAPI предоставляют тот самый шлюз для перехода в ядро (тот самый sysenter).
не люблю когда это так называют ("переход"). ring3-код он же им и остаётся и так и выполняется дето под плинтусом. Программа (через функции winapi) "заказывает" чего ей надо сделать и куда положить результат, вот тут и появляются native-api функции и тот самый sysenter (фанфары, апплодисменты...) а программа продолжает в счастливом неведении работать, и радоватся, что вдруг откуда не возьмись в заказанной области памяти появились нужные данные
пыщь

Последний раз редактировалось JTG; 29.10.2007 в 10:21.
JTG вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
прием сообщений win32 oto_aki Общие вопросы C/C++ 9 26.02.2008 20:58
Функции Win32 API Для работы со звуком FSS Win Api 2 29.01.2008 04:41
то такое мастерство в программировании, что такое мастер программист и что он может? Cezar Свободное общение 29 02.06.2007 23:48
Всем кого интересует Win32 API Drone Win Api 6 13.02.2007 20:37