Logisim: мощный инструмент для проектирования и моделирования цифровых логических схем

Что такое Logisim. Как использовать Logisim для создания цифровых схем. Какие возможности предоставляет Logisim. Где применяется Logisim. Как установить и начать работу с Logisim.

Содержание

Что такое Logisim и для чего он используется

Logisim — это мощный и удобный инструмент для проектирования и моделирования цифровых логических схем. Он предоставляет графический интерфейс, позволяющий легко создавать схемы из базовых логических элементов и более сложных компонентов.

Основные возможности Logisim:

  • Создание схем с помощью графического редактора
  • Библиотека стандартных логических элементов и более сложных компонентов
  • Моделирование работы схем в реальном времени
  • Анализ временных диаграмм
  • Иерархическое проектирование с использованием подсхем
  • Экспорт схем в различные форматы

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


Ключевые особенности и преимущества Logisim

Logisim обладает рядом важных преимуществ, которые делают его отличным выбором для проектирования цифровых схем:

  • Интуитивно понятный графический интерфейс
  • Моделирование в реальном времени по мере создания схемы
  • Обширная библиотека готовых компонентов
  • Возможность создания пользовательских компонентов
  • Поддержка иерархического проектирования
  • Анализ временных диаграмм
  • Кроссплатформенность (Windows, macOS, Linux)
  • Открытый исходный код

Эти особенности делают Logisim мощным, но при этом доступным инструментом как для начинающих, так и для опытных разработчиков цифровых схем.

Основные компоненты и элементы в Logisim

Logisim предоставляет обширную библиотеку стандартных компонентов для создания цифровых схем:

Базовые логические элементы:

  • И (AND)
  • ИЛИ (OR)
  • НЕ (NOT)
  • Исключающее ИЛИ (XOR)

Элементы памяти:

  • D-триггер
  • JK-триггер
  • T-триггер
  • Регистры

Арифметические компоненты:

  • Сумматоры
  • Компараторы
  • Мультиплексоры/демультиплексоры

Устройства ввода/вывода:

  • Кнопки и переключатели
  • Светодиоды
  • Семисегментные индикаторы

Кроме того, пользователи могут создавать собственные компоненты на основе более простых элементов.


Создание и моделирование схем в Logisim

Процесс создания схем в Logisim достаточно прост и интуитивно понятен:

  1. Выберите нужные компоненты из библиотеки
  2. Разместите их на рабочей области
  3. Соедините компоненты проводниками
  4. Настройте параметры компонентов при необходимости
  5. Запустите симуляцию для проверки работы схемы

Logisim позволяет моделировать работу схемы в реальном времени. Вы можете изменять входные сигналы и наблюдать, как меняются выходные значения. Это очень удобно для отладки и анализа работы схемы.

Для более сложных проектов Logisim поддерживает иерархическое проектирование. Вы можете создавать подсхемы и использовать их как компоненты в других схемах, что значительно упрощает разработку больших проектов.

Применение Logisim в образовании и проектировании

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

  • Изучение базовых логических операций и схем
  • Проектирование комбинационных и последовательностных схем
  • Разработка арифметико-логических устройств (АЛУ)
  • Создание простых процессоров и компьютерных архитектур
  • Моделирование работы памяти и устройств ввода-вывода

Благодаря своей простоте и функциональности, Logisim позволяет студентам быстро перейти от теории к практике, создавая работающие цифровые схемы.


Кроме того, Logisim используется и в реальных проектах для быстрого прототипирования и тестирования идей перед реализацией на аппаратном уровне.

Установка и начало работы с Logisim

Установка Logisim очень проста:

  1. Скачайте последнюю версию Logisim с официального сайта
  2. Распакуйте архив в удобное место на вашем компьютере
  3. Запустите файл logisim.jar

Для работы Logisim требуется установленная Java Runtime Environment (JRE). Если у вас еще нет JRE, скачайте и установите ее с официального сайта Java.

После запуска Logisim вы увидите главное окно программы с пустой рабочей областью. Чтобы начать создание схемы:

  1. Выберите компоненты из библиотеки слева
  2. Разместите их на рабочей области
  3. Соедините компоненты, кликая и перетаскивая от выхода одного компонента к входу другого
  4. Используйте инструменты на панели сверху для выбора, перемещения и удаления элементов

Не забудьте сохранять свой проект регулярно, чтобы не потерять результаты работы.

Продвинутые возможности и техники в Logisim

Помимо базовых функций, Logisim предлагает ряд продвинутых возможностей для более сложных проектов:


Анализ комбинационных схем

Logisim может автоматически генерировать таблицы истинности для комбинационных схем, что очень полезно для анализа и оптимизации.

Временные диаграммы

Для анализа работы последовательностных схем Logisim предоставляет инструмент построения временных диаграмм. Это позволяет визуально отслеживать изменение сигналов во времени.

Пользовательские библиотеки

Вы можете создавать собственные библиотеки компонентов, что особенно полезно при работе над большими проектами или при обучении студентов.

Экспорт схем

Logisim позволяет экспортировать схемы в различные форматы, включая изображения и HDL-описания, что упрощает документирование проектов и их реализацию на реальном оборудовании.

