Что такое компьютерное программное обеспечение
Обновлено: 21.11.2024
Несмотря на то, что были приложены все усилия для соблюдения правил стиля цитирования, могут быть некоторые расхождения. Если у вас есть какие-либо вопросы, обратитесь к соответствующему руководству по стилю или другим источникам.
Наши редакторы рассмотрят то, что вы отправили, и решат, нужно ли пересматривать статью.
программное обеспечение, инструкции, которые сообщают компьютеру, что делать. Программное обеспечение включает в себя весь набор программ, процедур и подпрограмм, связанных с работой компьютерной системы. Этот термин был придуман, чтобы отличить эти инструкции от оборудования, то есть физических компонентов компьютерной системы. Набор инструкций, предписывающих аппаратному обеспечению компьютера выполнять задачу, называется программой или программным обеспечением.
Двумя основными типами программного обеспечения являются системное программное обеспечение и прикладное программное обеспечение. Системное программное обеспечение управляет внутренним функционированием компьютера, в основном через операционную систему, а также контролирует такие периферийные устройства, как мониторы, принтеры и устройства хранения данных. Прикладное программное обеспечение, напротив, предписывает компьютеру выполнять команды, заданные пользователем, и можно сказать, что оно включает в себя любую программу, которая обрабатывает данные для пользователя. Таким образом, прикладное программное обеспечение включает в себя текстовые процессоры, электронные таблицы, управление базами данных, программы инвентаризации и расчета заработной платы и многие другие «приложения». Третья категория программного обеспечения — это сетевое программное обеспечение, которое координирует обмен данными между компьютерами, связанными в сети.
Компьютеры размещают веб-сайты, состоящие из HTML, и отправляют текстовые сообщения так же просто, как. РЖУ НЕ МОГУ. Взломайте этот тест, и пусть какая-нибудь технология подсчитает ваш результат и раскроет вам его содержание.
Программное обеспечение обычно хранится на внешнем устройстве долговременной памяти, таком как жесткий диск или магнитная дискета. Когда программа используется, компьютер считывает ее с запоминающего устройства и временно помещает инструкции в оперативную память (ОЗУ). Процесс сохранения и последующего выполнения инструкций называется «запуском» или «исполнением» программы. Напротив, программы и процедуры, которые постоянно хранятся в памяти компьютера с использованием технологии только для чтения (ПЗУ), называются прошивкой или «аппаратным программным обеспечением».
Редакторы Британской энциклопедии Эта статья была недавно отредактирована и обновлена Адамом Августином.
Несмотря на то, что были приложены все усилия для соблюдения правил стиля цитирования, могут быть некоторые расхождения. Если у вас есть какие-либо вопросы, обратитесь к соответствующему руководству по стилю или другим источникам.
Наши редакторы рассмотрят то, что вы отправили, и решат, нужно ли пересматривать статью.
программное обеспечение, инструкции, которые сообщают компьютеру, что делать. Программное обеспечение включает в себя весь набор программ, процедур и подпрограмм, связанных с работой компьютерной системы. Этот термин был придуман, чтобы отличить эти инструкции от оборудования, то есть физических компонентов компьютерной системы. Набор инструкций, предписывающих аппаратному обеспечению компьютера выполнять задачу, называется программой или программным обеспечением.
Двумя основными типами программного обеспечения являются системное программное обеспечение и прикладное программное обеспечение. Системное программное обеспечение управляет внутренним функционированием компьютера, в основном через операционную систему, а также контролирует такие периферийные устройства, как мониторы, принтеры и устройства хранения данных. Прикладное программное обеспечение, напротив, предписывает компьютеру выполнять команды, заданные пользователем, и можно сказать, что оно включает в себя любую программу, которая обрабатывает данные для пользователя. Таким образом, прикладное программное обеспечение включает в себя текстовые процессоры, электронные таблицы, управление базами данных, программы инвентаризации и расчета заработной платы и многие другие «приложения». Третья категория программного обеспечения — это сетевое программное обеспечение, которое координирует обмен данными между компьютерами, связанными в сети.
Компьютеры размещают веб-сайты, состоящие из HTML, и отправляют текстовые сообщения так же просто, как. РЖУ НЕ МОГУ. Взломайте этот тест, и пусть какая-нибудь технология подсчитает ваш результат и раскроет вам его содержание.
Программное обеспечение обычно хранится на внешнем устройстве долговременной памяти, таком как жесткий диск или магнитная дискета. Когда программа используется, компьютер считывает ее с запоминающего устройства и временно помещает инструкции в оперативную память (ОЗУ).Процесс сохранения и последующего выполнения инструкций называется «запуском» или «исполнением» программы. Напротив, программы и процедуры, которые постоянно хранятся в памяти компьютера с использованием технологии только для чтения (ПЗУ), называются прошивкой или «аппаратным программным обеспечением».
Редакторы Британской энциклопедии Эта статья была недавно отредактирована и обновлена Адамом Августином.
Компьютерное программное обеспечение — это программа, которая позволяет компьютеру выполнять определенную задачу, в отличие от физических компонентов системы (аппаратного обеспечения). Это включает в себя прикладное программное обеспечение, такое как текстовый процессор, который позволяет пользователю выполнять задачу, и системное программное обеспечение, такое как операционная система, которая обеспечивает правильную работу другого программного обеспечения за счет взаимодействия с оборудованием и другим программным обеспечением.
Содержание
Термин "программное обеспечение" впервые был использован в этом смысле Джоном У. Тьюки в 1957 году. В компьютерных науках и разработке программного обеспечения под компьютерным программным обеспечением понимаются все компьютерные программы. Концепция считывания различных последовательностей инструкций в память устройства для управления вычислениями была изобретена Чарльзом Бэббиджем как часть его разностной машины. Теория, лежащая в основе большинства современных программ, была впервые предложена Аланом Тьюрингом в его эссе 1935 года Вычислимые числа с приложением к проблеме Entscheidungsproblem. [1]
Отношение к оборудованию
Компьютерное программное обеспечение называется так в отличие от компьютерного оборудования, которое охватывает физические взаимосвязи и устройства, необходимые для хранения и выполнения (или запуска) программного обеспечения. В компьютерах программное обеспечение загружается в оперативную память (ОЗУ) и выполняется в центральном процессоре. На самом низком уровне программное обеспечение состоит из машинного языка, характерного для отдельного процессора. Машинный язык состоит из групп двоичных значений, обозначающих инструкции процессора (объектный код), которые изменяют состояние компьютера по сравнению с его предыдущим состоянием.
Программное обеспечение – это упорядоченная последовательность инструкций по изменению состояния аппаратного обеспечения компьютера в определенной последовательности. Обычно он написан на языках программирования высокого уровня, которые проще и эффективнее для людей (более близкие к естественному языку), чем машинный язык. Языки высокого уровня компилируются или интерпретируются в объектный код машинного языка. Программное обеспечение также может быть написано на языке ассемблера, по сути, мнемоническом представлении машинного языка с использованием алфавита естественного языка. Язык ассемблера должен быть собран в объектный код через ассемблер.
Отношение к данным
Программное обеспечение исторически считалось посредником между электронным оборудованием и данными, которые определяются инструкциями, определяемыми программным обеспечением. Поскольку вычислительная математика становится все более сложной, различие между программным обеспечением и данными становится менее точным. Данные обычно рассматривались либо как выходные данные, либо как входные данные исполняемого программного обеспечения. Однако данные — не единственный возможный выход или вход. Например, информация о конфигурации (системы) также может считаться входными данными, хотя и не обязательно рассматриваемыми данными (и уж точно не данными приложений). Выходные данные конкретной части исполняемого программного обеспечения могут быть входными данными для другого исполняемого программного обеспечения. Следовательно, программное обеспечение можно рассматривать как интерфейс между оборудованием, данными и/или (другим) программным обеспечением.
Типы
Практические компьютерные системы делят программное обеспечение на три основных класса: системное программное обеспечение, программное обеспечение для программирования и прикладное программное обеспечение, хотя различие является произвольным и часто размытым.
- Системное программное обеспечение помогает запускать компьютерное оборудование и компьютерную систему. Он включает в себя операционные системы, драйверы устройств, средства диагностики, серверы, оконные системы, утилиты и многое другое. Цель системного программного обеспечения состоит в том, чтобы максимально изолировать разработчика приложений от деталей конкретного используемого компьютерного комплекса, особенно памяти и других аппаратных функций, а также таких вспомогательных устройств, как средства связи, принтеры, считыватели, дисплеи, клавиатуры и т. д.
- Программное обеспечение для программирования обычно предоставляет инструменты, помогающие программисту писать компьютерные программы и программное обеспечение с использованием различных языков программирования более удобным способом. Инструменты включают текстовые редакторы, компиляторы, интерпретаторы, компоновщики, отладчики и так далее. Интегрированная среда разработки (IDE) объединяет эти инструменты в программный пакет, и программисту может не понадобиться вводить несколько команд для компиляции, интерпретатора, отладки, трассировки и т. д., поскольку в IDE обычно есть продвинутый графический пользователь. интерфейс (графический интерфейс).
- Прикладное программное обеспечение позволяет людям выполнять одну или несколько конкретных (не связанных с компьютером) задач. Типичные приложения включают промышленную автоматизацию, программное обеспечение для бизнеса, образовательное программное обеспечение, медицинское программное обеспечение, базы данных и компьютерные игры.Предприятия, вероятно, являются крупнейшими пользователями прикладного программного обеспечения, но почти во всех областях человеческой деятельности в настоящее время используются те или иные формы прикладного программного обеспечения. Он используется для автоматизации всех видов функций.
Компьютерные вирусы
Компьютерные вирусы представляют собой вредоносные компьютерные программы, даже если они не считаются программным обеспечением. Они могут быть созданы как любой из трех типов программного обеспечения. Некоторые вирусы вызывают незначительные проблемы, такие как замедление работы компьютера или использование электронной почты для распространения. Другие вирусы могут вызвать более серьезные проблемы, например уничтожить данные или повредить оборудование.
Программа и библиотека
Программа может быть недостаточно полной для выполнения компьютером. В частности, для завершения может потребоваться дополнительное программное обеспечение из библиотеки программного обеспечения. Такая библиотека может включать программные компоненты, используемые автономными программами, но которые не могут выполняться сами по себе. Таким образом, программы могут включать в себя стандартные подпрограммы, общие для многих программ, извлеченные из этих библиотек. Библиотеки также могут включать автономные программы, которые активируются каким-либо компьютерным событием и/или выполняют некоторые функции (например, "уборка" компьютера), но не возвращают данные своей активирующей программе. Программы могут вызываться другими программами и/или могут вызывать другие программы.
Три слоя
Пользователи часто видят вещи иначе, чем программисты. Люди, использующие современные компьютеры общего назначения (в отличие от встроенных систем, аналоговых компьютеров, суперкомпьютеров и т. д.), обычно видят три уровня программного обеспечения, выполняющего различные задачи: платформа, приложение и пользовательское программное обеспечение.
Операция
Компьютерное программное обеспечение должно быть "загружено" в память компьютера (также известную как память и ОЗУ).
После загрузки программного обеспечения компьютер может выполнять его. Компьютеры работают, исполняя компьютерную программу. Это включает в себя передачу инструкций от прикладного программного обеспечения через системное программное обеспечение к оборудованию, которое в конечном итоге получает инструкцию в виде машинного кода. Каждая инструкция заставляет компьютер выполнять операцию — перемещение данных, выполнение вычислений или изменение потока управления инструкциями.
Перемещение данных обычно происходит из одного места в памяти в другое. Иногда это связано с перемещением данных между памятью и регистрами, что обеспечивает высокоскоростной доступ к данным в ЦП.
Простым примером того, как работает программное обеспечение, является то, что происходит, когда пользователь выбирает в меню такую запись, как "Копировать". В этом случае выполняется условная инструкция для копирования текста из данных в области «документ», находящейся в памяти, возможно, в область промежуточного хранения, известную как область данных «буфер обмена». Если выбран другой пункт меню, например «Вставить», программное обеспечение может выполнить инструкции по копированию текста из области данных буфера обмена в определенное место в том же или другом документе в памяти.
В настоящее время почти единственным ограничением использования компьютерного программного обеспечения в приложениях является изобретательность дизайнера/программиста. Следовательно, большие области деятельности (например, игра в шахматы уровня гроссмейстера), которые раньше считались невозможными, если они выполнялись с помощью программного моделирования, теперь обычно программируются. Единственная область, которая до сих пор оказалась достаточно защищенной от программного моделирования, — это область человеческого искусства, особенно приятная музыка и литература.
Качество и надежность
Надежность программного обеспечения — это ошибки, сбои и сбои, связанные с созданием и эксплуатацией программного обеспечения. Во многом качество и надежность программы связаны с прикладным программным обеспечением, написанным для конкретного системного программного обеспечения. Одним из примеров является то, что приложение для более старого системного программного обеспечения может не работать с более новым.
Архитектура программного обеспечения
Архитектура программного обеспечения системы включает компоненты программного обеспечения, их внешние свойства и их отношения друг с другом. Этот термин также относится к документации архитектуры программного обеспечения системы. [2]
История
Истоки архитектуры программного обеспечения как концепции впервые были выявлены в исследовательской работе Эдсгера Дейкстры в 1968 году и Дэвида Парнаса в начале 1970-х годов. Ученые подчеркнули, что структура программной системы имеет значение, и правильная структура имеет решающее значение. [3] Популярность изучения этой области возросла с начала 1990-х годов, когда исследовательская работа была сосредоточена на архитектурных стилях (шаблонах), языках описания архитектуры, архитектурной документации и формальных методах. [4]
Описание архитектуры
Языки описания архитектуры
Языки описания архитектуры (ADL) используются для описания архитектуры программного обеспечения.Различные организации разработали несколько различных ADL, в том числе Wright (разработано Карнеги-Меллон), Acme (разработано Карнеги-Меллон), xADL (разработано UCI), Darwin (разработано Имперским колледжем Лондона) и DAOP-ADL (разработано Университет Малаги). Общими элементами ADL являются компонент, коннектор и конфигурация.
Просмотры
Архитектура программного обеспечения обычно организована в представлениях [5], которые аналогичны различным типам чертежей, создаваемых в архитектуре зданий.
Лицензия
Лицензия на программное обеспечение дает пользователю право использовать программное обеспечение в лицензионной среде. Некоторое программное обеспечение поставляется с лицензией при покупке в готовом виде или OEM-лицензией в комплекте с оборудованием. Программное обеспечение также может быть бесплатным или условно-бесплатным.
Проприетарное программное обеспечение
Проприетарное программное обеспечение – это программное обеспечение, для которого существуют ограничения на использование и копирование, обычно устанавливаемые правообладателем. Предотвращение использования, копирования или модификации может быть достигнуто юридическими или техническими средствами. Технические средства включают выпуск только машиночитаемых двоичных файлов и отказ от исходного кода, читаемого человеком. Юридические средства могут включать лицензирование программного обеспечения, авторское право и патентное право. Несвободное программное обеспечение может быть продано за деньги как коммерческое программное обеспечение или доступно по нулевой цене как бесплатное программное обеспечение. Монополия, обеспечиваемая несвободным программным обеспечением, позволяет распространителю коммерческих копий устанавливать любую цену за эти копии. Распространители непатентованного программного обеспечения имеют больший контроль над тем, что пользователи могут делать с этим программным обеспечением, чем непатентованное программное обеспечение.
Бесплатное программное обеспечение
Свободное программное обеспечение, согласно определению Free Software Foundation, — это программное обеспечение, которое можно использовать, копировать, изучать, изменять и распространять без ограничений. Свобода от таких ограничений занимает центральное место в этой концепции, поскольку бесплатное программное обеспечение является проприетарным программным обеспечением (это различие не связано с взиманием платы). Обычный способ распространения программного обеспечения как свободного программного обеспечения заключается в том, что программное обеспечение передается получателю по лицензии свободного программного обеспечения (или находится в общественном достоянии), а исходный код программного обеспечения должен быть доступен (для скомпилированного язык). Большая часть бесплатного программного обеспечения распространяется онлайн бесплатно или офлайн по предельной стоимости распространения, но это не обязательно, и люди могут продавать копии по любой цене.
Чтобы помочь отличить программное обеспечение libre (свободное) от программного обеспечения бесплатного (бесплатного), Ричард Столмен, основатель движения за свободное программное обеспечение, разработал следующее объяснение: «Бесплатное программное обеспечение — это вопрос свободы, а не цены. Чтобы понять концепцию, вы должны думать о «свободном» как о «свободе слова», а не как о «бесплатном пиве». Более конкретно, свободное программное обеспечение означает, что пользователи компьютеров имеют свободу сотрудничать с теми, кого они выбирают, и контролировать программное обеспечение, которое они используют.
Программное обеспечение с открытым исходным кодом
Программное обеспечение с открытым исходным кодом – это компьютерное программное обеспечение, исходный код которого доступен в соответствии с лицензией на авторские права, которая позволяет пользователям изучать, изменять и улучшать программное обеспечение, а также распространять его в измененной или неизмененной форме. Это наиболее яркий пример разработки с открытым исходным кодом.
В 1998 году группа лиц выступила за замену термина "свободное программное обеспечение" термином "программное обеспечение с открытым исходным кодом" (OSS) как выражение, менее двусмысленное и более удобное для корпоративного мира. Разработчики программного обеспечения могут захотеть опубликовать свое программное обеспечение с лицензией на программное обеспечение с открытым исходным кодом, чтобы любой мог также разработать такое же программное обеспечение или понять, как оно работает. Программное обеспечение с открытым исходным кодом обычно позволяет любому создавать новую версию программного обеспечения, портировать ее на новые операционные системы и архитектуры процессоров, делиться ею с другими или продавать ее. Цель открытого исходного кода – сделать продукт более понятным, поддающимся модификации, воспроизводимому, надежному или просто доступному, но при этом все еще востребованным на рынке.
Определение открытого исходного кода, в частности, представляет философию открытого исходного кода и далее определяет границы использования, модификации и распространения программного обеспечения с открытым исходным кодом. Лицензии на программное обеспечение предоставляют пользователям права, которые в противном случае были бы запрещены авторским правом. К ним относятся права на использование, модификацию и распространение. Несколько лицензий на программное обеспечение с открытым исходным кодом соответствуют определению открытого исходного кода. Наиболее ярким примером является популярная Стандартная общественная лицензия GNU (GPL). В то время как открытый исходный код представляет собой способ сделать исходные коды продукта общедоступными, лицензии с открытым исходным кодом позволяют авторам точно настраивать такой доступ.
Бесплатное ПО
Бесплатное ПО – это компьютерное программное обеспечение, защищенное авторским правом, которое предоставляется для бесплатного использования в течение неограниченного времени, в отличие от условно-бесплатного ПО, за которое пользователь должен платить (например, по истечении пробного периода). Единственным критерием для того, чтобы быть классифицированным как «бесплатное программное обеспечение», является то, что программное обеспечение должно быть доступно для использования в течение неограниченного времени бесплатно.Лицензия на программное обеспечение может налагать одно или несколько других ограничений на тип использования, включая личное использование, индивидуальное использование, некоммерческое использование, некоммерческое использование, академическое использование, коммерческое использование. или любая их комбинация. Например, лицензия может быть «бесплатной для личного некоммерческого использования». Есть некоторое программное обеспечение, которое может считаться бесплатным, но имеет ограниченное распространение; то есть их можно загружать только с определенного сайта, и их нельзя распространять повторно. Следовательно, такое программное обеспечение не будет свободно распространяемым программным обеспечением. Согласно базовому определению, это программное обеспечение должно быть бесплатным; согласно более строгим определениям, они не были бы. Все, что создано с помощью бесплатных программ, может распространяться бесплатно (например, графика, документы, волны, созданные пользователем).
Бесплатное ПО отличается от бесплатного программного обеспечения из-за разных значений слова "бесплатный". Бесплатное программное обеспечение предоставляется бесплатно и относится к нулевой цене, в отличие от бесплатного программного обеспечения, которое описывается как «бесплатное», что означает бесплатное изучение, изменение, копирование, повторное распространение, совместное использование и использование программного обеспечения в любых целях. Однако многие программы являются как бесплатными, так и свободными программами. Они доступны по нулевой цене, предоставляют исходный код и распространяются с разрешениями бесплатного программного обеспечения. Это программное обеспечение будет называться исключительно свободным программным обеспечением, чтобы избежать путаницы с бесплатным программным обеспечением, которое обычно не поставляется с исходным кодом и, следовательно, является проприетарным программным обеспечением.
Условно-бесплатное ПО
Условно-бесплатное программное обеспечение – это метод маркетинга коммерческого программного обеспечения, при котором пробная версия распространяется заранее и без оплаты, как это обычно бывает с проприетарным программным обеспечением. Условно-бесплатное программное обеспечение обычно распространяется бесплатно либо путем загрузки из Интернета, либо с дисков с обложек журналов. Пользователь пробует программу, поэтому условно-бесплатное ПО также известно как «попробуй, прежде чем купить», демонстрационное ПО, пробное ПО и многими другими названиями. Условно-бесплатная программа сопровождается требованием оплаты, и лицензия на распространение программного обеспечения часто требует такой оплаты. Оплата часто требуется по истечении установленного периода времени после установки.
Примечания
- ↑ Майк Холли, Электронные мозги/Истории на заре компьютерной эры (Лондон: British Broadcasting Corporation and Granta Books, 2005, ISBN 1-86-207663-4).
- ↑ Лен Басс, Пол Клементс и Рик Казман, Практика архитектуры программного обеспечения (Бостон: Addison-Wesley, 1998, ISBN 0-201-19930-0).
- ↑ SEI, Истоки исследования архитектуры программного обеспечения. Проверено 31 мая 2008 г.
- ↑ Гарлан и Шоу, Введение в архитектуру программного обеспечения. Проверено 31 мая 2008 г.
- ↑ Пол Клементс, Феликс Бахманн, Лен Басс, Дэвид Гарлан, Джеймс Айверс, Рид Литтл, Роберт Норд и Джудит Стаффорд, Документирование архитектур программного обеспечения: взгляды и не только (Бостон: Addison-Wesley, 2003 г., ISBN 0-201-70372-6).
Ссылки
- Басс, Лен, Пол Клементс и Рик Казман: Практическая архитектура программного обеспечения, второе издание. Бостон: Аддисон Уэсли, 2003. ISBN 0321154959.
- Крухтен, Филипп. «Архитектурные чертежи: модель архитектуры программного обеспечения 4 + 1». ПО IEEE. 12 (6): 42–50.
- Никетт, Пол. Softword: происхождение слова «программное обеспечение». ISBN 1-58922-233-4.
Внешние ссылки
Все ссылки получены 17 марта 2017 года.
Кредиты
История этой статьи с момента ее импорта в Энциклопедию Нового Света:
Примечание. На использование отдельных изображений, лицензированных отдельно, могут распространяться некоторые ограничения.
Программное обеспечение — это набор инструкций, данных или программ, используемых для управления компьютером и выполнения определенных задач. Проще говоря, программное обеспечение сообщает компьютеру, как работать. Это общий термин, используемый для обозначения приложений, сценариев и программ, которые работают на таких устройствах, как ПК, мобильные телефоны, планшеты и другие интеллектуальные устройства. Программное обеспечение отличается от аппаратного обеспечения, которое представляет собой физические компоненты компьютера, выполняющие работу.
Без программного обеспечения большинство компьютеров были бы бесполезны. Например, веб-браузер — это программное приложение, которое позволяет пользователям выходить в Интернет. Без программного обеспечения веб-браузера чтение этой страницы в Webopedia было бы невозможно. Операционная система (ОС) — это программа, которая служит интерфейсом между другими приложениями и оборудованием на компьютере или мобильном устройстве. Протокол TCP/IP встроен во все основные операционные системы, что позволяет компьютерам обмениваться данными по сетям дальней связи. Без ОС или встроенных в нее протоколов было бы невозможно получить доступ к веб-браузеру.
Большая часть программного обеспечения написана на языках программирования высокого уровня, поскольку этот язык ближе к естественному человеческому языку, чем к машинному. Затем язык высокого уровня переводится в машинный код низкого уровня с помощью компилятора или интерпретатора для понимания компьютером.Программное обеспечение также может быть написано на языке ассемблера низкого уровня , но это менее распространено.
Чтобы узнать больше о программной инженерии, ознакомьтесь с этим курсом.
История программного обеспечения
Концепция вычислений восходит к древним временам, когда были изобретены такие устройства, как счеты. Однако эти изобретения были полностью аппаратными - для программного обеспечения требовался процессор общего назначения и компьютерная память, в которой можно хранить, запускать и останавливать многоразовые наборы подпрограмм и математических функций. Этот тип технологии появился в истории сравнительно недавно.
Ада Лавлейс написала первую известную компьютерную программу в 1843 году для аналитической машины. Аналитическая машина была разработана Чарльзом Бэббиджем в 1837 году и была концепцией первого общего механического компьютера. Однако программа оставалась теоретической, поскольку аналитическая машина так и не была построена физически. Первая современная теория программного обеспечения была предложена Аланом Тьюрингом в его эссе 1935 года «Вычислимые числа с приложением к Entscheidungsproblem (проблеме решения)
Впервые компьютер с хранимой в памяти программой хранил часть программного обеспечения в электронной памяти и успешно выполнял ее 21 июня 1948 года. Ученый-компьютерщик Том Килберн и его коллега Фредди Уильям построили один из первых компьютеров, Manchester Small- Масштабная экспериментальная машина (SSEM) в Манчестерском университете в Англии. SSEM был запрограммирован на выполнение математических расчетов с использованием инструкций машинного кода. Программе потребовалось 52 минуты, чтобы правильно вычислить наибольший делитель двойки в степени 18 (262 144).
В конце 1950-х годов появился первый язык программирования: Фортран. Вскоре последовали и другие языки, в том числе COBOL и BASIC. Эти языки позволяли программам быть конкретными абстрактным образом и не зависели от деталей аппаратной архитектуры компьютера. Эти языки в основном предназначались для указания числовых расчетов.
Еще одним важным нововведением в истории разработки программного обеспечения стало появление программного обеспечения с открытым исходным кодом в 1990-х годах. Ядро Linux было выпущено в 1991 году, а интерес к программному обеспечению с открытым исходным кодом резко возрос после публикации в 1998 году исходного кода браузера Netscape Navigator.
Программное обеспечение и аппаратное обеспечение
Компьютерное программное и аппаратное обеспечение требуют друг друга — ни одно из них не может использоваться по отдельности. Книга дает полезную аналогию. Страницы и чернила книги — это аппаратное обеспечение. Слова, предложения, абзацы и общий смысл — это программное обеспечение. Компьютер без программного обеспечения подобен книге, полной пустых страниц. Компьютер нуждается в программном обеспечении, чтобы сделать его полезным, точно так же, как слова нужны, чтобы сделать книгу значимой.
Хотя и то, и другое необходимо, между ними есть большая разница:
- Оборудование – это физическое устройство, например материнская плата, а программное обеспечение – это набор кода, который необходимо установить в систему.
- Оборудование не может выполнять задачу без программного обеспечения. Точно так же программное обеспечение не может выполнять задачу без аппаратного обеспечения.
- Оборудование со временем изнашивается, а программное обеспечение — нет.
- Аппаратное обеспечение понимает только язык машинного уровня. Программное обеспечение принимает входные данные на удобочитаемых языках и преобразует их в язык машинного уровня.
- Программное обеспечение можно легко создать, изменить или удалить, в то время как замена оборудования требует больших навыков и, как правило, дороже.
Сравнительная таблица программного и аппаратного обеспечения
Сборник инструкций, позволяющих пользователю взаимодействовать с компьютером
Физические устройства, необходимые для хранения и выполнения (запуска) программного обеспечения
Системное программное обеспечение, программное обеспечение для программирования и прикладное программное обеспечение
Устройства ввода, хранения, обработки, управления и вывода
Предоставляет инструкции оборудованию
Выполняет задачу на уровне компьютера
Программный сбой носит систематический характер. Программное обеспечение не имеет увеличивающейся частоты отказов.
Сбой оборудования случаен. Аппаратное обеспечение все чаще выходит из строя на последнем этапе.
Программное обеспечение долговечно и не изнашивается, но со временем в нем могут появиться ошибки, которые можно исправить.
Оборудование со временем изнашивается.
Программное обеспечение логично по своей природе.
Оборудование является физическим по своей природе.
QuickBooks, Adobe Acrobat, Google Chrome, Microsoft Word, Microsoft Excel, Apple Maps
Типы программного обеспечения
- Прикладное программное обеспечение
- Системное программное обеспечение
Два других типа компьютерного программного обеспечения включают:
- Программное обеспечение
- Драйвер
Программное обеспечение и драйверы часто рассматриваются как типы системного программного обеспечения, но мы объясним все четыре типа по отдельности.
Прикладное программное обеспечение
Прикладное программное обеспечение — это программное обеспечение, помогающее конечному пользователю выполнять такие задачи, как исследование, создание заметок, установка будильника, создание графики или ведение журнала учетной записи.Прикладное программное обеспечение находится над системным программным обеспечением и отличается от системного программного обеспечения тем, что оно предназначено для конечного использования и специфично по своей функциональности. Этот тип программного обеспечения иногда называют второстепенным программным обеспечением, поскольку оно устанавливается и работает в зависимости от потребностей пользователя. Любое приложение на мобильном телефоне является примером прикладного программного обеспечения.
Типы прикладного программного обеспечения включают:
Системное программное обеспечение
Системное программное обеспечение помогает пользователю, оборудованию и прикладному программному обеспечению взаимодействовать и функционировать друг с другом. Системное программное обеспечение действует как посредник или промежуточный уровень между пользователем и оборудованием. Это необходимо для управления всей компьютерной системой — при первом включении компьютера именно системное программное обеспечение загружается в память. В отличие от прикладного программного обеспечения, системное программное обеспечение не используется конечными пользователями. Вместо этого он работает в фоновом режиме устройства.
Наиболее известным примером системного программного обеспечения является ОС, которая управляет всеми другими программами на компьютере. Помимо ОС, другие примеры системного программного обеспечения включают:
- Базовая система ввода-вывода (BIOS): встроенная прошивка, которая определяет, что компьютер может делать без доступа к программам с диска.
- Загрузка: загружает ОС в основную память или ОЗУ компьютера.
- Ассемблер: берет основные инструкции и преобразует их в набор битов, которые процессор может использовать для выполнения основных операций.
- Драйвер устройства: управляет определенным типом устройства, подключенного к компьютеру, например клавиатурой или мышью.
Программное обеспечение
Отнесенное к типу системного программного обеспечения, программное обеспечение для программирования не используется конечным пользователем. Он используется программистами, которые пишут код. Программное обеспечение для программирования — это программа, которая используется для написания, разработки, тестирования и отладки другого программного обеспечения, включая прикладное и системное программное обеспечение. Эти программы служат своего рода переводчиком. Он берет языки программирования, такие как Python или C++, и переводит их в нечто, понятное компьютеру, известное как код машинного языка. Помимо упрощения кода, это также:
- Назначает хранилище данных
- Приводит исходный код, а также сведения о программе.
- Предлагает диагностические отчеты
- Системные ошибки Recifties во время выполнения
Драйвер
Также классифицируемый как тип системного программного обеспечения, драйвер работает и управляет устройствами и периферийными устройствами, подключенными к компьютеру, позволяя устройству выполнять назначенную задачу. Аппаратные устройства, для подключения к системе которых требуется драйвер, включают дисплеи , звуковые карты , принтеры , мыши и жесткие диски.
Поскольку существует множество типов устройств, драйверы позволяют программным системам взаимодействовать с помощью стандартизированного языка. ОС обычно поставляется со встроенными драйверами для мыши, клавиатуры и принтера по умолчанию, поэтому сторонние установки не требуются. Для продвинутых устройств может потребоваться внешняя установка драйвера. Если используется несколько ОС, например Linux, Windows или Mac, для каждой из них необходимо поддерживать отдельные драйверы. Примеры драйверов включают:
- Драйвер BIOS
- Драйвер дисплея
- Драйвер материнской платы
- драйвер ПЗУ
- USB-драйвер
- Драйвер VGA
Драйверы устройств могут работать в режиме ядра или в пользовательском режиме. Запуск драйвера в пользовательском режиме повышает стабильность, поскольку плохо написанный драйвер пользовательского режима не может привести к сбою системы из-за перезаписи памяти ядра. И наоборот, режим ядра предпочтительнее для сети с малой задержкой.
SaaS или локальная версия
Программное обеспечение можно развернуть несколькими способами, наиболее распространенными из которых являются облачные вычисления и локально .
Облачные вычисления – это предоставление вычислительных услуг через Интернет вместо того, чтобы локальные серверы или персональные устройства обрабатывали приложения. Вычислительные услуги могут включать серверы, хранилища, базы данных, сети, программное обеспечение, аналитику и интеллект. Эти службы перемещаются за пределы брандмауэра организации, и к ним можно получить доступ через Интернет. Программное обеспечение как услуга (SaaS) – это модель службы облачных вычислений, которая обеспечивает удаленный доступ к программному обеспечению, его функциям и последующим обновлениям от третьей стороны, называемой поставщиком услуг приложений (ASP).
Локальное программное обеспечение внедряется в пределах физических границ предприятия, часто в центре обработки данных компании. Установив и запустив программное обеспечение на оборудовании, расположенном на территории компании, ИТ-персонал получает физический доступ к данным и может напрямую контролировать настройку, управление и безопасность вычислительной инфраструктуры и данных.
Компании, предоставляющие SaaS, часто продают свои услуги по модели подписки, когда клиенты платят определенную сумму каждую неделю, месяц или год и получают услугу взамен. Компании, которые выбирают SaaS, платят только за используемые ресурсы.И наоборот, компании, выбравшие локальное размещение, несут ответственность за текущие расходы на серверное оборудование, энергопотребление и пространство, которое занимает оборудование.
Компания, использующая локальное программное обеспечение, сохраняет более полный контроль над безопасностью. Они отвечают за настройку политик доступа пользователей, установку брандмауэров, антивирусного программного обеспечения и исправлений безопасности, а также за защиту от кибератак. Компаниям с адекватной ИТ-поддержкой не нужно беспокоиться о том, что другая компания будет обрабатывать их личные данные. Однако при неправильном управлении локальные серверы могут сделать компанию уязвимой для нарушений безопасности.
В случае облачных вычислений данные обрабатываются поставщиком облачных услуг. У крупных облачных провайдеров есть надежные группы безопасности и жесткие процедуры. Но со всеми конфиденциальными данными, которые они хранят, он представляет собой заманчивую цель для хакеров. Выбирая поставщика облачных услуг, обратите внимание на его протоколы безопасности, чтобы обеспечить безопасность ваших данных.
Популярные поставщики программного обеспечения
Компьютерное программное обеспечение — это программа, которая сообщает компьютеру, что делать. Эти инструкции могут быть внутренними командами, такими как обновление системных часов, или ответом на внешний ввод, полученный с клавиатуры или мыши. Хотя существует множество различных типов программного обеспечения, созданного как с открытым исходным кодом, так и с проприетарными стандартами, программирование в основном сводится к нескольким основным правилам.
Игры — это один из видов компьютерного программного обеспечения.
Аппаратное и программное обеспечение
Фундаментальное различие между аппаратным и программным обеспечением заключается в том, что первое осязаемо, а второе — нет. Аппаратное обеспечение — это сама машина, выполняющая всю физическую работу, а программное обеспечение сообщает различным аппаратным компонентам, что делать и как взаимодействовать друг с другом. Это позволяет компьютерам адаптироваться к новым задачам или устанавливать новое оборудование. В то время как аппаратное обеспечение включает в себя такие вещи, как мониторы, центральные процессоры (ЦП), клавиатуры и мыши; программное обеспечение включает в себя такие вещи, как текстовые редакторы, операционные системы и игры.
Компьютерные мониторы и другое оборудование физически осязаемы, а программное обеспечение — нет.
Типы
Программисты создают программное обеспечение с открытым исходным кодом или проприетарное программное обеспечение.
Компьютерное программное обеспечение часто проверяется хакерами на наличие уязвимостей, прежде чем оно становится общедоступным.
Как это работает
Аппаратное обеспечение понимает только два основных понятия, включение и выключение, которые в двоичном языке представлены как 1 и 0. Программное обеспечение действует как переводчик между человеческим языком и двоичным, что позволяет аппаратному обеспечению понимать вводимые ему инструкции. Программисты пишут команды, называемые исходным кодом, на языках программирования, похожих на те, которые кто-то может использовать в повседневной речи. Затем используется другая программа, называемая компилятором, для преобразования команд исходного кода в двоичные файлы. В результате получается исполняемая компьютерная программа.
Открытый исходный код и проприетарный
Программисты создают программное обеспечение с открытым исходным кодом или проприетарное программное обеспечение. Первый тип может редактироваться и адаптироваться пользователями, а второй защищен и не предназначен для редактирования людьми, не входящими в компанию, которая его продает. В то время как программы с открытым исходным кодом обычно бесплатны, проприетарные лицензии предоставляются дистрибьюторам и должны быть платными.
Оба типа обычно имеют сопоставимое качество программирования, но исправление ошибок в продуктах с открытым исходным кодом обычно происходит быстрее, чем в проприетарных. Кроме того, некоторые люди предпочитают использовать приложения с открытым исходным кодом, потому что они могут чувствовать себя причастными к конечному проекту или чувствовать, что компании-разработчики программного обеспечения создают монополии и хотят альтернатив. Другие предпочитают программы с закрытым исходным кодом, потому что они иногда более стабильны или менее уязвимы для хакеров, часто поставляются в комплекте и поставляются с обслуживанием клиентов от компании.
Некоторые ИТ-специалисты специализируются на аппаратном обеспечении, а другие занимаются программированием программного обеспечения.
Читайте также: