исходный код что это значит
Действительно ли вам нужен исходный код?
Во многие знания многие печали
Если вы спросите любого разработчика встроенного ПО, хочет ли он иметь доступ к исходному коду операционной системы реального времени, которую он использует, ответ почти наверняка будет — конечно. Точно так же обстоит дело с любым покупным ПО. Является ли такой ответ разумным для всех случаев и почему исходный код иногда необходим, а иногда его наличие менее полезно, чем ожидалось?
Есть ряд ключевых критериев, которые инженеры применяют при выборе операционной системы реального времени (ОСРВ). Многие из них — стоимость, функциональность, лицензирование, поддержка — несомненно, весьма важны (особенно стоимость — таковы наши реалии). Тем не менее, еще один критерий — наличие исходного кода — может быть не столь важен, но всегда оценивается как сильный фактор.
Доступность исходного код не означает, что он поставляется автоматически и бесплатно. Такой подход справедлив только для продуктов с открытым исходным кодом, а в других случаях производители могут взимать плату за исходный код или сделать его доступным по запросу.
Разработка железа. Здесь тоже есть исходный код, что особенно верно для разработки с использованием VHDL и Verlog. Как дела обстоят здесь? Исторически сложилось так, что при выборе интегральной микросхемы и разработки ее применения инженер опирался на спецификации, в которых указана функциональность, расположение выводов, требования к питанию, и т.д. И при этом никто не ожидал увидеть полную схему внутреннего устройства ИС, хотя часто могли видеть структурную схему (в основном в качестве иллюстративного материала, который облегчал понимание принципов функционирования), а иногда даже и принципиальную схему (для аналоговых ИС типа ОУ), хотя и без номиналов.
Инженер, которые сегодня разрабатывает ASIC или прошивку FPGA, скорее всего, будет использовать некоторые готовые IP блоки — предварительно упакованный блок, который обеспечивает определенный функционал. При этом, выбор будет основываться на спецификациях, и совершенно не очевидно, что оригинальный HDL для IP будет включен в комплект поставки. Этот подход с использованием «черных ящиков» хорошо известен в мире аппаратного обеспечения.
Безопасность. Любая технология, которая включена в продукт должен быть выбрана, учитывая возможности будущей технической поддержки. Например, при выборе ИС следует избегать применения уникальных изделий от одного производителя, что может смягчить проблемы при сбоях поставок.
При использовании IP, будь то аппаратные боки или поставляемое ПО, сбои поставок как таковые вряд ли могут иметь место (за исключением случаев разовых лицензий), но постоянная поддержка должна присутствовать. Поэтому вопрос о том, будет ли Ваш поставщик в бизнесе на протяжении всего срока жизни Вашего продукта, лучше задать до того, как выбрать конкретную реализацию.
Если исходный код для IP доступен, это дает возможность решения любых (ну почти любых) проблем с программным обеспечением, даже если поставщик больше не в состоянии предложить поддержку. По этой причине, многие покупатели RTOS и т.д. хотели бы иметь исходный код на полке, даже если они никогда не будут смотреть на него, просто на всякий случай.
Настройка программного обеспечения.Основным различием между встраиваемыми системами и десктопами является изменчивость первых. Большинство ПК похожи на многие другие и выбор только межу средой исполнения: Windows, Mac, или Linux. Встроенные системы, в свою очередь, невероятно изменчивы — различные процессоры, конфигурации памяти и периферийных устройств. В результате, программное обеспечение IP должен быть гибким, так чтобы он мог быть развернут на различных системах. Хотя многие продукты, такие как RTOS поставляются в двоичном виде — обычно библиотеке, которая настроена на конкретную архитектуру, требования к поставке исходного кода могут стимулировать поставщиков, исключая необходимость сохранения и поддержки многочисленных вариаций, поскольку предоставление IP в виде исходного решает многие из этих вопросов. Пользователь может построить код для конкретного процессора, адаптировать к карте памяти устройства, и добавить необходимые расширения устройств. В некоторых случаях, IP блок может быть конфигурирован с помощью условной компиляции — как правило, для определения конфигурации редактируется заголовочный файл.
Сертификация. Для некоторых типов приложений, таких военные / авиационные и медицина, встроенное ПО должно быть сертифицировано на безопасность и соответствие различным стандартам. Этот процесс является сложным и дорогим и обычно влечет за собой проверку каждой строки кода. Поэтому обычно невозможно купить «предварительно сертифицированные» блоки ПО, так как все приложение является предметом рассмотрения. Таким образом, разработчик критически важных приложений, скорее всего, искать IP, который доступен вместе с исходным кодом, так чтобы полная проверка могла быть проведена.
Что такое Исходный код?
Вопрос может показаться странным, но без ответа на него обсуждение каких-либо аспектов его наличия (или отсутствия) превращается в несколько странное занятие. Ответ может показаться очевидным: исходный код некоторой программы представляет собой набор файлов, содержащих инструкции на языке высокого уровня или ассемблере, которые могут быть скомпилированы и собраны в функционирующие двоичные инструкции. Сразу вопрос — необходимые для процесса преобразования программы и среда исполнения для них являются частью исходного кода (в бинарном виде)? Тем не менее данному определению отвечают по меньшей мере 3 формы, в которых «исходный код» может быть поставлен (для примера поговорим о языке С) в порядке ухудшения качества:
1) Действительно исходный код, с хорошей планировкой, четкими конвенциями именования переменных и хорошо откомментированный (при условии, что такой имеется у разработчика IP, что совершенно необязательно).
2) Строки кода, которые будут компилировать успешно, НО без комментариев или особенно значимых имен идентификаторов.
3) Строки кода после обфрускации, которая делает код нечитаемым человеком, но при этом приемлем для компилятора. Это делается с помощью замены имен идентификаторов на бессмысленные и удаления всех комментариев и синтаксически нетребуемых пробелов. Существует обратный процесс, но его результаты трудно назвать приемлемыми.
Все эти формы используются поставщиков программного обеспечения для следующих целей:
1) является тем, что большинство покупателей ожидают получить и то, что многие производители действительно обеспечивают. Тем не менее, при принятии решения о покупке, если вам требуется исходный код, важно убедиться что это именно такой вариант, если сомневаетесь, просто попросите образцы.
2) обычно используется, когда продавец хочет доставить необходимый минимум, который может быть (только) достаточно хорошо для сертификации.
3) используется для защиты содержимого IIP от посторонних глаз, что означает, что программное обеспечение получает преимущество конфигурируемости, но не более того.
Недостатки исходного кода.
Самый главный недостаток того, что исходный код доступен: это сильное искушение. Каждый разработчик хочет сделать свое программное обеспечение как можно лучше (ну есть такая точка зрения). Так, например, если API ОСРВ не работает в точности так, чтобы быть оптимальным для приложения, доступность исходного кода предоставляет возможность изменить его.
Хотя может показаться, что сделать приложение оптимальным — это здорово, но есть проблема долгосрочной поддержки. Что, если существует проблема с функциональностью RTOS? Поставщик не будет поддерживать модифицированный продукт. Что делать, если выходит новая версия ОСРВ? Включение ее в редизайн может потребовать значительное время на проведение повторных модификаций, особенно если их автор у Вас уже не работает (ну или Вы делали эти модификации 3 года назад и естественно, или, как говорят, разумеется, не озаботились написанием соответствующей документации).
Рассмотрев ситуации, в которых исходный код может быть желательным, полезным или необходимым, следует сделать вывод, что он не требуется безусловно и всегда. Если вы покупаете IP от большого, хорошо известного и стабильного поставщика, который может предложить долгосрочную поддержку, то наличие исходного кода не является актуальным и может даже быть занесено в недостатки.
Больше чем софт: что такое код open source и для чего он нужен
Согласно определению на Open Source Initiative, Open Source Software или программное обеспечение с открытым исходным кодом — это ПО, «исходники» которого доступны для просмотра и изменения. Исходный код можно использовать, чтобы создавать свои модификации софта, а также свободно распространять и даже продавать их.
Принцип открытости со временем охватил не только сферу программирования, но и другие области. Дизайнеры могут размещать в открытом доступе бесплатные шрифты и шаблоны, программисты — коды мобильных приложений и онлайн-игры, ученые — исследования.
В последние годы потребителями открытого ПО становятся целые страны. Французская жандармерия использует на своих компьютерах свободное ПО Ubuntu, а другие министерства переходят с Microsoft Office на бесплатный LibreOffice. Этот офисный пакет также используют министерства обороны Нидерландов и Италии, муниципалитеты Албании и Испании. А правительство Великобритании перешло с формата PDF в документации на опенсорс-формат Open Document Format for Office Applications (ODF) по умолчанию. РБК Тренды разобрались, в чем плюсы и минусы открытого софта.
С чего начиналось свободное ПО
С 1952 по 1955 год компания IBM начала выпускать IBM 701, первый коммерчески доступный компьютер. ЭВМ не продавали конечным потребителям, а сдавали в аренду научным институтам, военным компаниям и госпредприятиям. Машины поставлялись без операционной системы и программ. Ученые и инженеры начали писать софт сами и делились им с коллегами из других компаний, у которых были аналогичные ЭВМ.
Со временем коммерческих моделей компьютеров становилось больше, и они стали доступны обычным пользователям. Однако под каждую из этих моделей придумывали отдельное ПО. Компании-производители создавали каждый свою операционную систему: BESYS, Compatible Time-Sharing System или CP/CMS. Эти ОС начинали продавать вместе с ПК, и иногда они стоили дороже самого компьютера.
Разработчик Ричард Столлман присоединился к лаборатории искусственного интеллекта при Массачусетском технологическом институте (MIT). Он принимал участие в работе над свободным ПО, например, над EMACS — текстовым редактором для мини-компьютеров семейства PDP. Позднее редактор продали коммерческому дистрибьютору. В 1984 году Столлман решил основать проект свободного ПО под названием GNU (рекурсивный акроним от англ. GNU’s Not UNIX).
В рамках этого проекта энтузиасты придумали термин «свободное ПО» и сформулировали его критерии: использование, изучение, шеринг и улучшение. Они опубликовали манифест GNU. В 1985 году Столлман основал фонд Free Software Foundation (FSF) для развития свободного ПО за счет пожертвований. В 1989 году появилась первая версия лицензии GPL — General Public License («Универсальная общественная лицензия GNU»). Она должна защитить свободу всех пользователей программ, давать права на копирование, модификацию и распространение софта. Столлман добавил в лицензию понятие «авторское лево» в противовес «авторскому праву», по которому пользователи всех производных программ получают все оригинальные права создателя. Позднее появились другие лицензии, которые позволяют использовать свободное ПО, например, лицензия MIT от Массачусетского технологического института или лицензия BSD от Калифорнийского университета в Беркли.
К 1991 году разработчикам удалось создать независимую работоспособную ОС, но ей не хватало ядра. Тогда Линус Торвальдс выпустил ядро Linux с открытым кодом, а в 1992 году лицензировал его по GPL.
В середине 1990-х годов в open source пришла первая крупная компания Netscape. Ее браузер Navigator был одним из самых популярных в мире, но с появлением Internet Explorer он стал вытесняться с рынка. В 1998 году в Netscape решили открыть исходный код своего браузера. Год спустя компании не стало, но исходный код Navigator стал основой для одного из самых популярных браузеров — Mozilla Firefox.
В 1998 году возникла организация Open Source Initiative (OSI), которая занимается популяризацией открытого кода. В том же году разработчики придумали альтернативу термину «свободное ПО». Они решили внедрить понятие open source, чтобы сменить парадигму бесплатности на доступность. Впоследствии разработчики Эрик Реймонд и Брюс Перенс написали «Определение Open Source».
В 2014 году представители фонда поддержки открытых проектов Linux Foundation заявили, что в будущем 80% стоимости технологий будет приходиться на открытый код и только 20% — на платные программы.
Плюсы открытого кода
Обсуждения плюсов и минусов и активны по сей день. Однако многие разработчики сходятся в общем понимании позитивных и негативных сторон опенсорс-проектов.
Для пользователей
Для разработчиков:
Для корпораций:
Минусы open source
Плагиат. Коммерческие структуры могут использовать открытый код для своих продуктов без указания его авторства. Иногда они вносят минимальные изменения в код, чтобы выдавать его за собственный. Подобное случилось с участниками проекта Leela, которые разработали бесплатный шахматный движок Chess Zero с настраиваемой нейронной сетью. Его использовала компания ChessBase, которая выпустила шахматную программу Fat Fritz. Пакет программ ChessBase Fritz компании стоит от €79 до €99. При этом она отрицает, что каким-либо образом задействовала открытый код.
Аналогичная история была и с Amazon Web Services, которая запустила CloudWatch Synthetics Recorder, расширение Chrome для записи взаимодействий с браузером. Однако данный сервис оказался полностью скопирован с проекта Headless Recorder, созданного разработчиком Тимом Нолетом. В AWS факт плагиата не признавали.
Отсутствие поддержки. Открытый код может использоваться в тех проектах, о которых его авторы даже не подозревают. Таким образом, они не могут оказывать должную поддержку. Кроме того, существует риск, что разработчик небольшого проекта отойдет от дел, а продолжать его дело будет некому, и код начнет устаревать. Проект Libraries.io обнаружил более 2 400 библиотек с открытым кодом, используемых минимум в 1 тыс. других программ, не получавших должного внимания со стороны опенсорс-сообщества. Для потребителя такой программы это может стать проблемой. К примеру, когда программист Азер Кочулу удалил свою библиотеку Leftpad из интернета, проблемы возникли у Facebook, Netflix и других проектов.
Незамеченные уязвимости. Каждый открытый проект зависит от более мелких. В этой цепочке зависимостей легко может возникнуть дыра в безопасности, которую могут долго не замечать. В 2014 году такая уязвимость в безопасности Heartbleed была обнаружена в OpenSSL — программе с исходным кодом, используемой практически всеми веб-сайтами, обрабатывающими платежи с банковских карт. Она делала все эти ресурсы уязвимыми для атак хакеров и кражи данных. По данным GitHub, 17% всех уязвимостей создаются со злонамеренными целями. Исследователи отмечают, что они могут просуществовать до четырех лет, прежде чем будут устранены.
Проекты с открытым кодом
Проекты GNU и Linux послужили основой для многих продуктов. А приход компании Netscape позволил привлечь внимание ИТ-гигантов, которые со временем начали активно вкладываться в open source.
Проект Debian, одной из старейших операционных систем, основанных на ядре Linux, с момента своего основания разрабатывался открыто. Фонд свободного программного обеспечения спонсировал проект с 1994 по 1995 год, а затем создатели организовали некоммерческую организацию «Программное обеспечение в общественных интересах» для финансирования Debian. Проект включает популярные бесплатные программы, такие как LibreOffice, браузер Firefox, почту Evolution, устройство записи дисков K3b, медиаплеер VLC, редактор изображений GIMP и программу просмотра документов Evince.
Организация Apache Software Foundation тоже начиналась как открытый проект по развитию одноименного программного обеспечения, в том числе веб-сервера Apache. Данный сервер считается одним из наиболее популярных. Он позволяет запускать сайты небольших проектов и малого бизнеса на WordPress. В наше время разработчики поддерживают множество софтверных проектов, которые имеют открытую лицензию Apache Software License. Спонсорами ASF выступают такие гиганты как Microsoft, Huawei и Amazon Web Sevices.
Компания Red Hat, производитель программного обеспечения на основе операционной системы Linux, возникла в 1995 году. Она не только выпускала софт, но и занималась технической поддержкой и обучением системных администраторов и разработчиков. В 2018 году компанию купила IBM.
Google развивалась благодаря Linux и открытому ПО. Компания сама поддерживает такие проекты как библиотека машинного обучения TensorFlow, язык программирования Go, ПО для автоматизации развертывания приложений Kubernetes и другие. В 2017 году Google открыла портал для 2 тыс. своих open source проектов. Компания делится своими наработками в области открытого кода, а также рассказывает о поддержке новых инициатив.
Microsoft, которая изначально была против open source, в последние годы также изменила отношение к свободному ПО. В 2018 году компания передала 60 из 90 тыс. своих патентов на разработки Open Invention Network (OIN) — организации, которая владеет патентами на программное обеспечение открытой экосистемы GNU/Linux и предоставляет право на их бесплатное использование. Чуть позже корпорация приобрела портал репозиториев открытого года GitHub, а также активно принимает участие в развитии открытых проектов, в том числе, Linux.
Организация Open Source Design объединяет дизайнеров, которые разрабатывают проекты с открытым кодом. Она существует более пяти лет. В работе организации принимают участие UX-дизайнеры Mozilla, GNOME, Fedora, Canonical (Ubuntu), WordPress, Drupal, Libre Office, «википедии» для дизайнеров XWiki и других компаний.
В науке опенсорс-подход распространяется не только на открытое ПО, но и на публикации работ исследователей, открытое рецензирование и развитие открытых образовательных ресурсов. Еще в 1991 году физик Пол Гинспарг основал электронный архив arXiv при Лос-Аламосской национальной лаборатории для публикации в открытом доступе препринтов. Теперь там публикуются работы не только по физике, но и по медицине, математике и еще ряду направлений. Европейская организация по ядерным исследованиям (ЦЕРН) поддерживает не только выпуск оборудования с открытым исходным кодом и открытой лицензией, но и собственный портал открытых данных. Ученые применяют инструменты с открытым кодом также для того. чтобы раскрывать методологию своих исследований. К примеру, они используют Open Notebooks для документирования рабочих процессов.
Продукты с открытым кодом используют не только специалисты, но и обычные пользователи, причем иногда они даже не подозревают об этом. LibreOffice, OpenOffice и NeoOffice позволяют бесплатно работать с текстовыми документами, таблицами, графиками, рисовать и делать презентации. 7-Zip, файловый архиватор с высокой степенью сжатия, помогает экономить место на ПК и передавать большие файлы. Графический редактор GIMP способен заменить Photoshop, так как включает инструменты цветокоррекции, фильтры, рисующие инструменты, маски и слои.
Примеру опенсорс-проектов следуют и корпорации, которые открывают свои программы для улучшения. Так, Microsoft решила поделиться кодом приложения «Калькулятор» для Windows, чтобы открытое сообщество предлагало для него исправления и новые функции.
Открытый исходный код в наши дни помогает поддерживать технологии искусственного интеллекта, блокчейна и сложных вычислений. Согласно отчету Red Hat, который опросил 1 250 ИТ-лидеров по всему миру, 90% этих предприятий используют открытый исходный код: 64% компаний задействуют такое ПО для модернизации инфраструктуры, 54% — для разработки приложений, 53% — для цифровой трансформации. За последние два года эти показатели увеличились на 11%, и в будущем открытый код, вероятно, поможет заменять ручные процессы автоматизированным управлением на программном обеспечении, способствуя инновациям.
Как научиться читать код сайта и зачем это нужно, если вы не программист
Кажется, что программирование — это сложно, особенно если никогда не приходилось с ним сталкиваться. На самом деле всё зависит от задачи. Чтобы вносить небольшие изменения на сайт, хватит и азов, а их может освоить даже человек без технического образования. Об этих азах и пойдет речь в статье. Расскажем об устройстве исходного кода, о том, как начать в нём немного разбираться, и ответим на вопрос, зачем всё это вам нужно.
Примечание: мы не будем лезть в дебри и подробно описывать процесс программирования. Расскажем о том минимуме, что пригодится в работе над вашим сайтом.
Зачем понимать исходный код
Сначала поговорим о том, зачем вам нужно что-то знать о коде, если вы не программист. Да, здорово расширять свои границы. Но главное, что вы можете получить из этого знания — пользу для бизнеса.
Зная, как устроен исходный код, вы сможете:
Если просто смотреть на страницу сайта, вы не сможете проанализировать, правильно ли настроено SEO-продвижение, а инструменты для анализа не всегда могут быть под рукой. Только в коде проверяют, на месте ли метаданные и обязательные элементы — основная информация для успешного SEO. Поэтому заглядывать в исходный код становится обычной практикой маркетологов или владельцев бизнеса, которые сами занимаются продвижением.
Плюс вам больше не будет казаться магией работа SEO-специалиста. Вы будете говорить на одном языке и понимать, как поисковики видят ваш сайт и что можно улучшить.
Если вы решите проанализировать сайты конкурентов, немного разбираясь в коде, вы сможете оценить не только визуальную и контентную стороны страниц. У вас получится определить, с помощью каких ключевых слов продвигается сайт, на какой CMS работает и немного больше понять стратегию продвижения конкурентов.
Вам будет легче представить и объяснить разработчику, как вы видите свою задумку. А значит, на финальной стадии работ не окажется, что всё сделано не так, а деньги и время уже потрачены.
Когда программист будет объяснять вам, в каких правках нуждается сайт компании, вы всё поймёте и сможете на равных обсудить это с сотрудником. Вам будет проще нанимать человека на IT-должность и разбираться в сметах на обслуживание сайта.
Экономнее изучить азы программирования и быстро устранять проблемы самостоятельно вместо того, чтобы нанимать программиста для выполнения небольших, но частых задач. Например, менять размеры баннеров или цвет текста на странице.
Что такое исходный код сайта
Национальная библиотека им. Н. Э. Баумана говорит, что исходный код — это текст компьютерной программы, который может прочитать человек, на языке программирования или языке разметки.
Именно код скрывается за внешней стороной любой интернет-страницы. Он выглядит как список пронумерованных строк с информацией о том или ином элементе страницы.
Как посмотреть код любого сайта
Расскажем, как посмотреть исходный код страницы в браузере Google Chrome. В остальных браузерах этот процесс примерно такой же.
Код вызывается одной из комбинаций:
Панель с кодом откроется на этой же странице, а не в другом окне. При наведении мышки на код будет подсвечиваться соответствующая ему область на текущей странице.
Дальше в статье мы будем пользоваться именно этим инструментом — он нагляднее.
Чтобы не утонуть в огромном количестве новых символов, нужно разобраться, что такое HTML, CSS и JavaScript.
Что такое HTML
HTML — язык гипертекстовой разметки. На нём написано большинство сайтов в интернете.
Что можно узнать о сайте из исходного кода
Код сайта предназначен в первую очередь для браузера и поисковых систем. Браузеру он говорит, что и в каком порядке выводить на странице. Поисковые системы берут из исходного кода всю информацию о странице: заголовок, описание, метаданные — всё то, что потребуется, чтобы показать страницу в выдаче поисковика. Обычный пользователь тоже может прочитать этот специальный текст — достаточно знать, как он устроен.
Все элементы кода нужны для правильного расположения разделов и деталей страницы. Всё это вы сможете найти и проанализировать, внимательно изучив исходный код сайта:
Чтобы лучше понять теорию, разберёмся в коде страниц блога RU-CENTER: найдём теги, картинки и другую информацию.
Для начала открываем страницу и вызываем интерактивный код (Ctrl + Shift + I). Откроется интерактивная панель с кодом, поделённая на две области. Слева — HTML-код (вкладка Elements), справа — CSS (вкладка Styles). Нам пока нужна левая часть с HTML.
Основные теги
HTML-страница состоит из набора тегов, которые вместе с содержимым называются элементами — это строительный материал веб-страницы. Другими словами, теги — команды для браузера, чтобы он понял, как нужно показывать сайт пользователю. Указывая в коде определенные теги, вы говорите браузеру: «Это текст, а это картинка, это ссылка, а это кнопка или форма». И браузер показывает все элементы интерфейса так, как вы их разместили.
Теги обычно открываются и закрываются так: — открытие тега, — закрытие.
Теги делятся на два вида: блочные и строчные.