Подтвердить что ты не робот

Как программное обеспечение/код действительно взаимодействует с оборудованием?

Мой вопрос:

Когда я нажимаю кнопку "Выключить" в Windows/Linux, компьютер выключается. Как команда "Завершить работу" фактически заставила компьютер физически отключиться?

Чтобы сделать мою точку зрения понятной:

Когда мы пинаем мяч, физический контакт между мячом и нашей ногой, для мяча двигаться. Итак, как физическая связь достигается между программным обеспечением и оборудованием? Как обычный текст кодов заставляет компьютер делать то, что он делает?

4b9b3361

Ответ 1

На самом базовом уровне обычный текстовый код в итоге преобразуется в 0 и 1. Эти 0 и 1 представляют собой уровни низкого и высокого напряжения. В этот момент уровни напряжения управляют различными цепями.

Подумайте о вентиляторах с батарейным питанием. Ток, обеспечиваемый батареей, питает электродвигатель, который внутри, использует электричество для создания эмаг-поля, из-за которого вал вращается, что приводит к вращению лопастей вентилятора. Это пример того, как напряжение может стать физическим.

Вы можете построить "переключатель", который при условии правильного напряжения, в конечном итоге заставит блок питания прекратить тянуть ток от стены.

Очевидно, это намного сложнее, чем это, но суть его.

Чтобы сделать вещи проще, компьютер состоит из слоев абстракции.

На самом низком уровне находятся напряжения, схемы, транзисторы и кремний. Следующий уровень выше аппаратного обеспечения - это операционная система. Вместо того, чтобы повторно писать код для каждого типа аппаратного доступа снова и снова, ОС управляет оборудованием и предоставляет "перехваты" для его использования. Эти перехватчики или "интерфейсы" позволяют вашему коду иметь общий метод доступа к разрозненному оборудованию. Поэтому, используя интерфейсы, предоставляемые ОС, вы можете написать свое приложение.

В каждом из этих слоев есть подслои, например, оборудование может иметь прошивку - своего рода набор инструкций низкого уровня, который определяет, как аппаратное обеспечение должно работать, храниться в EEPROM и загружаться при включении привода, Еще одним подслоем является то, как язык более высокого уровня, такой как python, предоставляет библиотекам возможность писать сетевое программное обеспечение без необходимости напрямую обращаться к исходному сокету api, предоставленному ОС.

Операционная система обрабатывает большинство аппаратных и программных взаимодействий. Поставщики оборудования пишут "плагины/модули/драйверы", которые позволяют ОС контролировать свое конкретное оборудование.

Итак, вы должны написать программное приложение, которое использует эти ОС для интерфейса. Например, если вы хотите отключить компьютер, окна обеспечивают интерфейс для выключения компьютера. Ваше программное обеспечение вызовет этот интерфейс, а после компиляции/интерпретации превратится в код, который вызовет интерфейс для ОС. Этот интерфейс, в свою очередь, будет выполнять хорошо известный набор инструкций, чтобы проинструктировать компьютер выключить. Эти инструкции представляют собой 0 и 1, низкий и высокий вольт, которые получают доступ к определенной части компьютера, который предназначен для работы с режимом включения/выключения/ожидания и с учетом правильного сигнала, будут делать именно это.

Ответ 2

Ну, остановка на самом деле не физическая, все схемы на компьютере не полностью отключены, пока вы физически не отключите питание.

Программное обеспечение использует интерфейс APM (Advanced Power Management) в BIOS для управления силовыми цепями на компьютере.

Когда компьютер выключен, он все равно может быть включен без физического переключения переключателя, например, с помощью Wake on LAN сигнала от сетевой карты в компьютере.

Ответ 3

Если вы считаете, что программное обеспечение является другим существом по сравнению с оборудованием, никакое объяснение не удовлетворит вас. Подумайте о программном обеспечении, таком как последовательность электрических зарядов. Весь код, который вы пишете, будет храниться как последовательность электрических зарядов либо на ОЗУ, либо на диске. Таким образом, вы НЕ пишете текст, кроме последовательности электрических зарядов. Ваша видеокарта рисует материал на мониторе на английском языке, чтобы помочь вам понять, что вы печатаете. В одном случае, возможно, действительно, все, что вы делаете на компьютере, является физическим.

Ответ 4

Нога, пиная мяч, является хорошим примером. Это очень похоже на машину. ЦП подключен ко всем остальным частям системы, но в отличие от нервной системы, которая является физической проводкой, при одновременном подключении всех нервов, центральный процессор не поддерживает постоянное соединение с остальной частью системы. Он подключается к желаемой части по требованию - подобно телефонному звонку - все телефоны имеют соединения, но только некоторые из них подключены в любой момент.

Процессор работает, выполняя инструкции - программу. Существуют коды инструкций, которые инструктируют процессор для набора какой-либо части системы. Каждая часть имеет число, и процессор имеет инструкцию набрать номер. Как только процессор набирает это число, он отправляет сообщение этой части - сообщение - это просто данные - от одного бита до любого произвольного размера. Аппаратное обеспечение в этом месте затем действует на кодированное сообщение.

Таким образом, процессор может управлять любым оборудованием, используя тот же механизм. Единственное, что меняется для каждого устройства, - это номер, который процессор должен набрать, и данные, которые процессор отправляет на устройство - данные, которые помещаются в программное обеспечение, в котором работает процессор.

