Вероятно, есть много способов сделать это. Мое предложение было бы открыть окно терминала alt + ctrl + t и ввести следующий код
cp -a /media/samba_disk_1/data/lrn /this/is/the/new/path/lrn
Это скопирует файлы в новый раздел, но не удалит старые файлы, чтобы вы могли убедитесь, что все вышло на место перед удалением диска.
Вся система GNU / Linux построена с использованием модульного подхода. Вы можете в основном обновить (заменить вообще) один модуль, не касаясь других. Этот модуль может быть загрузчиком, ядром, оболочкой, командой, рабочей средой, графическим интерфейсом, любым ...
Конечно, это правда, если вы можете правильно управлять зависимостями.
Вы можете установить другую версию ядра с помощью команды:
sudo apt install linux-image-<version>
Пока APT позволяет это, вы должны иметь возможность перезагружать и использовать выбранную версию ядра, будь то общий, низкий уровень и т. д. Или вы сами создаете версию ядра, например APT и использовать его с вашей текущей системой.
Вся система GNU / Linux построена с использованием модульного подхода. Вы можете в основном обновить (заменить вообще) один модуль, не касаясь других. Этот модуль может быть загрузчиком, ядром, оболочкой, командой, рабочей средой, графическим интерфейсом, любым ...
Конечно, это правда, если вы можете правильно управлять зависимостями.
Вы можете установить другую версию ядра с помощью команды:
sudo apt install linux-image-<version>
Пока APT позволяет это, вы должны иметь возможность перезагружать и использовать выбранную версию ядра, будь то общий, низкий уровень и т. д. Или вы сами создаете версию ядра, например APT и использовать его с вашей текущей системой.
Вся система GNU / Linux построена с использованием модульного подхода. Вы можете в основном обновить (заменить вообще) один модуль, не касаясь других. Этот модуль может быть загрузчиком, ядром, оболочкой, командой, рабочей средой, графическим интерфейсом, любым ...
Конечно, это правда, если вы можете правильно управлять зависимостями.
Вы можете установить другую версию ядра с помощью команды:
sudo apt install linux-image-<version>
Пока APT позволяет это, вы должны иметь возможность перезагружать и использовать выбранную версию ядра, будь то общий, низкий уровень и т. д. Или вы сами создаете версию ядра, например APT и использовать его с вашей текущей системой.
Вся система GNU / Linux построена с использованием модульного подхода. Вы можете в основном обновить (заменить вообще) один модуль, не касаясь других. Этот модуль может быть загрузчиком, ядром, оболочкой, командой, рабочей средой, графическим интерфейсом, любым ...
Конечно, это правда, если вы можете правильно управлять зависимостями.
Вы можете установить другую версию ядра с помощью команды:
sudo apt install linux-image-<version>
Пока APT позволяет это, вы должны иметь возможность перезагружать и использовать выбранную версию ядра, будь то общий, низкий уровень и т. д. Или вы сами создаете версию ядра, например APT и использовать его с вашей текущей системой.
Как вы знаете, Kernel является важной частью ОС, в дистрибутивах GNU / Linux вы можете легко обновлять ядро, не касаясь другой части ОС. Однако мы просто обновляем часть нашей операционной системы.
Операционная система состоит из двух частей, пространства ядра и пространства пользователя.
Итак, да, вы можете обновить пространство ядра без касаясь вашего пользовательского пространства, если только новая версия совместима с вашим текущим пользовательским пространством.
И об обновлении инструментов пользовательского пространства, это еще один да.
Когда вы запускаете:
sudo apt-get upgrade
Если доступно обновление для ядра, вы получите:
The following packages have been kept back:
linux-generic linux-headers-generic linux-image-generic
, так что вы обновляете свое пространство пользователя и когда вы запускаете что-то вроде
sudo apt-get dist-upgrade
вы обновляете все, включая ядро.
Чтобы обновить только ваше ядро до более новой версии, используйте что-то вроде:
$ apt-cache search "linux-image-[0-9]+.*-generic" | awk '{print $1}' | head -4
linux-image-4.4.0-21-generic
linux-image-4.10.0-14-generic
linux-image-4.10.0-19-generic
linux-image-4.10.0-20-generic
, чтобы найти список новых ядер, затем установите это как новый пакет, например:
sudo apt install linux-image-4.10.0-14-generic
Во-первых, несколько пояснений, потому что я чувствую, что вы не понимаете, как появились системы GNU / Linux. Потерпите меня, если это для вас ничего нового:
«Ядро» - это не просто другая программа, которая работает, но она является частью ОС, обеспечивающей базовые функции: если вы хотите запустить программу ( скажем, вы вводите «ls» в командной строке) двоичный файл должен быть загружен с диска (который включает в себя некоторые операции с файловой системой, чтобы найти его и некоторую обработку файлов, чтобы его прочитать), затем создается «среда процесса»: память получает назначается, номер процесса выдается и т. д. и т. д. Все прежние действия (FS, чтение из файла, ...) обрабатываются системными библиотеками, но последние являются функциями ядра.
«Linux» на самом деле (только!) Ядро, в котором нет других частей ОС. Линус Торвальдс начал писать его, запустив ядро OSM-шаблона Andrew Tanenbaums MINIX и завершив его, чтобы оно было полномасштабным и реальным работоспособным ядром. До сих пор есть Linus (и многие другие, кто внес вклад / внесли вклад), которые разрабатывают это ядро. Это ядро по-прежнему очень похоже на UNIX, но не на ядро UNIX.
«GNU» началось как инициатива «улучшить» многие общие команды UNIX. Я не буду обсуждать, удались они или нет, но они определенно написали много программного обеспечения и в какой-то момент имели набор служебных программ. Они даже начали разрабатывать собственное ядро ОС (HURD), которое было основано в основном на UNIX, но было совершенно иным. Но по сей день HURD находится в раннем развитии и вряд ли является рабочим решением. «GNU» кстати. сокращен для «GNU (is) Not UNIX» - они пытались преодолеть некоторые (воспринимаемые или реальные) ограничения UNIX с намерением создать преемника UNIX (опять же: я не хочу входить в дискуссию, если они преуспели или [-d4]
Итак, с набором инструментов, в которых отсутствует ядро и ядро, не имеющее инструментария, оно не имеет значения, если оно «лучше» или «хуже», но это определенно отличается!). было естественное развитие, чтобы объединить эти два: GNU / Linux был создан.
Тем не менее, для работы (и работоспособной) ОС вам нужно больше, чем просто ядро и набор инструментов: вам нужна система управления пакетами , вам нужны процедуры установки, вам нужны шаблонные конфигурации, вам нужно ....
К этому выводу пришли несколько разных людей (или их группы) и использовали комбинацию GNU / Linux для создания GNU / Linux- по своему вкусу, добавив именно то, о чем я говорил выше: они создали диспетчер пакетов, систему упаковки, процедуры установки и многое другое. Эти разные группы (соответственно результаты их усилий) - это разные распределения. Сегодня есть три разных менеджера пакетов (подходящий для Debian и таких производных систем, как * ubuntu, rpm для RedHat и производных систем, таких как Fedora, CentOS и т. Д., Pacman для ArchLinux), но все это просто управляет пакетами программного обеспечения, которое (по существу) то же: то, что вызывается при выдаче «ls» или «df» и т. д. в системе Debian или RHEL-системе, происходит из разных пакетов, но по существу это GNU-версия «ls» - (" df "-), просто по-разному упакован.
Итак,« в принципе »вы можете обновлять ядро самостоятельно, как люди, которые создали дистрибутив из разных версий всего программного обеспечения, о котором я говорил выше. [ ! d7]
Но это очень большой BUT: потому что есть не только ядро и некоторое дополнительное программное обеспечение, но и многое другое, о чем нужно помнить, например, средства настройки системы (systemd, которые используются некоторыми дистрибутивами и некоторые нет), инструменты сетевого управления, такие как NetworkManager, которые, в свою очередь, зависят от некоторых версий библиотеки GNOME и т. д. и т. д. «Распределение» - довольно сложная вещь, и есть вероятность, что если вы попытаетесь обновить ядро, вы в конечном итоге обновите много других вещей из-за многих взаимозависимостей.
Тем не менее, в принципе ", как и выше: вы также можете создать свой собственный дистрибутив, загрузив все источники, скомпилировав их, найди рабочий набор комбинаций версий, разместите какую-нибудь систему упаковки (или используйте одну из существующих) - и так далее , пока у вас нет распространяемой, устанавливаемой и настраиваемой системы. Это то, что создатели дистрибутивов, такие как Ubuntu, и это не чудо - просто много сложной работы, поэтому на самом деле большинство пользователей уклоняются от этого и используют что-то, что могут, готовые к использованию.
I надеюсь, что это ответит на ваш вопрос.
Самый простой ответ не имеет ничего общего с Ubuntu; это связано с тем, как построен GNU / Linux. Если вы попытаетесь рассмотреть его как разработчика системы, вы увидите два мира, каждый из которых отделен острой границей (ABI).
Мир ядра, в котором работают разработчики низкого уровня, представляет собой систему самостоятельно. В нем есть все, что вы обычно найдете в обычном приложении. Единственное различие заключается в том, что пользователь не является фактическим человеком, который использует машину, но мир пространства пользователя. Ядро «приложение» является средним человеком, сервером, использующим машину, - призраком в оболочке.
Теперь пользовательское пространство - это нормальный мир, который играет повседневный пользователь и разработчик на. Он имеет жесткие API, правила, файлы и, самое главное, абстрактное, детское изображение машины, на которой он работает. Так как пользователь видит эту часть, и это составляет 99% от размера дистрибутива, ее легко назвать неверной. Правильная номенклатура - называть ее дистрибутивом программного обеспечения, созданным каким-то сущностью (Canonical, Fedora и т. Д.), Используя ядро (Linux, HURD, BSD и т. Д.) И созданное с использованием набора инструментов (обычно предоставляемых GNU ).
Чтобы ответить на ваш вопрос, в GNU / Linux (как и в Windows и OSX, поверьте мне), вы можете изменить ядро, а не только версию, но всю архитектуру (Linux Kernel, vs HURD Kernel), и, пока ABI не тронут, никогда не делайте ни одного изменения в пользовательском мире ... В тот же день, когда реальному человеку пришлось строить ядро из источников, вы могли бы пройти несколько изменений например, для того, чтобы заставить испорченный веб-камеру USB работать ... Теперь, с модульным ядром, вам просто нужно установить модуль, и вы получите совершенно новый мир ядра, с ABI (иногда) с новыми функциями ...
Опять же, для пользовательского пространства. Когда вы устанавливаете новое приложение, например, из репозитория Ubuntu, в 99% случаев, ваша самая большая проблема связана с совместимостью других компонентов пользовательского пространства, а не с реальным ядром. Бывают случаи, когда версия ядра диктует (через ABI) диапазон вещей, которые могут быть установлены в пользовательском пространстве, но цель (для разработчиков, по крайней мере) состоит в том, чтобы это уйти ...
Еще одна вещь, которую нужно обдумать, вы можете (и это довольно легко) создать собственный, специальный, единственный в своем роде дистрибутив GNU / Linux. Получите ядро, несколько простых скриптов, несколько приложений, и вы настроены. Это просто так (ознакомьтесь с дистрибутивами OpenWRT GNU / Linux, для сетевого оборудования, весь дистрибутив соответствует 16 Мб или около того).
Я думаю, что они хранятся отдельно, потому что ядро является важной частью. Ядро с регрессией или просто неудачное обновление может нанести большой урон. Возможно, вы захотите обновить его реже; или только после некоторого времени ожидания, чтобы никто не сообщал о тревожных ошибках.
Также некоторые продвинутые или профессиональные пользователи перекомпилируют ядро, чтобы изменить его поведение в соответствии с их потребностями. В этом случае вы, очевидно, не захотите, чтобы он автоматически заменялся заводской версией каждый раз при обновлении.
Во-первых, несколько пояснений, потому что я чувствую, что вы не понимаете, как появились системы GNU / Linux. Потерпите меня, если это для вас ничего нового:
«Ядро» - это не просто другая программа, которая работает, но она является частью ОС, обеспечивающей базовые функции: если вы хотите запустить программу ( скажем, вы вводите «ls» в командной строке), двоичный файл должен быть загружен с диска (который включает в себя некоторые операции с файловой системой, чтобы найти его и некоторую обработку файлов, чтобы его прочитать), затем создается «среда процесса»: память получает назначается, номер процесса выдается и т. д. и т. д. Все прежние действия (FS, чтение из файла, ...) обрабатываются системными библиотеками, но последние являются функциями ядра.
«Linux» на самом деле (только!) Ядро, в котором нет других частей ОС. Линус Торвальдс начал писать его, запустив ядро OSM-шаблона Andrew Tanenbaums MINIX и завершив его, чтобы оно было полномасштабным и реальным работоспособным ядром. До сих пор есть Linus (и многие другие, кто внес вклад / внесли вклад), которые разрабатывают это ядро. Это ядро по-прежнему очень похоже на UNIX, но не на ядро UNIX.
«GNU» началось как инициатива «улучшить» многие общие команды UNIX. Я не буду обсуждать, удались они или нет, но они определенно написали много программного обеспечения и в какой-то момент имели набор служебных программ. Они даже начали разрабатывать собственное ядро ОС (HURD), которое было основано в основном на UNIX, но было совершенно иным. Но по сей день HURD находится в раннем развитии и вряд ли является рабочим решением. «GNU» кстати. сокращен для «GNU (is) Not UNIX» - они пытались преодолеть некоторые (воспринимаемые или реальные) ограничения UNIX с намерением создать преемника UNIX (опять же: я не хочу входить в дискуссию, если они преуспели или [-d4]
Итак, с набором инструментов, в которых отсутствует ядро и ядро, не имеющее инструментария, оно не имеет значения, если оно «лучше» или «хуже», но это определенно отличается!). было естественное развитие, чтобы объединить эти два: GNU / Linux был создан.
Тем не менее, для работы (и работоспособной) ОС вам нужно больше, чем просто ядро и набор инструментов: вам нужна система управления пакетами , вам нужны процедуры установки, вам нужны шаблонные конфигурации, вам нужно ....
К этому выводу пришли несколько разных людей (или их группы) и использовали комбинацию GNU / Linux для создания GNU / Linux- по своему вкусу, добавив именно то, о чем я говорил выше: они создали диспетчер пакетов, систему упаковки, процедуры установки и многое другое. Эти разные группы (соответственно результаты их усилий) - это разные распределения. Сегодня есть три разных менеджера пакетов (подходящий для Debian и таких производных систем, как * ubuntu, rpm для RedHat и производных систем, таких как Fedora, CentOS и т. Д., Pacman для ArchLinux), но все это просто управляет пакетами программного обеспечения, которое (по существу) то же: то, что вызывается при выдаче «ls» или «df» и т. д. в системе Debian или RHEL-системе, происходит из разных пакетов, но по существу это GNU-версия «ls» - (" df "-), просто по-разному упакован.
Итак,« в принципе »вы можете обновлять ядро самостоятельно, как люди, которые создали дистрибутив из разных версий всего программного обеспечения, о котором я говорил выше. [ ! d7]
Но это очень большой BUT: потому что есть не только ядро и некоторое дополнительное программное обеспечение, но и многое другое, о чем нужно помнить, например, средства настройки системы (systemd, которые используются некоторыми дистрибутивами и некоторые нет), инструменты сетевого управления, такие как NetworkManager, которые, в свою очередь, зависят от некоторых версий библиотеки GNOME и т. д. и т. д. «Распределение» - довольно сложная вещь, и есть вероятность, что если вы попытаетесь обновить ядро, вы в конечном итоге обновите много других вещей из-за многих взаимозависимостей.
Тем не менее, в принципе ", как и выше: вы также можете создать свой собственный дистрибутив, загрузив все источники, скомпилировав их, найди рабочий набор комбинаций версий, разместите какую-нибудь систему упаковки (или используйте одну из существующих) - и так далее , пока у вас нет распространяемой, устанавливаемой и настраиваемой системы. Это то, что создатели дистрибутивов, такие как Ubuntu, и это не чудо - просто много сложной работы, поэтому на самом деле большинство пользователей уклоняются от этого и используют что-то, что могут, готовые к использованию.
I надеюсь, что это ответит на ваш вопрос.
Самый простой ответ не имеет ничего общего с Ubuntu; это связано с тем, как построен GNU / Linux. Если вы попытаетесь рассмотреть его как разработчика системы, вы увидите два мира, каждый из которых отделен острой границей (ABI).
Мир ядра, в котором работают разработчики низкого уровня, представляет собой систему самостоятельно. В нем есть все, что вы обычно найдете в обычном приложении. Единственное различие заключается в том, что пользователь не является фактическим человеком, который использует машину, но мир пространства пользователя. Ядро «приложение» является средним человеком, сервером, использующим машину, - призраком в оболочке.
Теперь пользовательское пространство - это нормальный мир, который играет повседневный пользователь и разработчик на. Он имеет жесткие API, правила, файлы и, самое главное, абстрактное, детское изображение машины, на которой он работает. Так как пользователь видит эту часть, и это составляет 99% от размера дистрибутива, ее легко назвать неверной. Правильная номенклатура - называть ее дистрибутивом программного обеспечения, созданным каким-то сущностью (Canonical, Fedora и т. Д.), Используя ядро (Linux, HURD, BSD и т. Д.) И созданное с использованием набора инструментов (обычно предоставляемых GNU ).
Чтобы ответить на ваш вопрос, в GNU / Linux (как и в Windows и OSX, поверьте мне), вы можете изменить ядро, а не только версию, но всю архитектуру (Linux Kernel, vs HURD Kernel), и, пока ABI не тронут, никогда не делайте ни одного изменения в пользовательском мире ... В тот же день, когда реальному человеку пришлось строить ядро из источников, вы могли бы пройти несколько изменений например, для того, чтобы заставить испорченный веб-камеру USB работать ... Теперь, с модульным ядром, вам просто нужно установить модуль, и вы получите совершенно новый мир ядра, с ABI (иногда) с новыми функциями ...
Опять же, для пользовательского пространства. Когда вы устанавливаете новое приложение, например, из репозитория Ubuntu, в 99% случаев, ваша самая большая проблема связана с совместимостью других компонентов пользовательского пространства, а не с реальным ядром. Бывают случаи, когда версия ядра диктует (через ABI) диапазон вещей, которые могут быть установлены в пользовательском пространстве, но цель (для разработчиков, по крайней мере) состоит в том, чтобы это уйти ...
Еще одна вещь, которую нужно обдумать, вы можете (и это довольно легко) создать собственный, специальный, единственный в своем роде дистрибутив GNU / Linux. Получите ядро, несколько простых скриптов, несколько приложений, и вы настроены. Это просто так (ознакомьтесь с дистрибутивами OpenWRT GNU / Linux, для сетевого оборудования, весь дистрибутив соответствует 16 Мб или около того).
Я думаю, что они хранятся отдельно, потому что ядро является важной частью. Ядро с регрессией или просто неудачное обновление может нанести большой урон. Возможно, вы захотите обновить его реже; или только после некоторого времени ожидания, чтобы никто не сообщал о тревожных ошибках.
Также некоторые продвинутые или профессиональные пользователи перекомпилируют ядро, чтобы изменить его поведение в соответствии с их потребностями. В этом случае вы, очевидно, не захотите, чтобы он автоматически заменялся заводской версией каждый раз при обновлении.
Как вы знаете, Kernel является важной частью ОС, в дистрибутивах GNU / Linux вы можете легко обновлять ядро, не касаясь другой части ОС. Однако мы просто обновляем часть нашей операционной системы.
Операционная система состоит из двух частей, пространства ядра и пространства пользователя.
Итак, да, вы можете обновить пространство ядра без касаясь вашего пользовательского пространства, если только новая версия совместима с вашим текущим пользовательским пространством.
И об обновлении инструментов пользовательского пространства, это еще один да.
Когда вы запускаете:
sudo apt-get upgrade
Если доступно обновление для ядра, вы получите:
The following packages have been kept back:
linux-generic linux-headers-generic linux-image-generic
, так что вы обновляете свое пространство пользователя и когда вы запускаете что-то вроде
sudo apt-get dist-upgrade
вы обновляете все, включая ядро.
Чтобы обновить только ваше ядро до более новой версии, используйте что-то вроде:
$ apt-cache search "linux-image-[0-9]+.*-generic" | awk '{print $1}' | head -4
linux-image-4.4.0-21-generic
linux-image-4.10.0-14-generic
linux-image-4.10.0-19-generic
linux-image-4.10.0-20-generic
, чтобы найти список новых ядер, затем установите это как новый пакет, например:
sudo apt install linux-image-4.10.0-14-generic
Во-первых, несколько пояснений, потому что я чувствую, что вы не понимаете, как появились системы GNU / Linux. Потерпите меня, если это для вас ничего нового:
«Ядро» - это не просто другая программа, которая работает, но она является частью ОС, обеспечивающей базовые функции: если вы хотите запустить программу ( скажем, вы вводите «ls» в командной строке) двоичный файл должен быть загружен с диска (который включает в себя некоторые операции с файловой системой, чтобы найти его и некоторую обработку файлов, чтобы его прочитать), затем создается «среда процесса»: память получает назначается, номер процесса выдается и т. д. и т. д. Все прежние действия (FS, чтение из файла, ...) обрабатываются системными библиотеками, но последние являются функциями ядра.
«Linux» на самом деле (только!) Ядро, в котором нет других частей ОС. Линус Торвальдс начал писать его, запустив ядро OSM-шаблона Andrew Tanenbaums MINIX и завершив его, чтобы оно было полномасштабным и реальным работоспособным ядром. До сих пор есть Linus (и многие другие, кто внес вклад / внесли вклад), которые разрабатывают это ядро. Это ядро по-прежнему очень похоже на UNIX, но не на ядро UNIX.
«GNU» началось как инициатива «улучшить» многие общие команды UNIX. Я не буду обсуждать, удались они или нет, но они определенно написали много программного обеспечения и в какой-то момент имели набор служебных программ. Они даже начали разрабатывать собственное ядро ОС (HURD), которое было основано в основном на UNIX, но было совершенно иным. Но по сей день HURD находится в раннем развитии и вряд ли является рабочим решением. «GNU» кстати. сокращен для «GNU (is) Not UNIX» - они пытались преодолеть некоторые (воспринимаемые или реальные) ограничения UNIX с намерением создать преемника UNIX (опять же: я не хочу входить в дискуссию, если они преуспели или [- d3]
Итак, с набором инструментов, в которых отсутствует ядро и ядро, не имеющее инструментария, оно не имеет значения, если оно «лучше» или «хуже», но это определенно отличается!). было естественное развитие, чтобы объединить эти два: GNU / Linux был создан.
Тем не менее, для работы (и работоспособной) ОС вам нужно больше, чем просто ядро и набор инструментов: вам нужна система управления пакетами , вам нужны процедуры установки, вам нужны шаблонные конфигурации, вам нужно ....
К этому выводу пришли несколько разных людей (или их группы) и использовали комбинацию GNU / Linux для создания GNU / Linux- по своему вкусу, добавив именно то, о чем я говорил выше: они создали диспетчер пакетов, систему упаковки, процедуры установки и многое другое. Эти разные группы (соответственно результаты их усилий) - это разные распределения. Сегодня есть три разных менеджера пакетов (подходящий для Debian и таких производных систем, как * ubuntu, rpm для RedHat и производных систем, таких как Fedora, CentOS и т. Д., Pacman для ArchLinux), но все это просто управляет пакетами программного обеспечения, которое (по существу) то же: то, что вызывается при выдаче «ls» или «df» и т. д. в системе Debian или RHEL-системе, происходит из разных пакетов, но по существу это GNU-версия «ls» - (" df "-), просто по-разному упакован.
Итак,« в принципе »вы можете обновлять ядро самостоятельно, как люди, которые создали дистрибутив из разных версий всего программного обеспечения, о котором я говорил выше. [ ! d7]
Но это очень большой BUT: потому что есть не только ядро и некоторое дополнительное программное обеспечение, но и многое другое, о чем нужно помнить, например, средства настройки системы (systemd, которые используются некоторыми дистрибутивами и некоторые нет), инструменты сетевого управления, такие как NetworkManager, которые, в свою очередь, зависят от некоторых версий библиотеки GNOME и т. д. и т. д. «Распределение» - довольно сложная вещь, и есть вероятность, что если вы попытаетесь обновить ядро, вы в конечном итоге обновите много других вещей из-за многих взаимозависимостей.
Тем не менее, в принципе ", как и выше: вы также можете создать свой собственный дистрибутив, загрузив все источники, скомпилировав их, найди рабочий набор комбинаций версий, разместите какую-нибудь систему упаковки (или используйте одну из существующих) - и так далее , пока у вас нет распространяемой, устанавливаемой и настраиваемой системы. Это то, что создатели дистрибутивов, такие как Ubuntu, и это не чудо - просто много сложной работы, поэтому на самом деле большинство пользователей уклоняются от этого и используют что-то, что могут, готовые к использованию.
I надеюсь, что это ответит на ваш вопрос.
Самый простой ответ не имеет ничего общего с Ubuntu; это связано с тем, как построен GNU / Linux. Если вы попытаетесь рассмотреть его как разработчика системы, вы увидите два мира, каждый из которых отделен острой границей (ABI).
Мир ядра, в котором работают разработчики низкого уровня, представляет собой систему самостоятельно. В нем есть все, что вы обычно найдете в обычном приложении. Единственное различие заключается в том, что пользователь не является фактическим человеком, который использует машину, но мир пространства пользователя. Ядро «приложение» является средним человеком, сервером, использующим машину, - призраком в оболочке.
Теперь пользовательское пространство - это нормальный мир, который играет повседневный пользователь и разработчик на. Он имеет жесткие API, правила, файлы и, самое главное, абстрактное, детское изображение машины, на которой он работает. Так как пользователь видит эту часть, и это составляет 99% от размера дистрибутива, ее легко назвать неверной. Правильная номенклатура - называть ее дистрибутивом программного обеспечения, созданным каким-то сущностью (Canonical, Fedora и т. Д.), Используя ядро (Linux, HURD, BSD и т. Д.) И созданное с использованием набора инструментов (обычно предоставляемых GNU ).
Чтобы ответить на ваш вопрос, в GNU / Linux (как и в Windows и OSX, поверьте мне), вы можете изменить ядро, а не только версию, но всю архитектуру (Linux Kernel, vs HURD Kernel), и, пока ABI не тронут, никогда не делайте ни одного изменения в пользовательском мире ... В тот же день, когда реальному человеку пришлось строить ядро из источников, вы могли бы пройти несколько изменений например, для того, чтобы заставить испорченный веб-камеру USB работать ... Теперь, с модульным ядром, вам просто нужно установить модуль, и вы получите совершенно новый мир ядра, с ABI (иногда) с новыми функциями ...
Опять же, для пользовательского пространства. Когда вы устанавливаете новое приложение, например, из репозитория Ubuntu, в 99% случаев, ваша самая большая проблема связана с совместимостью других компонентов пользовательского пространства, а не с реальным ядром. Бывают случаи, когда версия ядра диктует (через ABI) диапазон вещей, которые могут быть установлены в пользовательском пространстве, но цель (для разработчиков, по крайней мере) состоит в том, чтобы это уйти ...
Еще одна вещь, которую нужно обдумать, вы можете (и это довольно легко) создать собственный, специальный, единственный в своем роде дистрибутив GNU / Linux. Получите ядро, несколько простых скриптов, несколько приложений, и вы настроены. Это просто так (ознакомьтесь с дистрибутивами OpenWRT GNU / Linux, для сетевого оборудования, весь дистрибутив соответствует 16 Мб или около того).
Я думаю, что они хранятся отдельно, потому что ядро является важной частью. Ядро с регрессией или просто неудачное обновление может нанести большой урон. Возможно, вы захотите обновить его реже; или только после некоторого времени ожидания, чтобы никто не сообщал о тревожных ошибках.
Также некоторые продвинутые или профессиональные пользователи перекомпилируют ядро, чтобы изменить его поведение в соответствии с их потребностями. В этом случае вы, очевидно, не захотите, чтобы он автоматически заменялся заводской версией каждый раз при обновлении.
Как вы знаете, Kernel является важной частью ОС, в дистрибутивах GNU / Linux вы можете легко обновлять ядро, не касаясь другой части ОС. Однако мы просто обновляем часть нашей операционной системы.
Операционная система состоит из двух частей, пространства ядра и пространства пользователя.
Итак, да, вы можете обновить пространство ядра без касаясь вашего пользовательского пространства, если только новая версия совместима с вашим текущим пользовательским пространством.
И об обновлении инструментов пользовательского пространства, это еще один да.
Когда вы запускаете:
sudo apt-get upgrade
Если доступно обновление для ядра, вы получите:
The following packages have been kept back:
linux-generic linux-headers-generic linux-image-generic
, так что вы обновляете свое пространство пользователя и когда вы запускаете что-то вроде
sudo apt-get dist-upgrade
вы обновляете все, включая ядро.
Чтобы обновить только ваше ядро до более новой версии, используйте что-то вроде:
$ apt-cache search "linux-image-[0-9]+.*-generic" | awk '{print $1}' | head -4
linux-image-4.4.0-21-generic
linux-image-4.10.0-14-generic
linux-image-4.10.0-19-generic
linux-image-4.10.0-20-generic
, чтобы найти список новых ядер, затем установите это как новый пакет, например:
sudo apt install linux-image-4.10.0-14-generic
Во-первых, несколько пояснений, потому что я чувствую, что вы не понимаете, как появились системы GNU / Linux. Потерпите меня, если это для вас ничего нового:
«Ядро» - это не просто другая программа, которая работает, но она является частью ОС, обеспечивающей базовые функции: если вы хотите запустить программу ( скажем, вы вводите «ls» в командной строке), двоичный файл должен быть загружен с диска (который включает в себя некоторые операции с файловой системой, чтобы найти его и некоторую обработку файлов, чтобы его прочитать), затем создается «среда процесса»: память получает назначается, номер процесса выдается и т. д. и т. д. Все прежние действия (FS, чтение из файла, ...) обрабатываются системными библиотеками, но последние являются функциями ядра.
«Linux» на самом деле (только!) Ядро, в котором нет других частей ОС. Линус Торвальдс начал писать его, запустив ядро OSM-шаблона Andrew Tanenbaums MINIX и завершив его, чтобы оно было полномасштабным и реальным работоспособным ядром. До сих пор есть Linus (и многие другие, кто внес вклад / внесли вклад), которые разрабатывают это ядро. Это ядро по-прежнему очень похоже на UNIX, но не на ядро UNIX.
«GNU» началось как инициатива «улучшить» многие общие команды UNIX. Я не буду обсуждать, удались они или нет, но они определенно написали много программного обеспечения и в какой-то момент имели набор служебных программ. Они даже начали разрабатывать собственное ядро ОС (HURD), которое было основано в основном на UNIX, но было совершенно иным. Но по сей день HURD находится в раннем развитии и вряд ли является рабочим решением. «GNU» кстати. сокращен для «GNU (is) Not UNIX» - они пытались преодолеть некоторые (воспринимаемые или реальные) ограничения UNIX с намерением создать преемника UNIX (опять же: я не хочу входить в дискуссию, если они преуспели или [-d4]
Итак, с набором инструментов, в которых отсутствует ядро и ядро, не имеющее инструментария, оно не имеет значения, если оно «лучше» или «хуже», но это определенно отличается!). было естественное развитие, чтобы объединить эти два: GNU / Linux был создан.
Тем не менее, для работы (и работоспособной) ОС вам нужно больше, чем просто ядро и набор инструментов: вам нужна система управления пакетами , вам нужны процедуры установки, вам нужны шаблонные конфигурации, вам нужно ....
К этому выводу пришли несколько разных людей (или их группы) и использовали комбинацию GNU / Linux для создания GNU / Linux- по своему вкусу, добавив именно то, о чем я говорил выше: они создали диспетчер пакетов, систему упаковки, процедуры установки и многое другое. Эти разные группы (соответственно результаты их усилий) - это разные распределения. Сегодня есть три разных менеджера пакетов (подходящий для Debian и таких производных систем, как * ubuntu, rpm для RedHat и производных систем, таких как Fedora, CentOS и т. Д., Pacman для ArchLinux), но все это просто управляет пакетами программного обеспечения, которое (по существу) то же: то, что вызывается при выдаче «ls» или «df» и т. д. в системе Debian или RHEL-системе, происходит из разных пакетов, но по существу это GNU-версия «ls» - (" df "-), просто по-разному упакован.
Итак,« в принципе »вы можете обновлять ядро самостоятельно, как люди, которые создали дистрибутив из разных версий всего программного обеспечения, о котором я говорил выше. [ ! d7]
Но это очень большой BUT: потому что есть не только ядро и некоторое дополнительное программное обеспечение, но и многое другое, о чем нужно помнить, например, средства настройки системы (systemd, которые используются некоторыми дистрибутивами и некоторые нет), инструменты сетевого управления, такие как NetworkManager, которые, в свою очередь, зависят от некоторых версий библиотеки GNOME и т. д. и т. д. «Распределение» - довольно сложная вещь, и есть вероятность, что если вы попытаетесь обновить ядро, вы в конечном итоге обновите много других вещей из-за многих взаимозависимостей.
Тем не менее, в принципе ", как и выше: вы также можете создать свой собственный дистрибутив, загрузив все источники, скомпилировав их, найди рабочий набор комбинаций версий, разместите какую-нибудь систему упаковки (или используйте одну из существующих) - и так далее , пока у вас нет распространяемой, устанавливаемой и настраиваемой системы. Это то, что создатели дистрибутивов, такие как Ubuntu, и это не чудо - просто много сложной работы, поэтому на самом деле большинство пользователей уклоняются от этого и используют что-то, что могут, готовые к использованию.
I надеюсь, что это ответит на ваш вопрос.
Самый простой ответ не имеет ничего общего с Ubuntu; это связано с тем, как построен GNU / Linux. Если вы попытаетесь рассмотреть его как разработчика системы, вы увидите два мира, каждый из которых отделен острой границей (ABI).
Мир ядра, в котором работают разработчики низкого уровня, представляет собой систему самостоятельно. В нем есть все, что вы обычно найдете в обычном приложении. Единственное различие заключается в том, что пользователь не является фактическим человеком, который использует машину, но мир пространства пользователя. Ядро «приложение» является средним человеком, сервером, использующим машину, - призраком в оболочке.
Теперь пользовательское пространство - это нормальный мир, который играет повседневный пользователь и разработчик на. Он имеет жесткие API, правила, файлы и, самое главное, абстрактное, детское изображение машины, на которой он работает. Так как пользователь видит эту часть, и это составляет 99% от размера дистрибутива, ее легко назвать неверной. Правильная номенклатура - называть ее дистрибутивом программного обеспечения, созданным каким-то сущностью (Canonical, Fedora и т. Д.), Используя ядро (Linux, HURD, BSD и т. Д.) И созданное с использованием набора инструментов (обычно предоставляемых GNU ).
Чтобы ответить на ваш вопрос, в GNU / Linux (как и в Windows и OSX, поверьте мне), вы можете изменить ядро, а не только версию, но всю архитектуру (Linux Kernel, vs HURD Kernel), и, пока ABI не тронут, никогда не делайте ни одного изменения в пользовательском мире ... В тот же день, когда реальному человеку пришлось строить ядро из источников, вы могли бы пройти несколько изменений например, для того, чтобы заставить испорченный веб-камеру USB работать ... Теперь, с модульным ядром, вам просто нужно установить модуль, и вы получите совершенно новый мир ядра, с ABI (иногда) с новыми функциями ...
Опять же, для пользовательского пространства. Когда вы устанавливаете новое приложение, например, из репозитория Ubuntu, в 99% случаев, ваша самая большая проблема связана с совместимостью других компонентов пользовательского пространства, а не с реальным ядром. Бывают случаи, когда версия ядра диктует (через ABI) диапазон вещей, которые могут быть установлены в пользовательском пространстве, но цель (для разработчиков, по крайней мере) состоит в том, чтобы это уйти ...
Еще одна вещь, которую нужно обдумать, вы можете (и это довольно легко) создать собственный, специальный, единственный в своем роде дистрибутив GNU / Linux. Получите ядро, несколько простых скриптов, несколько приложений, и вы настроены. Это просто так (ознакомьтесь с дистрибутивами OpenWRT GNU / Linux, для сетевого оборудования, весь дистрибутив соответствует 16 Мб или около того).
Я думаю, что они хранятся отдельно, потому что ядро является важной частью. Ядро с регрессией или просто неудачное обновление может нанести большой урон. Возможно, вы захотите обновить его реже; или только после некоторого времени ожидания, чтобы никто не сообщал о тревожных ошибках.
Также некоторые продвинутые или профессиональные пользователи перекомпилируют ядро, чтобы изменить его поведение в соответствии с их потребностями. В этом случае вы, очевидно, не захотите, чтобы он автоматически заменялся заводской версией каждый раз при обновлении.
Как вы знаете, Kernel является важной частью ОС, в дистрибутивах GNU / Linux вы можете легко обновлять ядро, не касаясь другой части ОС. Однако мы просто обновляем часть нашей операционной системы.
Операционная система состоит из двух частей, пространства ядра и пространства пользователя.
Итак, да, вы можете обновить пространство ядра без касаясь вашего пользовательского пространства, если только новая версия совместима с вашим текущим пользовательским пространством.
И об обновлении инструментов пользовательского пространства, это еще один да.
Когда вы запускаете:
sudo apt-get upgrade
Если доступно обновление для ядра, вы получите:
The following packages have been kept back:
linux-generic linux-headers-generic linux-image-generic
, так что вы обновляете свое пространство пользователя и когда вы запускаете что-то вроде
sudo apt-get dist-upgrade
вы обновляете все, включая ядро.
Чтобы обновить только ваше ядро до более новой версии, используйте что-то вроде:
$ apt-cache search "linux-image-[0-9]+.*-generic" | awk '{print $1}' | head -4
linux-image-4.4.0-21-generic
linux-image-4.10.0-14-generic
linux-image-4.10.0-19-generic
linux-image-4.10.0-20-generic
, чтобы найти список новых ядер, затем установите это как новый пакет, например:
sudo apt install linux-image-4.10.0-14-generic