Discussion:
Required kernel version for pid1 only?
(too old to reply)
林自均
2018-01-09 08:10:55 UTC
Permalink
Raw Message
Hi folks,
Linux kernel >= 3.13
Linux kernel >= 4.2 for unified cgroup hierarchy support
I guess it means that some part of the whole systemd project requires Linux
kernel 3.13. What if I don't need that part and only pid1 is relevant to
me? Is such information provided somewhere?

Thanks.

John Lin
Zbigniew Jędrzejewski-Szmek
2018-01-09 08:19:58 UTC
Permalink
Raw Message
Post by 林自均
Hi folks,
Linux kernel >= 3.13
Linux kernel >= 4.2 for unified cgroup hierarchy support
I guess it means that some part of the whole systemd project requires Linux
kernel 3.13. What if I don't need that part and only pid1 is relevant to
me? Is such information provided somewhere?
Generally it's pid1 that has the strongest requirements. Sometimes
we need a specific system call, in which case the requirement applies
to library code and all of the project.

Usually you can find _why_ this specific version is required by
looking at the commit that raised the requirement in docs, it should
contain a brief justification. But it's not guaranteed to list all the
reasons, and new uses could have been added in the meantime, and as
long as the latest required kernel version supports them, this
wouldn't be mentioned anywhere. It should be possible to compile and
use systemd with older kernel versions using some workarounds or by
omitting features, but this is not supported and you're basically on
your own.

Zbyszek
Mantas Mikulėnas
2018-01-09 08:22:50 UTC
Permalink
Raw Message
Post by 林自均
Hi folks,
Linux kernel >= 3.13
Linux kernel >= 4.2 for unified cgroup hierarchy support
I guess it means that some part of the whole systemd project requires
Linux kernel 3.13. What if I don't need that part and only pid1 is relevant
to me? Is such information provided somewhere?
There's no full list. You can only check commit logs to find out why the
requirement was bumped (git log -p README), but once the new dependency is
published, it's always possible that other parts of systemd code will start
implicitly depending on *other* kernel features available in that release.

For example, here's what prompted each bump:

3.13 - DM_DEFERRED_REMOVE (dcce98a4bdc3)
3.12 - %P in core_pattern (58015d7815bc)
3.11 - arbitrary (a0c3e16b7bce)
3.7 - kernel-based firmware loading (be2ea723b1d0)
3.0 - cgroup.procs (e946948eff51)
2.6.39 - oh come on

~

In short, if it says "REQUIREMENTS: Linux ≥ 3.13", that's what you need to
use. Anything below that is at your own risk.
--
Mantas Mikulėnas
林自均
2018-01-09 08:35:53 UTC
Permalink
Raw Message
Hi Zbyszek and Mantas,

I got it. Thank you for the detailed answers.

John Lin
Post by Mantas Mikulėnas
Post by 林自均
Hi folks,
Linux kernel >= 3.13
Linux kernel >= 4.2 for unified cgroup hierarchy support
I guess it means that some part of the whole systemd project requires
Linux kernel 3.13. What if I don't need that part and only pid1 is relevant
to me? Is such information provided somewhere?
There's no full list. You can only check commit logs to find out why the
requirement was bumped (git log -p README), but once the new dependency is
published, it's always possible that other parts of systemd code will start
implicitly depending on *other* kernel features available in that release.
3.13 - DM_DEFERRED_REMOVE (dcce98a4bdc3)
3.12 - %P in core_pattern (58015d7815bc)
3.11 - arbitrary (a0c3e16b7bce)
3.7 - kernel-based firmware loading (be2ea723b1d0)
3.0 - cgroup.procs (e946948eff51)
2.6.39 - oh come on
~
In short, if it says "REQUIREMENTS: Linux ≥ 3.13", that's what you need to
use. Anything below that is at your own risk.
--
Mantas Mikulėnas
Cristian Rodríguez
2018-01-16 12:52:06 UTC
Permalink
Raw Message
Hi Zbyszek and Mantas,
I got it. Thank you for the detailed answers.
John Lin
Note that unless you have a kernel supported by a reliable distributor
you should not use anything older than what kernel.org tells you to.

You probably want instead to fix whatever code that prevents you from
running an "stable" supported kernel.

Whatever effort you do to forward port your code is probably worth it,
on the contrary attempting to maintain an old kernel release with your
patches on top and keep it current with all hundreds of security fixes
is going to be an extremely painful experience that you will regret
unless you have the wallet, manpower and knowledge to do so.

Cheers.

Loading...