Slashdot Log In
Linus Announces the 2.6.25 Linux Kernel
Posted by
Zonk
on Thursday April 17, @08:40AM
from the those-servers-need-a-workout dept.
from the those-servers-need-a-workout dept.
LinuxWatch writes "'It's been long promised, but there it is now,' began Linux creator Linus Torvalds, announcing the 2.6.25 Linux kernel. He continued, 'special thanks to Ingo who found and fixed a nasty-looking regression that turned out to not be a regression at all, but an old bug that just had not been triggering as reliably before. That said, that was just the last particular regression fix I was holding things up for, and it's not like there weren't a lot of other fixes too, they just didn't end up being the final things that triggered my particular worries.' There were numerous changes in this revision of the OS. The origins of some of those fixes is detailed in Heise's brief history of this kernel update."
Related Stories
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
Full
Abbreviated
Hidden
Loading... please wait.

Wonderful. More Stable. ... So? (Score:4, Funny)
Reply to This
Re:Wonderful. More Stable. ... So? (Score:5, Insightful)
Reply to This
Parent
Re: (Score:3, Interesting)
Re:Wonderful. More Stable. ... So? (Score:4, Insightful)
And that has precisely what to do with the kernel? X is in user space. If you want to replace X with any other windowing system you like, just port it or write it. And when you've written something as powerful and stable as the X Window System, come back and tell us about it.
Reply to This
Parent
Re:Wonderful. More Stable. ... So? (Score:5, Interesting)
Reply to This
Parent
Re:Wonderful. More Stable. ... So? (Score:5, Insightful)
Reply to This
Parent
Re:Wonderful. More Stable. ... So? (Score:5, Insightful)
Oh, for pity's sake. Throw all your engineering discipline out of the window (ha!) and fall back on gut feel. and superstition. The fact is that Linux (with X Windows) performs much better on the same hardware than either Windows or MacOS. Why is this? Until you've shown that X Windows is a significant cost, then you really don't have any argument beyond hand-waving.
I have this to add: I personally have been using the X Window system for eighteen years. I've used it on hardware which had an 8MHz - MHz, not GHz - processor. I've used it on hardware that had 8Mb - Mb, not Gb - of RAM. The X Window system performs perfectly well on that hardware spec. It's always outperformed every other windowing system on the same hardware, and it still does now.
Basic engineering tenet, known to all old engineers (but obviously not taught to young ones): if it ain't broke, don't fix it.
Reply to This
Parent
Re:Wonderful. More Stable. ... So? (Score:4, Insightful)
That has to be the most absurd thing I've read in a long time. Either you're not a software developer, or you're an incredibly bad one. Either way, it's clear your opinions regarding X can probably be safely ignored.
Reply to This
Parent
Re:Wonderful. More Stable. ... So? (Score:5, Insightful)
Reply to This
Parent
Re:Wonderful. More Stable. ... So? (Score:5, Funny)
Reply to This
Parent
Behold! Thus sayeth Linus! (Score:4, Funny)
Reply to This
Parent
Re: (Score:3, Funny)
Re:Wonderful. More Stable. ... So? (Score:5, Funny)
I truely don't understand this mentality of making everything stupid user friendly. Once upon a time you actually had to know a little bit about the tools you were using to make them work. Now instead of creating powerful tools that require some understanding we want to replace them all with stupid proof crippleware? And people wonder why well over 90% of all email on the internet is spam. People wonder why Windows infection rates are so high (aside from the security holes allowing the stupid user tricks, the stupid user still clicks on everything presented).
In this I propose that we place large concrete barriers along every major highway and paint tunnels on them with overhead messages like "Do you want a bigger penis? Drive here!" or "Get rich in this tunnel!" and maybe even "Protect your car from theives, enter here!"
Reply to This
Parent
Re:Wonderful. More Stable. ... So? (Score:5, Insightful)
Linux devs are working their asses off in their parents basements, hacking and testing drivers for hardware that they don't have access to the interface specifications for. If things still look a little shakey, just remember to be glad that they work at all, given the hours of work for $0 return.
When you are done giving thanks, complain to your hardware manufacturer, who does make money from the deal, and does have the full specifications - AND for reasons unknown, have turned down the offer of OSS developers writing the drivers for them, for free [slashdot.org].
*See also: Canon
Reply to This
Parent
A better link to the post is... (Score:5, Informative)
Reply to This
Re:A better link to the post is... (Score:5, Funny)
Reply to This
Parent
Almost slashdotted: copy of important stuff below (Score:5, Informative)
Also kernelnewbies.org seems to be very slow at the moment. Here is a copy of the important changes section from their 2.6.25 changelog page:
Recommended LWN article (somewhat outdated, but still interesting): "Controlling memory use in containers"
The memory resource controller is a cgroups-based feature. Cgroups, aka "Control Groups", is a feature that was merged in 2.6.24, and its purpose is to be a generic framework where several "resource controllers" can plug in and manage different resources of the system such as process scheduling or memory allocation. It also offers a unified user interface, based on a virtual filesystem where administrators can assign arbitrary resource constraints to a group of chosen tasks. For example, in 2.6.24 they merged two resource controllers: Cpusets and Group Scheduling. The first allows to bind CPU and Memory nodes to the arbitrarily chosen group of tasks, aka cgroup, and the second allows to bind a CPU bandwidth policy to the cgroup.
The memory resource controller isolates the memory behavior of a group of tasks -cgroup- from the rest of the system. It can be used to:
* Isolate an application or a group of applications. Memory hungry applications can be isolated and limited to a smaller amount of memory.
* Create a cgroup with limited amount of memory, this can be used as a good alternative to booting with mem=XXXX.
* Virtualization solutions can control the amount of memory they want to assign to a virtual machine instance.
* A CD/DVD burner could control the amount of memory used by the rest of the system to ensure that burning does not fail due to lack of available memory.
The configuration interface, like all the cgroups, is done by mounting the cgroup filesystem with the "-o memory" option, creating a randomly-named directory (the cgroup), adding tasks to the cgroup by catting its PID to the 'task' file inside the cgroup directory, and writing values to the following files: 'memory.limit_in_bytes', 'memory.usage_in_bytes' (memory statistic for the cgroup), 'memory.stats' (more statistics: RSS, caches, inactive/active pages), 'memory.failcnt' (number of times that the cgroup exceeded the limit), and 'mem_control_type'. OOM conditions are also handled in a per-cgroup manner: when the tasks in the cgroup surpass the limits, OOM will be called to kill a task between all the tasks involved in that specific cgroup.
Code: (commit 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
1.2. Real Time Group scheduling
Group scheduling is a feature introduced in 2.6.24. It allows to assign different process scheduling priorities other than nice levels. For example, given two users on a system, you may want to to assign 50% of CPU time to each one, regardless of how many processes is running each one (traditionally, if one user is running f.e. 10 cpu-bound processes and the other user only 1, this last user would get starved its CPU time), this is the "group tasks by user id" configuration option of Group Scheduling does. You may also want to create arbitrary groups of tasks and give them CPU time privileges, this is what the "group tasks by Control Groups" option does, basing its configuration interface in cgroups (feature introduced in 2.6.24 and described in the "Memory resource controller" section).
Those are the two working modes of Control Groups. Aditionally there're several types of tasks. What 2.6.25 adds to Group Scheduling is the ability to also handle real time (aka SCHED_RT) processes. This makes much easier to handle RT tasks and give them scheduling guarantees.
Documentation: sched-rt-group.txt
Code: (commit 1, 2, 3, 4)
There's serious interest in running RT tasks on enterprise-class hardware, so a large number of enhancements to the RT scheduling class and load-balancer have been merged to provide optimum behaviour for RT tasks.
Code: (commit 1, 2, 3, 4, 5, 6, 7, 8, 9)
1.3. RCU Preemption support
Recommended LWN article: "The design of preemptible read-copy-update"
RCU is a very powerful locking scheme used in Linux to scale to very large number of CPUs on a single system. However, it wasn't well suited for low latency,RT-ish workloads, and some parts could cause high latency. In 2.6.25, RCU can be preempted, eliminating that source of latencies and making Linux a bit more RT-ish.
Code: (commit 1, 2)
1.4. FIFO ticket spinlocks in x86
Recommended LWN article: "Ticket spinlocks"
In certain workloads, spinlocks can be unfair, ie: a process spinning on a spinlock can be starved up to 1,000,000 times. Usually starvation in spinlocks is not a problem, and it was thougt that it was not too important because such spinlock would become a performance problem before any starvation is noticed, but testing has showed the contrary. And it's always possible to find an obscure corner case that will generate a lot of contention on some lock, and the processor that will grab the lock does it randomly.
With the new spinlocks, the processes grab the spinlock in FIFO order, ensuring fairness (and more importantly, guaranteeing to some point the
Spinlocks configured to run on machines with more than 255 CPUs will use a 32-bit value, and 16 bits when the number of CPUs is smaller (as a bonus, the maximum theorical limit of CPUs that spinlocks can support is raised up to 65536 processors)
Code: (commit 1, 2)
1.5. Better process memory usage measurement
Recommended LWN article: "How much memory are applications really using?"
Measuring how much memory processes are using is more difficult than it looks, specially when processes are sharing the memory used. Features like
Code: (commit 1, 2, 3, 4)
1.6. timerfd() syscall
timerfd() is a feature that got merged in 2.6.22 but was disabled due to late complaints about the syscall interface. Its purpose is to extend the timer event notifications to something else than signals, because doing such things with signals is hard. poll()/epoll() only covers file descriptors, so the options were a BSDish kevent-like subsystem or delivering time notifications via a file descriptor, so that poll/epoll could handle them.
There were implementations for both approachs, but the cleaner and more "unixy" design of the file descriptor approach won. In 2.6.25, a revised API has been finally introduced. The API can be found in this LWN article
Code: (commit)
1.7. SMACK, Simplified Mandatory Access Control
Recommended LWN article: "Smack for simplified access control"
The most used MAC solution in Linux is SELinux, a very powerful security framework. SMACK is an alternative MAC framework, not so powerful as SELinux but simpler to use and configure. Linux is all about flexibility, and in the same way it has several filesystems, this alternative security framework doesn't pretends to reemplaze SELinux, it's just an alternative for those who find it more suited to its needs.
From the LWN article: Like SELinux, Smack implements Mandatory Access Control (MAC), but it purposely leaves out the role based access control and type enforcement that are major parts of SELinux. Smack is geared towards solving smaller security problems than SELinux, requiring much less configuration and very little application support.
Code: (commit)
1.8. Latencytop
Recommended LWN article: "Finding system latency with LatencyTOP"
Slow servers, Skipping audio, Jerky video - everyone knows the symptoms of latency. But to know what's really going on in the system, what's causing the latency, and how to fix it... those are difficult questions without good answers right now. LatencyTOP is a Linux tool for software developers (both kernel and userspace), aimed at identifying where system latency occurs, and what kind of operation/action is causing the latency to happen. By identifying this, developers can then change the code to avoid the worst latency hiccups.
There are many types and causes of latency, and LatencyTOP focus on type that causes audio skipping and desktop stutters. Specifically, LatencyTOP focuses on the cases where the applications want to run and execute useful code, but there's some resource that's not currently available (and the kernel then blocks the process). This is done both on a system level and on a per process level, so that you can see what's happening to the system, and which process is suffering and/or causing the delays.
You can find the latencytop userspace tool, including screenshots, at latencytop.org.
Code: (commit)
1.9. BRK and PIE executable randomization
Exec-shield is a Red Hat that was started in 2003 by Red Hat to implement several security protections and is mainly used in Red Hat and Fedora. Many features have already been merged lot of time ago, but not all of them. In 2.6.25 two of them are being merged: brk() randomization and PIE executable randomization. Those two features should make the address space randomization on i386 and x86_64 complete.
Code (commit 1, 2, 3)
1.10. Controller area network (CAN) protocol support
Recommended LWN article: "PF_CAN"
From the "Controller Area Network" Wikipedia article: Controller Area Network (CAN or CAN-bus) is a computer network protocol and bus standard designed to allow microcontrollers and devices to communicate with each other and without a host computer.. This implementation has been contributed by Volkswagen.
Code: (commit 1, 2, 3, 4, 5, 6)
1.11. ACPI thermal regulation/WMI
In 2.6.25 ACPI adds thermal regulation support (commit 1, 2, 3, 4) and a WMI (Windows Management Interface, a proprietary extension to ACPI) mapper (commit 1, 2, 3)
1.12. EXT4 update
Recommended article: "A better ext4"
EXT4 mainline snapshot gets an update with a bunch of features: Multi-block allocation, large blocksize up to PAGE_SIZE, journal checksumming, large file support, large filesystem support, inode versioning, and allow in-inode extended attributes on the root inode. These features should be the last ones that require on-disk format changes. Other features that don't affect the disk format, like delayed allocation, have still to be merged.
Code: (commit 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
1.13. MN10300/AM33 architecture support
The MN10300/AM33 architecture is now supported under the "mn10300" subdirectory. 2.6.25 adds support MN10300/AM33 CPUs produced by MEI. It also adds board support for the ASB2303 with the ASB2308 daughter board, and the ASB2305. The only processor supported is the MN103E010, which is an AM33v2 core plus on-chip devices.
Code: (commit)
Reply to This
It's a kernel, not an OS (Score:5, Insightful)
"numerous changes in this revision of the OS"
Asking people to call it GNU/Linux [gnu.org] is one thing, but it's not much to ask Slashdot not to call a kernel changelog an OS changelog.
Reply to This
CIFS (Score:3, Interesting)
Reply to This
Re:CIFS (Score:4, Informative)
Reply to This
Parent
exec mode (Score:4, Funny)
It's an option in your system profile (usually /etc/profile).
Just add 'exec true' in there, and it'll start using the prefetch code. OK, so it's not a huge performance boost, but I'll take a free 5-7% any day of the week.
I think you can do it as a non-privileged user by adding it to your 'personal' profile (.profile or .bashrc typically) but obviously it's not then affecting the core system processes.
Reply to This
Re:exec mode (Score:5, Informative)
For the uninitiated: placing 'exec true' in your profile renders you unable to open a terminal (on 99% of linux desktops that use bash as shell)
(heh. Captcha: lecture)
Reply to This
Parent
Re:I like that one (Score:5, Funny)
Reply to This
Parent
Re:Black monolith (Score:5, Funny)
Reply to This
Parent
Re:Black monolith (Score:5, Funny)
You're the proof that time travel is possible.
Reply to This
Parent