Освоение этих продвинутых техник позволит вам максимально эффективно использовать возможности Logisim в ваших проектах.

Сообщество Logisim и ресурсы для обучения

Вокруг Logisim сформировалось активное сообщество пользователей и разработчиков. Вот несколько ресурсов, которые могут быть полезны для изучения программы и решения возникающих вопросов:


  • Официальная документация Logisim — подробное руководство по всем возможностям программы
  • Форумы Logisim — место, где можно задать вопросы и обсудить проблемы с другими пользователями
  • YouTube-туториалы — множество видеоуроков по работе с Logisim
  • Университетские курсы — многие учебные заведения публикуют свои материалы по работе с Logisim в открытом доступе

Участие в сообществе Logisim может значительно ускорить процесс обучения и помочь в решении сложных задач проектирования цифровых схем.


Проектирование процессора Logisim / Хабр

Часть I
Часть II
Часть III
Часть IV
Часть V

Одна из глав книги «Код» Чарльза Петцольда посвящена проектированию блоков CPU и в начале главы описывается устройство, позволяющие суммировать наборы чисел, хранящихся в памяти. Спроектируем похожую схему в Logisim. Возьмем набор восьмиразрядных чисел и подключим его к мультиплексору, переход от одного числа к другому будем осуществлять с помощью счетчика, подключенного к выбирающему входу мультиплексора, а к выходу мультиплексора подключим сумматор и аккумулятор. В качестве тактового генератора будем использовать кнопку. Данные будут загружаться в аккумулятор при отпускании кнопки. Это осуществляется с помощью элемента НЕ, подключенного к кнопке. Про реализацию этих функциональных блоков в виде отдельных микросхем далее в статье.


Будем хранить числа в ОЗУ (RAM).

ОЗУ можно представить в виде набора регистров, доступ к которым производится с помощью демультиплексора и мультиплексора (DMX и MUX).

Гарвардская архитектура

Предположим, в ОЗУ хранится набор чисел, а нам нужно сложить все числа и сохранить результат (в свободную ячейку). Будем хранить команды («сложить» и «сохранить») в одном ОЗУ, а обрабатываемые числа — в другом. Такой способ хранения является отличительным признаком Гарвардской архитектуры.
Команда «1» будет записывать число из сумматора в аккумулятор, команда «2» будет записывать число из аккумулятора во 2-ое ОЗУ.

Предположим, в ОЗУ хранятся несколько массивов чисел. Т.е. нам необходимо

  • загружать числа из ОЗУ в аккумулятор
  • загружать числа из сумматора в аккумулятор
  • сохранять числа из аккумулятора в ОЗУ

Будем использовать для выборки данных из ОЗУ мультиплексор MUX.
Новая инструкция «5» по переднему фронту тактового генератора переключает мультиплексор MUX, а по заднему фронту (по спаду) производит запись в аккумулятор.

Архитектура фон Неймана

Далее, будем хранить инструкции и данные в одном ОЗУ. Такой способ хранения является отличительным признаком архитектуры фон Неймана.
В первых четырех разрядах восьмиразрядной ячейки памяти будет храниться команда, во вторых четырех разрядах будет храниться адрес (прямая адресация).

Будем загружать адрес и команду в отдельные регистры, а затем с помощью мультиплексора переходить по сохраненному адресу. Для записи данных в ОЗУ будем сначала загружать данные во временный регистр Temp (иначе в ОЗУ запишутся инструкции, а не данные), а потом в аккумулятор Асс. Запись данных в Temp и Асс будем производить по заднему фронту.

Будем складывать, например, числа 2 и 3, которые лежат в ячейках 8 и 9, а сохранять результат в ячейку с адресом a.

Добавим также возможность совершать безусловные переходы.
Реализуем устройство, в котором будет выполняться всего одна команда — команда безусловного перехода. Для этого на счетчик, генерирующий адрес, будем отправлять четыре младших разряда (собственно, адрес), а на порт загрузки будем подавать команду, хранящуюся в старших разрядах ячейки памяти.
Например, для прыжка в ячейку с адресом 2 используется команда 82.

Добавим команду безусловного перехода в предыдущую схему.

Вообще, на geektimes уже была статья, посвященная проектированию CPU в Logisim.

Все схемы, представленные выше, можно скачать одним файлом.
Logisim можно скачать здесь.

Терминал

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

Добавим конечный автомат для обработки последовательностей поступающих символов.
Семизначный код буквы «i» равняется 1101001
Семизначный код буквы «n» равняется 1101110
Семизначный код буквы «p» равняется 1110000

Для выделения конкретной буквы из потока символов будем использовать компаратор. В начальном состоянии компаратор сравнивает поступивший символ с семизначным кодом буквы «i»

Автомат переходит в следующее состояние, если после буквы «i» поступает буква «n»

Автомат переходит в следующее состояние, если после букы «i», а затем «n» поступает буква «p»

Добавим команду out

Подробнее о командах inp и out можно прочитать в следующей части.

Железо

