Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
ASCII
90 / 62 / 10
Регистрация: 15.12.2013
Сообщений: 395
Завершенные тесты: 2
#1

На чем написаны библиотеки для С++ - C++

07.08.2014, 22:06. Просмотров 1204. Ответов 20
Метки нет (Все метки)

Всем привет, последнее время меня терзает один вопрос. На чем написаны библиотеки С++ для работы с сетью например, с графикой и тд? Ведь как известно С++ по умолчанию в своем синтаксисе не поддерживает работу с сетью, с графикой и тд, те же графические интерфейсы, что мы видем в любой современной программе, они же не в консоле сделаны(большинство).

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

Я надеюсь мне подскажут более опытные люди, как это происходит. Заранее очень благодарен и спасибо за внимание!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.08.2014, 22:06     На чем написаны библиотеки для С++
Посмотрите здесь:
Чем классы-исключения библиотеки могуть быть полезнее классов-исключений написанных своими руками C++
C++ Правильно ли написаны выражения
C++ Объясните,почему шаблоны написаны через struct?
Какие конструкции C++ выполняются не там, где написаны? C++
Библиотеки для программы C++
Библиотеки для работы с полигонами 2D C++
Библиотеки для книги Страуструпа C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Убежденный
Системный программист
Эксперт С++
15248 / 6880 / 1092
Регистрация: 02.05.2013
Сообщений: 11,262
Завершенные тесты: 1
07.08.2014, 22:45     На чем написаны библиотеки для С++ #2
Цитата Сообщение от ASCII Посмотреть сообщение
как эти библиотеки заставляют компьютер работать с сетью, выводить трехмерную графику и тд, то есть, на каком языке идет взаимодействие с компьютером посредством библиотек? Как они используют такие возможности компьютера?
У каждой платформы есть свои специфические средства и функции, дающие доступ к
необходимой функциональности - сеть, графика, ввод-вывод и тому подобное.
Например, в Windows это Win32 API (Application Programming Interface). Когда вызывается
какая-нибудь библиотечная printf, она на самом деле так или иначе приводит к вызовам
соответствующих функций системы. Так же и с библиотеками для графики, сетей и т.п.

Для того, чтобы пользоваться API системы, вовсе не обязательно использовать
сторонние библиотеки (хотя они могут быть более удобными) - это можно делать и
напрямую.
ASCII
90 / 62 / 10
Регистрация: 15.12.2013
Сообщений: 395
Завершенные тесты: 2
07.08.2014, 23:00  [ТС]     На чем написаны библиотеки для С++ #3
то есть весь этот потенциал компьютера определяет сама операционная система? А уже потом под каждую операционку пишется библиотека и соответствующий компилятор? А всеми возможностями компьютера позволяет пользоваться сама операционка? Все эти низкоуровневые операции написаны в самой ОС, а уже потом программа работая возбуждает действие каких-либо функций отвечающих за графику, сеть и тд?
Jupiter
Каратель
Эксперт С++
6552 / 3972 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
07.08.2014, 23:18     На чем написаны библиотеки для С++ #4
Цитата Сообщение от ASCII Посмотреть сообщение
то есть весь этот потенциал компьютера определяет сама операционная система?
нет, потенциал компьютера это железо, а операционная система контролирует и предоставляет доступ к этому потенциалу. но и она делает это не непосредственно, а через драйвер.

Цитата Сообщение от ASCII Посмотреть сообщение
А уже потом под каждую операционку пишется библиотека и соответствующий компилятор?
компилятор пишут не только под ОС но и под архитектуру процессора, а библиотеки пишут под компилятор ибо у каждого компилятора своя специфика

