Параметры ядра изменения во времени выполнения

Существует два возможных компилятора C/C++, доступные для Соляриса.

  • GNU C/C++. Это - компилятор, чаще всего используемый на Linux. Это часто упоминается как 'gcc'. Это - компилятор первого класса и доступно и для Соляриса на SPARC и для Соляриса на X86. После того, как установленный этот компилятор всегда выполняется с помощью gcc команда.

  • Studio Соляриса. Это - собственный компилятор Oracle. Это ранее назвали Studio Sun. Некоторые говорят, что это произведет более быстрый код, чем gcc особенно на SPARC. Если Вы выбираете, этот компилятор готовятся к некоторым предупреждениям, когда Вы компилируете кого-то еще код. Это вызвано тем, что большая часть кода в эти дни была разработана с помощью gcc компилятора, и gcc компилятор позволяет разработчику C/C++ сойти с рук больше злых шуток, не отмечая их как таковой. Компилятор Studio Соляриса, с другой стороны, намного более болтлив о том, что, видит как плохой или даже нестандартный стиль кодирования. Просто проигнорируйте такие предупреждения из компилятора Studio Соляриса. Назад многие, много лет назад этот компилятор стоил бы Вам денег. Сегодня это - бесплатная загрузка от Oracle под "Studio Соляриса Oracle Лицензионное соглашение Разработчика OTN", которое - хотя не полностью "бесплатная" лицензия" - не будет ограничивать для 99,9% пользователей. После того, как установленный этот компилятор всегда выполняется с помощью cc команда.

Для большинства случаев компилятор C/C++ GNU очень хорошо и является всем, в чем Вы нуждаетесь.

Солярис 10

GNU C/C++

Это уже установлено, но это живет в /usr/sfw/bin. Наиболее распространенные люди ошибки делают, должен предположить, что это не установлено, потому что они не могут найти его на своем ПУТИ. Сделать /usr/sfw/bin часть Вашего ПУТИ после Ваших других элементов на Вашем ПУТИ.

Studio Соляриса

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

Другое

GNU делает, также установлен по умолчанию в Солярисе 10. Это также живет в /usr/sfw/bin и назван gmake.

Солярис 11

GNU C/C++

Это не установлено по умолчанию. Безусловно самое легкое должно использовать IPS для установки его с помощью команд ниже (будучи корнем или другим суперпользователем):

pkg install pkg://solaris/developer/build/gnu-make
pkg install pkg://solaris/developer/build/make
pkg install pkg://solaris/developer/gcc-45
pkg install pkg://solaris/system/header
pkg install pkg://solaris/developer/build/autoconf
pkg install pkg://solaris/developer/build/automake-110
pkg install pkg://solaris/developer/build/libtool      # GNU libtool

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

Обратите внимание, что некоторые пакеты имеют номер версии на само имя пакета, например. gcc-45. Вы можете находить еще более поздние версии в хранилище пакетов, например, для Соляриса 11.2 Бет Вы найдете, что у Вас есть выбор GCC 4.5, 4.7 или 4.8. То же применяется, чтобы автосделать, который теперь также доступен в v1.11.

Studio Соляриса

Это не установлено по умолчанию. Следуйте инструкциям, найденным здесь. Можно принять решение для установки через IPS (самое легкое, я думаю, хотя он действительно требует, чтобы Вы добавили другой репозиторий IPS, а также сертификат..., весь из которого документируется на ссылке). Можно также установить через tarball, в этом случае, Вы не должны быть суперпользователем.




Общие рекомендации при создании пакетов программного обеспечения на Солярисе

Таким образом, Вы захватили пакет программного обеспечения из Интернета, и теперь хотят создать его на Солярисе? Вот некоторые общие рекомендации:

  • Всегда используйте GNU tar для распаковки не используйте собственного Solaris tar. Сделайте gtar xf foo.tar вместо tar xf foo.tar или что бы то ни было. Да в 99,99% tar Solaris случаев будет работать просто великолепно для Вас, но существуют некоторые тонкие различия между двумя, например, если файл tar содержит гибкие ссылки.

  • Использовать GNU make вместо Solaris make Например, когда Вам говорят сделать это: make all затем вместо этого сделайте MAKE=gmake gmake all.

  • Вы будете обычно испытывать меньше затруднений с помощью GNU C/C++ для создания, а не Studio Соляриса, потому что возможности состоят в том, что make-файлы и опции компиляции и т.д. были только протестированы с GNU компилятор C/C++.

  • Вероятно, больше добавить к этому списку. Сохраните те комментарии прибытием.

7
03.04.2014, 13:05
2 ответа

Есть три типа вещей, которые можно назвать параметрами ядра.

Ядро Параметры ядра - это параметры, передаваемые в командной строке ядра. Их можно передать только во время загрузки. Они задокументированы в kernel-parameters.txt (в этом файле также перечислены параметры модуля; параметры ядра - те, которые не имеют . ). Некоторые из этих параметров имеют значение только во время загрузки (например, root ). Для тех, которые используются на протяжении всего жизненного цикла системы, может быть или не быть механизма для их изменения во время выполнения, общего правила нет.

Параметры модуля похожи на параметры ядра, но они определяют конкретный компонент ядра, обычно конкретный драйвер. Несмотря на название, эти параметры применяются независимо от того, скомпилирован ли соответствующий драйвер непосредственно в ядре или как модуль. Когда компонент включен в основной образ ядра, вам необходимо передать COMPONENT_NAME.PARAMETER_NAME = VALUE в командной строке ядра. Когда компонент загружается как модуль, вам необходимо передать PARAMETER_NAME = VALUE в insmod .

Некоторые параметры модуля видны через sysfs . Каталог / sys / module / MODULE_NAME / parameters содержит по одному файлу для каждого параметра; чтение этого файла дает вам текущее значение параметра. Запись в этот файл устанавливает параметр, если он может быть изменен; большинство параметров не могут быть изменены (поэтому файл доступен только для чтения). В каталоге / sys / module / kernel / parameters перечислены некоторые параметры ядра ядра.

Параметры модуля задокументированы бессистемно; некоторые из них перечислены в kernel-parameters.txt , и этот файл содержит ссылки на некоторые модули. Если вы не можете найти документацию, выполните поиск в источнике . Параметры модуля объявляются макросом module_param или одним из его сопутствующих module_param_ named , module_param_cb и т. Д. Последний параметр этих макросов определяет права доступа к файлу (например, 0600 или S_IRUSR | S_IWUSR будет rw ------- т. Е. Доступным для чтения и записи root и недоступным для кого-либо еще). Когда разрешение равно 0, запись в sysfs вообще не отображается.

i8042.nomux и i8042.reset являются параметрами драйвера i8042 . Если посмотреть на исходный код, у обоих есть разрешение 0, поэтому эти два параметра нельзя изменить или даже запросить во время выполнения. Вы можете установить параметры только при запуске драйвера.Если драйвер скомпилирован как модуль, то выгрузка модуля и его повторная загрузка позволяет вам указать другие параметры при его перезагрузке. Если драйвер находится непосредственно в ядре или конфигурация вашей системы делает невозможным выгрузку модуля, вам необходимо перезагрузить компьютер.

Наконец,другой тип параметров в ядре - это sysctl . Эти настройки можно просмотреть и изменить с помощью команды sysctl или через / proc / sys . Я думаю, что разделение параметров sysctl и ядра в основном историческое; Параметры, относящиеся к оборудованию, традиционно являются параметрами ядра, в то время как программными настройками традиционно являются sysctl, но иногда различия могут быть нечеткими.

14
27.01.2020, 20:15

Я думаю, что список параметров, которые могут быть изменены во время выполнения, можно найти с помощью команды " sudo sysctl -a ". Я не видел i8042.nomux в своей системе. Не уверен почему. Возможно, вы можете проверить его в своей системе, если вы видите параметр, то вы можете изменить его во время выполнения.

2
27.01.2020, 20:15

Теги

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