Реализация нестандартных операций компьютера программно
Всем доброго времени суток :) Не хочу показаться глупым или что-то в этом роде. Очень сильно интересует один вопрос на счет реализации нестандартных операций и возможностей компьютера при помощи его программного обеспечения. То есть хочу понять как выполняется, например - звуковой ввод-вывод компьютера и прочие нестандартные операции для программиста. Ищу ответ на данный вопрос исходя из того, что я прекрасно понимаю, что это реализуется при помощи API операционной системы и прочих плагинов. Но операционная система и плагин - тоже программа, которая когда-то была тоже написана кем-то (например Windows, Linux и тд.). Именно нужен ответ, как это реализуется без обращения к операционной системе и исходя их того, что может её вообще нету на компьютере и других плагинов тоже (но на самом деле они есть)! Например, как пишется тот же плагин для звукового ввода-вывода компьютера под различные компоненты и периферийные устройства компьютера на ассемблере, Питоне, Си, Си++ или при помощи любого другого средства (прошу не смеяться, сам не знаю и думаю, что может у продвинутых вызову смех своим незнанием). Заранее благодарю вас за оказанную вами помощь
Ответы (1 шт):
API обращаются к операционной системе, а та обычно обращается к драйверу устройства. А оно уже реализует низкоуровневую работу. При этом очень часто под каждое устройство свой драйвер, который может очень сильно отличаться в соседних моделях и содержать много-много строк кода.
Очень часто операционная система не пускает пользователя так далеко, что бы прям управлять устройством как драйвер и очень часто нужно писать свой драйвер, что бы поуправлять той же звуковой картой или портом.
Бытует мнение, что операционную систему или подобных "низкоуровневый код" можно написать исключительно на ассемблере, но это давно уже не так. Такой код вполне можно писать и на си, а некоторые пытаются даже на C#.
Что делать? взять код операционных систем ReactOS (клон Winwos с исходниками!) или MenuetOS/KolibriOS (маленькие ОС, написанные на ассемблере) или то же ядро Линукса и посмотреть. Но предупреждаю, там будет не 5-10 строк кода и даже не 100 для реализации простенького вывода звука "без драйверов и ОС".