MESSAGE
DATE | 2015-03-31 |
FROM | Ruben Safir
|
SUBJECT | Subject: [NYLXS - HANGOUT] The systemd Project Forks the Linux Kernel
|
http://distrowatch.com/weekly.php?issue=20150330#community
The systemd project began as an alternative implementation of init, the software which brings an operating system on-line when a computer boots. Traditionally, Linux distributions have used either the SysV init software or Upstart . While these older init systems had their benefits, systemd developers saw room for improvement and the chance to leverage several underutilized features available to modern Linux distributions. Using systemd, distributions are able to more easily start services in parallel, simplify service dependencies and make easier use of cgroups .
Many people in the Linux community have welcomed the improvements systemd's init implementation brings and have praised the speed and ease of use systemd provides to the distributions adopting the new init implementation. The benefits of systemd have caused most mainstream Linux distributions, including Fedora , openSUSE , Mageia and Debian , to replace their ageing init software with systemd packages. Later this year, Ubuntu will switch from using Upstart to systemd, with Ubuntu community distributions expected to follow. Only a few conservative or experimental distributions such as Slackware and Void have stuck with alternative init software.
Despite systemd's many benefits and modern features, some people in the Linux community are wary of the project and its rapid expansion. One common concern is the systemd project has a habit of taking on additional features outside the scope of a traditional init implementation. To date, systemd has taken on logging, time synchronization, mounting partitions, a console daemon (replacing the Linux virtual terminal), login sessions and seats, network configuration and device management. Some people feel the systemd project should focus on performing one task well while allowing separate projects to handle other tasks. Detractors of systemd point out the UNIX Philosophy
recommends each project have a narrow focus and try to do one thing well while playing nicely with other projects. Lennart Poettering, the founder and lead developer of systemd, argues the systemd project is more UNIX-like than the way Linux distributions have traditionally been developed, in large part because systemd brings many small projects under one umbrella: "In fact the design of systemd as a suite of integrated tools that each have their individual purposes, but when used together are more than just the sum of the parts, that's pretty much at the core of UNIX philosophy. Then, the way our project is handled (i.e. maintaining much of the core OS in a single git repository) is much closer to the BSD model (which is a true UNIX, unlike Linux) of doing things (where most of the core OS is kept in a single CVS/SVN repository) than things on Linux ever were."
The systemd developers have occasionally bumped heads with developers working on other projects, perhaps most notably Linus Torvalds, lead developer of the Linux kernel. Since systemd's init software works to bring the operating system on-line at boot time, systemd needs to work closely with the kernel and this can cause problems . In fact, some conflict and proposed solutions have resulted in at least one systemd developer getting banned
from contributing to the Linux kernel.
Now it appears as though the systemd developers have found a solution to kernel compatibility problems and a way to extend their philosophy of placing all key operating system components in one repository. According to Ivan Gotyaovich, one of the developers working on systemd, the project intends to maintain its own fork of the Linux kernel . "There are problems, problems in collaboration, problems with compatibility across versions. Forking the kernel gives us control over these issues, gives us control over almost all key parts of the stack."
In essence, systemd will gain another component, the Linux kernel, which can be patched as needed to work better with other systemd components. Having both the init software and the kernel managed by one project will also allow bug fixes to be addressed more quickly and avoid conflict between Linux and systemd developers. Ivan says systemd developers plan to merge improvements and changes from Torvalds' kernel into the systemd project and, in an e-mail, confirmed systemd developers will make their own patches public so they can be merged back into Linus' Linux.
Having two versions of the Linux kernel raises concerns about compatibility, but Ivan Gotyaovich states the systemd developers will work hard to maintain ABI compatibility and avoid breaking any userspace packages. He also states this could be an exciting time for Linux users: "Since until now development of GNU/Linux has been fragmented, slowed by poor communication and conflicting designs. Our systemd project offers distributions a united core where almost all key components live. Soon we will not need dozens of separate userland components talking with an alien kernel. All components will work together by design. We will no longer need GNU/udev/ntpd/NetworkManager/syslogd/Linux. Instead we will soon have GNU/systemd, [a] much simpler, unified platform. GNU/systemd will be a better target for third-party developers and easier to support."
While some members of the Linux community may not like the idea of a further expanding systemd project, it is hard to deny GNU/Linux has been a difficult platform for independent software vendors, particularly game developers. Products like WPS and Steam tend to target one or two specific distributions and leave porting and compatibility issues up to individual distributions to solve. Having one united core operating system for Linux users may make the platform more attractive to a wider range of companies and developers who do not have the resources to properly support the hundreds of permutations of software found across GNU/Linux distributions.
What do you think of a united GNU/systemd operating system? Is this a way for Linux distributions to become more standardized, the way other platforms like OS X and FreeBSD are? Or is the systemd project expanding too far, taking on more than its developers should? Leave us a comment below with your thoughts on the subject.
|
|