Итак, чтобы выключить машину, CPU набирает номер для устройства управления питанием и отправляет инструкции для перехода в соответствующее состояние питания. Аппаратное обеспечение отвечает, и блок питания перестает посылать основную плату на материнскую плату.

Когда вы пишете softare, вам не обязательно знать все эти детали самостоятельно. Они обычно предварительно упакованы как готовые к использованию коды, поэтому ваше программное обеспечение просто должно сказать "shutdown", и готовые коды для этого (как правило, в BIOS) выполняются для выполнения выключения, как описано выше.

Ответ 5

Программное обеспечение хранится в аппаратных средствах как магнитные домены на жестком диске или гибком диске или в виде низких и высоких напряжений в компьютерных чипах. Когда вы вводите клавиатуру, каждый символ преобразуется в электрическую серию 0 и 1, которые затем сохраняются как низкие и высокие напряжения в компьютерных чипах, называемых RAM. Низкое и высокое напряжение в ОЗУ затем преобразуются в магнитные домены на жестком диске или дискету для последующего считывания голосом дисков в напряжения или сохраняются как низкие и высокие напряжения в энергонезависимых компьютерных микросхемах для последующего чтения, Низкое и высокое напряжение представляют электрические 0 и 1, которые были сгенерированы символами клавиатуры.

Ответ 6

Существует несколько интерфейсов между программами ПК и внешним миром.

Некоторые подключаются к процессору. Примерами являются порты и аппаратные прерывания (IRQ). Они позволяют отправлять небольшие объемы данных (по запросу хост-программы) и вызывающие функции (обработчики прерываний) на основе аппаратных триггеров (дискретная линия от низкого до высокого).

Есть более быстрые интерфейсы для передачи огромных объемов данных, которые обходят CPU. Это называется DMA (прямой доступ к памяти). Они используются для передачи данных на диск, сеть, адаптеры отображения и т.д.

Для порта IO (опкод IN и OUT) программное обеспечение является инициатором. Для IRQ аппаратное обеспечение говорит сначала, чтобы вызвать ответ программного обеспечения.

Разрешается использовать только все драйверы устройств. Если вы попытаетесь сделать это из приложения, ОС мгновенно разбьет его. Приложения подключаются к этому миру через API, представленные драйверами устройств. Многие из API являются стандартизованными, поэтому вы можете заменить фактическое устройство без необходимости взаимодействовать по-разному (принтер, диск, клавиатура, мышь, CRROM, блок питания ATX в вашем примере).

Ответ 7

Сравним физические и программные решения.

Когда вы нажимаете кнопку, вы фактически отправляете 5-вольтовый сигнал на блок питания. Это 5 вольт власти никогда не отключается (даже если вы считаете, что ваш компьютер выключен). Вам нужно это 5 вольт, когда вы нажимаете кнопку, чтобы включить компьютер, - в этот момент еще 5 вольт отправляется в блок питания, чтобы сообщить ему, чтобы он снова включился.

Таким образом, на самом деле ваше физическое нажатие кнопки преобразуется в электронный сигнал, чтобы источник питания мог что-то сделать.

Когда вы думаете о вещах в этих терминах, вы вдруг понимаете, что компьютеру не нужно превращать свой электронный сигнал в физическую кнопку, чтобы отключить питание - что-то, что они добавили, чтобы принести пользу людям (т.е. если вы подумали, что есть крошечный мотор, который выталкивает секретную внутреннюю кнопку "выключен" - она ​​не существует).

Таким образом, все программное обеспечение должно указывать на электронный сигнал, который запускает источник питания для входа в режим ожидания в 5 В.

Ответ 8

Собственно, ваш обычный текст кодов не отключает компьютер напрямую. Он вызывает процедуру базовой операционной системы. Операционная система в свою очередь вызывает ACPI/APM на вашей основной плате. После этого компьютер отключится.

Как маленькие 1 и 0 взаимодействуют с контурами вашего оборудования - довольно сложный предмет, который вы могли бы прочитать хотя бы одну книгу, чтобы полностью понять это...

Ответ 9

Если в случае, если вы ищете, как вообще сделано какое-либо устройство для выполнения его действия, устройство поставляется с прошивками, хранящимися в ROM/CHIP платы управления. Панель управления используется для управления устройством с помощью электрических сигналов.

Над прошивкой у вас будут драйверы/поставщик услуг. Приложение будет использовать эти поставщики/драйверы для связи или поручить устройству выполнить какое-либо действие.

Нажмите здесь, чтобы узнать больше о том, как-прошивки-общаться-к-электронным устройствам для выполнения своих операций?

Ответ 10

Я размышлял об одном и том же вопросе на некоторое время и понял, что на самом деле есть связь с программным (фэнтезийным) миром с аппаратным (реальным) миром.

Подумайте, что-то простое, как схемы и переключатели, а затем подумайте о чем-то более абстрактном, как сумматор или ALU. Со временем абстракция строится на себе и становится сложной в следующем роме. Затем идет микрокод, Opcodes, машинный язык, а затем, наконец, сборка и C. После этого появились BIOS, ОС, драйверы и графический интерфейс, и удерживайте и смотрите, ваша любимая кнопка "Shut down".

Ответ 11

Простое: Коды/программное обеспечение, которое мы пишем, представляют собой электрические сигналы, представленные 0 (OFF) и 1 (ON) на фактическом CPU. С этой точки мы думаем о токах и двигателях.