Linus Torvalds “Ima Sheep” released Linux Kernel 4.0 on Sunday:
So I decided to release 4.0 as per the normal schedule, because there really weren’t any known issues, and while I’ll be traveling during the end of the upcoming week due to a college visit, I’m hoping that won’t affect the merge window very much. We’ll see.
Linux 4.0 was a pretty small release both in linux-next and in final size, although obviously “small” is all relative. It’s still over 10k non-merge commits. But we’ve definitely had bigger releases (and judging by linux-next v4.1 is going to be one of the bigger ones).
Which is all good. It definitely matches the “v4.0 is supposed to be a_stable_ release”, and very much not about new experimental features etc. I’m personally so much happier with time-based releases than the bad old days when we had feature-based releases.
That said, there’s a few interesting numerological things going on with 4.0. Looking at just the statistics in git, this release is not just when we cross half a million commits total, but also cross the 4 million git object limit. Interestingly (if you look for numeric patterns), Linux 3.0 was when we crossed a quarter million commits and 2 million git objects, so there’s a nice (and completely unintentional) pattern there when it comes to the kernel git repository.
[ Another quick historical numerological footnote: the old historical BK tree was getting close to the 16-bit commilt limit that BK originally used to have. So that whole “quarter of a million commits” is actually quite a lot. During all of the BK years we only got 65k commits. Of course, we only used BK for three years, and we’ve now been on git for almost exactly ten years, but still – it shows how the whole development process has really sped up a _lot_ ]
Feature-wise, 4.0 doesn’t have all that much special. Much have been made of the new kernel patching infrastructure, but realistically, that not only wasn’t the reason for the version number change, we’ve had much bigger changes in other versions. So this is very much a “solid code progress” release.
Go get it and enjoy,
Linus “we’re all sheep” Torvalds
Linux 3.19 brought improvement to btrfs (raid), the network stack, added ARM Coresight, device tree overlays support, and more.
Some key changes made to Linux 4.0 include:
- pNFS (Parallel NFS), UBIFS, F2FS and BTRFS File Systems improvements
- Live Kernel Patching – Install kernel updates without rebooting
- Intel Quark x86 SoC support
- Various patches to improve Linux running on a Playstation 3
- Open source AMD Radeon driver supports DisplayPort Audio and improves fan support
Some of the new features and improvements specific to the ARM architecture include:
- A20 – PS/2 Controller
- A31 – IR receiver
- A31s – Bring-up sharing majority of drivers with A31, pinctrl driver
- A80 – MMC
- All SoCs – LRADC Input driver, CPUFreq, PWM Driver
- AXP209 power button input driver
- New boards and devices: CSQ CS908, LeMaker Banana Pro, Chuwi V7 CW0825, Rikomagic mk802, Rikomagic mk802ii, Rikomagic mk802_a10s, MarsBoard A10, Hyundai A7HD
- Fixes for rk808 regulator
- Watchdog fix
- Add Rockchip timer for RK3288
- HDMI output enabled on rk3288-firefly and rk3288-evb
- Disable GMAC by default
- Amlogic – pinctrl driver for Amlogic Meson SoCs
- Regulator driver for Mediatek MT6397
- Added watchdog driver
- Added Mediatek MT8173 64-bit processor
- New processors: Exynos 7, Freescale LS2085A, and Tegra 132 (Denver)
- Various fixes for ARM64 including UEFI and KVM code.
- Preparation work for Atmel AT91 support for multiplatform
- Other new platforms – Alphascale ASM9260, Marvell Armada 388, CSR Atlas7, TI Davinci DM816x, Hisilicon HiP01, ST STiH418, and Conexant Digicolor (CX92755).
There has also been some interesting changes for the MIPS architecture:
- Fixes for KVM support
- Support for MIPS R6 processors
- Preliminary support for Cavium Octeon 3 SoCs which feature up to 48 MIPS64 R3 cores with FPU and hardware virtualization
A more detailed changelog for Linux 4.0 will soon be available on Kernelnewbies.org, and once it’s up you may also want to have a look at their ARM architecture and drivers sections for more details about changes related to ARM, MIPS and other platforms. I’ve also generated a complete Linux 3.19 vs Linux 4.0 changelog (3.4MB) with git (comments only, no code).