Что такое открытый исходный код? Программное обеспечение с открытым исходным кодом - это программное обеспечение, которое делает исходный код свободно доступным для просмотра и использования любым человеком. Компании, частные лица, университеты и многие другие организации создают целые проекты и используют лицензию с открытым исходным кодом, а затем передают код любому, кто хочет его использовать. Используемая лицензия определяет, как другие, кто использует этот код, делятся своими модификациями.
Существуют разные лицензии с открытым исходным кодом, которые имеют разные условия использования: от GPL (Стандартная общественная лицензия GNU), которая допускает «бесплатное распространение при условии, что дальнейшие разработки и приложения помещаются под одной лицензией», до более либеральных лицензий, таких как Лицензия Apache, которая не требует изменений, чтобы быть открытым и иметь доступный исходный код. Android использует обе эти лицензии, и мы рассмотрим их по очереди.
Ядро Linux, которое используется в Android, подпадает под действие GPL. Это означает, что любые изменения, сделанные в исходном коде, должны быть доступны, когда двоичный файл (geek-talk для скомпилированного, исполняемого фрагмента программного обеспечения) публикуется. Это означает, что производители, такие как HTC, Samsung, Motorola и другие, должны выпускать исходный код ядра для любых устройств, которые они продают, в то же время, когда они начинают их продавать. Конечно, это случается редко, и мы ожидаем, что команда удалит заметки, исходные комментарии и другие полезные вещи, прежде чем они попадут к нам. Это выпуски кода, о которых вы упомянули в Интернете, и которые состоят из исходного кода ядра и других «кусочков» открытого кода, которые подпадают под действие GPL.
Исходный код для самого Android выпущен в основном под лицензией Apache. Любой может загружать исходный код и изменять его по своему усмотрению, но он не обязан делать свои изменения доступными для публики в форме исходного кода. Вот почему мы не можем легко изменить Touchwiz от Samsung (например) - изменения, которые они внесли в базовый исходный код Android, нам недоступны. Хотя многим людям (включая меня) не очень нравится эта ситуация, она имеет смысл с точки зрения бизнеса. Если бы производителям приходилось делиться всеми своими секретами, не было бы такого большого денежного стимула для инноваций, поэтому источник предлагался с гораздо более либеральной лицензией. Это, безусловно, сработало, поскольку мы видим устройства многих крупных игроков в мире электроники.
Другой основной потребительский продукт Google - Chrome OS - написан на Chromium. Написанные Google части Chromium имеют открытый исходный код по лицензии BSD. Другие участники используют различные лицензии с открытым исходным кодом, такие как лицензия MIT или GPL.
Важно помнить, что Android и Chromium имеют открытый исходный код, а операционные системы, используемые для устройств Nexus и Chromebook, - нет. Они построены из проектов с открытым исходным кодом, но могут содержать проприетарные части для улучшения программного обеспечения для каждого конкретного устройства. Для телефонов Nexus эти проприетарные биты выпущены на сайте Android Developer и готовы перейти на все, что вы можете собрать из AOSP, чтобы получить такой же опыт. Chromebook будет работать на полностью открытой сборке Chromium, но не будет иметь некоторых закрытых API Google или полного набора видео и аудио кодеков.
Google также выпускает приложения, которые не лицензированы с открытым исходным кодом. Gmail, Карты и множество других приложений Google, которые поставляются на наши телефоны, не являются частью AOSP и разрабатываются независимо для Android, Chrome, iOS и Интернета. Когда вы слышите интернет-склоки о том, что Android не «открыт», это то, о чем они говорят. Android и все необходимое для установки и запуска приложений Android полностью с открытым исходным кодом, но популярные приложения, которые делают его лучше, - нет. Это вряд ли изменится.