2.5.4 Kernel Out
Saint Aardvark writes: "Just in time for my 30th birthday, the new kernel is out...how did he know? Thanks, Linus! Change log here. I usually stick to stable stuff, but I think I'll try this for fun." Reader Scooby Snacks writes: "Be sure to use the patches and pick from the fine list of mirrors."
See that middle number of the kernel version? Note that it is of the form 2n-1 where n>0, otherwise known as an odd number. Now, in the Linux world this means that it is a development kernel. D-E-V-E-L-O-P-M-E-N-T. In other words, extreme beta.
So, unless you wish to contribute to the kernel development or want a range of unknown problems, stick with the even middle-numbered kernels.
I've got a fever and the only prescription is more COBOL.
Today there is a release of some sort in 4 kernel trees (see freshmeat.net):
2.0.40-rc2
2.2.21-pre2
2.4.18-pre7-ac3
And, of course, 2.5.4.
Granted, only one was a full revision bump, but to see updates in so many trees is neat.
XML is like violence. If it doesn't solve the problem, use more.
Check out this link. It's a list of stuff to expect in 2.5
g lad-they-do-it" stuff.
.tar archive of modules and programs to the end of the kernel image, make a basic boot, unpack the tar file to a ram-based root filesystem then everything goes from userspace. If it's true that 2.5 will move to a completely modular kernel (as Alan Cox has hinted), this would be a much friendlier system than initrd.
/proc and building one big tree with all bus:es in it. Most comments I've seen circle much around how much easier it would be to implement a proper ACPI power management system with this and that it clears up /proc.
Follow the link to the posts if you want the details and discussions, if you don't, the items and a more human-readable explaination is below:
2.5.x API change summaries
o Shouldn't matter much as far as I could tell, mostly "heads up" to people writing programs that mess with the kernel.
o Block I/O layer changes:
The goal seems to be a more generic i/o scheduler while at the same time making it more efficient.
Typical "dont-understand-exactly-what-they-are-doing-but-
o initrd / initramfs:
initramfs is intended as a replacement for initrd. The basic idea seems to be to tack a
o SCSI changes
As always?
o driver model: driverfs
Driverfs seems to aim towards merging all bus-type weirdness that lives under
o reworking major/minor system
The currrent model of drivers having major/minor numbers is going to change to allow larger numbers (and therefore, more devices). May be some hairy details involved in changing such a "standard" size. Consent seems to be that apps that depend on a specific size are broken anyway.
o USB and WireLess API changes
I don't use any of these so I haven't got much to say, anyone with more interest/info?
o kbuild and CML2
The new configuration language and makefiles, these have been discussed earlier on slashdot (see here).
There was a change to the API in this kernel release which breaks a bunch of drivers for the moment. Specifically, all drivers that allocate buffers using the kmalloc/__get_free_pages and virt_to_bus will not link. Right now, I can see atleast two groups of drivers affected: some USB, and the PCI sound drivers.
/* Copy and release all segment info associated with a VM */
/*
Even if you don't see the above problem, this kernel will not compile (atleast on most i386 systems) without the following patch:
--- linux-2.5.4/include/asm-i386/processor.h Sun Feb 10 22:00:29 2002
+++ 25/include/asm-i386/processor.h Sun Feb 10 22:21:53 2002
@@ -435,14 +435,7 @@ extern int kernel_thread(int (*fn)(void
extern void copy_segments(struct task_struct *p, struct mm_struct * mm);
extern void release_segments(struct mm_struct * mm);
-
-/*
- * Return saved PC of a blocked thread.
- */
-static inline unsigned long thread_saved_pc(struct task_struct *tsk)
-{
- return ((unsigned long *)tsk->thread->esp)[3];
-}
+extern unsigned long thread_saved_pc(struct task_struct *tsk);
unsigned long get_wchan(struct task_struct *p);
#define KSTK_EIP(tsk) (((unsigned long *)(4096+(unsigned long)(tsk)->thread_info))[1019])
--- linux-2.5.4/arch/i386/kernel/process.c Sun Feb 10 22:00:28 2002
+++ 25/arch/i386/kernel/process.c Sun Feb 10 22:26:35 2002
@@ -55,6 +55,14 @@ asmlinkage void ret_from_fork(void) __as
int hlt_counter;
+ * Return saved PC of a blocked thread.
+ */
+unsigned long thread_saved_pc(struct task_struct *tsk)
+{
+ return ((unsigned long *)tsk->thread.esp)[3];
+}
+
+/*
* Powermanagement idle function, if any..
*/
void (*pm_idle)(void);
-
-
w o r l d w i d e w e b e r