Linux 3.3 rilasciato con il merge di Android

Linus Torvald ha finalmente annunciato il rilascio del kernel Linux 3.3
Questa nuova versione del kernel Linux porta con se numerose migliorie.
La grossa novità del Kernel Linux 3.3 è il merge con alcune porzioni di codice provenienti dal kernel di Android, lavoro che continuerà nei prossimi mesi (novità che era stata annunciata da Tim Bird lo scorso dicembre). 
Ma vediamo cosa c'è di nuovo nel Kernel Linux 3.3

1.1. Android merge

Recommended LWN article: Bringing Android closer to the mainline
For a long time, code from the Android project has not been merged back to the Linux repositories due to disagreement between developers from both projects. Fortunately, after several years the differences are being ironed out. Various Android subsystems and features have already been merged, and more will follow in the future. This will make things easier for everybody, including the Android mod community, or Linux distros that want to support Android programs.

1.2. Btrfs: restriping between different RAID levels, improved balancing, improved debugging tools

Improved balancing, raid restripping
In Btrfs, a "balance" operation consists in a complete rewrite of the filesystem data, pushing all the rewritten data and metadata through the allocators. This operation is needed in some cases. For example if a new drive is added, a balance operation will be needed to redistribute data to the new drive. This balance operation, however, rebalanced the entire filesystem, which could take many hours, and it didn't support a change of raid profile.
The balancing implementation has been completely reworked. Btrfs can now pause and resume a balance operation, and give status updates. It is also possible to restripe between different raid levels. It also lets filter the balance based on metadata/data profiles, and lets balance only mostly empty block groups. The userspace utils are available in the "parser" branch of the btrfs-progs.
Code: (commit 1 ,2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
Improved debugging
Btrfs has a new debugging utility, "integrity check", aimed at developers. The tool consist in a extra integrity test that for every write request checks that the filesystem is not writting to the disk bogus references that could left the file system in an inconsistent state that would cause data loss. This tool will help Btrfs developers to find bugs more easily.
Code: (commit 1, 2, 3)

1.3. Open vSwitch

Recommended LWN article: Routing Open vSwitch into the mainline
Open vSwitch is a software implementation of a multilayer network switch. This project has existed for years and it's now being merged in the main tree. Linux already has a virtual switch (the Linux bridge), but Open vSwitch is designed for more complex scenearios, and specially to be used as a vswitch in virtualized server environments (read the document "Why Open vSwitch?"
Open vSwitch supports standard management interfaces (e.g. sFlow, Netflow, RSPAN, CLI), and is open to programmatic extension and control using Openflow and the OVSDB management protocol, and it is designed to be compatible with modern switching chipsets. See for more information and userspace utilities.
Code: (commit)

1.4. Better bonding of network interfaces: teaming

There is a new "teaming" network device, which is intended to be a fast, scalable, clean, userspace-driven replacement for the bonding driver. It allows to create virtual interfaces that teams together multiple ethernet devices. This is typically used to increase the maximum bandwidth and provide redundancy. Currently round-robin and active-backup modes are implemented. The libteam userspace library with couple of demo apps is available at
Code: (commit)

1.5. Bufferbloat fighting: Byte queue limits

Recommended LWN article: Network transmit queue limits
"Bufferbloat" is a term used to describe the latency and throughput problems caused by excessive buffering trough the several elements of a network connection. Some tools are being developed to help to alleviate these problems, and this feature is one of them.
Byte queue limits are a configurable limit of packet data that can be put in the transmission queue of a network device. As a result one can tune things such that high priority packets get serviced with a reasonable amount of latency whilst not subjecting the hardware queue to emptying when data is available to send. Configuration of the queue limits is in the tx-<n> sysfs directory for the queue under the byte_queue_limits directory.
Code: (commit 1, 2, 3, 4, 5)

1.6. Per-cgroup TCP buffer limits

Recommended LWN article: Per-cgroup TCP buffer limits
This patch introduces memory pressure controls for the tcp protocol which allows to put limits to the size of the buffers used by the TCP code.
Code: (commit 1, 2, 3, 4, 5, 6, 7, 8)

1.7. Network priority control group

The Network priority cgroup provides an interface to allow an administrator to dynamically set the priority of network traffic generated by various applications. Nominally, an application would set the priority of its traffic via the SO_PRIORITY socket option. This however, is not always possible. This cgroup allows an administrator to assign a process to a group which defines the priority of egress traffic on a given interface. More details in Documentation/cgroups/net_prio.txt
Code: (commit 1, 2)

1.8. Better Ext4 online resizing

This release supports a new online resizing ioctl. The new resizing lets kernel do all work, like allocating bitmaps and inode tables, it can support flex_bg and BLOCK_UNINIT features and it's much faster.
Code: (commit)

1.9. New architecture: TI C6X

Recommended LWN article: Upcoming DSP architectures
The family of architectures that run on Linux has got even bigger with the addition of support for the Texas Instruments C6X. This architecture supports members of the Texas Instruments family of C64x single and multicore DSPs. The multicore DSPs do not support cache coherancy, so are not suitable for SMP. Also, these are no-mmu processors. This core architecture is VLIW with an instruction set optimized for DSP applications. For details on the processors, see the TI web page. Also, the project website:
Code: (directory)

1.10. EFI boot support

This release introduces an EFI boot stub that allows an x86 bzImage to be loaded and executed directly by EFI firmware. The bzImage appears to the firmware as an EFI application. Both BIOS and EFI boot loaders can still load and run the same bzImage, thereby allowing a single kernel image to work in any boot environment.
Code: (commit)
Come potete leggere le novità sono molte e gustose. Il kernel Linux 3.3 è come sempre disponibile all'indirizzo

Articoli simili

Commenta con Disqus

Licenza Creative Commons

Quest' opera è distribuita con licenza Creative Commons Attribuzione - Non commerciale - Non opere derivate 3.0 Unported. Questo blog non rappresenta una testata giornalistica, in quanto viene aggiornato senza alcuna periodicità. Non può, pertanto, considerarsi un prodotto editoriale, ai sensi della legge n. 62 del 7/03/2001

Disclaimer immagini

Le immagini utilizzate in questo blog appartengono ai loro rispettivi autori e sono utilizzati per scopi educativi, personali e senza scopo di lucro. Ogni eventuale violazione del copyright non è intenzionale, ma se si riconosce un'immagine protetta da copyright, fatemelo sapere qui, e sarò lieto di aggiungere i credits o modificarla o rimuoverla.

Disclaimer images

Images used on this blog belong to their respective authors and are used for educational, personal and no profit purposes. Any eventual copyright infringement is not intentional, but if you recognize a copyrighted image, please let me know here, and I'll happily provide to add the right credits or modify or remove it.