Linux 2.4 VM Documentation
popoutman writes "Mel Gorman has announced the availability of a guide to the 2.4 kernel VM
including a walkthrough of the VM code. Anyone interested in obtaining a solid understanding of the Linux 2.4 VM will certainly want to take a look at this documentation. Mel says that the effort is at least several weeks from being finished, but that he's releasing it now with the hopes of getting feedback to be sure he's on the right track.
He also notes that the 2.5 VM is still too much of a moving target for him to document it just yet." See also a Kerneltrap story.
We design aned document things first, work out the bugs in the high level design and then code.
Well maybe not all the time and with serveral itterations, but I only manage your credit raiting, not you kernel VM.
thank God the internet isn't a human right.
Choose one :
VM = Value Management
VM = Variable Metric
VM = Velocity Management
VM = Velocity Meter
VM = Velocity Modulation
VM = Version Manager
VM = VIBE Magazine
VM = Video Monitor
VM = Vietnam (Socialist Republic of Vietnam)
VM = View Mail (Emacs)
VM = Virtual Machine
VM = Virtual Madness
VM = Virtual Memory
VM = Vivamos Mejor (Let Us Live Better; Guatemalan agency)
VM = Voice Mail
VM = Voice Message
VM = Voice Modulation
VM = Voltmeter
but not that one!!!
...that virtual memory works because of small, magical faeries and gnomes.
/syle
Define your function "Olog", please. Surely Mr. "Wagner LLC Consulting Co. - Getting it right the first time" couldn't have meant O(log n)... :)
yeah, right. let's also integrate to the kernel Perl, Python, Tcl, Lua, Emacs (for Elisp), Guile, Hugs, OCAML, Bash, Apache (for PHP) and Gecko (I want my Mozilla to work faster too!). I wonder, why is X server still not there? And don't forget about at least two CORBA brokers: Gnorba (everyone would love faster Gnome) and OmniOrb (just for a case). Hey, let's put everything into the kernel! Ooops... It's not kernel anymore and it doesn't want to run either. What was the mistake?
Less is more !
I suspect it would be a waste of your time. Lets look at a bit of history.
There used to be a kernel-space HTTP server. It was integrated into the kernel for a specific reason: zero-copy access to the network interface memory. It was fast and relatively feature-poor. If it crashed (fortunately, a rare occurance), you got a kernel panic.
Along came a user-space, zero-copy HTTP server. It was faster and had a few more features to boot. Being a user-space program, if it crashed, you got a core-dump. It could also be run in a chroot jail, a gigantic step more secure than running in ring-0.
Two lessons can be read from this:
1. Don't integrate something with the kernel unless there is a specific advantage you hope to gain from it. Will making a JVM part of the kernel really speed it up? Are you sure?
2. Don't under-estimate the speed of a properly designed user-space Linux program. The kernel developers have done a magnificant job tuning the kernel and providing APIs for performance-critical apps.
OMG! You've reverse-engineered windows!
Why not fork?
2.1.2 Browsing the Code
Generally, related operations are clustered together in the same file and there is not much copulation between modules.
I hope the discovery channel will do a special on copulating modules some day. I've seen module coupling but no copulation yet.