Рассмотрим, как работает сумматор на примере микросхемы 155им3 (7483). Для микросхем 155-й серии условимся, что на входах есть внутренний резистор, подтягивающий к плюсу (если ножка «висит в воздухе», то на ней присутствует логическая «единица»), поэтому при подключении питания к микросхеме зажгутся все светодиоды, присоединенные к выходу.

На картинке представлена МС 74ls283 (современный аналог 155им3).

Для того, чтобы в Logisim спроектировать такую микросхему, необходимо выбрать «Меню» — «Проект» — «Добавить схему».

Вот как эта МС выглядит внутри подсхемы. Это четыре полусумматора, объединённые в полный сумматор.

В качестве аккумулятора будем использовать микросхему 155тм8 (74175) — счетверённый D-триггер.

Триггеры, входящие в состав МС, пропускают насквозь всё время, пока на входе синхронизации присутствует 1, а не только по фронту (триггеры со статическим управлением), но в программе Logisim нам доступны только триггеры с динамическим управлением, но в данном случае это не важно; будем использовать то, что есть.

Подробнее про триггеры можно прочитать в Википедии.

Соберём из D-триггеров модель МС 155тм8.

Далее соберём схему, позволяющую складывать наборы чисел.

Например, если сложить набор из чисел 2 (0010), мы получим 2 (0010), 4 (0100), 6 (0110) и т.д.

Сперва 2 появляется на выходе сумматора (красные светодиоды), затем 2 загружается в счетверенный D-тригер (желтые светодиоды), а на выходе сумматора появляется 4, затем 4 загружается в 155тм8, а на выходе сумматора появляется 6 и т. д.

Для того, чтобы спроектировать простой модуль памяти, нам понадобится мультиплексор. Спроектируем сдвоенный мультиплексор 155кп2.

Также нам понадобится счетчик. Спроектируем микросхему 155ие5.

Это четырехразрядный счетчик, но нам понадобится только два младших разряда.
Будем хранить числа, например, 2 (0010), 3 (0011), 5 (0101).

Объединим все компоненты в одну схему. Будем складывать числа, которые хранятся в «памяти»
2 + 3 + 5.

Logisim можно скачать здесь.

P.S. Статья про книгу «Код. Тайный язык информатики.» есть на Хабре вот здесь.
З.Ы. Переводные статьи (автор переводов PatientZero) про архитектуру процессора здесь, здесь и здесь

Debian — Подробная информация о пакете logisim в sid

в именах пакетовв описаниях пакетовв именах пакетов исходного кодав содержимом пакетоввсе параметры

[  stretch  ] [  bullseye  ] [  bookworm  ] [  sid  ]

[ Источник: logisim  ]

graphical tool for designing and simulating logic circuits

Logisim is an educational tool for designing and simulating digital logic circuits. With its simple toolbar interface and simulation of circuits as you build them, it is simple enough to facilitate learning the most basic concepts related to logic circuits. With the capacity to build larger circuits from smaller subcircuits, and to draw bundles of wires with a single mouse drag, Logisim can be used (and is used) to design and simulate entire CPUs for educational purposes.

Другие пакеты, относящиеся к logisim

  • зависимости
  • рекомендации
  • предложения
  • enhances
  • dep: default-jre
    Standard Java or Java compatible Runtime
    или java7-runtime
    виртуальный пакет, предоставляемый default-jre, openjdk-11-jre, openjdk-17-jre, openjdk-18-jre, openjdk-19-jre, openjdk-20-jre, openjdk-21-jre, openjdk-8-jre
    или java8-runtime
    виртуальный пакет, предоставляемый default-jre, openjdk-11-jre, openjdk-17-jre, openjdk-18-jre, openjdk-19-jre, openjdk-20-jre, openjdk-21-jre, openjdk-8-jre
    или java9-runtime
    виртуальный пакет, предоставляемый default-jre, openjdk-11-jre, openjdk-17-jre, openjdk-18-jre, openjdk-19-jre, openjdk-20-jre, openjdk-21-jre
    или java10-runtime
    виртуальный пакет, предоставляемый default-jre, openjdk-11-jre, openjdk-17-jre, openjdk-18-jre, openjdk-19-jre, openjdk-20-jre, openjdk-21-jre
    или java11-runtime
    виртуальный пакет, предоставляемый default-jre, openjdk-11-jre, openjdk-17-jre, openjdk-18-jre, openjdk-19-jre, openjdk-20-jre, openjdk-21-jre
  • dep: jarwrapper (>= 0. 5)
    запуск исполняемых Java-файлов .jar
  • dep: javahelp2
    Java based help system
  • dep: libcolorpicker-java
    Java control to allow color selection
  • dep: libfontchooser-java
    Java control to allow font selection

Загрузка logisim

Загрузить для всех доступных архитектур
АрхитектураРазмер пакетаВ установленном видеФайлы
all4 555,2 Кб5 450,0 Кб [список файлов]

Logisim: использование по всему миру

Это очень неполный список. Логисим этого не требует. загрузчики заполняют форму, объясняя, почему они ее скачивают; вместо этого мы полностью полагаемся на добровольцев, сообщающих об их использовании.

Если вы используете Logisim как обязательную часть задания класса, и вашей школы нет в списке, пожалуйста, пришлите электронное письмо! Чем шире используется программа, тем проще получить поддержку для дальнейшего развития программы. Спасибо!


Просмотр школ с помощью Logisim на большой карте
Аргентина
     Католический университет Аргентина — Росарио
Национальный университет del Centro de la Provincia de Buenos Aires
Национальный университет del Sur
Австралия
Университет Бонда
Curtin International College
Университет Ньюкасла
Университет Квинсленда
Университет Graz

8

9003
. Университет
Бельгия
Высшая школа d’Informatique — Верхняя школа Брюсселя
U of Antwerp
U of Mons
Université Libre de Bruxelles
Brazil
U of Sao Paulo
Universidade Federal de Mato Grosso do Sul
PUC Minas
Болгария
Американский U
83
Technical U — Sofia, Plovdiv branch
Canada
Augustana U, Alberta
Camosun C
McGill U
Mount Royal U
Mohawk C of Applied Arts and Tech
Университет Британской Колумбии
Чили
Университет Чили
China
Putian U
Croatia
Zagreb Polytechnic
Colombia
Universidad Pontificia Bolivariana, Medellin
Universidad del Norte
Universidad EAFIT — Medellin
I Pedro Luis Villa
Cyprus
European University Cyprus
Czech Republic
Inst of Chemical Technology, Prague
Denmark
U of Copenhagen
Франция
Supélec
U of Nantes
U of Rennes
U Inst of Tech, Grenoble
Germany
U of Duisburg-Essen
Университет Зигена
Греция
Университет Пелопоннеса
Технический институт 900 900 30016 Iceland
U of Iceland
India
Holy Cross Matriculation Higher Secondary School
Indian Inst of Tech, Dehli
Lebanon
Американский университет Бейрута
Мексика
Universidad Autnoma de Baja California, Tijuana
New Zealand
U of Auckland
Victoria U of Wellington
U of Waikato
Portugal
Universidade de Évora
Россия
Московский полиграфический университет
Саудовская Аравия
Королев Фахд Университет нефти и минералов
Сербия
U NIШ
SINGAPOR Тел. 0028 Ecole Polytechnique Federale de Lausanne
Haute école spécialisée de Suisse occidentale
U of Lugano
Taiwan
National Chi Nan U
Turkey
Бартин У
Карабук У
Университет Коч
У Ближний Восток Технический0005
United Kingdom
Oxford & Cherwell Valley C
Oxford Brookes U
U of Sheffield
United States of America
8 Северная Арона 1 MO
AR Хендрикс Колл
Ю Арк — Форт Смит
AZ
550005
CA Cal Poly Pomona
Cal State U — Chico
Cal State U — Monterey Bay
U California — Berkeley
Harvey Mudd Coll
Pacific Union Coll
Университет штата Сан-Франциско
5 Сан-Франциско5 Сан-Франциско0005
CO Colorado State U
CT U of Hartford
GA Georgia Inst of Tech
IA Briar Cliff U
Grinnell C
U северной Айовы
IL Depaul U
0005 Eastern Illinois U
Knox Coll
Monmouth Coll
IN DePauw U
Earlham Coll
Huntington U
У Эвансвилл
KS Бенедиктин Колл
Бетел Кол
Emporia State U
MA Mount Holyoke C
U Massachusetts — Amherst
U Massachusetts — Lowell
MI Albion C
Каламазу C
MN C Сент-Бенедикт/Сент-Джонс U
60005805
Park U
MS Mississippi Coll
NC U North Carolin Dartmouth C
NJ Princeton U
NY Canisius C
U. C
COLGATE U.0005
Cornell U
Laguardia Community Coll
New York U
Rochester Inst Tech
Siena C
SUNY Oswego
Vassar C
Wells College
OH
5 U of U0005
Denison U
Shawnee State U
U Akron
OR Lewis & Clark C
Reed C
PA Comm C of Allegheny County, South
Swarthmore C
U of Pittsburgh
5
500035
RI Brown U
TN Knoxville Coll
Middle Tennessee State U
Rhodes Coll
SC ECPI Coll of Технология
TX Абилин Кристиан U
Texas A&M U

8

7 UT

70005

U of Utah
VA Christopher Newport U
Radford U
Thomas Jefferson HS of Sci and Tech
U of Virginia
Технологический институт Вирджинии
Кол-во Уильяма и Мэри
WA Evergreen State U
003 WV Alderson-Broaddus College
Davis & Elkins College

выше, я попытался перечислить только те, где я I чувствую, что есть твердая информация о том, что Logisim был назначен напрямую для использования студентами. Не включены курсы, которые рекомендуют Logisim без явных присваиваний и тех, кто предлагает выбор между Logisim и другим программным обеспечением. (Также для найденных с помощью веб-поиска я ищу конкретные доказательства того, что программное обеспечение package не является малоизвестным конкурентом, который разделяет возможности Logisim. имя.)

Logisim: общедоступная лицензия GNU

 ОБЩАЯ ПУБЛИЧНАЯ ЛИЦЕНЗИЯ GNU
Версия 2, июнь 1991 г.
 Авторское право (C) 1989, 1991 Free Software Foundation, Inc.
 51 Franklin St, пятый этаж, Бостон, Массачусетс 02110-1301 США
 Каждому разрешено копировать и распространять дословные копии
 настоящего лицензионного документа, но изменение его не допускается.
Преамбула
 Лицензии на большинство программ предназначены для того, чтобы лишить вас
свобода делиться и изменять его. Напротив, GNU General Public
Лицензия предназначена для того, чтобы гарантировать вашу свободу бесплатно делиться и изменять
программное обеспечение — чтобы убедиться, что программное обеспечение бесплатно для всех его пользователей. Этот
Стандартная общественная лицензия распространяется на большую часть бесплатного программного обеспечения.
программное обеспечение Фонда и любую другую программу, авторы которой обязуются
используй это. (Некоторые другие программы Фонда свободного программного обеспечения покрываются
Стандартная общественная лицензия библиотеки GNU.) Вы можете применить ее к
ваши программы тоже.
 Когда мы говорим о свободных программах, мы имеем в виду свободу, а не
цена. Наши стандартные общественные лицензии предназначены для того, чтобы вы
иметь свободу распространять копии свободных программ (и взимать плату за
эту услугу, если хотите), что вы получаете исходный код или можете его получить
если вы хотите, вы можете изменить программное обеспечение или использовать его части
в новых бесплатных программах; и что вы знаете, что можете делать эти вещи.
 Для защиты ваших прав нам необходимо ввести ограничения, запрещающие
кто-либо, кто может отказать вам в этих правах или попросить вас отказаться от этих прав. Эти ограничения налагают на вас определенные обязанности, если вы
распространять копии программного обеспечения или изменять его.
 Например, если вы распространяете копии такой программы,
бесплатно или за вознаграждение, вы должны предоставить получателям все права,
у вас есть. Вы должны убедиться, что они тоже получают или могут получить
исходный код. И вы должны показать им эти термины, чтобы они знали их
права.
 Мы защищаем ваши права в два этапа: (1) авторское право на программное обеспечение и
(2) предложить вам эту лицензию, которая дает вам законное разрешение на копирование,
распространять и/или модифицировать программное обеспечение.
 Кроме того, для защиты каждого автора и нашей, мы хотим убедиться, что
что все понимают, что гарантии на это бесплатное нет
программное обеспечение. Если программное обеспечение изменено кем-то другим и передано, мы
хотят, чтобы его получатели знали, что то, что у них есть, не является оригиналом, поэтому
что любые проблемы, созданные другими, не будут отражаться на оригинале
репутации авторов. Наконец, любой свободной программе постоянно угрожает программное обеспечение.
патенты. Мы хотим избежать опасности того, что распространители бесплатного
программа будет индивидуально получать патентные лицензии, фактически делая
программа фирменная. Чтобы предотвратить это, мы дали понять, что любой
патент должен быть лицензирован для свободного использования каждым или вообще не лицензирован.
 Точные условия копирования, распространения и
модификация следовать.
ОБЩАЯ ПУБЛИЧНАЯ ЛИЦЕНЗИЯ GNU
 УСЛОВИЯ КОПИРОВАНИЯ, РАСПРОСТРАНЕНИЯ И ИЗМЕНЕНИЯ
 0. Настоящая Лицензия распространяется на любую программу или другую работу, содержащую
уведомление, размещенное правообладателем, о том, что оно может быть распространено
на условиях настоящей Стандартной общественной лицензии. «Программа» ниже,
относится к любой такой программе или произведению, а «произведение, основанное на Программе».
означает либо Программу, либо любую производную работу в соответствии с законом об авторском праве:
то есть произведение, содержащее Программу или ее часть,
либо дословно, либо с изменениями и/или переведенными на другой язык
язык. (Здесь и далее перевод включен без ограничений в
термин «модификация».) Каждый лицензиат обращается на «вы».
Деятельность, кроме копирования, распространения и модификации, не
подпадает под действие настоящей Лицензии; они выходят за его рамки. Акт
выполнение Программы не ограничено, а вывод Программы
распространяется только в том случае, если его содержание представляет собой произведение, основанное на
Программа (независимо от того, была ли она создана путем запуска Программы).
Верно ли это, зависит от того, что делает Программа.
 1. Вы можете копировать и распространять дословные копии Программного
исходный код в том виде, в каком вы его получили, на любом носителе, при условии, что вы
заметно и должным образом публиковать на каждом экземпляре соответствующий
уведомление об авторских правах и отказ от гарантии; сохранить в целости и сохранности все
уведомления, касающиеся настоящей Лицензии и отсутствия каких-либо гарантий;
и предоставить любым другим получателям Программы копию этой Лицензии. вместе с Программой.
Вы можете взимать плату за физический акт передачи копии и
Вы можете по своему выбору предложить гарантийную защиту в обмен на плату.
 2. Вы можете изменить свою копию или копии Программы или любой ее части.
из нее, формируя, таким образом, произведение на основе Программы, а также копировать и
распространять такие модификации или работать в соответствии с условиями Раздела 1
выше, при условии, что вы также соответствуете всем этим условиям:
 а) Вы должны сделать так, чтобы измененные файлы содержали заметные уведомления
 заявив, что вы изменили файлы и дату любого изменения.
 б) Вы должны сделать так, чтобы любая работа, которую вы распространяете или публикуете,
 полностью или частично содержит или является производным от Программы или любого
 его часть, которая должна быть лицензирована в целом бесплатно для всех третьих
 сторонами в соответствии с условиями настоящей Лицензии.
 в) Если модифицированная программа нормально читает команды в интерактивном режиме
 при запуске, вы должны вызвать его, когда запустили запуск для таких
 интерактивное использование самым обычным способом, чтобы распечатать или отобразить
 уведомление, включая соответствующее уведомление об авторских правах и
 заметьте, что гарантии нет (или же, говоря, что вы предоставляете
 гарантия) и что пользователи могут распространять программу в соответствии с
 эти условия и сообщить пользователю, как просмотреть копию этого
 Лицензия. (Исключение: если сама Программа интерактивна, но
 обычно не печатает такое объявление, ваша работа основана на
 Программа не обязана печатать объявление.)
Эти требования распространяются на измененное произведение в целом. Если
идентифицируемые разделы этой работы не являются производными от Программы,
и могут быть обоснованно признаны самостоятельными и отдельными произведениями в
себя, то настоящая Лицензия и ее условия не распространяются на тех,
разделы, когда вы распространяете их как отдельные произведения. Но когда ты
распределять одни и те же разделы как часть целого, основанного на произведении
по Программе, распределение всего должно быть на условиях
настоящей Лицензии, чьи разрешения для других лицензиатов распространяются на
всего целого, а значит, и каждой части, независимо от того, кто ее написал.
Таким образом, цель настоящего раздела не состоит в том, чтобы заявлять права или оспаривать
ваши права на произведение, полностью написанное вами; скорее намерение состоит в том, чтобы
осуществлять право контролировать распространение производных или
коллективные работы на основе Программы. Кроме того, простое объединение другой работы, не основанной на Программе
с Программой (или с произведением по Программе) на том
носитель информации или дистрибутив не ставит другое произведение под
сфера действия настоящей Лицензии.
 3. Вы можете копировать и распространять Программу (или произведение на ее основе,
в соответствии с Разделом 2) в объектном коде или исполняемой форме в соответствии с условиями
Разделы 1 и 2 выше при условии, что вы также выполните одно из следующих действий:
 а) Сопроводите его полным соответствующим машиночитаемым
 исходный код, который должен распространяться на условиях Разделов
 1 и 2 выше на носителе, обычно используемом для обмена программным обеспечением; или,
 б) Сопроводите его письменным предложением, действительным не менее трех
 лет, чтобы дать любому третьему лицу, за плату, не более чем ваша
 стоимость физического выполнения исходного дистрибутива, полный
 машиночитаемая копия соответствующего исходного кода,
 распространяется в соответствии с положениями разделов 1 и 2 выше на носителе
 обычно используется для обмена программным обеспечением; или,
 c) Сопроводите его информацией, которую вы получили в отношении предложения
 распространять соответствующий исходный код. (Эта альтернатива
 разрешено только для некоммерческого распространения и только если вы
 получил программу в объектном коде или в исполняемой форме с таким
 предложение в соответствии с подразделом b выше.)
Исходный код произведения означает предпочтительную форму произведения для
внесение в него модификаций. Для исполняемой работы полный исходный код
код означает весь исходный код для всех содержащихся в нем модулей, а также любые
связанные файлы определения интерфейса, а также сценарии, используемые для
контролировать компиляцию и установку исполняемого файла. Однако в качестве
особое исключение, распространяемый исходный код не обязательно должен включать
все, что нормально распространяется (либо в исходном коде, либо в бинарном
form) с основными компонентами (компилятор, ядро ​​и т. д.)
операционная система, в которой работает исполняемый файл, если только этот компонент
сам сопровождает исполняемый файл.
Если распространение исполняемого или объектного кода осуществляется путем предложения
доступ к копии из назначенного места, а затем предложение эквивалентного
доступ для копирования исходного кода из того же места считается
распространение исходного кода, даже если третьи лица не
вынужден копировать исходник вместе с объектным кодом. 4. Вы не можете копировать, изменять, сублицензировать или распространять Программу.
за исключением случаев, прямо предусмотренных настоящей Лицензией. Любая попытка
в противном случае копировать, изменять, сублицензировать или распространять Программу
недействительным и автоматически прекращает действие ваших прав по настоящей Лицензии.
Однако стороны, получившие копии или права от вас в соответствии с
этой Лицензии их лицензии не будут аннулированы до тех пор, пока такие
стороны остаются в полном согласии.
 5. Вы не обязаны принимать эту Лицензию, поскольку вы не
подписал его. Однако ничто другое не дает вам права изменять или
распространять Программу или производные от нее работы. Эти действия
запрещено законом, если вы не принимаете эту Лицензию. Следовательно, по
изменение или распространение Программы (или любой работы, основанной на
Программа), вы подтверждаете свое согласие с настоящей Лицензией, и
все его положения и условия для копирования, распространения или изменения
Программа или работы на ее основе. 6. Каждый раз, когда вы распространяете Программу (или любую работу, основанную на
Программа), получатель автоматически получает лицензию от
первоначальному лицензиару копировать, распространять или изменять Программу в соответствии с
эти условия. Вы не можете навязывать дальше
ограничения на осуществление получателями прав, предоставленных настоящим документом.
Вы не несете ответственности за обеспечение соблюдения третьими сторонами
эта Лицензия.
 7. Если вследствие судебного решения или заявления о патенте
нарушения или по любой другой причине (не ограничиваясь патентными вопросами),
на вас налагаются условия (будь то по решению суда, по соглашению или
иное), которые противоречат условиям настоящей Лицензии, не
освободить вас от условий настоящей Лицензии. Если ты не можешь
распространять таким образом, чтобы одновременно удовлетворить свои обязательства по настоящему
лицензии и любых других соответствующих обязательств, то, как следствие, вы
вообще не может распространять Программу. Например, если патент
лицензия не разрешает безвозмездное распространение Программы
все те, кто получает копии прямо или косвенно через вас, то
единственный способ, которым вы могли бы удовлетворить и это, и эту Лицензию, состоял бы в том, чтобы
полностью воздержаться от распространения Программы.
Если какая-либо часть настоящего раздела будет признана недействительной или не имеющей исковой силы в соответствии с
каких-либо конкретных обстоятельств, баланс раздела предназначен для
применяются, и раздел в целом предназначен для применения в других
обстоятельства.
Целью этого раздела не является побуждение вас к нарушению каких-либо
патенты или другие права собственности или оспаривать действительность любого
такие претензии; этот раздел имеет единственную цель защиты
целостность системы распространения свободных программ, которая
реализуется в соответствии с практикой публичного лицензирования. Многие люди сделали
щедрые взносы в широкий спектр программного обеспечения, распространяемого
через эту систему в зависимости от последовательного применения этого
система; это зависит от автора/донора, чтобы решить, если он или она желает
распространять программное обеспечение через любую другую систему, и лицензиат не может
навязывать этот выбор. Этот раздел предназначен для того, чтобы полностью прояснить, что считается
быть следствием остальной части этой Лицензии.
 8. Если распространение и/или использование Программы ограничено в
некоторых странах либо патентами, либо интерфейсами, защищенными авторским правом,
первоначальный владелец авторских прав, размещающий Программу под настоящей Лицензией
может добавить явное ограничение географического распространения, за исключением
этих странах, так что распространение разрешено только в
страны, не исключенные таким образом. В таком случае настоящая Лицензия включает
ограничение, как если бы оно было написано в тексте настоящей Лицензии.
 9. Free Software Foundation может публиковать пересмотренные и/или новые версии
Стандартной общественной лицензии время от времени. Такие новые версии будут
быть похожим по духу на настоящую версию, но может отличаться в деталях от
решать новые проблемы или заботы.
Каждая версия получает распозновательный номер версии. Если программа
указывает номер версии настоящей Лицензии, которая применяется к ней, и «любой
более поздняя версия», у вас есть возможность следовать положениям и условиям
либо этой версии, либо любой более поздней версии, опубликованной Free
Фонд программного обеспечения. Если в Программе не указан номер версии
этой Лицензии, вы можете выбрать любую версию, когда-либо опубликованную Свободным программным обеспечением.
Фундамент.
 10. Если вы хотите включить части Программы в другие бесплатные
программы, условия распространения которых отличаются, напишите автору
попросить разрешения. Для программного обеспечения, защищенного авторскими правами Free
Software Foundation, напишите в Free Software Foundation; иногда мы
делать для этого исключения. Наше решение будет руководствоваться двумя целями
сохранения бесплатного статуса всех производных нашего бесплатного программного обеспечения и
содействия совместному использованию и повторному использованию программного обеспечения в целом.
НЕТ ГАРАНТИИ
 11. ПОСКОЛЬКУ ПРОГРАММА ПРЕДОСТАВЛЯЕТСЯ БЕСПЛАТНО, ГАРАНТИИ НЕ ПРЕДОСТАВЛЯЮТСЯ.
ДЛЯ ПРОГРАММЫ, В СТЕПЕНИ, РАЗРЕШЕННОЙ ПРИМЕНИМЫМ ЗАКОНОДАТЕЛЬСТВОМ. ЗА ИСКЛЮЧЕНИЕМ КОГДА
ПРОЧОЕ УКАЗАНО В ПИСЬМЕННОМ СООБЩЕНИИ ОБЛАДАТЕЛИ АВТОРСКИМ ПРАВОМ И/ИЛИ ДРУГИЕ СТОРОНЫ
ПРЕДОСТАВЛЯЙТЕ ПРОГРАММУ "КАК ЕСТЬ" БЕЗ КАКИХ-ЛИБО ЯВНО ВЫРАЖЕННЫХ ГАРАНТИЙ
ИЛИ ПОДРАЗУМЕВАЕМЫЕ, ВКЛЮЧАЯ, ПОМИМО ПРОЧЕГО, ПОДРАЗУМЕВАЕМЫЕ ГАРАНТИИ
КОММЕРЧЕСКАЯ ПРИГОДНОСТЬ И ПРИГОДНОСТЬ ДЛЯ ОПРЕДЕЛЕННОЙ ЦЕЛИ. ВЕСЬ РИСК КАК
К КАЧЕСТВУ И ПРОИЗВОДИТЕЛЬНОСТИ ПРОГРАММЫ С ВАМИ. СЛЕДУЕТ
НЕИСПРАВНОСТЬ ПРОГРАММЫ, ВЫ ПРИНИМАЕТЕ НА СЕБЯ СТОИМОСТЬ ВСЕХ НЕОБХОДИМЫХ ОБСЛУЖИВАНИЙ,
РЕМОНТ ИЛИ ИСПРАВЛЕНИЕ.
 12. НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ, ЕСЛИ ЭТО НЕ ТРЕБУЕТСЯ ПРИМЕНИМЫМ ЗАКОНОДАТЕЛЬСТВОМ ИЛИ НЕ СОГЛАСОВАНО В ПИСЬМЕННОЙ СРЕДСТВЕ
МОЖЕТ ЛИ ВЛАДЕЛЕЦ АВТОРСКИХ ПРАВ ИЛИ ДРУГАЯ СТОРОНА, КОТОРАЯ МОЖЕТ ИЗМЕНЯТЬ И/ИЛИ
РАСПРОСТРАНЯТЬ ПРОГРАММУ, КАК РАЗРЕШЕНО ВЫШЕ, НЕСУТ ОТВЕТСТВЕННОСТЬ ЗА УЩЕРБ,
ВКЛЮЧАЯ ЛЮБОЙ ОБЩИЙ, ОСОБЫЙ, СЛУЧАЙНЫЙ ИЛИ КОСВЕННЫЙ УЩЕРБ, ВОЗНИКАЮЩИЙ
ИЗ-ЗА ИСПОЛЬЗОВАНИЯ ИЛИ НЕВОЗМОЖНОСТИ ИСПОЛЬЗОВАНИЯ ПРОГРАММЫ (ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ
К ПОТЕРЯМ ДАННЫХ ИЛИ ДАННЫМ, КОТОРЫЕ ОКАЗАНЫ НЕТОЧНЫМИ, ИЛИ ПОТЕРЯМ, ПОДДЕРЖАННЫМ
ВЫ ИЛИ ТРЕТЬИ ЛИЦА ИЛИ НЕВОЗМОЖНОСТЬ ПРОГРАММЫ РАБОТАТЬ С КАКИМ-ЛИБО ДРУГИМ
ПРОГРАММЫ), ДАЖЕ ЕСЛИ ТАКОЙ ВЛАДЕЛЕЦ ИЛИ ДРУГАЯ СТОРОНА БЫЛ УВЕДОМЛЕН О
ВОЗМОЖНОСТЬ ТАКИХ ПОВРЕЖДЕНИЙ.
КОНЕЦ ПОЛОЖЕНИЙ И УСЛОВИЙ
Как применить эти условия к вашим новым программам
 Если вы разрабатываете новую программу и хотите, чтобы она
возможное использование для публики, лучший способ добиться этого - сделать его
бесплатное программное обеспечение, которое каждый может распространять и изменять в соответствии с этими условиями. Для этого прикрепите к программе следующие уведомления. Это самое безопасное
чтобы прикрепить их к началу каждого исходного файла для наиболее эффективного
передать исключение гарантии; и каждый файл должен иметь как минимум
строка «авторское право» и указатель на то, где можно найти полное уведомление. 
 Авторское право (С)
 Эта программа является бесплатным программным обеспечением; вы можете распространять его и/или изменять
 на условиях Стандартной общественной лицензии GNU, опубликованной
 Фонд свободного программного обеспечения; либо версия 2 Лицензии, либо
 (на ваш выбор) любую более позднюю версию.
 Эта программа распространяется в надежде, что она будет полезна,
 но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ; даже без подразумеваемой гарантии
 КОММЕРЧЕСКАЯ ПРИГОДНОСТЬ или ПРИГОДНОСТЬ ДЛЯ ОПРЕДЕЛЕННОЙ ЦЕЛИ. См.
 Стандартная общественная лицензия GNU для более подробной информации.
 Вы должны были получить копию Стандартной общественной лицензии GNU.
 вместе с этой программой; если нет, напишите в Free Software
 Foundation, Inc. , 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Также добавьте информацию о том, как связаться с вами по электронной и бумажной почте.
Если программа интерактивная, заставьте ее выводить короткое уведомление, подобное этому
при запуске в интерактивном режиме:
 Гномовижн версии 69, Copyright (C) год имя автора
 Gnomovision поставляется АБСОЛЮТНО БЕЗ ГАРАНТИЙ; для подробностей наберите `show w'.
 Это бесплатное программное обеспечение, и вы можете распространять его
 при определенных условиях; введите `show c' для подробностей.
Гипотетические команды «show w» и «show c» должны отображать соответствующие
части Стандартной общественной лицензии. Конечно, используемые вами команды могут
называться иначе, чем `show w' и `show c'; они могут быть даже
щелчки мышью или элементы меню - все, что подходит для вашей программы.
Вам также следует обратиться к своему работодателю (если вы работаете программистом) или к
школа, если таковая имеется, подписать «отказ от авторских прав» на программу, если
необходимый.

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

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