MacCentre
Форум: Mac и Mac OS X
Тема: Размышление о "тигре" и gcc
Страницы: [1] 2

[Ответить]
emin [24.06.2005 15:34] Размышление о "тигре" и gcc:
Предисловие:
Во-первых, я сам тигр :). Во вторых, я не специалист в Маках, а я специалист в BSD/Linux, но вынужден (начальством) маки администрировать.

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

Термины употребляемые в этом посте:
OpenSource --- програмное обеспечение с открытым исходным кодом. Для установки такого обеспечения нужно заново скомпилировать его из исходных кодов в исполнимый файл. Такая процедура существенно затрудняет процесс установки, однако даёт прирост в производительности и контроль за многими параметрами приложения.
gcc --- GNU C Compiler --- компилятор, при помощи которого (не единственно возможный, но один из распространённейших вариантов) собирается OpenSource
сборка = компиляция

Экскурс в операционную систему OpenSource:
Я давно эксплуатирую операционные системы семейства FreeBSD. Эта операционная система хороша, в частности тем, что её устройство совершенно прозрачно. Я чётко знаю чем отличается ветка 4 от ветки 5. Я знаю, что ветка 5 не "лучше" 4. В ней поменялась идеология подключения устройств, добавились некоторые драйвера, появились динамические модули ядра. В целом это привело к снижению быстродействия системы, но повышению её переносимости и "десктопности", и совершенно нет нужды ставить на сервер где всё работает новую систему, если от этого не ожидается конкретной выгоды. В мире BSD не ставят новую версию ради цифры. Мне приходилось переходить от FreeBSD 5.2.1 на FreeBSD 5.3 и 5.4. Первый переход был мотивирован появлением нового firewall от OpenBSD, второй не мотивирован и потому осуществлён только на одной экспериментальной машине. Так вот, почитайте о переходе с FreeBSD 5.2.1 на 5.3 --- поучительно. А потом я объясню какое отношение это имеет к Макам.

Процесс upgrade для операционной системы OpenSource выглядит примерно так: с системы CVS скачивается исходный код ядра и необходимых утилит, а так же версия gcc, которой это добро надо собирать, обирается новый gcc, за ним утилиты и ядро, потом ядро и утилиты устанавливается система перезапускается на новом ядре, осуществляется редактирование нескольких десятков настроечных файлов. Большинство операций производится автоматически, однако всё в целом отнимает массу времени. Дело в прочем того стоит --- мы получаем операционную систему скомпилированную в точности под нужное железо, с нужными ключами оптимизации переданными компилятору. В итоге всё работает зашибись, кроме того, когда что-то не нравится, можно поправить прямо в коде. И это не болтовня, это реальность.

При переходе с 5.2.1 на 5.3 в системе FreeBSD одновременно произошел переход с gcc 3.3 на gcc 3.4. В связи с этим разработчики рекмендовали пересобрать не только опрационную систему, но и массу програмного обеспечения --- всё, что использует c++. А c++ используется практически везде. Это была пляска на неделю. Неделя труда для того, чтобы моя система начала работать так же идеально как раньше, но на новом ядре.

При переходе с 5.3 на 5.4 версия gcc не менялась, однако сменилась библиотека glibc. Некоторый софт стал от этого работать нестабильно и его тоже пришлось пересобрать.

Про стиль в именовании версий. Програмное обеспечение OpenSource только потому является стабильным, что его тестирует масса народу --- тысячи человек на самых разных архитектурах. Большинство серьёзных проектов имеет две ветки: стабильную и экспериментальную. Последняя версия всегда нестабильна и разработчики как правило рекомендуют ставить старшую версию из стабильной ветви.

Теперь про сам gcc. Когда-то была стабильной версия 2.95 она имела проблему с переносимостью на новые архитектуры, но была свободна от глюков. Разработчики gcc готовили к выходу версию 3.0, она должна была стать более переносимой и стабильной, но что-то там не ладилось, они выбились из графика и отстали от времени, а т.н. Линукс-революция требовала жертв, ей нужна была экспансия на новые архитектуры и такой жертвой стала стабильность --- на свой страх и риск, компания RedHat взяла snapshot из дерева CVS и обозвала новый компилятор gcc 2.96. Многие програмные продукты от этого поломались.