Цитата Сообщение от ASCII Посмотреть сообщение
А всеми возможностями компьютера позволяет пользоваться сама операционка? Все эти низкоуровневые операции написаны в самой ОС, а уже потом программа работая возбуждает действие каких-либо функций отвечающих за графику, сеть и тд?
ОС все делает через драйвера
ASCII
90 / 62 / 10
Регистрация: 15.12.2013
Сообщений: 395
Завершенные тесты: 2
07.08.2014, 23:27  [ТС]     На чем написаны библиотеки для С++ #5
Тогда встречный вопрос, если драйвера пишутся на С, а С не поддерживает сам по себе графику, то как тогда пишутся эти драйвера для работы с графикой? Ведь сам по себе С не поддерживает этого?
Заранее благодарю!
Renji
1823 / 1241 / 288
Регистрация: 05.06.2014
Сообщений: 3,551
07.08.2014, 23:34     На чем написаны библиотеки для С++ #6
Ведь как известно С++ по умолчанию в своем синтаксисе не поддерживает работу с сетью, с графикой и тд, те же графические интерфейсы, что мы видем в любой современной программе, они же не в консоле сделаны(большинство).
Не в синтаксисе, а в библиотеках. Не входящие в стандарт библиотеки (тот же boost) никто не отменял.
Тогда встречный вопрос, если драйвера пишутся на С, а С не поддерживает сам по себе графику, то как тогда пишутся эти драйвера для работы с графикой?
Вставки на ассемблере тоже никто не отменял.
Убежденный
Системный программист
Эксперт С++
15248 / 6880 / 1092
Регистрация: 02.05.2013
Сообщений: 11,262
Завершенные тесты: 1
07.08.2014, 23:35     На чем написаны библиотеки для С++ #7
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от ASCII Посмотреть сообщение
то есть весь этот потенциал компьютера определяет сама операционная система?
Да. Для программиста операционная система - это интерфейс между программной и
аппаратной частью компьютера: вызвали одну функцию - запищал динамик, вызвали
другую - файл записался на диск, и т.д. В 99% случаев программы вообще не
могут делать что-либо в обход API системы. То есть, так или иначе вся полезная
работа сводится к нужным системным вызовам.

Цитата Сообщение от ASCII Посмотреть сообщение
А уже потом под каждую операционку пишется библиотека и соответствующий компилятор?
Если библиотека кросс-платформенная или реализует некий стандарт, как в случае
со стандартной библиотекой C/C++, то так и получается: ее интерфейс (API) везде
один и тот же, но внутренняя реализация для каждой платформы своя.

Компилятор и стандартная библиотека реализуют лишь "необходимый минимум" - то,
что входит в стандарт языка. Например, в стандартной библиотеке C++ отсутствуют
средства для работы с 3D-графикой. Такие вещи реализуются в других библиотеках.
И там тоже все сводится к использованию соответствующих функций системы.

Цитата Сообщение от ASCII Посмотреть сообщение
Тогда встречный вопрос, если драйвера пишутся на С, а С не поддерживает сам по себе графику, то как тогда пишутся эти драйвера для работы с графикой? Ведь сам по себе С не поддерживает этого?
Пришли к тому, с чего начинали.
У системы есть API, через который драйверы могут работать с графикой, сетью,
файлами и прочими вещами. Причем на разных уровнях, вплоть до того, чтобы
писать напрямую в сектора диска и формировать Ethernet-кадры.
Renji
1823 / 1241 / 288
Регистрация: 05.06.2014
Сообщений: 3,551
07.08.2014, 23:44     На чем написаны библиотеки для С++ #8
У системы есть API, через который драйверы могут работать с графикой, сетью,
файлами и прочими вещами.
Был бы в системе готовый API, не нужно было бы ставить драйвера чтобы ОС увидела новое железо. От драйвера скорее ожидается прямая (на сколько ОС позволит) работа с железом.
Jupiter
Каратель
Эксперт С++
6552 / 3972 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
07.08.2014, 23:55     На чем написаны библиотеки для С++ #9
Цитата Сообщение от ASCII Посмотреть сообщение
Тогда встречный вопрос, если драйвера пишутся на С, а С не поддерживает сам по себе графику, то как тогда пишутся эти драйвера для работы с графикой? Ведь сам по себе С не поддерживает этого?
Заранее благодарю!
железо выпускается вместе с спецификацией где написано что и как. вся работа сводится к записи такого-то числа по такому-то адресу и вызову соответствующей функции, поставляемой производителем. за виндовс не ручаюсь но под дос оно примерно так и есть.
ASCII
90 / 62 / 10
Регистрация: 15.12.2013
Сообщений: 395
Завершенные тесты: 2
08.08.2014, 00:43  [ТС]     На чем написаны библиотеки для С++ #10
Всем спасибо за внимание!
Убежденный
Системный программист
Эксперт С++
15248 / 6880 / 1092
Регистрация: 02.05.2013
Сообщений: 11,262
Завершенные тесты: 1
08.08.2014, 01:24     На чем написаны библиотеки для С++ #11
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Renji Посмотреть сообщение
Был бы в системе готовый API, не нужно было бы ставить драйвера чтобы ОС увидела новое железо.
Пожалуй, я неточно выразился.
Попытка №2.


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

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

Кстати, раз уж пошла такая пьянка...
В большинстве случаев "обычные" драйверы, написанные для всяких железяк,
не работают с оборудованием напрямую, этим занимаются так называемые
шинные драйверы, обслуживающие соответствующие аппаратные шины и уже
входящие в "штатную поставку" системы. Верхним драйверам часто бывает
достаточно реализовать какой-нибудь интерфейс, определенный системой, и
устройство магическим образом заработает...
gng
632 / 478 / 130
Регистрация: 08.09.2013
Сообщений: 1,264
08.08.2014, 14:46     На чем написаны библиотеки для С++ #12
Прошу прощение у уважаемых Renji и Убежденный,
но думаю, при обсуждении данной темы не принципиально останавливать внимание на функциональном различии ядра ОС, драйверов аппаратуры и фирмвары.
Тем более в рамках разработки открытых систем драйверы и другие системы ядра развиваются в рамках одного проекта (напр. linux kernel). Фирмвара, конечно, пишется отдельно, но отдельно выделять и её функционал - это ещё больше запутать ТС.
gru74ik
08.08.2014, 15:06
  #13

Не по теме:

Цитата Сообщение от gng Посмотреть сообщение
думаю, при обсуждении данной темы не принципиально останавливать внимание на функциональном различии ядра ОС, драйверов аппаратуры и фирмвары
Тема становится всё более true и всё более evil

_Ivana
2887 / 1712 / 148
Регистрация: 01.03.2013
Сообщений: 4,884
Записей в блоге: 2
08.08.2014, 15:56     На чем написаны библиотеки для С++ #14
А я с интересом читаю. Когда писал для микроконтроллеров - все прекрасно и в С и в ассемблере делается, по нужным адресам нужные значения пишутся и все. А тут оказывается такой слоеный пирог и до дна снаружи в принципе не достать?
CyberSolver
101 / 74 / 17
Регистрация: 23.07.2014
Сообщений: 686
Записей в блоге: 1
08.08.2014, 16:14     На чем написаны библиотеки для С++ #15
Цитата Сообщение от ASCII Посмотреть сообщение
На чем написаны библиотеки С++
На Си++
gru74ik
08.08.2014, 16:57
  #16

Не по теме:

Цитата Сообщение от CyberSolver Посмотреть сообщение
На Си++
Внезапно

Убежденный
Системный программист
Эксперт С++
15248 / 6880 / 1092
Регистрация: 02.05.2013
Сообщений: 11,262
Завершенные тесты: 1
08.08.2014, 22:40     На чем написаны библиотеки для С++ #17
Цитата Сообщение от gng Посмотреть сообщение
но думаю, при обсуждении данной темы не принципиально останавливать внимание на функциональном различии ядра ОС, драйверов аппаратуры и фирмвары.
Согласен. Просто мне показалось, что топикстартер как раз находится в
таком состоянии, когда позарез надо докопаться до самой сути
Etien
20 / 20 / 0
Регистрация: 26.01.2014
Сообщений: 176
08.08.2014, 22:54     На чем написаны библиотеки для С++ #18
Каждый на чем умеет, на том и пишет. На С, на Аssembler'e. Кто попроще - на заборе. Кто гений - тот и в кодах может. А когда библиотека готова то важно знать вызов и что и как возвращается.

Когда-то сам развлекался созданием окошек для W из С. Правда через библиотеки просто более низкого уровня. Увы - не гений, в кодах пока трудно.

Всегда Ваш - Etien.
Alexandr_1982
176 / 72 / 17
Регистрация: 04.11.2013
Сообщений: 382
Записей в блоге: 4
10.08.2014, 12:31     На чем написаны библиотеки для С++ #19
На ассемблере.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.08.2014, 13:56     На чем написаны библиотеки для С++
Еще ссылки по теме:
Написание библиотеки в С++ для вызова в C# C++
C++ Библиотеки cpp для junior
С++ библиотеки для консольной графики C++
C++ Сетевые библиотеки для DOS
C++ Откорректировать текст, чтобы с заглавной буквы были написаны только фамилии и первые слова в предложениях

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Evg
Эксперт CАвтор FAQ
17473 / 5711 / 364
Регистрация: 30.03.2009
Сообщений: 15,683
Записей в блоге: 26
10.08.2014, 13:56     На чем написаны библиотеки для С++ #20
Цитата Сообщение от ASCII Посмотреть сообщение
Тогда встречный вопрос, если драйвера пишутся на С, а С не поддерживает сам по себе графику, то как тогда пишутся эти драйвера для работы с графикой? Ведь сам по себе С не поддерживает этого?
Заранее благодарю!
Как в C++ управлять пк

Грубо говоря, работа с аппаратурой идёт через специальные адреса, которые отображены как бы в обычную память. Т.е. операционная система (которая написана в основной массе на языках программирования) выполняет обычную операцию записи в память, а далее материнская обращение по такому адресу отправит на устройство
Yandex
Объявления
10.08.2014, 13:56     На чем написаны библиотеки для С++
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru