Linux Today
If your phone runs Android, there is a Linux kernel in your pocket right now. Android's official documentation explains that its kernel is based on the upstream Linux kernel, with Android-specific changes added on top. The same kernel that was "just a hobby" over three decades ago now runs on servers that carry much of the internet, in smart home devices, in cars and in supercomputers.
A factory without a factory
Today's way of working bears little resemblance to 1991. Thousands of programmers, many employed by rival companies, send in changes every year. Each part of the kernel has its own maintainer; changes are reviewed there first and then move up layer by layer until they reach Torvalds. He is still the final decision-maker on what enters the main version. New releases come out on a steady rhythm, several times a year. Some versions are also chosen as long-term support releases; according to Android's documentation, these receive security fixes and bug fixes for two to six years. That predictability is what lets makers of phones, cars and industrial equipment build products on the kernel with confidence, knowing their foundation will be maintained for years.
Without a building, entry badges or weekly in-person meetings, this system drives one of the largest engineering projects in the world. Its main tools are email lists and a version control tool whose story we will tell in the next series.
The other side of the coin
But success had costs. As the project grew, so did the pressure on maintainers: huge review loads, corporate expectations and responsibility for the security of billions of devices. Another issue had been raised for years: the tone of discussions. Torvalds was known for harsh and sometimes insulting criticism in emails, and many said the atmosphere discouraged people, especially newcomers.
On 16 September 2018, something unexpected happened. In announcing a test release, Torvalds wrote a personal note. He said people in the community had confronted him that week about his lifetime of not understanding emotions, and wrote: "My flippant attacks in emails have been both unprofessional and uncalled for." He apologised to the people his behaviour had hurt and possibly driven away, and said he would take time off to get help and change how he behaved. Greg Kroah-Hartman, a veteran maintainer, took over finishing that release.
At the same time, the project replaced its old "Code of Conflict" with a new Code of Conduct based on a well-known template, the Contributor Covenant. Torvalds stressed in the same message that this was not a burnout break and that he very much wanted to continue the project.
The turning point
The turning point of this part was accepting that a large project cannot survive on good code alone. Culture, tone and behaviour are part of the infrastructure too. The person who started the project admitted publicly that he had to change himself, something hard for any leader.
Lesson for businesses
Technical growth without cultural growth is fragile. Organisations often plan for processes and tools but leave behaviour and tone to chance, even though these decide whether talent stays or leaves.
Second, a leader's public apology is not a sign of weakness. When a founder admits a mistake, others feel free to speak about problems without fear.
Third, write down your rules of conduct. Unwritten expectations are invisible to newcomers; a clear document creates a shared standard.
Next series: in that same 2018 message, Torvalds recalled that he had stepped away from kernel work once before, when he "needed to write a little tool called git". The story of that tool begins with a sudden break-up in 2005.
منابع / Sources
- "Kernel overview", Android Open Source Project, source.android.com, n.d. — https://source.android.com/docs/core/architecture/kernel
- "Linux 4.19-rc4 released, an apology, and a maintainership note", LWN.net (Torvalds' LKML post), 2018-09-16 — https://lwn.net/Articles/764901/
- "Code of Conduct: Let's revamp it. (commit 8a104f8)", torvalds/linux on GitHub, 2018-09-15 — https://github.com/torvalds/linux/commit/8a104f8b5867c682d994ffa7a74093c54469c11f
- "Code, conflict, and conduct", LWN.net, Jonathan Corbet, 2018-09-18 — https://lwn.net/Articles/765108/