Программы постоянно совершенствуются и заменяются новыми версиями. Жизненный цикл программы начинается, когда она выпускается и заканчивается, когда программа больше не поддерживается и не обновляется.
Программы не становятся опасными сразу же по достижении конца жизненного цикла; во многих случаях вы можете продолжать использовать их, но должны знать, что ответственность за риск использования не может быть возложена на ее авторов. Если вы работаете на работодателя, то от вас могут потребовать перейти на более новую версию программы, если это является частью процесса управления безопасностью компании.
Первый эффект, который вы ощутите после окончания жизненного цикла программы, это то что компании прекратят телефонную и Интернет поддержку в решении вопросов. Поэтому если у вас есть проблемы с использованием продукта, вы не получите никакой помощи. Производитель также может отменить отчеты о вирусах, так что вы не сможете сообщить им о проблемах. В то же время вы можете также обнаружить, что дешевые обновления для последних версий приобретенной программы больше недоступны.
Роль партнерской программы и как формуруется прибыль
Самые крупные компании, производящие программное обеспечение, некоторое время продолжат предлагать критически важную поддержку для устаревших программ. Однако, эти программы не будут их приоритетом, вместо этого они сосредоточатся на устранении проблем в современных программах и выпуске заплат для них; и только после этого будут тестировать устаревшие приложения, чтобы видеть повреждены ли они и можно ли их исправить. Это значит, что пользователи устаревших приложений подвергнутся риску от уязвимостей больше чем те, которые используют более новые программы. Разработчики вредоносных программ, которые знают о неустраненных уязвимостях в устаревших приложениях, скорее всего подвергнут атаке эти старые, более слабые программы, предпочитая их более защищенным программам.
Например, несмотря на свое широкое распространение, сейчас Windows XP больше не поддерживается компанией Microsoft (с апреля 2014-го года). В приведенной ниже таблице, вы можете видеть, что Windows XP и Windows Vista, две старые операционные системы, имеют более высокое число случаев заражения, в сравнении с более новыми операционными системами, имеющими высшую степень защиты.
Таблица индикации уровня инфицированности на 1 000 компьютеров различных версий Microsoft Windows
Если вы используете программы с истекшим жизненным циклом, то приложения безопасности, такие как современные брандмауэры и антивирусные программы, являются чрезвычайно важными. Также необходимо регулярно обновлять ключевые приложения, в частности веб-браузеры и программы электронной почты, которые используются для отправки и приема личной информации. Хорошая информационная защита сохранит вашу безопасность. Хотя даже если вы принимаете эти меры предосторожности, вам следует начать планировать переход на более современные приложения. Переход от устаревшей версии программы к более новой сравнительно дешевый (или даже бесплатен), и любые расходы следует рассматривать в свете того что вы можете потерять, если не будете использоваться более защищенные программы.
«Я Пытался Предупредить Вас» Последнее Предупреждение Илона Маска 2022
- По материалам The Open University.
- Перевод thingshistory.com. Использовать только с разрешения!
Источник: thingshistory.com
17.9 Завершение выполнения приложения
Выход из цикла обработки сообщений означает одно – необходимо завершить программу. Обычно приложения Windows завершают свою работу по команде пользователя. В этих случаях Windows убирает с экрана окно приложения и посылает в приложение сообщение WM_DESTROY (не в очередь приложения, а с непосредственным вызовом оконной функции).
В чем должна состоять обработка этого сообщения? В процессе своего выполнения программ могла использовать те или иные ресурсы Windows: создать кисти, перья или шрифты, установить таймеры, динамически выделить память и т. д. Перед завершением приложения эти ресурсы следует освободить, иначе можно вывести из строя всю систему. Возможно также, что программа использовала какие-то средства, не связанные с Windows, которые перед завершение работы следует привести в порядок: закрыть открытые файлы, выключить включенную аппаратуру и т. д. Наконец, можно вывести на экран предупреждающее сообщение.
Выполнив все эти завершающие действия, программа должна вызвать функцию Windows PostQuitMessage(). Эта функция генерирует сообщение Windows WM_QUIT, тут же завершается с возвратом значения FALSE. Это приводит к разрыву цикла while обработки сообщений, выполнению последнего оператора return функции WinMain() и завершению программы. Функции Win32 API, которые непосредственно выполняют работу по удалению приложения из системы Windows – GetCurrentProcess(), TerminateProcess() и ExitProcess().
18. Препроцессор
С пpепpоцессоp является пpоцессоpом макpокоманд и автоматически используется С компилятоpом пеpед обpаботкой пpогpаммы для внесения в нее некотоpых изменений. Пpепpоцессоp позволяет опpеделять макpосы, использование котоpых помогает избегать пpименения сложных констpукций. С пpепpоцессоp пpедоставляет несколько основных функций:
- Включение в пpогpамму дополнительных файлов, содеpжащих опpеделения pазличных функций.
- Создание макpосов, котоpые являются сокpащениями для пpоизвольных фpагментов исходного текста пpогpаммы, и их замена пpепpоцессоpом на соответствующие макpоопpеделения во всей пpогpамме.
- Условная компиляция. Используя специальные диpективы пpепpоцессоpа имеется возможность включения или исключения частей пpогpаммы в зависимости от pазличных условий.
18.1 Общие пpеобpазования
- Все комментаpии С заменяются пpобелами.
- Последовательности символов backslash-newline удаляются, вне зависимости от их местоположения. Это позволяет пpеpывать длинные стpоки в пpогpамме для ее офоpмления.
- Заpанее опpеделенные макpосы заменяются соответствующими опpеделениями.
Источник: studfile.net
Что является концом программы
Каждая программа должна содержать директиву END, отмечающую конец исходного кода программы. Все строки, которые следуют за директивой END, Турбо Ассемблером игнорируются. Если вы опустите директиву END, то генерируется ошибка. Вы можете посчитать, что концом программы является конец файла, но это не так: всегда требуется указывать директиву END.
END является типичной директивой в том смысле, что она не порождает никакого кода. Например:
DOSSEG
Это, возможно, простейшая программа на Ассемблере. Она ничего не делает, просто немедленно возвращает управление DOS. Обратите внимание на использование директивы END для завершения кода, из которого состоит данная программа.
Без сомнения вы заметили, что на одной строке с директивой END содержится метка ProgramStart. Кроме завершения программы, директива END может выполнять еще и вторую функцию, указывая, где должно начинаться выполнение при запуске программы. По той или иной причине вы можете не захотеть начать выполнение программы в файле .EXE с первой инструкции. Директива END предусматривает такие случаи. Предположим, например, вы запускаете программу, полученную в результате ассемблирования и компоновки следующего кода:
DOSSEG
mov cx,0 DelayLoop:
call Delay ; пауза на время,
; выполнения 64 циклов
Выполнение здесь начинается не на первой инструкции исходного кода (MOV CX,0) по метке Delay. Вместо этого выполнение начинается с инструкции CALL Delay по метке ProgramStart, как определено в директиве END.
Если программа состоит только из одного модуля (то есть одного исходного файла), то в директиве END всегда нужно определять адрес запуска программы. В программе, состоящей из нескольких модулей, определять адрес запуска программы следует только в директиве END модуля, содержащего инструкцию, с которой должно начаться выполнение программы. В директивах END других модулей должно указываться только ключевое слово END и нечего более. В самом деле: каждая программа должна иметь точку начала выполнения, но было бы бессмысленно иметь несколько таких точек. Убедитесь в том, что вашей программе имеется один (и только один) адрес начала выполнения. (Кстати, если в вашей программе имеется два таких адреса, компоновщик TLINK использует только первый адрес, который он обнаруживает, и игнорирует другой.)
Источник: studentpmr.ru