Мораль 1: смена версии gcc при помощи которого собрана операционная система, и смена корневых библиотек может существенно влиять на стабильность прочего програмного обеспечения, на первый взгляд не связанного с ядром.

Мораль 2: ранние версии gcc имеют проблемы со стабильностью.

Морать 3: Если бы Mac был OpenSource, логика подсказывала бы ставить 10.3.9, а не 10.4.1. Потому что 10.3.9 --- последняя версия стабильной ветви, а 10.4 --- новая, азвивающаяся ветвь.

И вот теперь о Mac'ах:

Приходит ко мне мой знакомый маковед и говорит:
Маковед: Ставь "тигра"
Я: Зачем?
Маковед: Безопаснее!
Я: Не боюсь.
Маковед: Стабильнее!
Я: Тьфу-тьфу, не падает.
Маковед: Быстрее!
Я: Что быстрее?
Маковед: Всё быстрее. Я в фотошопе быстрее стал работать. Раньше был Фотошоп из CS1 на "пантере", теперь CS2 на "тигре" и стало быстрее.
Я: Я в шоке, у тебя сменились: код операционной системы, код приложения, компилятор(ы), которым(и) собирали то и другое и ключи оптимизации переданные компиляторам при сборке системы и при сборке Фотошопа. Все эти факторы сменились бесконтрольно, и ты делаешь какие-то выводы на этом основании.
Маковед: Ни слова не понял, тебе нужен дистрибутив?
Я: Спасибо.

И вот гляжу я в дистрибутив и вижу: в нём новый gcc 4.0 --- штука таинственная неопробованная. В OpenSource сообществе отзывы о нём неоднозначные: одни говорят, что ттесты не показывают прироста в быстродействии, другие говорят, что предпринятые тесты некорректны. А Мак этим компилятором уже пользуется вовсю.

Ох. Не знаю, что и подумать. Терзают меня смутные сомнения относительно стабильности софта под "тигром", ведь, в отличие от OpenSource ничего пересобрать в этой системе уже нельзя (ну кроме darvin-ports).

Leo [24.06.2005 16:38] Это вопрос идеологии. (+):
Хотя в отношении систем 10-го семейства очень часто употредляются слова OpenSource, FreeBSD, Linux и другие, это ровным счетом ничего не значит. Просто Эппл сделала единственный возможный для себя ход. Смысла в бесконечном продолжении систем классического семейства уже не было из-за их морального устаревания, а сил на разработку принципиально новой системы с нуля не было. Какой оставался выход? Взять то, что стабильно работает и при этом ничего не стоит, навесить на это красивую оболочку и - вуаля - имеем принципиально новую операционную систему.
Несмотря на то, что в основе системы лежит OpenSource, таковым он на самом деле не является. Эппловские системы всегда были черным ящиком для юзера, таковыми они и остаются перейдя на новое ядро. Эпплу абсолютно не интересно позволять разным "грамотным юзерам" копаться "под капотом". Нетрудно догадаться к чему это приведет.
Так что, можно расслабиться и получать удовольствие от того, что предлагают нам эппловские программисты. Как говорилось в старом анекдоте "если партия скажет есть контакт - народ будет есть контакт".
Нет смысла рассуждать на тему каким компилятором собрано ядро и приложения под него. Это вопросы филосовского плана. Они ничего не дают в практическом смысле. Эппл открыла новую эру ClosedOpenSource. Идеология, однако...

Прошу прощения, если сумбурно.
_______________________________
Не бывает неразъемных соединений.
DoctorLeo [24.06.2005 16:59] Это вопрос не идеологии...:
Это вопрос тупика, или, точнее, приближения к тупику той гонки, в которую человечество загнало само себя. Сейчас на рынке побеждает не лучший продукт, а новый. Человек, превращенный в потребителя обилием рекламы, захлебнувшийся потоками информации и утративший способность что-либо анализировать, способен лишь рефлекторно реагировать на ярлычки New! и Wow! Low Price! Поэтому в современном компьютером мире важнее всего выпустить "новинку", разумеется, в ущерб качеству. И ничего страшного не происходит - любой апдейт будет нести на себе все тот же лейбл New! и будет все так же продаваться. Война на этом рынке, впрочем, как и на любом другом, перешла из области продуктов как они есть в область исключительно позиционирования. Поэтому можно забыть про стабильные, надежные оси, приложения, компы и т.д. Производиться они будут, но для узкой целевой аудитории и в самой верхней ценовой категории.
Что до меня лично, по-прежнему предпочитаю OS9 и даже не думаю лезть куда-то еще...

Leo [24.06.2005 17:41] Что касается стабильности... (+):
Когда-то давно существовал закон, что вероятность ошибки в программе пропорциональна квадрату количества условных переходов в программе. С ростом сложности программ неимоверно растет вероятность ошибки и также невероятно падает стабильность. Этозакон и от этого никуда не деться. Никакими альфа-бета-гамма-дельта тестированиями невозможно протестировать все возможные вырианты работы программы. Это невозможно даже теоретически. Так что путь альфа-бета-релиз-апдейт-апдейт-апдейт... является единственным возможным на сегодняшнем этапе развития программирования.
Согласен, что задача быстрее сделать новый продукт на данный момент превалирует над задачей сделать этот продукт хорошим. Да и зачем? Все равно, скоро появится новый продукт.
_______________________________
Не бывает неразъемных соединений.
ZergOne [24.06.2005 18:46] Думаю основная проблема в том, что это бизнес:
Любое предриятие постоянно расходует массу денег (начиная с зарплаты, аренды и прочего, и заканчивая рекламой и PR). Хохма в том, что его нельзя остановить. Структура создавшая что-то удачное продолжает работать и когда это удачное продано в количестве N штук. Само собой первое время деньги с прибыли есть, но они кончаются быстро, и ко времени X надо создать что-то еще более удачное, чтобы получить дальнейшую прибыль. Вот этот элементарный расклад заставляет при отсутствии новых удачных разработок продавать вместо них любые новые, представляя их как более удачные.
Если бы в Джобсе, Гейтсе и подобных не было большой доли Остапа, у нас бы не было ни Маков, ни Виндовсофф, ни прочих авиаций-космонавтик-генетик.
Так что утром -- ваши деньги, а вечером, если повезет, получите ваши стулья :)

Ибо!
emin [24.06.2005 19:10] С небес на землю:
Спасибо, товарищи. Все мы примерно понимаем зачем откуда и куда ходят деньги, что движет программистами, и что движет менеджерами.

Мне, однако интересно было бы послушать ваше мнение о стабильности системы "тигр". Что вы могли бы добавить к моему описанному в заголовке разговору с "маковедом". Каковы объективные бонусы от утановки "тигра"? Я читаю официальные прессрелизы, но мне нужно и мнение реальных людей услышать. В какой-то момент я отправлюсь к директору, чтобы сказать ему: "мы не будем ставить тигра никогда" или "мы немедленно все переходим на тигра". Или даже так "пантера или тигр наплевать - что встало в силу исторических причин, то пусть и стоит". Для таких утверждений я должен иметь какие-то аргументы на руках, а Мак --- чёрный ящик. Вот поэтому я и насиловал клавиатуру на четыре экрана :)

MMX [24.06.2005 21:01] Для директора:
Основное что получает рядовой пользователь -- систему глобального поиска, работающую налету. Мульки типа виджетов директору будут пофигу. Ну и как аргумент -- эпл будет развивать/улучшать именно тигру. Не пантеру. Поэтому все прелести стабильности, безопасности и антивирусности будут прогрессировать именно под тигрой.
И директор будет прав, если даст добро переходить на тигру... начиная с версии 10.4.5 :))))
______________________________
http://topmac.blogspot.com/
MMX [24.06.2005 21:06] (-)[OFF] Раздвоение личности? Доктор-пациент Leo дискутирует:

______________________________
http://topmac.blogspot.com/
Stas [24.06.2005 23:55] (-)Кстати (не ржать!!!) проги в Тигре работают ... БЫСТРЕЕ!!:


Stas [25.06.2005 00:01] (-)35 баллов! Кимоно с 35 нашивками! :)))))))):


[Ответить]
[Вперед >]