1. Ôھɵİ汾Ï£¨Èçlinux 2.4£©linuxÄÚºËÄ£¿éµÄ±àÒëÖ»ÐèÒªÓÐÄں˵ÄÍ·Îļþ¾ÍÐÐÁË£¬¾Í¿ÉÒÔͨ¹ýºÍ±àÒëÆäËû³ÌÐòÒ»ÑùµÄ·½·¨±àÒë³Éfilename.oÎļþ£¬Õâ¸ö.oÎļþÊÇÖ±½Ó ¿ÉÒÔ¼ÓÔØµÀÄÚºËÖе쬼ÓÔØÖ®ºó¾Í¿ÉÒÔÓÃÁË¡£È»¶øÔÚ2.6ϾͽØÈ»²»Í¬ÁË£¬ÔÚlinux 2.6ÏÂÄں˵ıàÒëÒªÓÐϵͳÄÚºËÊ÷µÄÖ§³Ö£¬ÏÂÃæ½éÉÜÒ»ÏÂÕâ¸ö“ÄÚºËÊ÷”ÊÇÈçºÎ½¨Á¢µÄ¡£
2. ±¾ÎĵŤ×÷»·¾³ÊÇFedora Core 5£¬ÓÓuname -r”²é¿´Äں˰汾ÊÇ£º2.6.15-1.2054_FC5
Fedora Core 5 Óë¾É°æ±¾²»Í¬£¬²»°üº¬ kernel-source Èí¼þ°ü£¬ÎÒÊÇÍøÉÏÏÂÔØµÄrpm°ü£¬µØÖ·ÊÇ£º
ÏÂÃæµÄ¹¤×÷¶¼ÊÇÓÃrootÓû§Ö´Ðеġ£
3. °²×°ÄÚºËÔ´Âë°ü£º
# rpm –Uvh kernel-2.6.15-1.2054_FC5.src.rpm
Õâ¸öÃüÁ RPM ÄÚÈÝдµ½Â·¾¶
/usr/src/redhat/SOURSE
ºÍ
/usr/src/redhat/SPECS
4. buildÔ´Âë°ü£º
# cd /usr/src/redhat/SPECS
# rpmbuild -bp --target i686 kernel-2.6.spec
Õâ¸öÃüÁ»á°ÑÄÚºËÔ´ÂëÊ÷·Åµ½ Ŀ¼
/usr/src/redhat/BUILD/kernel-2.6.15/kernel-2.6.15.686
5. ÅäÖÃÄںˣº
Fedora Core ¸½´øµÄÄÚºËÅäÖÃÎļþÔÚ configs/ Ŀ¼¡£
ÀýÈ磬i686 SMP ÅäÖÃÎļþ±»Ã ......
Ô´ÂëµÄ°²×°Ò»°ãÓÉ3¸ö²½Öè×é³É£ºÅäÖã¨configure£©¡¢±àÒ루make£©¡¢°²×°£¨make install£©£¬¾ßÌåµÄ°²×°·½·¨Ò»°ã×÷Õß¶¼»á¸ø³öÎĵµ£¬ÕâÀïÖ÷ÒªÌÖÂÛÅäÖã¨configure£©¡£ConfigureÊÇÒ»¸ö¿ÉÖ´Ðнű¾£¬ËüÓкܶàÑ¡ÏʹÓÃÃüÁî./configure –helpÊä³öÏêϸµÄÑ¡ÏîÁÐ±í£¬ÈçÏ£º
-bash-3.00# ./configure --help
Usage: configure [options] [host]
Options: [defaults in brackets after descriptions]
Configuration:
--cache-file=FILE cache test results in FILE
--help print this message
--no-create do not create output files
--quiet, --silent do not print `checking...' messages
--version print the version of autoconf that created configure
Directory and file names:
--prefix=PREFIX install architecture-independent files in PREFIX
[/usr/local]
--exec-prefix=EPREFIX install architecture-dependent files ......
ǰÑÔ£ºÎÒ¾õµÃÎÒµÄÎÄÕÂÏà¶ÔÀ´Ëµ¶¼ÊDZȽÏdzÏԵġ£Ò»Ð©³õѧÕß¿ÉÒÔ¿´¿´£¬¶ÔÓÚ¸ßÊÖÀ´Ëµ£¬Èç¹ûÄãÃDz»ÁߨÄʱ¼äµÄ»°£¬Ï£ÍûÒ²ÄܰïÎÒ¿´¿´£¬Ö¸µãÒ»ÏÂÆäÖеĴíÎó¡£ÕâÒ²ÊÇÎÒµ½ÕâÀïÀ´ºÍ´ó¼Ò½»Á÷µÄÄ¿µÄ¡£
ÔĶÁLinuxÄÚºËÆô¶¯´úÂëµÄÖ±½Ó¶¯Á¦ÊÇÎÒÏë±àдRTL8019ASµÄÍø¿¨Çý¶¯³ÌÐò£¨2.4.18ÄÚºËÖ»Ö§³ÖÁËCS8900A£©¡£¼ÈȻҪдÇý¶¯£¬ÎÒ¾ÍÏëÖªµÀËüÊÇÔõôÑù±»¼ÓÔØµÄ£¬ºÃÆæÐÄÇýʹÎÒÏÈÈ¥¸ã¶¨Õâ¸öÎÊÌâ¡£
Äõ½2.4.18µÄÈí¼þ°ü£¬Ò»Íò¶à¸öÎļþ£¬ÎÒ²»ÖªÔõôÏÂÊÖ¡£ËùÐÒÊÖÍ·ÓÐÕâôÈý¼þ¹¤¾ßÖúÎÒÈëÃÅ£º
1£¬Ò»¿éÒÆÖ²ºÃlinuxµÄ¿ª·¢°å£¬Í¨¹ýËü¿ÉÒÔ¿´µ½linuxÆô¶¯¹ý³Ì´òÓ¡µÄÏûÏ¢¡£
2£¬ google£¬ÍøÉϹØÓÚlinuxµÄ×ÊÁÏÕæÊÇÌ«¶àÁË£¡£¡£¡
3£¬ WindowsÎļþËÑË÷ÒýÇæ£¬Í¨¹ýËü¿ÉÒÔÖªµÀÔÚÄÇЩÎļþÖдòÓ¡³öÄÇЩÏûÏ¢¡£
ºÜ¿ì£¬ÎÒ¾ÍÕÒµ½ÁËlinuxÆô¶¯µÄ×ܵÄÈë¿Ú£¬/arch/arm/boot/compressed/head.s¡£
head.sÍê³ÉµÄ¹¤×÷Ö÷ÒªÊǵײã¼Ä´æÆ÷¡¢MMUµÄһЩÉ趨ÒÔ¼°kernelµÄ½âѹËõ¡£»ã±àÎļþÖе÷ÓõÄC´úÂë´ó¶àλÓÚ¸ÃĿ¼ÏÂmisc.cÎļþ£¬±ÈÈçdecompress_kernel¡£
µ±È»£¬Õⲿ·Ö²»ÊÇÖØµã£¬headÖ´ÐÐÍê±ÏÒÔºó¾ÍÌøµ½start_kernel()£¬Õâ²ÅÊÇÎÒÃǵÄÖØµãËùÔÚ£¬Õâ¸öº¯ÊýλÓÚÎļþ/init/main.cÖС£Õâ¸öÎļþÊÇÆô¶¯µÄÖ ......
ÕâÖ»ÊÇÔÝʱµÄ¼Ç¼£¬ÒÔºó»á°ÑËü¹éÀൽstart_kernel()º¯ÊýµÄ·ÖÎö¡£ÔÚ·ÖÎö֮ǰ£¬ÎÒÏÈҪ˵˵¼¸¸ö¸ÅÄî¡£
ÄÚºËÇÀÕ¼£ºÔÚ2.6Äں˼ÓÈëÁËÇÀÕ¼µÄÄÜÁ¦£¬¾ÍÊÇ˵µ÷¶È³ÌÐòÓа취ÔÚÒ»¸öÄں˼¶µÄÈÎÎñÕýÔÚÖ´ÐеÄʱºò´Óе÷¶È¡£µ«ÊDZØÐëÒª±£Ö¤ÖØÐµ÷¶ÈÒª°²È«£¬ÕâÑù¾ÍÒª¿¿Ò»°ÑËøÀ´±£Ö¤ÁË¡£
¼ÆÊýÆ÷£¨thread_info.[reempt_count£©£ºÆäʵҲ¿ÉÒÔ°ÑËû½Ð³ÉËøµÄ£¬ËüµÄ³õÖµ¶¨ÒåΪ0£¬Ã¿µ±Ê¹ÓÃËøµÄʱºò¼Ó1.
ºÃÁË£¬ÎÒÃÇÏÖÔÚÀ´¿´¿´lock_kernel()µÄ¾ßÌå´úÂëÀ²£¨2.6.10°æ±¾µÄ£©
#ifndef __LINUX_SMPLOCK_H
#define __LINUX_SMPLOCK_H
#include <linux/config.h>
#include <linux/sched.h>
#include <linux/spinlock.h>
#ifdef CONFIG_LOCK_KERNEL
#define kernel_locked() (current->lock_depth >= 0)
extern int __lockfunc get_kernel_lock(void);
extern void __lockfunc put_kernel_lock(void);
/*
* Release/re-acquire global kernel lock for the scheduler
*/
#define release_kernel_lock(tsk) do { \
if (unlikely((tsk)->lock_depth >= 0)) \
put_ker ......
1¡¢LINUXϵͳÆô¶¯¼¶±ð
²é¿´/etc/inittabÎļþ£¬ÆäÖ÷ÒªÄÚÈÝÈçÏ£º
#
0
-
halt (Do NOT set initdefault to
this
)
#
1
-
Single user mode
#
2
-
Multiuser, without NFS (The same as
3
,
if
you
do
not have networking)
#
3
-
Full multiuser mode
#
4
-
unused
#
5
-
X11
#
6
-
reboot (Do NOT set initdefault to
this
)
#
id:
5
:initdefault:
... ...
0£ºÍ£»ú(²»ÒªÉèÖÃΪÆô¶¯Ä¬Èϼ¶±ð)
1£ºµ¥Óû§Ä£Ê½
2£º¶àÓû§£¬ÎÞNFS(Èç¹ûÄúûÓÐÅäÖÃÍøÂ磬¸Ã¼¶±ðÓë3Ò»Ñù)
3£ºÍêÈ«¶àÓû§Ä£Ê½
4£º²»Ê¹ÓÃ
5£ºX11ͼÐÎģʽ
6£ºÖØÆô(²»ÒªÉèÖÃΪÆô¶¯Ä¬Èϼ¶±ð)
Èç¹ûÏëÈÃϵͳ²»ÓÃͼÐÎģʽµÇ½¿É½«id:5:initdefault: ÖеÄ5¸ÄΪ3¼´¿É¡£
2¡¢LinuxÔËÐм¶±ð
Linux Æô¶ ......
ת×Ô£ºhttp://blog.chinaunix.net/u/12367/showart_243938.html
at ºÍ batch ´Ó±ê×¼ÊäÈë»òÒ»¸öÖ¸¶¨µÄÎļþ¶ÁÈ¡ÃüÁÕâЩÃüÁîÔÚÒÔºóij¸öʱ¼äÓà /bin/sh Ö´ÐС£
At ÔÊÐíÏ൱¸´ÔÓµÄʱ¼äÖ¸¶¨£¬ËüÀ©Õ¹ÁË POSIX.2 ±ê×¼¡£
Ëü½ÓÊÜ HH:MM µÄʱ¼äʽÑù£¬ÓÃÀ´Ö¸¶¨ÔÚÒ»ÌìµÄij¸öʱ¼äÔËÐÐÒ»¸ö×÷Òµ¡£ (Èç¹ûʱ¼äÒѾ¹ýÁËÔò¼Ù¶¨ÎªµÚ¶þÌì¡£)
Äã¿ÉÒÔÖ¸¶¨ midnight (ÎçÒ¹)¡¢ noon (ÖÐÎç) »ò teatime (ÏÂÎç4µã)£¬Äã¿ÉÒÔÓà AM »ò PM ºó׺ָ¶¨Ò»ÌìµÄÉÏÎç»òÏÂÎç¡£
Äã¿ÉÒÔ¸ø³ö month-name day ¼ÓÉÏ¿ÉÑ¡µÄÄê·ÝµÄʽÑùÓÃÀ´Ö¸¶¨ÔËÐÐ at µÄÈÕÆÚ£¬»òÕ߸ø³ö MMDDYY ¡¢ MM/DD/YY »ò DD.MM.YY ʽÑùÓÃÀ´Ö¸¶¨ÔËÐÐ at µÄÈÕÆÚ¡£ÈÕÆÚµÄÖ¸¶¨±ØÐë¸úÔÚʱ¼äÖ¸¶¨µÄºóÃæ¡£ÄãÒ²¿ÉÒÔ¸ø³öÏó now + ¼ÆÊý ʱ¼äµ¥Î» µÄʽÑù£¬ÕâÀïµÄʱ¼äµ¥Î»¿ÉÒÔÊÇ minutes ¡¢ hours ¡¢ days »ò weeks£¬ Äã¿ÉÒÔ¸øÊ±¼ä¼ÓÒ»¸ö today ºó׺À´Ö¸¶¨ at ½ñÌ ......