Когда-либо будет Солярис 12?

Переменные среды, содержащие функции, являются взломом удара. Zsh ничего не имеет подобным. Можно сделать что-то похожее с несколькими строками кода. Переменные среды содержат строки; более старые версии удара, прежде чем Контузия была обнаружена, сохранил код функции в переменной, имя которой является именем функции и чье значение () { сопровождаемый кодом функции, сопровождаемым }. Можно использовать следующий код, чтобы импортировать переменные с этим кодированием и попытаться выполнить их с подобными удару настройками. Обратите внимание, что zsh не может эмулировать все функции удара, все, что можно сделать, становятся немного ближе (например, сделать $foo разделите значение и разверните подстановочные знаки и сделайте массивы 0).

bash_function_preamble='
    emulate -LR ksh
'
for name in ${(k)parameters}; do
  [[ "-$parameters[name]-" = *-export-* ]] || continue
  [[ ${(P)name} = '() {'*'}' ]] || continue
  ((! $+builtins[$name])) || continue
  functions[$name]=$bash_function_preamble${${${(P)name}#"() {"}%"}"}
done

(Как Stéphane Chazelas, исходный исследователь Контузии, отметил, более ранняя версия этого ответа могла выполнить произвольный код в этой точке, если бы функциональное определение было уродливо. Эта версия не делает, но конечно как только Вы выполняете любую команду, это могла быть функция, импортированная из среды.)

Версии постконтузии удара кодируют функции в среде с помощью недопустимых имен переменной (например. BASH_FUNC_myfunc%%). Это делает их тяжелее для парсинга надежно, поскольку zsh не обеспечивает интерфейс для извлечения таких имен переменной из среды.

Я не рекомендую делать это. Доверие экспортируемым функциям в сценариях является плохой идеей: это создает невидимую зависимость в Вашем сценарии. Если Вы когда-нибудь будете запускать свой скрипт в среде, которая не имеет Вашей функции (на другой машине, в задании крона, после изменения Ваших файлов инициализации оболочки, …), то Ваш сценарий не будет больше работать. Вместо этого сохраните все свои функции в одном или нескольких отдельных файлах (что-то как ~/lib/shell/foo.sh) и запустите свои сценарии путем импорта функций, которые это использует (. ~/lib/shell/foo.sh). Таким образом, если Вы изменяете foo.sh, можно легко искать, какие сценарии полагаются на него. При копировании сценария можно легко узнать, в каких вспомогательных файлах он нуждается.

Zsh (и ksh перед ним) делает это более удобным, позволяя автоматически загружать функции в сценариях, где они используются. Ограничение состоит в том, что можно только поместить одну функцию на файл. Объявите функцию, как автоматически загружено и поместите функциональное определение в файл, имя которого является названием функции. Поместите этот файл в каталог, перечисленный в $fpath (который можно настроить через FPATH переменная среды). В Вашем сценарии объявите автоматически загруженные функции с autoload -U foo.

Кроме того, zsh может скомпилировать сценарии, для сохранения времени парсинга. Звонить zcompile скомпилировать сценарий. Это создает файл с .zwc расширение. Если этот файл присутствует затем autoload загрузит скомпилированный файл вместо исходного кода. Можно использовать zrecompile функционируйте к компиляции (ре) все функциональные определения в каталоге.

5
06.12.2013, 00:33
4 ответа

Существует дорожная карта Соляриса на странице 33 этого slideware от https://blogs.oracle.com/openomics/entry/solaris_day_27nov2013_slides

Взгляните к правовой оговорке страницы 2 сначала.


Обновление: модель поставки Соляриса изменилась и вместо главных разрушительных версий, которые раньше были нормой, перемещается в модель непрерывного развёртывания, где новые возможности и изменения представлены обновлениями, не обновлениями.

"Главная" версия затем неограниченно долго останется в 11 и будет Oracle Солярис 11.next обновления.

Это описано на этой странице блога: https://blogs.oracle.com/solaris/entry/new_solaris_sparc_roadmap

Обратите внимание также, что наряду с тем объявлением, Солярисом 11 долгосрочной главной поддержки была расширена на 10 лет, переместившись с 2021 до 2031 (и даже 2034 для расширенной поддержки).


Update2: Oracle Солярис 11.4 Бет была просто выпущена.


Update3: Oracle Солярис 11.4 был вчера выпущен (2018/08/28) и был сертифицирован как соответствующий Единственному Стандарту Версии 7 Спецификации UNIX.
9
27.01.2020, 20:32

Да. Будет Солярис 12. Он будет выпущен в таймфрейме, показанном на публичной дорожной карте SPARC/Solaris здесь: http://www.oracle.com/us/products/servers-storage/servers/sparc/oracle-sparc/sparc-roadmap-slide-2076743.pdf .

К сожалению, в данный момент я не могу сказать больше о Солярисе 12.

Чтобы ответить на вопрос о развитии Соляриса, мы (Oracle) увеличили число инженеров, работающих на Солярисе, более чем в 2 раза с момента приобретения.

Мы активно работаем над улучшением Solaris каждый день, и каждая последующая версия Solaris добавляет новые, уникальные инновации, основываясь на последней версии. Мы только что запустили Solaris 11.2 31 июля, который мы почти назвали 12 из-за количества больших функций, которые мы в него включили.

Solaris 11.2 включает более 500 новых функций, в том числе:

  • Новый тип Зоны (контейнера) под названием "Зоны ядра", который ведет себя как подобно оптимизированному Solaris гипервизору, позволяющему независимое заплатку уровни и обновления в каждой зоне, отдельно от глобальной зоны и в других зонах, и при этом оказывает почти нулевое влияние на производительность.
  • Объединенные архивы позволяют быстро, просто и гибко создавать золотые изображения и Развертывание.
  • Простая отчетность о соответствии PCI-DSS и исправление.
  • Расширенные возможности SDN
  • Распределение OpenStack

Для получения дополнительной информации, вы можете посмотреть выступление Джона Фаулера на презентации Solaris 11.2 здесь: http://www.oracle.com/events/us/en/solaris-11-2/index.html#vid=3521205463001

8
27.01.2020, 20:32

Я недавно видел ошибки, ссылающиеся на v12. Скорее всего, они ждут развертывания нового оборудования, чтобы представить Solaris 12 (или любое другое название, которое ей дает Oracle).

1
27.01.2020, 20:32

Согласно последней информации от Oracle, они будут продолжать добавлять точечные выпуски в Solaris 11, каждый из которых добавляет новые функции / улучшения. Извините, мне лень найти ссылку.

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

0
27.01.2020, 20:32

Теги

Похожие вопросы