Свободное программное обеспечение
Понятие о программе и программном обеспечении. Open source software (ПО с открытым исходным текстом). Сообщество разработчиков и пользователей. Свободное программное обеспечение в России. Введение ограничений, сдерживающие факторы распространения.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 11.01.2015 |
Размер файла | 1,3 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Введение
Возможности современного ПК столь велики, что все большее число людей находят ему применение в своей работе, учебе, быту. Важнейшим качеством современного компьютера является его «дружественность» по отношению к пользователю. Общение человека с компьютером стало простым, наглядным, понятным. Компьютер сам подсказывает пользователю, что нужно делать в той или иной ситуации, помогает выходить из затруднительных положений. Это возможно благодаря программному обеспечению компьютера.
Программное обеспечение (ПО) ? это совокупность машинных программ, соответствующей качественной документации, баз данных, а также технологических процедур по эксплуатации ПО.
Программное обеспечение является очень широким понятием, которое охватывает:
* системное программное обеспечение работоспособности компьютеров;
* прикладное программное обеспечение для решения задач любой предметной области в виде пакетов прикладных программ;
* инструментарий технологии программирования (программное обеспечение сферы производства программ).
В данной работе мы рассмотрим свободное программное обеспечение.
Цель работы - изучить свободное программное обеспечение.
Структура работы - данная работа состоит из введения, четырёх глав, заключения, списка литературы.
1. Понятие о программе и программном обеспечении
open source software разработчик
Программа -- один из компонентов программного обеспечения. В зависимости от контекста, рассматриваемый термин может относиться также и к исходным текстам программы. Компьютерные программы, как объект интеллектуальной собственности, относится к категории нематериальных активов. Программа -- это совокупность инструкций и алгоритмов, описывающих порядок определенных действий.
Программа -- представленная в объективной форме совокупность данных и команд, предназначенных для функционирования ЭВМ и других компьютерных устройств с целью получения определённого результата, включая подготовительные материалы, полученные в ходе разработки программы для ЭВМ, и порождаемые ею аудиовизуальные отображения.
Компьютерная программа ? последовательность инструкций, предназначенная для исполнения электронным устройством (компьютером) и написанная на языке программирования.
Большинство пользователей компьютеров используют программы, предназначенные для выполнения конкретных прикладных задач, таких как подготовка и оформление документов, математические вычисления, обработка изображений и т. п. Соответствующие программные средства называют прикладными программами.
Программное обеспечение (ПО) -- это совокупность программ, позволяющая организовать решение задач на ЭВМ. ПО и архитектура ЭВМ (аппаратное обеспечение) образуют комплекс взаимосвязанных и разнообразных функциональных средств ЭВМ, определяющих способность решения того или иного класса задач. Необходимо различать ПО и математическое обеспечение (МО).
МО -- это математические методы и алгоритмы, обеспечивающие решение поставленных задач. По мере развития поколений вычислительной техники одновременно совершенствовалось и программное обеспечение от простейших машинных команд до языков программирования высокого уровня и сложных операционных систем, от простейших текстовых редакторов до современных компьютерных технологий.
2. Классификация программного обеспечения
Программное обеспечение делится на 3 класса: системное ПО, прикладное ПО и системы программирования (инструментальные системы).
2.1 Системное ПО
Главную часть системного ПО составляет Операционная система (ОС). К системному ПО также относятся программы для диагностики и контроля работы компьютера, архиваторы, антивирусы, программы для обслуживания дисков, программные оболочки, драйверы внешних устройств, сетевое ПО и телекоммуникационные программы. Примеры важнейших системных программ: MS-DOS, Norton Commander, Norton Utilities, Windows.
2.2 Прикладное ПО
Прикладное ПО предназначено для решения определенного класса задач пользователей. Существуют пакеты прикладных программ (например, MS Works) и библиотеки стандартных программ (например, MathCad для вычисления функций, построения графиков и решения уравнений).
Компьютеры широко используются для подготовки к печати различных документов. Подготовленный и оформленный документ затем распечатывается на принтере. Программы, предназначенные для ввода и обработки текстов на ПК, называются текстовыми редакторами.
Процесс подготовки текстов называется редактированием. Примеры важнейших текстовых редакторов: Лексикон, Word. Современное прикладное ПО включает в себя основные офисные компьютерные технологии: текстовый процессор (технология обработки текста), табличный процессор (технология обработки численных данных), система управления базами данных (технология обработки данных различной природы), графический редактор (технология обработки графических изображений). Примером пакета программ, содержащим важнейшие офисные компьютерные технологии, является Microsoft Office 2003 Windows.
К прикладному ПО относятся текстовые и графические редакторы, электронные таблицы, системы управления базами данных (СУБД), графические редакторы систем автоматизированного проектирования (САПР), автоматизированные рабочие места (АРМ) бухгалтера, секретаря и т.д., издательские, информационные и справочные системы, обучающие и тестирующие программы, игровые программы. Примеры важнейших прикладных программ: Word, Excel, AutoCad.
2.3 Системы программирования
Важнейшей частью ПО являются системы программирования (инструментальные системы), позволяющие разрабатывать новые программы на языках программирования. Примеры важнейших систем программирования: Turbo Pascal, QBasic, Borland C++, Visual Basic.
3. Понятие о свободном программном обеспечении
Свободное программное обеспечение (СПО, англ. free software, также software libre или libre software), свободный софт -- программное обеспечение, пользователи которого имеют права («свободы») на его неограниченную установку, запуск, а также свободное использование, изучение, распространение и изменение (совершенствование), и распространение копий и результатов изменения. Если на программное обеспечение есть исключительные права, то свободы объявляются при помощи свободных лицензий.
Как и бесплатное (freeware) и бесплатно распространяемое программное обеспечение, СПО можно использовать и обычно получить бесплатно (но конкретный распространитель может взимать плату за получение у него копий, за каналы доставки, носители -- компакт-диски или дополнительные сервисные услуги). Однако freeware обычно распространяется в исполнимом виде без исходных кодов и является проприетарным ПО, а чтобы ПО было свободным, получателям должны быть доступны его исходные коды, из которых можно создавать исполнимые файлы, вместе с соответствующими лицензиями. Из-за того, что словом «продажа» называют и продажу оригинала, и рапространение копий за деньги, и платное лицензирование (обычно на несвободных условиях), некоторые всё же считают свободное ПО подмножеством бесплатного.
Часто различают свободное и открытое ПО (open source) -- хотя доступность исходного кода для СПО является обязательным, а многие открытые программы являются одновременно свободными, но открытым иногда называют[и некоторое несвободное проприетарное ПО (например, коммерческое ПО с открытым исходным кодом, Shared source).
Движение СПО зародилось в 1983 году, когда Ричард Столлман сформировал идею о необходимости дать программную свободу (англ. software freedom) пользователям. В 1985 году Столлман основал Фонд свободного программного обеспечения, чтобы обеспечить организационную структуру для продвижения своей идеи.
Бизнес-модели СПО, как правило, основаны на принципе расширения возможностей -- например, новые объекты применения, обучение, интеграция, настройка или сертификация. В то же время, некоторые бизнес-модели, которые работают с проприетарным программным обеспечением, не совместимы со свободным программным обеспечением, особенно те, которые заставляют пользователей платить за лицензию, чтобы законно использовать программный продукт.
3.1 Свободные лицензии
В соответствии с современным законодательством большинства стран, программный продукт и его исходный код охраняются авторским правом, которое даёт авторам и правообладателю (чаще всего правообладателем является организация-наниматель автора служебных произведений) власть над изменением, распространением, способом использования и поведением программы, включая случаи, когда исходный код опубликован. Сила власти авторских прав в современном обществе настолько велика, что даже изучение или попытки исправления ошибок программ путём дизассемблирования могут преследоваться уголовным правом.
Чтобы избавить пользователей программ от проблем, вызванных перекосом законодательства об охране результатов интеллектуальной деятельности в сторону правообладателя, авторы и правообладатели могут передать пользователям права на четыре вышеперечисленные свободы действий. Это достигается путём выпуска исходного кода программного обеспечения на условиях одной из особого рода лицензий, называемых свободными лицензиями. Несмотря на то, что по условиям свободных лицензий выданные пользователям разрешения правообладатель отозвать не может, свои права, гарантированные законодательством, авторы сохраняют.
Свободное ПО легко коммерциализируется -- существует множество бизнес-моделей, где исключена необходимость оплаты копий программы. Например, высокую популярность имеет бизнес-модель, когда предприниматель может заработать за счёт предоставления услуг технической поддержки. Правообладателю свободного кода может быть интересен другой вариант -- реализация программных продуктов на условиях коммерческой лицензии, в случае, если клиенту необходимо интегрировать свободный код в проприетарное программное обеспечение, но он не желает раскрытия своих разработок.
3.2 Разработка ПО как научное исследование
Особенность программного обеспечения состоит в том, что оно производится в одной форме -- в виде исходного текста, а распространяется и используется часто в другой -- в виде исполнимых программ, машинных кодов, по которым невозможно однозначно восстановить исходный текст. Чтобы эффективно изменять программу, исправлять ошибки или даже просто точно установить, что и как делает программа, необходимо располагать её исходным текстом, поскольку при компиляции вмашинный код программа утрачивает удобочитаемость.
Первоначально создание программного обеспечения для компьютеров было в первую очередь академическим занятием. Для специалистов в области компьютерной науки каждая программа представляла собой результат научного исследования, в некотором смысле аналогичный публикации статьи. Это означает, что исходный текст программы был обязательно доступен всему научному сообществу, поскольку любой научный результат должен быть верифицируем, то есть подтверждаться другими исследователями и быть открытым для критики. Таким образом, процесс разработки программного обеспечения более принципиально схож с научным процессом: учёный брал существующие программы, исправлял их в соответствии со своими идеями и публиковал исправленные программы -- новый результат.
Однако технология производства компьютеров развивалась не менее активно, чем программное обеспечение для них. В 1970-е годы существовало огромное разнообразие различных архитектур вычислительных машин, различавшихся также производительностью и ценой. Естественно, для каждой архитектуры приходилось разрабатывать отдельный набор программного обеспечения. С середины 1970-х в большинстве американских университетов для академических разработок использовались компьютеры архитектуры PDP-10, что позволяло сотрудникам разных университетов использовать разработки друг друга на своих машинах. Сотрудники лаборатории искусственного интеллекта Массачусетского технологического института (MIT) в конце 1970-х разработали для PDP-10 собственную операционную систему ITS (Incompatible Timesharing System -- несовместимая система с разделением времени) и очень большой набор программ для неё. Исходные тексты написанных в MIT программ были общедоступны, сотрудники других университетов пользовались их исходными текстами и присылали им исправления, всё программное обеспечение в этих лабораториях было полностью академическим.
3.3 Введение ограничений для ПО
В условиях огромного многообразия архитектур компьютеров программное обеспечение составляло неотъемлемую часть самой машины, причём далеко не самую дорогостоящую часть. Производители компьютеров поставляли их вместе с основным программным обеспечением -- по крайней мере, с операционной системой. Производство компьютеров было наукоёмким, но в основе своей коммерческим предприятием.
В ситуации, когда программное обеспечение является объектом продажи наравне с предметами обихода, на него автоматически распространяются уже не только законы научной разработки, но и свойства материальных предметов, которыми можно торговать, обмениваться, право владения и пользования которыми стоит охранять законодательно. Так программное обеспечение попало в разряд интеллектуальной собственности: то есть исходный текст программы стал рассматриваться как произведение, объект применения авторского права.
Чтобы защитить свои интересы, производители компьютеров и программного обеспечения используют лицензии -- вид договора между обладателем авторских прав и пользователем (покупателем) программного обеспечения. Подобные договоры заключались и с университетами: например, университету передавались исходные тексты программ и право их изменять, но запрещалось распространять их за пределами университета. Подобные ограничения означали, что тексты соответствующих программ не могли открыто обсуждаться в сообществе, то есть не существовали для научной разработки. Были у компьютеров и программного обеспечения покупатели и вне академической среды -- например, банки. Таким пользователям не столь важно получить исходные тексты программ, они заинтересованы в программном обеспечении как в законченном продукте и готовы платить деньги за надёжные и удобные программы.
Однако компьютеры развивались очень быстро, и бывшие вполне современными в 1970-е PDP-10 к началу 1980-х уже устарели и значительно отставали по производительности от более современных машин. Однако ни для одной из новых архитектур уже не было операционной системы и прочего программного обеспечения, разработанного исключительно в академической среде и по её правилам. Теперь университеты должны были покупать новые компьютеры с новым программным обеспечением и выполнять условия лицензии, ограничивающей их права на разработку и распространение ПО -- иначе говоря, ограничивающей возможность научной модели разработки и распространения программного обеспечения.
В это время в лаборатории искусственного интеллекта MIT разрабатывались так называемые LISP-машины, умевшие на аппаратном уровне интерпретировать язык программирования, похожий на LISP -- развитый и перспективный язык программирования. На LISP же была написана операционная система для таких машин и всё программное обеспечение для них. В начале 1980-х некоторые сотрудники лаборатории искусственного интеллекта выкупили у MIT права на LISP-машины и математическую систему Macsyma и основали собственные коммерческие компании для дальнейшей разработки в этой области. Очень многие сотрудники лаборатории перешли работать в эти компании, после чего все их дальнейшие разработки уже становились закрытыми для научного сообщества. Новые LISP-машины распространялись с лицензиями, запрещающими пользователям модифицировать и распространять исходные тексты программ. Программы, которые раньше для сотрудников MIT были аналогом научных публикаций, стали принадлежащим кому-то патентованным продуктом.
Одному из сотрудников, оставшихся в лаборатории искусственного интеллекта MIT, Ричарду Столлману, такое положение дел казалось недопустимым нарушением открытого научного процесса разработки программного обеспечения. Он в одиночку пытался в рамках прежней академической модели развивать LISP-машины и открыто реализовывать изменения, аналогичные сделанным в рамках закрытой коммерческой разработки, чтобы LISP-машины MIT могли конкурировать с патентованными аналогами. Конечно, эта попытка угнаться за активной разработкой целой компании была обречена на неудачу.
Тогда в поисках единомышленников Ричард Столлман создаёт некоммерческую организацию «Фонд свободного программного обеспечения». Своей основной целью Фонд ставит сохранение программного обеспечения, процесс разработки которого всегда будет гарантированно открытым, а исходные тексты всегда доступны. Более масштабная цель Фонда -- разработка операционной системы, целиком состоящей из открыто разрабатываемого программного обеспечения. Декларируя такую цель, Столлман, фактически, хотел вернуть представлявшееся ему идеальным состояние, когда в MIT работали в собственной операционной системе для PDP-10.
Операционная система, разрабатываемая в рамках Фонда, должна была стать совместимой с операционной системой UNIX. К началу 1980-х UNIX очень широко использовался, в том числе и в академической среде. Для этой операционной системы существовало много программ, свободно распространявшихся в научном сообществе, поэтому хотелось, чтобы эти программы работали и в новой -- свободной -- операционной системе. Эта будущая операционная система получила название GNU.
Фонд свободного ПО ранее делил несвободное ПО на полусвободное (такое, которое отличается от свободного лишь запретом на коммерческое использование) и проприетарное (собственническое, англ. proprietary) (которое не имеет всех четырёх свобод, даже если коммерческое использование разрешено).
В отличие от собственнического, полусвободное ПО упоминается редко. Иногда к несвободному ПО относят и всё «коммерческое ПО», считая свободное ПО видом бесплатного, однако это неверно: получать выгоду от программы можно не только продажей несвободных лицензий.
3.4 Определение свободного ПО
Для того чтобы сохранить модель научного сотрудничества между разработчиками, необходимо было обеспечить, чтобы исходные тексты программ, написанных разработчиками, оставались доступными для чтения и критики всему научному сообществу с сохранением авторства произведений. Для этого Ричард Столлманс формулировал понятие свободное программное обеспечение, в котором отразились принципы открытой разработки программ в научном сообществе, сложившемся в американских университетах в 1970-е годы. Столлман явно сформулировал эти принципы, они же -- критерии свободного программного обеспечения. Эти критерии оговаривают те права, которые авторы свободных программ передают любому пользователю:
-Программу можно свободно использовать с любой целью («нулевая свобода»).
-Можно изучать, как программа работает, и адаптировать её для своих целей («первая свобода»). Условием этого является доступность исходного текста программы.
-Можно свободно распространять копии программы -- в помощь товарищу («вторая свобода»).
-Программу можно свободно улучшать и публиковать свою улучшенную версию -- с тем, чтобы принести пользу всему сообществу («третья свобода»). Условием этой третьей свободы является доступность исходного текста программы и возможность внесения в него модификаций и исправлений.
Возможность исправления ошибок и улучшения программ -- самая важная особенность свободного и открытого программного обеспечения, что просто невозможно для пользователей закрытых частных программ даже при обнаружении в них ошибок и дефектов, количество которых, как правило, неизвестно никому.
Только удовлетворяющая всем четырём перечисленным принципам программа может считаться свободной программой, то есть гарантированно открытой и доступной для модернизации и исправления ошибок и дефектов, и не имеющей ограничений на использование и распространение. Нужно подчеркнуть, что эти принципы оговаривают только доступность исходных текстов программ для всеобщего использования, критики и улучшения, и права пользователя, получившего исполнимый или исходный код программы, но никак не оговаривают связанные с распространением программ денежные отношения, в том числе не предполагают и бесплатности. В англоязычных текстах здесь часто возникает путаница, поскольку слово «free» по-английски означает не только «свободное», но и «бесплатное», и нередко употребляется по отношению к бесплатному программному обеспечению, которое распространяется без взимания платы за использование, но недоступно для изменения пользователями и сообществом, потому что его исходные тексты не опубликованы. Такое бесплатное ПО вовсе не является свободным. Наоборот, свободное ПО вполне можно распространять (и распространяют), взимая при этом плату, однако соблюдая при этом критерии свободы: каждому пользователю предоставляется право получить исходные тексты программ без дополнительной платы (за исключением цены носителя), изменять их и распространять далее. Всякое программное обеспечение, пользователям которого не предоставляется такого права, является несвободным -- независимо от любых других условий.
3.5 Open source software (ПО с открытым исходным текстом)
Открытый доступ к исходным текстам программ является ключевым признаком свободного ПО, поэтому предложенный несколько позднее Эриком Реймондом термин open source software (ПО с открытым исходным текстом) некоторым представляется даже более удачным для обозначения данного феномена, чем изначально предложенный Столлманом «free software». Столлман настаивает на различии этих двух понятий, так как слова open source указывают лишь на наличие одного, не самого важного (хотя и необходимого для реализации двух из четырёх свобод), по его мнению, из свойств, присущих свободному ПО -- возможности увидеть исходный код.
Хотя различные формальные определения свободных и открытых произведений обычно во многом совпадают для ПО, выражения open source и «открытое программное обеспечение» в отдельных случаях используется для проприетарного ПО, не подходящего ни под одно из них (например, коммерческое ПО с открытым исходным кодом).
3.6 Основная общественная лицензия GNU
Логотип GNU GPLv3
Декларировав критерии свободного ПО, члены Фонда свободного ПО стали распространять свои программы в соответствии с этими принципами, никак не оформляя это документально: иначе говоря, первоначально свободные программы распространялись вообще без лицензии. Однако произошедший с самим Ричардом Столлманом прецедент (см. ниже) убедил его в том, что документальное оформление необходимо для свободного ПО.
Ричард Столлман занимался разработкой текстового редактора Emacs на основе исходных текстов Джеймса Гослинга. Тогда Гослинг свободно раздавал свои исходные тексты всем заинтересованным. Однако в какой-то момент Гослинг продал права на распространение Emacs компании UniPress , и эта компания попросила Столлмана прекратить распространение его версии Emacs, так как права принадлежат им. Этот инцидент заставил Столлмана переписать заново те части исходного текста Emacs, которые теперь принадлежали UniPress, после чего он разработал собственную лицензию на своё программное обеспечение.
Лицензия, сформулированная Столлманом, должна была работать так же, как и лицензии на несвободное программное обеспечение: это типовой договор автора программы (обладателя авторских прав) с пользователем, в котором автор, среди прочего, оговаривает права пользователя по отношению к программе. В отличие от типовой собственнической лицензии, лицензия Столлмана предоставляет пользователю права, являющиеся критериями свободной программы: получать исходные тексты программ, изменять их, распространять изменённые и неизменённые версии. Впоследствии лицензия Столлмана получила название GNU General Public License(«Основная общественная лицензия GNU»), сокращённо GNU GPL или просто GPL.
В этой лицензии оговаривается также принципиальное для Столлмана защитное условие распространения свободного ПО: ни один пользователь, сделавший модифицированную версию свободной программы, не имеет права распространять её, не соблюдая всех принципов свободного ПО, то есть делать модификацию свободной программы несвободной. Чтобы подчеркнуть отличие такой лицензии, которая использует ЗоАП (copyright) для побуждения к сохранению свободы, от типовых собственнических лицензий, которые используют ЗоАП для ограничения свободы, был придуман термин copyleft (копилефт) -- игра слов, построенная на значениях английских слов right и left. Действие копилефта основано на том, что производные работы в большинстве случаев наследуют лицензии своих составляющих; если в программе используется небольшая часть стороннего кода под GPL, то вся программа и её производные должны распространяться под GPL, пока они являются производными этого кода. При этом в GPL есть раздел, позволяющий требовать сохранения в коде имён авторов, запрещать использование этих имён в рекламе, предупреждать о зарегистрированных товарных знаках и т. п., что позволяет комбинировать работы под GPL с работами под многими свободными некопилефтными лицензиями (например, некоторыми из лицензий BSD), не создавая значительных ограничений и не нарушая лицензии, -- но производные от результата, являясь производными от работы под GPL, уже не могут (без отдельного разрешения правообладателей) распространяться на условиях данной некопилефт лицензии без соблюдения условий GPL -- в том числе и как неотъемлемая часть несвободного ПО. По этой причине лицензии, подобные GNU GPL, иногда называют также «вирусными лицензиями»: они как бы «заражают» программу, становясь её неотъемлемой частью.
3.7 Сообщество разработчиков и пользователей
Главное условие существования свободного ПО -- всё-таки не лицензия, а люди, которые готовы бесплатно делиться текстами своих программ и совершенствовать тексты чужих. Свободное ПО унаследовало модель открытой научной разработки, а вместе с ней -- и академическую модель взаимодействия между учёными, вылившуюся в специфическую организацию сообщества разработчиков и пользователей.
3.8 Взаимопомощь
У любого пользователя программного обеспечения непременно возникают вопросы, когда он пытается применить его для решения своих задач. Пользователь несвободной (патентованной) программы платит за неё производителю, который иногда взамен предоставляет ему некоторые гарантии, одна из которых -- отвечать на вопросы о работе программы. Специально для этого производитель организует службу поддержки, которая по телефону, электронной почте и другим средствам связи отвечает на вопросы пользователей.
Пользователь свободно распространяемой программы не получает вместе с ней никаких гарантий: автор сделал её исходный текст открытым для общества, но при этом не взял на себя обязательств объяснять всем, как работает программа. Хотя справедливости ради стоит заметить, что любая несвободная программа в 99 % случаях тоже поставляется «как есть» и без гарантий. Поскольку сообщество пользователей большинства программ распределено по всему миру, для организации взаимодействия в нём наиболее активные пользователи (а зачастую и сами авторы) организуют (реже -- используют существующие) списки рассылки, форумы и другие средства общения в Интернете. Для накопления и рубрикации информации по программе (в частности, списков часто задаваемых вопросов (ЧаВо; англ. FAQ -- frequently asked questions), а также организации более сложных форм взаимодействия (совместной разработки, систем отслеживания ошибок) создаются веб-сайты, посвящённые программам.
3.9 Исправление ошибок
В любой достаточно сложной программе непременно имеются ошибки и дефекты, количество которых обычно неизвестно. Многие крупные производители ПО создают и оплачивают работу отдела контроля качества (QA -- Quality assurance), который контролирует соответствие процесса разработки ПО определенным требованиям, выполнение которых позволяет снизить вероятность появления ошибок в ПО (например, требованиям стандарта DO-178B, который применяется при разработке ПО для авиационных систем). Тем не менее, в настоящее время отсутствуют методы, позволяющие полностью гарантировать отсутствие ошибок в достаточно сложном ПО (существуют формализованные критерии сложности ПО).
Пользователь закрытой частной программы, столкнувшись с ошибкой, не всегда может выявить её причину и исправить ошибки (поскольку ему недоступны ни исходные тексты программы, ни даже отладочная информация), но, скорее всего, способен описать ошибку и условия, в которых она происходит.
Пользователь может сообщить об ошибке производителю программы (обычно посредством обращения всё в ту же службу поддержки), и если там решат, что ошибка действительно в программе, а не в работе пользователя, о ней будет сообщено разработчикам.
В итоге пользователь может долго ожидать исправления ошибки в последующих версиях программы. Нередко обновление собственнической программы приравнивается производителем к приобретению новой копии, что влечет за собой соответствующие издержки и нарушение закона о защите прав потребителей.
Диагностика ошибки, произошедшей на компьютере пользователя, -- задача не из лёгких, поскольку у сотрудников службы поддержки (и тем более программистов фирмы) нет доступа к этому компьютеру. Поэтому отделами поддержки широко практикуются программы, выдающие разнообразную информацию о компьютере пользователя, а в сложных случаях и пресловутая отладочная информация (сотрудник просит пользователя прогнать программу в «диагностическом режиме» (как правило, при помощи недокументированной настройки, либо пользователю присылается отладочная версия нужного модуля) и отправить ему полученный файл отчёта).
У типичной свободной программы (то есть, некоммерческой и/или разрабатываемой небольшой компанией или частным лицом) обычно нет оплачиваемого отдела контроля качества. Значит, пользователь может столкнуться с ещё большим количеством ошибок, чем в типичной коммерческой проприетарной программе. Тем актуальнее для него возможность сообщить об ошибке разработчикам программы. Раньше в сопровождающей программу документации было принято указывать электронный адрес, по которому разработчики принимали сообщения об ошибках (bug report). Некоторые вводили стереотипную форму для таких сообщений, чтобы облегчить и автоматизировать их обработку. Уже это требует существенно более высокой связности сообщества во всём мире, существенно большей, чем достаточно для закрытой разработки.
Разработчики и контролёры?испытатели проприетарного продукта могут ходить на службу в один и тот же офис и там обмениваться информацией или тратить определённую долю рабочего времени на составление и анализ строгих отчётностей, содержащих сообщения об ошибках и рапорты об устранении неисправностей. Такая организация труда эффективна, если круг разработчиков невелик, а ввести общую дисциплину относительно легко. Для открытого же проекта круг и взаимное расположение потенциальных разработчиков не ограничены ничем, поэтому эффективность разработки в гораздо большей степени зависит от того, насколько просто всем членам сообщества договариваться между собой, а также от «сознательности» пользователей.
Простому и упорядоченному приёму и перенаправлению сообщений об ошибках служат системы отслеживания ошибок (bug tracking system), самые известные из которых разработаны участниками больших проектов для себя, а благодаря свободным лицензиям используются повсеместно. Таковы GNUTS (разработанная в GNU),Bugzilla (Mozilla Foundation), JitterBug (проект Samba) или Debian BTS. Более ранние версии ориентируются на электронную почту, более поздние включают в себя web-интерфейс. Например, при помощи Bugzilla организуется сайт в Интернете, на котором пользователь может заполнить форму сообщения об ошибке. Каждое сообщение имеет свой номер, по которому можно попасть на «персональную» страницу данной ошибки, где отражаются все происходящие по её поводу события, от первоначального сообщения (открытия) до исправления (закрытия). При каждом изменении в состоянии ошибки Bugzilla рассылает всем заинтересованным лицам (включая, естественно, сообщившего об ошибке и занимающихся данной программой разработчиков) письма по электронной почте. Поскольку Bugzilla позволяет оставлять комментарии и прикладывать файлы, она является полноценным средством для общения пользователя с разработчиком по поводу ошибки в программе.
Принципиальное преимущество пользователя свободной программы заключается в том, что у него, в отличие от пользователей несвободных программ, всегда есть возможность заглянуть в исходные тексты. Конечно, для многих пользователей исходные тексты не более понятны, чем машинный код. Однако при достаточном уровне познаний в программировании пользователь может сам установить причину ошибки в программе, а то и устранить её, исправив соответствующим образом исходный текст. А если пользователь заинтересован в развитии программы, то с его стороны будет разумно не только сообщить автору об ошибке, но и прислать ему свои исправления к исходному тексту программы: автору останется только применить эти исправления к тексту программы, если он найдёт их корректными и уместными. Пересылать автору исправленный текст программы целиком непрактично: он может быть очень большим (десятки тысяч строк), и автору будет нелегко разобраться, что же изменено (а вдруг изменения сделаны неграмотно?).
Чтобы облегчить и автоматизировать процесс внесения исправлений, Ларри Уолл в 1984 году разработал утилиту patch («заплатка»), которая в формализованном (но хорошо понятном человеку) виде описывает операции редактирования, которые нужно произвести, чтобы получить новую версию текста. С появлением этой утилиты пользователь, обнаруживший и исправивший ошибку в программе, мог прислать автору небольшую заплатку, по которой автор мог понять, какие изменения предлагаются, и автоматически «приложить» их к своему исходному тексту. С появлением утилиты patch гораздо больше пользователей стало включаться в разработку программ с доступным исходным текстом, немалую роль и здесь сыграла сеть Usenet. В конце концов, данный способ исправления стал общеупотребительным и применяющимся не только к исходному коду программы, но и непосредственно к скомпилированному исполнимому коду в случае закрытого ПО, а слово «патч» сталонарицательным. Патчи (файлы-заплатки с исправлениями) -- обязательный атрибут сегодняшней разработки любых программ любой сложности.
Если пользователю программы не хватает в ней какой-то функции, то при должной квалификации он вполне может запрограммировать её сам и включить в исходный текст программы, либо заплатить за это кому?то ещё. Естественно, ему выгодно, чтобы его дополнение попало в «главный», авторский вариант программы (его называют upstream) и появлялось во всех последующих версиях: можно точно так же оформить его в виде патча и выслать автору. Этой возможности лишён пользователь несвободной программы, даже если он достаточно квалифицирован. Единственный способ включить в программу нужную ему функцию -- обратиться к производителю (если программа проприетарная) с соответствующей просьбой и надеяться, что производитель сочтёт предложенную функцию действительно необходимой.
Чем больше у свободной программы активных пользователей, готовых вносить исправления и дополнения и делиться ими, тем надёжнее работает и быстрее развивается программа. Причём такая свободная модель отслеживания и исправления ошибок для программы, у которой тысячи активных пользователей, может оказаться гораздо более эффективной, чем у любой проприетарной программы: ни одна компания не может себе позволить такой огромный штат сотрудников в отделе контроля качества. Поэтому действительно популярная свободная программа может оказаться гораздо надёжнее проприетарных аналогов.
Написать большую программу в одиночку довольно сложно и даже не всегда возможно, особенно если автор занимается этим в свободное от работы время. Большинство современных свободных программ пишется группой разработчиков. Даже если начинал писать программу один человек и она оказалась интересной, к разработке могут присоединиться активные пользователи. Чтобы они могли не только вносить отдельные исправления, но и вообще всю разработку вести совместно, нужны специальные инструменты. Помимо патчей, для организации совместной разработки ПО применяются системы управления версиями. Функции системы контроля версий состоят в том, чтобы организовать доступ к исходным текстам программы для нескольких разработчиков и хранить историю всех изменений в исходных текстах, позволяя объединять и отменять изменения и пр. Самая ранняя свободная система управления версиями -- RCS -- использовалась ещё на заре свободного ПО абонентами сети Usenet, затем на смену ей пришла более развитая CVS, но сегодня и она считается во многом устаревшей и всё чаще заменяетсяSubversion, Git и другими.
Нужно заметить, что преимущества свободной разработки для пользователя не следует преувеличивать. Не все свободные программы в равной степени доступны для изменения пользователям, и это совершенно не связано с лицензией на их распространение. Важный фактор здесь -- объём программы: если в ней десятки тысяч строк (как, например, в OpenOffice.org), то даже квалифицированному пользователю потребуется слишком много времени, чтобы разобраться, что к чему. Рассчитывать же на то, что разработчики ответят на все замечания и предложения пользователя немедленным исправлением программы, тоже нельзя, поскольку они не несут перед пользователем никаких обязательств по качеству программы. В этом отношении пользователь проприетарной коммерческой программы может оказаться в лучшем положении (хотя обязательства её разработчика обычно также обусловлены лишь законами, а не его волей).
Очень многие свойства сообщества разработчиков и пользователей свободных программ проистекают из того, что все его участники обычно занимаются этой программой из интереса или потому, что эта программа -- необходимый для них инструмент (например, зарабатывания денег или по другой причине). Время, потраченное ими на программу, не оплачивается, поэтому нет никакой надежды, что обстоятельства не переменятся и разработка не прекратится вовсе. Нередки случаи, когда разработка программы начинается благодаря одному автору-энтузиасту, который привлекает многих к участию в разработке, а потом энтузиазм лидера гаснет, а вместе с ним затухает и разработка.
К сожалению, сегодня существуют тысячи программ, так никогда и не достигших версии 1.0, хотя «выгорание» лидеров и не единственная этому причина.
Кроме того, программа может быть необходимой, но «неинтересной», а потому не найдётся и свободных разработчиков.
Главный недостаток с точки зрения коммерческого пользователя: разработчики свободных программ не несут никаких обязательств по качеству программы, кроме моральных. Поэтому, сегодня большие корпорации, например, Intel или IBM, находят необходимым поддерживать проекты по разработке свободного ПО, оплачивая сотрудников, которые работают в рамках этих проектов.
4. Свободное программное обеспечение в России
Свободное программное обеспечение, в любом случае, может свободно устанавливаться и использоваться на любых компьютерах. Использование такого ПО свободно везде: в школах, офисах, вузах, на личных компьютерах и во всех организациях и учреждениях, в том числе, и на коммерческих и государственных, в России и в странах СНГ.
Правительство РФ распоряжением от 17 декабря 2010 года № 2299-р утвердило план перехода федеральных органов исполнительной власти и федеральных бюджетных учреждений на использование свободного программного обеспечения на 2011--2015 годы.
В учреждения Министерства Обороны России, а также в российских посольствах в других странах используется операционная система МСВС. Данная ОС, сделанная на основе Red Hat Linux с незначительными изменениями, не является свободным ПО, её исходные коды закрыты, а единственным владельцем прав в нарушение GNU GPL объявлен ВНИИНС (упоминания о предыдущих разработчиках также убраны, хотя такое упоминание является обязательным требованием в лицензии).
С 1 июня 2011 года действует ГОСТ Р ИСО/МЭК 26300-2010 на формат OpenDocument.
С 1 января 2012 года действует ГОСТ Р 54593-2011 «Информационные технологии. Свободное программное обеспечение. Общие положения».
В начале 2012 года около 22 тыс. рабочих мест в поликлиниках Москвы планировалось оснастить ПК с Alt Linux.
15 апреля 2013 года начался сбор подписей на государственное финансирование обучения свободному программному обеспечению для населения России.
12 марта 2014 года подписан Федеральный закон N 35-ФЗ с поправками в четвертую часть ГК РФ, регулирующих использование на территории РФ открытых лицензий.
3 апреля 2014 года Управление информационных технологий Федеральной службы судебных приставов объявило об использовании собственного специализированного Linux-дистрибутива GosLinux (на базе CentOS) в рамках проводимой «политики внедрения свободного программного обеспечения и импортозамещения информационных технологий».
5. Сдерживающие факторы распространения
Пользователи, которые бы иначе предпочли свободное ПО несвободному, продолжают использовать несвободное по следующим причинам.
-В странах, где неавторизованное распространение объектов авторского права является обычным делом, нет ни юридического, ни экономического стимула переходить на свободное ПО. К тому же пользователи, привыкшие к проприетарному ПО, не хотят тратить время на изучение свободного аналога, если это не даёт им прямой выгоды в короткий срок.
-В некоторых отраслях мало или вообще нет свободного ПО высокого качества. А именно:
-Программное обеспечение, в котором доля работы программиста мала по сравнению с работой художника, редактора и т. д. Например: квесты и многие другие жанры игр, электронные словари.
-Развивающиеся отрасли, для которых мало пригодных к использованию общепринятых алгоритмов, -- машинный перевод, распознавание речи с большим словарём и, в меньшей степени, синтез речи. Кроме того, требуется ручная обработка большого количества текстовых или аудиоданных.
-Отрасли, связанные со сложной высокооплачиваемой работой (фотообработка, инженерное проектирование), -- так как создать программу, близкую по сложности и качеству к проприетарным стандартам де?факто очень трудно, то свободных аналогов меньше, чем в других отраслях, и пользователю не всегда удаётся найти подходящий для него продукт.
-Отрасли, в которых существуют платные или собственнические стандарты де-факто, например Pantone в допечатной подготовке.
-Для аппаратного обеспечения в отраслях, где господствует лишь несколько производителей, в свободном доступе часто отсутствуют не только драйверы, но и спецификации.
-Проприетарное ПО настолько популярно, что пользователи не знают о существовании других подобных программ.
-Проприетарное ПО зачастую использует собственные форматы файлов и протоколы обмена, описание которых отсутствует в свободном доступе. Поэтому переход может быть затруднён проблемами совместимости с другим ПО или с существующими форматами файлов (вариант замыкания на поставщике).
-Некоторое проприетарное ПО как требует огромных финансовых затрат на создание и поддержание в нужном качестве, так и либо чрезвычайно сложно, либо содержит большое количество различных патентов из других источников, к примеру драйверы видеоускорителей. В свою очередь, из-за стартовой, малой процентной распространенности открытого решения, компания-производитель не способна существенно повысить финансирование, а значит, предоставить качественную поддержку этой области. Как результат, количество ПО, использующего и требующего качественных драйверов, невелико -- что, соответственно, сдерживает распространенность открытых решений. В связи с тем, драйвера для видеоускорителей под Linux, хоть и предоставляются всеми крупными компаниями, но являются или полностью закрытыми и менее эффективными, чем их варианты под Windows, или открытыми, но сознательно создаваемыми менее производительными и функциональными.
Задача №1
Вычислить значения R и T,если: При а>b ;а>0;b>0
При a<b; a>0
При a=b
В остальных случаях
Действительные числа а и b вводить с клавиатуры
Рисунок 1
Рисунок 2
Рисунок 3
Задача №2
На складе хранится x тонн семян. Ежедневно портится 0,1%.
Вычислить сколько семян останется через 10 дней?
Рисунок 4
Рисунок 5
Рисунок 6
Задача №3
Дан массив действительных чисел А.
Получить новый массив D
Рисунок 7
Рисунок 8
Задача №4
Вычислить сумму бесконечного ряда с заданной точностью 0 < E < 0,1. Считать что требуемая точность достигнута, если вычислена сумма нескольких первых слагаемых и очередное слагаемое, оказалось, по модулю меньше чем E. Эта и все последующие слагаемые можно уже не учитывать. Переменную Х , которая меньше 1, ввести с клавиатуры
Рисунок 9
Рисунок 10
Задача №5
Дана матрица из 5 строк и 5 столбцов. Если все элементы главной диагонали отрицательны, разделите все элементы матрицы на среднеарифметическую величину.
Рисунок 11
Рисунок 12
Заключение
Очевидно, что свободное программного обеспечение обладает своими плюсами и минусами. Ничто не идеально в этом мире и в мире программного обеспечения в частности, а значит, не существует единого конкретного решения всех проблем.
Поэтому выбирать свободное ПО или проприетарное - дело сугубо каждого. Критерий может быть только один: задача должна быть решена максимально эффективно. Однако свободное программного обеспечение все больше и больше претендует на роль основного инструмента для решения задач, и это не может не радовать.
Список литературы
1. Горяев, Ю.А. Информатика / Ю.А. Горяев. -- М.: МИЭМП, 2009. -- 116 с.
2. Информатика / Под общ. ред. А. Н. Данчула. - М.: Изд-во РАГС, 2008. - 525 с.
3. Информатика: энциклопедия. - М.: Аванта+, 2006. - 624с.
4. Меняев, М.Ф. Информатика и основы программирования / М.Ф. Меняев. М.: Омега-Л, 2007. -- 458 с.
5. Орлов, С.А. Технологии разработки программного обеспечения / С.А. Орлов. -- СПб.: Питер, 2008. -- 236 с.
6. Соболь, Б.В. Информатика / Б.В. Соболь и др. -- Ростов н/Д: Феникс, 2009. 446 с.
7. Степанов, А. Н. Информатика / А.Н. Степанов. - СПб.: Питер, 2008. - 605 с.
8.Алексеев Е.Г., Богатырев С.Д. Информатика. Мультимедийный электронный учебник
Размещено на Allbest.ur
...Подобные документы
Понятие и ключевое отличие распределенной разработки программного обеспечения, его достоинства и недостатки. Концептуальное решение и выбор типа разработки. Особенности программного обеспечения с открытым исходным кодом. Идея и развитие Open Source.
курсовая работа [97,7 K], добавлен 14.12.2012Классификация программного обеспечения, его особенности, назначение. Программное обеспечение для работы с текстом, изображением, прикладное, офисное, для работы в Интернете. Системы программирования, специфика программного обеспечения, что такое вирусы.
презентация [1,2 M], добавлен 25.02.2010Факторы, сдерживающие развитие свободного программного обеспечения в России. Описание задачи по совершенствованию рабочих мест: выбор операционной системы и программного обеспечения. Результаты от совершенствования рабочих мест сотрудников ООО "Даргез".
курсовая работа [6,9 M], добавлен 06.06.2013Сущность понятия "программное обеспечение". Типы прикладных программ. Современные системы программирования для персональных компьютеров. Уровни программного обеспечения: базовый, системный, служебный. Классификация служебных программных средств.
реферат [20,2 K], добавлен 01.04.2010Системное, инструментальное и прикладное программное обеспечение. Современные настольные издательские системы. Программные средства мультимедиа. Системы искусственного интеллекта. Прикладное программное обеспечение автоматизированного проектирования.
реферат [59,4 K], добавлен 18.12.2013Основное программное обеспечение для автоматизации производства. Финансовые и коммуникационные системы. Системы планирования и управления. Текстовые редакторы и табличные процессоры. Финансовое программное обеспечение. Шрифтовые технологии в документах.
шпаргалка [551,9 K], добавлен 16.08.2010Прикладное программное обеспечение, его использование при проведении сложных математических вычислений. Менеджер загрузок. Офисные средства обработки информации. Система автоматизации проектных работ. Основы использования функций Excel, их аргументы.
контрольная работа [227,6 K], добавлен 01.03.2009Проблемы использования и распространения программного обеспечения, защищенного авторским правом. Разновидности лицензионных соглашений, предоставляющие правообладателю набор инструментов для реализации и защиты своих прав на программное обеспечение.
реферат [30,2 K], добавлен 10.01.2017Теоретические основания анализа компьютерного программного обеспечения. Анализ основных ведущих компаний по производству программному обеспечению для управления проектами, таких как Primavera, Spider Project, Open Plan Professional и Microsoft Project.
курсовая работа [33,3 K], добавлен 11.05.2014Программное обеспечение как совокупность программ системы обработки информации и программных документов, необходимых для эксплуатации этих программ. Системное ПО (программы общего пользования), прикладное и инструментальное (системы программирования).
реферат [73,1 K], добавлен 04.06.2010Требования к программе или программному продукту. Условия эксплуатации и требования к параметрам технических средств. Программное обеспечение, рекомендуемое для функционирования программы. Руководство системного программиста и настройка программы.
отчет по практике [1,1 M], добавлен 22.07.2012Понятие, содержание, объект, предмет информатики. Основные виды и способы обработки и кодирования данных. Информация, информационные процессы и системы как объект правового регулирования общественных отношений. Архитектура, программное обеспечение ПЭВМ.
курс лекций [6,5 M], добавлен 20.06.2009Системное и программное прикладное программное обеспечение. Понятие "операционная система". Утилиты, программно-инструментальные средства. Системы технического обслуживания. Пакеты прикладных программ общего назначения. Сетевая операционная система.
презентация [70,2 K], добавлен 31.10.2016Системное и прикладное программное обеспечение. Выполнение программ, хранение данных и взаимодействие пользователя с компьютером. Возможности операционных систем. Системы технического обслуживания. Системы обработки электронных таблиц и текста.
презентация [15,9 K], добавлен 06.01.2014Фотоколлаж как свободное, произвольное соединение, иногда даже не взаимосвязанных между собой, нескольких стилей фотоизображения в одной картинке или фотографии. Методы и инструменты, используемые при его разработке, а также программное обеспечение.
курсовая работа [6,2 M], добавлен 12.06.2015Программное обеспечение по автоматизации работы автосервиса. Электронные информационные базы данных по диагностике и ремонту, геометрическим размерам автомобилей. Каталоги запчастей, справочники нормо-часов. Программы для ведения управленческого учета.
реферат [509,0 K], добавлен 23.03.2012Программное обеспечение современных ЭВМ: файловые менеджеры (Проводник, Windows Commander, Far), сравнительный анализ. Windows Explorer – он же Проводник Windows, описание и характеристика, а также Frigate 5.0, AB Commander 6.1a, и другие программы.
реферат [21,6 K], добавлен 09.12.2008Алгоритмическое конструирование программного средства для дистанционного обучения, входящего в состав учебно-методического комплекса университета. В программном обеспечении электронного учебника реализованы функции отображения лекций, тестирование.
курсовая работа [2,6 M], добавлен 04.04.2011Программное обеспечение для обслуживания автосалона с графическим интерфейсом, возможностью хранения файлов на диске и поиском. Программное проектирование. Документирование программного обеспечения, его тестирование. Разработка руководства пользователя.
курсовая работа [1,7 M], добавлен 06.01.2013Обзор основных возможностей и инструментов пакета Audacity. Запуск приложения, поддерживаемые звуковые форматы. Настройка параметров, оцифровка и редактирование звука. Использование фильтров и озвучивание презентации. Применение программы Audacity.
курсовая работа [151,6 K], добавлен 08.05.2011