|
8 / 8 / 2
Регистрация: 10.12.2013
Сообщений: 148
|
|
Базовые классы .Net это всего лишь удобный способ вызова API функций ОС?17.02.2015, 16:33. Показов 1842. Ответов 5
Метки нет (Все метки)
Тема обширна, но решил создать ее здесь.
Не важно на каком языке писать программу, на Ассемблере, Си, С++ или C#, все равно все сводится к вызову одних и тех же API функций ОС, которым передаются необходимые параметры, при исполнении машинного кода нашей программы процессором. При вызове функции WinAPI ее скомпилированный код сначала загружается в память, а потом ему передается управление . .Net вызывает соответствующую функцию WinApi, Mono под Linux вызывает аналогичную функцию, но уже для Linux. То есть в основном Desktop-программа всего лишь определяет последовательность вызовов API и их параметры. Всё программирование на языках .Net ограничено операционной системой, за пределы которой нельзя выйти, так как виртуальная машина CLR не может существовать без ОС. Так же ОС не даст нам сделать то, что она считает нам не надо делать, например перезаписать память чужого процесса. Но мы сможем обойти этот запрет если вызовем неуправляемый код из написанной нами библиотеки (на Си или С++) или даже возможно обойтись только функциями WinApi. На Ассемблере, Си и С++ можно написать программу (если в ней не будет кода, вызывающего функции ОС), которая уже сможет работать вообще без ОС на компьютере, правильно ли я все понимаю или нет? И в двух словах как происходит "программирование железа", например повышение напряжения или еще что-нибудь, ведь вряд ли для этого используются "базовые классы" или функции ОС?
0
|
|
| 17.02.2015, 16:33 | |
|
Ответы с готовыми решениями:
5
Может ли c# работать без .NET, используя только самые базовые классы На выбор загружаемой системы дано всего лишь 5 секунд и я часто не успеваю. Как и где это поменять? Вызов API функций в VB.NET |
|
Администратор
|
||
| 17.02.2015, 16:58 | ||
Сообщение было отмечено Metall_Version как решение
Решение
AleksyVB, в целом всё правильно, но объём кода в библиотеке .NET очень обширен и нельзя сказать, что .NET - это просто надстройка над WinAPI. Много кода занимает реализация разных уровней абстракции для удобства работы с системой; в WinAPI эти абстракций нет, да и вообще он написан большей частью на Си и организован не по принципам ООП.
Особо впечатляющим по объёму является код WPF - уровень абстракции он предоставляет очень высокий, хотя в итоге всё сводится к вызовам нативных методов DirectX и WinAPI. Добавлено через 3 минуты Ещё по поводу последнего - ОС будет ограничивать программиста от многих действий с железом, а также сам процессор имеет своего рода "дополнительный слой": защищённый режим. Protected mode Что такое Protected Mode и с чем его едят
2
|
||
|
|
||
| 21.02.2015, 00:13 | ||
|
В целях максимального упрощения работы компьютера всё многообразие математических операций в процессоре сводится к сложению двоичных чисел. Поэтому главной частью процессора являются сумматоры (и полусумматоры - при сложении двоичных чисел в каждом разряде образуется сумма и при этом возможен перенос в старший разряд, а также полный одноразрядный сумматор и многоразрядный сумматор). Базовые логические элементы: - "И" логическое умножение - "ИЛИ" логическое сложение - "НЕ" инверсия Любая логическая операция может быть представлена в виде комбинации трёх базовых. Логические элементы оперируют с сигналами, представляющими собой электрические импульсы. Если импульс есть - логический смысл сигнала 1, если импульса нет - 0. На входы логического элемента поступают сигналы-значения аргументов, на выходе появляется сигнал-значение функции. Преобразование сигнала логическим элементом задаётся таблицей состояния (или таблицей истинности), соответствующей логической функции. Важнейшей структурной единицей оперативной памяти, а также внутренних регистров процессора является триггер. Это устройство позволяет запоминать, хранить и считывать информацию размером в 1 бит. Триггер можно построить из двух логических элементов "ИЛИ" и двух элементов "НЕ". В обычном состоянии на входы триггера подан сигнал 0, и триггер хранит 0. Для записи 1 на вход подаётся сигнал 1. Для того чтобы сбросить информацию на вход подаётся сигнал 1, после чего триггер возвратится к исходному "нулевому" состоянию. PS: надеюсь смысл ясен - всё завязано на электрических импульсах, которые определяют состоянии ячеек памяти, с которых процессор выстраивает логическую цепочку из нулей и единиц.
2
|
||
|
8 / 8 / 2
Регистрация: 10.12.2013
Сообщений: 148
|
||
| 21.02.2015, 04:03 [ТС] | ||
|
Когда мы подключаем новое устройство к компьютеру, то он еще не знает как надо общаться с ним (точнее ОС не знает), для этого пишутся драйверы, которые описывают как воспринимаются импульсы и как на них реагировать, что нужно делать при получении той или иной битовой комбинации и какую битовую комбинацию нужно будет отправить в ответ.
0
|
||
|
|
|||
| 21.02.2015, 14:35 | |||
|
Язык ассемблера это низкоуровневый язык программирования. В отличие от машинных кодов, в языке низкого уровня каждой команде соответствует не число, а сокращённое название команды (мнемоника). Иначе говоря - на ассемблере вы общаетесь с процессором на прямую, просто не нулями и единицами, а мнемокодом. Например, команда ADD это сокращение от слова ADDITION (сложение).
1
|
|||
|
8 / 8 / 2
Регистрация: 10.12.2013
Сообщений: 148
|
|||
| 21.02.2015, 18:54 [ТС] | |||
0
|
|||
| 21.02.2015, 18:54 | |
|
Помогаю со студенческими работами здесь
6
Наследование, базовые классы и производные классы Удобный способ вывода информации из bd Самый удобный способ рисовать Срочно - стринги и вызов Win32 API функций (.NET) нужно чтобы функция располагалась до ее вызова, после ее вызова и в другом файле. Как это сделать? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/
O1rJuneU_ls
https:/ / vkvideo. ru/ video-115721503_456239114
|
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ВВЕДЕНИЕ
Введу сокращения:
аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
|