![]() |
|
Модераторы: LSD |
![]()
|
|
||
|
|
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 8 Всего: 207 |
Alexeis,
GoldFinch выдвинул тезис это касаемо C++, Java, Python и т. д.
я ответил компилятор преобразует С код в код, юзающий libc равно как Java преобразует байт-код в нативный код, который либо юзает api системы через сисколы напрямую (тогда тезис априорно не верен) либо через ту же libc, как и С и в этом случае тезис не верен ;) Alexeis, ты как бы теряешься в сути разговора -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 14 Всего: 459 |
Да где же в приведенном мной куске код использования libc ? Я вижу прямой вызов WinAPI функции. Почему ты определяешь что системные вызовы это только вызовы в режиме ядра? Операционная система не предоставляет другого документированного способа для доступа к ее внутренним ресурсам. Я не опровергаю, того что другие языки также могут также компилировать свой код в вызовы WinAPI. Я не вижу где в приведенном коде прослойка рантайма С. Некоторые функции библиотеки С действительно внутри используют вызовы WinAPI, но программист может, их не использовать совсем. Например отключить полностью CRT. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 8 Всего: 207 |
режим ядра - это работа на нулевом кольце привилегий где я об этом говорил? api системы - это не врапперы в libc или kernel32.dll это то, что непосредственно предоставляет ядро ОС в той же libc тысячи функций, но не все они - api -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
| GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: нет Всего: 26 |
MAKCim, часть функций winapi работает только в юзермоде, им не надо syscall\sysenter и т.п.
ядро работает как в ring3, так и в ring0 |
|||
|
||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 8 Всего: 207 |
я понял
у нас разные представления об api что из ядра работает в ring3? -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
| GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: нет Всего: 26 |
MAKCim, у нас разные представления об ядре.
ring3 и ring0 - это состояния потока. поток постоянно переключается из ring0 в ring3 и наоборот. ядро не "работает в кернелмоде". часть кода ядра выполняется потоками в ring0. причем один и тот же код может работать как в ring3, так и в ring0 Вот что пишет MS в справке к WRK
Например функция RtlRemoteCall - работает в юзермоде, и это часть RTL ядра. |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 14 Всего: 459 |
Да я думаю что половина кода, если не больше работает в юзермоде. Но WinAPI это не только само ядро, но и куча вспомогательных сервисов и библиотек, которые, сами не переходят в режим ядра. Думаю что в линуксе некоторые из этих задач выполняют сторонние библиотеки. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 8 Всего: 207 |
блин, ребята
я всегда понимал и понимаю под ядром непосредственно то, что отлично от любой внешней программы для linux это все, что в /usr/src/linux так вот, эта хрень под названием ядро работает только в ring0 а вот уже _пользовательские процессы_ постоянно переключаются ring3 <-> ring0 -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
| bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 0 Всего: 88 |
О, кстати как раз вот нужно. Не подскажешь системный вызов, соответствующий GetCurrentProcessId? -------------------- Обижено школьников: 8 |
|||
|
||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 8 Всего: 207 |
bems,
getpid() -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
| bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 0 Всего: 88 |
MAKCim, я вобще-то про винду говорил
-------------------- Обижено школьников: 8 |
|||
|
||||
| GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: нет Всего: 26 |
||||
|
||||
| bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 0 Всего: 88 |
Ну возвращают они константы, ничего особенно интересного не вижу. Так где тут системные вызовы? (за 5 минут мы 4 штуки насчитали где их нет) Добавлено через 45 секунд GoldFinch, изивиняюсь. вопрос был к MAKCim -------------------- Обижено школьников: 8 |
|||
|
||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 8 Всего: 207 |
я должен наизусть все номера знать? ;) -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
| GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: нет Всего: 26 |
bems, тех которые работают в юзермоде - полно. Те же GetModuleHandle и прочие, работающие с TEB и PEB.
Добавлено через 2 минуты и 35 секунд MAKCim, а как отличать функции ядра от не-функций ядра? лазать в сорцы ядра, и смотреть, должна функция работать в ring0 или нет? |
|||
|
||||
![]()
|
| Правила ведения Религиозных войн | |
|
|
1. Уважайте собеседника 2. Собеседник != враг 3. Старайтесь воздерживаться от тем вида "Windows Rulez" или "Linux Rulez" С уважением, Smartov. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Религиозные войны | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |