Какие программы пишутся на языке Си?

Практически весь софт, который используется каждый день, имеет в своей основе код на языке Си.

1. Операционные системы

Язык Си был разработан специально для написания операционной системы Unix. Первые версии Unix были написаны на ассемблере. Язык Си был разработан именно как высокоуровневый язык для разработки больших программных систем. В 1972 году Деннис Ритчи создал язык Си и Unix была переписана на этом языке.

В 1985 году появилась операционная система Windows. Она также была написана на Си.

Компьютеры Apple работают на операционной системе macOS. Ядро этой операционной было написано на Си.

В 1991 на Си была написано ОС Linux. Около 97 процентов из 500 самых мощных суперкомпьютеров мира используют ядро ​​Linux.

Операционные системы для мобильных устройств: iOS , Android и Windows Phone — имеют в своей основе ядра систем macOS, Linux и Windows.

То есть язык Си лежит в основе работы всего программного обеспечения от мобильных телефонов до суперкомпьютеров.

2. Программы с открытым исходным кодом

Язык Си — это язык общения программистов. Для коллективной работы создаются проекты с открытым исходным кодом (Open Source), в которых принимают участие множество программистов.

По данным крупнейшего каталога программ с открытым исходным кодом «Черная утка» более 45% этих программ написано на языке Си.

Индекс Черной утки

3. Драйверы устройств

Для подключения различных устройств к компьютеру: мышь, клавиатура, принтер, сканер и т.д., требуется специальная программа — драйвер. Так как драйвер должен взаимодействовать с операционной системой, а она написана на Си, то и драйвер разумнее писать на Си.

4. Языки программирования

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

На языке Си написаны:

  • C++
  • C#
  • Objective-C
  • Swift
  • Perl,
  • Python,
  • Ruby
  • PHP

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

5. Базы данных

Самые популярные в мире базы данных, в том числе Oracle Database, MySQL, SQLite, MS SQL Server и PostgreSQL , написаны на языке Си. Это связано с тем, что базы данных должны иметь максимальную производительность и надежность.

На вопрос «Почему SQLite написано на Си?» разработчики отвечают:

C Is Best

sqlite.org/whyc.html

6. Графические библиотеки

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

На Си написаны такие библиотеки как Cairo, OpenGL, SDL.

7. Встроенные системы

Сейчас нас окружают встроенные устройства. Вы купили кофе в торговом автомате. Это автомат запрограммирован на Си.

Оплачиваете на кассе покупки в супермаркете. Кассовый аппарат также запрограммирован на Cи.

Оплачиваете парковку. Парковочный автомат также запрограммирован на Си.

В вашем автомобиле много функций, также запрограммированных на Си. В числе них:

  • автоматическая коробка передач
  • системы определения давления в шинах
  • датчики (кислород, температура, уровень масла и т. д.)
  • память для сидений и настройки зеркал.
  • дисплей приборной панели
  • антиблокировочная система тормозов
  • автоматический контроль устойчивости
  • круиз-контроль
  • контроль климата
  • детские замки

8. Космос и авиация

Для авиакосмических приложений необходима максимальная надежность. Поэтому традиционно выбирается язык Си. На языке Си была написано программное обеспечение проекта высадки на Луну.

Программное обеспечение на марсохода Curiosity также написано на Си.

 

 

 

Комментарии 9

  • Уважаемый Константин, я бы хотел понять, как осуществляется взаимосвязь языка Си с «железом». По-моему набор стандартных функций весьма ограничен. Имеются ли дополнительные библиотеки к Си? Если имеются, то где их можно найти, и как можно с ними ознакомиться?
    Заранее благодарю за разъяснения.

    • Для программирования микроконтроллеров на языке Си обычно используется некоторая библиотека, которая идет вместе с устройством. Например, это могут быть файлы driver.h и driver.с. Эта библиотека дает возможность управлять устройством на уровне простейших команд. Полученный код загружается в память устройства с помощью программатора. Искать библиотеки нужно на сайте соответствующего устройства.

      • И всё-таки мне сложно понять, как лишь с помощью стандартной библиотеки можно создавать операционные системы, если даже программно выбрать необходимый файл я не нахожу в языке функциональных возможностей.

        Некоторые решают эту проблему записав результат досовской команды «dir» в текстовый файл, а затем обрабатывают данный текст, — но ведь такое решение, по-меньшей мере, несерьёзно, и имеет множество недостатков…

        Или как, например, определить, сколько дисков подключено к компьютеру…

        И таких вопросов множество.

  • Интересная статья!
    Возникает вопрос!
    Если С так распространён, почему например в Visual Studio 2017 нет среды для разработки на С? Для того чтобы написать программу на С в Visual Studio 2017 сначала нужно «хорошо помучится».

    • Это политика компании Microsoft. Она продвигает собственную платформу .NET Framework, в основе которой язык C# (а также Vb.NET и JScript.NET). Но популярность этой платформы пока мала. И язык C# сильно уступает в популярности языку Java.

    • Есть. Это любой проект С++, просто файлы на си добавляете и пишете. Нет смысла добавлять отдельное окружение конкретно для тех, кто пишет строго на си. У меня конкретно некоторые солюшены имеют смесь проектов с исходниками на си и С++. Никаких проблем. Сишный код компилируется сишным компилятором, плюсовые — плюсовым.

  • Здравствуйте! А если мне нужно взаимодействовать с аппаратной частью ПК, к примеру имеется у меня устройство которое разработал я, терморегулятор и мне нужно данные отправлять на ПК, то есть ПК будет принимать данные по usb, терморегулятор будет отправлять через UART. Вопрос заключается в том как мне получить доступ к usb который будет принимать данные которые будут обрабатываться моей программой которая на ПК?

    • Для каждого устройства существует специальный драйвер у которого есть обработчик сигналов на языке Си. Таким образом программа на Си посылает запросы драйверу и таким образом управляет этим устройством.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.