Linux源代码下载
- 格式:doc
- 大小:356.50 KB
- 文档页数:47
linux源代码-fork.c源代码/** linux/kernel/fork.c*//--fork()用于创建子进程* (C) 1991 Linus Torvalds*//** 'fork.c' contains the help-routines for the 'fork' system call* (see also system_call.s), and some misc functions('verify_area').* Fork is rather simple, once you get the hang of it, but the memory * management can be a bitch. See 'mm/mm.c': 'copy_page_tables()' */#include <errno.h>#include <linux/sched.h>#include <linux/kernel.h>#include <asm/segment.h>#include <asm/system.h>//--写页面验证,若页面不可写,则复制页面extern void write_verify(unsigned long address);long last_pid=0;//--进程空间区域写前验证函数void verify_area(void * addr,int size){unsigned long start;start = (unsigned long) addr;size += start & 0xfff;start &= 0xfffff000;start += get_base(current->ldt[2]); //--逻辑地址到线性地址的转换while (size>0) {size -= 4096;write_verify(start);start += 4096;}}int copy_mem(int nr,struct task_struct * p) //--复制内存页表{//--由于采用写时复制技术,这里只复制目录和页表项,不分配内存unsigned long old_data_base,new_data_base,data_limit;unsigned long old_code_base,new_code_base,code_limit;code_limit=get_limit(0x0f);//--取段限长data_limit=get_limit(0x17);old_code_base = get_base(current->ldt[1]);old_data_base = get_base(current->ldt[2]);if (old_data_base != old_code_base)panic("We don't support separate I&D");if (data_limit < code_limit)panic("Bad data_limit");new_data_base = new_code_base = nr * TASK_SIZE;p->start_code = new_code_base;set_base(p->ldt[1],new_code_base);set_base(p->ldt[2],new_data_base);if(copy_page_tables(old_data_base,new_data_base,data_limit)) { //--复制页表free_page_tables(new_data_base,data_limit);return -ENOMEM;}return 0;}/** Ok, this is the main fork-routine. It copies the system process* information (task[nr]) and sets up the necessary registers. It * also copies the data segment in it's entirety.*///--fork()子程序,它复制系统进程信息,设置寄存器,复制数据段(代码段)int copy_process(int nr,long ebp,long edi,long esi,long gs,long none,long ebx,long ecx,long edx, long orig_eax,long fs,long es,long ds,long eip,long cs,long eflags,long esp,longss) //--复制进程{struct task_struct *p;int i;struct file *f;p = (struct task_struct *)get_free_page(); //--为新任务数据结构分配内存if (!p)return -EAGAIN;task[nr] = p;*p = *current; /* NOTE! this doesn't copy the supervisor stack */p->state = TASK_UNINTERRUPTIBLE;p->pid = last_pid;p->counter = p->priority;p->signal = 0;p->alarm = 0;p->leader = 0; /* process leadership doesn't inherit */p->utime = p->stime = 0;p->cutime = p->cstime = 0;p->start_time = jiffies;p->tss.back_link = 0;p->tss.esp0 = PAGE_SIZE + (long) p;p->tss.ss0 = 0x10;p->tss.eip = eip;p->tss.eflags = eflags;p->tss.eax = 0;p->tss.ecx = ecx;p->tss.edx = edx;p->tss.ebx = ebx;p->tss.esp = esp;p->tss.ebp = ebp;p->tss.esi = esi;p->tss.edi = edi;p->tss.es = es & 0xffff;p->tss.cs = cs & 0xffff;p->tss.ss = ss & 0xffff;p->tss.ds = ds & 0xffff;p->tss.fs = fs & 0xffff;p->tss.gs = gs & 0xffff;p->tss.ldt = _LDT(nr);p->tss.trace_bitmap = 0x80000000;if (last_task_used_math == current)__asm__("clts ; fnsave %0 ; frstor %0"::"m" (p->tss.i387));if (copy_mem(nr,p)) {task[nr] = NULL;free_page((long) p);return -EAGAIN;}for (i=0;i<NR_OPEN;i++) //--如果父进程中有文件是打开的,则将对应文件的打开次数增1if (f=p->filp[i])f->f_count++;if (current->pwd)current->pwd->i_count++;if (current->root)current->root->i_count++;if (current->executable)current->executable->i_count++;if (current->library)current->library->i_count++;set_tss_desc(gdt+(nr<<1)+FIRST_TSS_ENTRY,&(p->tss));//--在GDT表中设置新任务的TSS和LDTset_ldt_desc(gdt+(nr<<1)+FIRST_LDT_ENTRY,&(p->ldt));p->p_pptr = current;p->p_cptr = 0;p->p_ysptr = 0;p->p_osptr = current->p_cptr;if (p->p_osptr)p->p_osptr->p_ysptr = p;current->p_cptr = p;p->state = TASK_RUNNING; /* do this last, just in case */return last_pid;}intfind_empty_process(void)//--为新进程取得不重复的进程号last_pid{int i;repeat:if ((++last_pid)<0) last_pid=1;for(i=0 ; i<NR_TASKS ; i++)if (task[i] && ((task[i]->pid == last_pid) ||(task[i]->pgrp == last_pid)))goto repeat;for(i=1 ; i<NR_TASKS ; i++)if (!task[i])return i;return -EAGAIN; }。
在Linux系统中编译和使用libcurl库,通常需要以下几个步骤:
1. 下载源代码
访问Curl官网下载最新版本的libcurl源代码包,例如
2. 解压源代码
3. 安装依赖
根据你的Linux发行版,可能需要安装一些依赖包才能编译libcurl。
这些依赖通常包括openssl、zlib等。
例如,在Debian/Ubuntu上:
在CentOS/RHEL上:
4. 配置编译选项
运行configure脚本配置编译参数,比如启用共享库、指定安装路径等:
5. 编译与安装
执行make命令进行编译:
如果一切顺利,接着执行make install完成安装:
6. 验证安装
安装完成后,可以检查libcurl版本以验证是否成功安装:
7. 在项目中使用libcurl
要在C或C++项目中使用libcurl,首先确保在编译时链接到已安装的libcurl库,例如在gcc命令行中添加-lcurl参数:
同时,需要包含必要的头文件:
以上是一个通用的libcurl编译和使用的流程,具体的配置选项可能会因不同的需求而变化,请根据实际情况调整。
W。
编译linux 源代码
编译 Linux 源代码需要以下步骤:
1.下载 Linux 源代码
可以从官方网站或者其它可靠的源下载 Linux 源代码。
2.解压源代码
使用解压工具将下载的源代码解压到一个目录下。
3.配置编译环境
在终端中输入以下命令来配置编译环境:
bash复制代码
export ARCH=arm64 # 根据自己的硬件架构选择合适的架构
export CROSS_COMPILE=arm64-linux-gnueabi- # 根据自己的硬件架构选择合适的编译器前缀
4.执行编译命令
在终端中输入以下命令来执行编译:
bash复制代码
make menuconfig # 配置内核选项,按上下键选择需要的选项,按空格键进行确认/取消选择,按Y 键保存更改,最后按 Esc 键退出配置菜单。
make # 开始编译内核,等待编译完成。
5.等待编译完成
编译完成后,会在arch/$ARCH/boot/目录下生成一个名为Image的文件,这就是编译好的 Linux 内核映像文件。
FTP服务器一、下载 /二、安装[root@localhost windows]# cp vsftpd-2.0.7.tar.gz /usr/src[root@localhost windows]# cd /usr/src[root@localhost src]# tar -zxvf vsftpd-2.0.7.tar.gz[root@localhost src]# cd vsftpd-2.0.7[root@localhost vsftpd-2.0.7]# cat -n INSTALL |less 查看帮助文件。
[root@localhost vsftpd-2.0.7]# make[root@localhost vsftpd-2.0.7]# make install[root@localhost vsftpd-2.0.7]# which vsftpd三、配置服务器[root@localhost vsftpd-2.0.7]# cp vsftpd.conf /etc 将配置示例文件copy到/etc目录下。
[root@localhost vsftpd-2.0.7]# cp RedHat/vsftpd.pam /etc/pam.d/ftp pam是一个身份验证模块,可对用户身份进行验证。
[root@localhost vsftpd-2.0.7]# vi /etc/vsftpd.conflisten=YES 最后一行加入此代码,需要服务器独立运行,所以自己监听端口。
[root@localhost vsftpd-2.0.7]# /usr/local/sbin/vsftpd & 启动服务并在后台运行。
[1] 15040 --->监听编号。
[root@localhost vsftpd-2.0.7]# ps -aux|grep vsftpd 查看到PID。
[root@localhost vsftpd-2.0.7]# netstat -tnl 查看一下有没有开放21的端口。
curl linux编译curl是一个非常流行的开源网络库,它支持多种协议(如HTTP、FTP、SMTP等)和常见的加密方式(如SSL、TLS等),并提供易于使用的命令行工具,用于在Linux系统上进行网络通信。
下面是关于在Linux上编译curl的指南。
1. 下载curl源代码首先,你需要从curl官方网站下载源代码。
你可以使用以下命令:$ wget https://curl.se/download/curl-7.79.1.tar.gz 这个命令将从curl官方网站下载curl-7.79.1版本的源代码,并将其保存为curl-7.79.1.tar.gz文件。
2. 解压缩源代码下载完成后,你需要解压缩源代码。
你可以使用以下命令:$ tar -xzvf curl-7.79.1.tar.gz这个命令将解压缩curl-7.79.1.tar.gz文件,并将源代码保存在一个名为curl-7.79.1的目录中。
3. 配置编译选项接下来,你需要配置curl的编译选项。
你可以使用以下命令: $ cd curl-7.79.1$ ./configure这个命令将执行一个脚本,用于检查你的系统并确定最佳的编译选项。
如果一切正常,你将看到一个类似下面的输出:......configure: Configured to build curl/libcurl:configure: CC: gccconfigure: CFLAGS: -g -O2 -Wdeclaration-after-statement configure: CPPFLAGS:configure: LD: gccconfigure: LDFLAGS:注意,你可能需要在configure命令中添加一些选项,以适应你的特定需求。
你可以查看configure的帮助文档,以获取更多信息:$ ./configure --help4. 编译和安装完成配置后,你可以开始编译curl。
在Ubuntu10.04驱动开发环境搭建一、准备开发工具开发工具主要有gcc、gdb、make在Ubuntu中可以通过下面这个命令安装:$apt-get install build-essential我没有执行上面的命令,因为我在之前编译过Android,相关工具已经配置好了:$sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev x11proto-core-dev libx11-dev libgl1-mesa-dev g++-multilib mingw32 tofrodos libncurses5-dev二、下载Linux源代码linux源码可以通过以下几种途径获得:1)直接去下载2)通过包管理工具下载源码用下面指令查看可用的源码包:$ sudo apt-cache search linux-sourcelinux-source - Linux kernel source with Ubuntu patcheslinux-source-2.6.32 - Linux kernel source for version 2.6.32 with Ubuntu patches在Ubuntu中可以通过下面这个命令下载:$apt-get install linux-source-(版本号)$sudo apt-get install linux-source-2.6.32下载后的文件linux-source-2.6.32.tar.bz2在/usr/src目录中,解压:$su – root$cd /usr/src$tar jxvf linux-source-2.6.32.tar.bz2解压后在/usr/src目录下产生了一个linux-source-2.6.32源码目录三、编译内核依次执行下列命令(必须都执行,否则编译错误,如果不是root用户,命令前加sudo):1)配置内核$su – root$cd /usr/src/linux-source-2.6.32$make config或$make menuconfig或者$ sudo cp ../linux-headers-2.6.32-21-generic/.config ./.config如果当前运行内核打开了CONFIG_IKCONFIG_PROC参数,则可以$zcat /proc/config.gz > .config$make oldconfig2)编译内核2.6版本后前两步不需要,直接make即可$make prepare$make scripts$make3)安装模块$make modules 这一步不需要$make module_install执行结束之后,会在/lib/modules下生成新的目录/lib/modules/2.6.32.44+drm33.19四、生成镜像文件1)生成内核镜像文件$make bzImage执行完成后将在arch/i386/boot/目录下生成bzImage镜像文件,使用下面命令安装到系统的/boot目录下:$sudo make installsh /usr/src/linux-source-2.6.32/arch/x86/boot/install.sh 2.6.32.44+drm33.19 arch/x86/boot/bzImage \ System.map "/boot"命令完成后在/boot目录下,将多了vmlinuz-2.6.32.44+drm33.19和System.map-2.6.32.44+drm33.19两个文件或者直接拷贝$ sudo cp arch/i386/boot/bzImage /boot/vmlinuz-2.6.32.44+drm33.192)生成要载入ramdisk的映像文件如果linux系统按照在scsi磁盘上,这部是必须的,否则可以跳过。
Bootsect.s(1-9)!! SYS_SIZE is the number of clicks (16 bytes) to be loaded.! 0x3000 is 0x30000 bytes = 196kB, more than enough for current! versions of linux ! SYS_SIZE 是要加载的节数(16 字节为1 节)。
0x3000 共为1 2 3 4 5 60x7c000x00000x900000x100000xA0000system 模块代码执行位置线路0x90200! 0x30000 字节=192 kB(上面Linus 估算错了),对于当前的版本空间已足够了。
!SYSSIZE = 0x3000 ! 指编译连接后system 模块的大小。
参见列表1.2 中第92 的说明。
! 这里给出了一个最大默认值。
!! bootsect.s (C) 1991 Linus Torvalds!! bootsect.s is loaded at 0x7c00 by the bios-startup routines, and moves! iself out of the way to address 0x90000, and jumps there.!! It then loads 'setup' directly after itself (0x90200), and the system! at 0x10000, using BIOS interrupts.!! NOTE! currently system is at most 8*65536 bytes long. This should be no! problem, even in the future. I want to keep it simple. This 512 kB! kernel size should be enough, especially as this doesn't contain the! buffer cache as in minix!! The loader has been made as simple as possible, and continuos! read errors will result in a unbreakable loop. Reboot by hand. It! loads pretty fast by getting whole sectors at a time whenever possible.!! 以下是前面这些文字的翻译:! bootsect.s (C) 1991 Linus Torvalds 版权所有!! bootsect.s 被bios-启动子程序加载至0x7c00 (31k)处,并将自己! 移到了地址0x90000 (576k)处,并跳转至那里。
编译内核详解(linux-2.6.34)2010-06-20by李阳mail:kmalloc@ 1.下载源代码1.1下载到内核源码官方网站/下载或,$wget /pub/linux/kernel/v2.6/linux-2.6.34.tar.bz21.2解压源码$cd~/src$tar xjvf linux-2.6.34.tar.bz22.编译软件准备(ubuntu)2.1在ubuntu系统安装编译内核需要的软件包$sudo apt-get install build-essential kernel-packagelibncurses5-dev2.2清理以前编译时留下的临时文件如果是刚刚解开的包,不需要执行这步。
如果是第二次或者是第n次编译,那么一定要执行。
$cd linux-2.6.34$make mrproper2.3拷贝已有的配置文件$cp/boot/config-`uname-r`./.config2.4自动精简内核配置(将你需要用的所用硬件都插在电脑上,这样会根据现在电脑链接的硬件进行自动配置一下,也可以省略此步)make localmodconfig3.配置内核3.1配置内核的工具方法一:$make menuconfig方法二:xconfig.安装xconfig$sudo apt-get install libqt3-headers libqt3-mt-dev libqt3-compat-headers libqt3-mt.使用xconfig配置内核$sudo make xconfig.xconfig选项意义:圆中点是编译成可以随时加人的模块(以下简称M),方块中一勾是编译进入内核(以下简称Y),空就是不要(简称N)3.2内核配置及优化General setup--->[*]Prompt for development and/or incomplete code/drivers<===显示尚在开发中或尚未完成的代码和驱动.我不是内核或驱动开发人员。
1. 课程设计题目:下载某个版本的linux源代码,生成一个定制的linux操作系统,完成后该系统可以用来作为启动系统使用。
2.如何做的问题?内核版本要编译一个最新的内核,您需要首先下载它的源代码在您下载内核的源代码前,您要知道到您要找什么。
首先要问您自己的问题是-- 您需要一份稳定的还是测试版的内核?稳定版内核通常版本号第二位用偶数数字 -- 例如, 2.0.38、2.2.15、2.2.1 8 和2.4.1 是被认为是“稳定”的内核(分别由于其包含 0、2、2 和4)。
如果您想尝试测试版内核,您通常需要找那些版本号第二位是奇数的号码又最高的内核。
例如,2.3.99 和 2.1.38都是测试版内核(分别由于其包含 3 和 1)。
内核版本历史 2.2 系列的内核被认为是较新而且稳定的内核。
如果"较新"和"稳定"是您想要的,查找一个版本号的第三位是最高的2.2 内核(2.2.16 是目前最新的版本)。
当 2.2 系列的内核仍在开发中,2.3 系列已经开始了。
这个系列是作为将被集成到 2.4稳定版系列的新功能和高级功能的测试版。
2.3 系列已经到了 2.3.99,其开发已经停止。
开发人员已经开始着手2.4.0。
如果您喜欢冒险使用最最新的技术,您可能想使用可以找到的最新的 2.4 系列内核。
2.4 版内核警告信息 Once a real 2.4 series kernel comes out(like 2.4.0), don't assume that the kernel is ready for use on a mission-critical system like a server. Even though2.4 is supposed tobe a stable series, early 2.4 kernels are likely to be not quite up tosnuff. As is often the case i n the computer industry, the first version of anything can have fairly sizable bugs. While this may not be a problem i f you're testing the kernel on your home workstation, it is a risk you may want to avoid when you machine provides val uable services to others.下载内核如果您只是想编译一个您已安装内核的新版本(例如,实现 SMP 支持),那不需要下载任何代码 -- 跳过此部分继续下一屏。
您可以在/pub/linux/kernel上找到内核代码。
当您进入到那后,您将发现内核的源代码按内核版本(v2.2、v 2.3等),被组织到多个不同的目录中。
在每个目录中,您将发现文件被冠以"linux-x.y.z.tar.gz"和"linux-x.y.z.tar.bz2"。
这些就是Linux 内核的源代码。
您也将看到冠以 "patch-x.y.z.gz" 和"pa tch-x.y.z.bz2"的文件。
这些是用来更新前面完整的内核源代码的补丁包。
如果您希望编译一个新的内核版本,您将需要下载这些"linu x"文件其中之一。
内核解包如果您已从 下载一个新的内核,现在是要将其解包时候了。
首先,cd/usr/src。
如果这里有一个存在的"linux"目录,将其改名为"linux.old" ("mv linux linux.old",以root 权限)。
现在,可以解开新的内核包了。
仍然在 /usr/src 目录下,输入 tar xzvf/path/to/my/kernel -x.y.z.tar.gz 或者 cat /path/to/my/kernel-x.y.z.tar.bz2| bz ip2 -d | tar xvf -,根据您下载的源代码是用 gzip 或 bzip2压缩的。
在输入完此命令后,您下载的内核源代码会被释放到一个新的"linux"目录下。
注意 -- 全套内核源代码通常将在硬盘上占用超过50兆空间!Index of /pub/linux/kernelName Last modified SizeParent Directory -Historic/ 20-Mar-2003 22:38 -SillySounds/ 14-Apr-2000 18:55 -crypto/ 24-Nov-2001 14:54 -people/ 03-Nov-2010 18:25 -ports/ 13-Mar-2003 01:34 -projects/ 26-Oct-2007 20:58 -testing/ 14-Feb-2002 05:32 -uemacs/ 20-Mar-2003 23:31 -v1.0/ 20-Mar-2003 22:58 -v1.1/ 20-Mar-2003 22:58 -v1.2/ 20-Mar-2003 22:58 -v1.3/ 20-Mar-2003 23:02 -v2.0/ 08-Feb-2004 09:17 -v2.1/ 20-Mar-2003 23:12 -v2.2/ 24-Mar-2004 19:22 -v2.3/ 20-Mar-2003 23:23 -v2.4/ 06-Sep-2010 05:43 -v2.5/ 14-Jul-2003 03:50 -v2.6/ 29-Oct-2010 05:13 - COPYING 13-Mar-1994 00:00 18KCREDITS 16-Sep-1996 16:36 36KREADME 16-Sep-1996 16:36 12KIndex of /pub/linux/kernel/v2.4Name Last modified SizeParent Directory - old-test-kernels/ 20-Mar-2003 23:30 - snapshots/ 01-Jun-2005 09:47 - testing/ 02-Dec-2008 08:13 - ChangeLog-2.4.1 30-Jan-2001 07:57 2.5K ChangeLog-2.4.2 22-Feb-2001 01:02 2.4K ChangeLog-2.4.3 30-Mar-2001 05:02 2.5K ChangeLog-2.4.4 28-Apr-2001 01:43 2.6K ChangeLog-2.4.5 26-May-2001 01:25 3.1K ChangeLog-2.4.6 04-Jul-2001 00:06 4.3K ChangeLog-2.4.7 20-Jul-2001 21:24 2.6K。
ChangeLog-2.4.36.2 24-Feb-2008 20:51 276 ChangeLog-2.4.36.3 19-Apr-2008 14:41 584 ChangeLog-2.4.36.4 07-May-2008 04:19 266ChangeLog-2.4.37.8 31-Jan-2010 09:30 485 ChangeLog-2.4.37.9 01-Feb-2010 21:12 200 ChangeLog-2.4.37.10 06-Sep-2010 05:38 867 LATEST-IS-2.4.37.10 06-Sep-2010 05:38 0 drm-4.0.x.tar.bz2 09-Aug-2001 23:29 102K drm-4.0.x.tar.bz2.sign 09-Aug-2001 23:29 248 drm-4.0.x.tar.gz 09-Aug-2001 23:29 156K drm-4.0.x.tar.gz.sign 09-Aug-2001 23:29 248 drm-4.0.x.tar.sign 09-Aug-2001 23:29 248 linux-2.4.0.tar.bz2 04-Jan-2001 23:45 19M linux-2.4.0.tar.bz2.sign 04-Jan-2001 23:45 248 linux-2.4.0.tar.gz 04-Jan-2001 23:45 23M linux-2.4.0.tar.gz.sign 04-Jan-2001 23:45 248linux-2.4.2.tar.bz2 22-Feb-2001 01:00 20Mlinux-2.4.2.tar.gz 22-Feb-2001 01:00 24M linux-2.4.2.tar.gz.sign 22-Feb-2001 01:00 248 linux-2.4.2.tar.sign 22-Feb-2001 01:00 248 linux-2.4.3.tar.bz2 30-Mar-2001 05:03 20M linux-2.4.3.tar.bz2.sign 30-Mar-2001 05:03 248 linux-2.4.3.tar.gz 30-Mar-2001 05:03 25M linux-2.4.3.tar.gz.sign 30-Mar-2001 05:03 248 linux-2.4.3.tar.sign 30-Mar-2001 05:03 248 linux-2.4.4.tar.bz2 28-Apr-2001 01:43 20M linux-2.4.4.tar.bz2.sign 28-Apr-2001 01:43 248 linux-2.4.4.tar.gz 28-Apr-2001 01:43 25M linux-2.4.4.tar.gz.sign 28-Apr-2001 01:43 248 linux-2.4.4.tar.sign 28-Apr-2001 01:43 248 linux-2.4.5.tar.bz2 26-May-2001 01:26 21Mlinux-2.4.7.tar.gz 20-Jul-2001 21:25 26M linux-2.4.7.tar.gz.sign 20-Jul-2001 21:25 248 linux-2.4.7.tar.sign 20-Jul-2001 21:25 248linux-2.4.9.tar.sign 16-Aug-2001 18:32 248linux-2.4.14.tar.gz.sign 05-Nov-2001 23:30 248 linux-2.4.14.tar.sign 05-Nov-2001 23:30 248 linux-2.4.15.tar.bz2 23-Nov-2001 06:18 23M linux-2.4.15.tar.bz2.sign 23-Nov-2001 06:18 248 linux-2.4.15.tar.gz 23-Nov-2001 06:18 28M linux-2.4.17.tar.bz2 21-Dec-2001 17:52 23M linux-2.4.17.tar.bz2.sign 21-Dec-2001 17:52 248 linux-2.4.17.tar.gz 21-Dec-2001 17:52 28M…linux-2.4.36.8.tar.sign 19-Oct-2008 21:25 248 linux-2.4.36.9.tar.bz2 09-Nov-2008 22:42 30M linux-2.4.36.9.tar.bz2.sign 09-Nov-2008 22:42 248 linux-2.4.36.9.tar.gz 09-Nov-2008 22:42 37M linux-2.4.36.9.tar.gz.sign 09-Nov-2008 22:42 248linux-2.4.37.1.tar.bz2.sign 19-Apr-2009 18:45 248 linux-2.4.37.1.tar.gz 19-Apr-2009 18:45 37M linux-2.4.37.1.tar.gz.sign 19-Apr-2009 18:45 248 linux-2.4.37.1.tar.sign 19-Apr-2009 18:45 248 linux-2.4.37.2.tar.bz2 07-Jun-2009 19:53 30Mlinux-2.4.37.6.tar.gz 13-Sep-2009 09:41 37Mlinux-2.4.37.6.tar.gz.sign 13-Sep-2009 09:41 248linux-2.4.37.6.tar.sign 13-Sep-2009 09:41 248……linux-2.4.37.tar.bz2 02-Dec-2008 08:13 30Mlinux-2.4.37.tar.bz2.sign 02-Dec-2008 08:13 248patch-2.4.1.sign 30-Jan-2001 07:56 248patch-2.4.2.bz2 22-Feb-2001 01:00 1.1Mpatch-2.4.6.bz2 04-Jul-2001 00:07 1.3Mpatch-2.4.6.bz2.sign 04-Jul-2001 00:07 248patch-2.4.6.gz 04-Jul-2001 00:07 1.7Mpatch-2.4.6.gz.sign 04-Jul-2001 00:07 248patch-2.4.6.sign 04-Jul-2001 00:07 248/view/e25586270722192e4536f646.html3. 在Linux下编译内核现在我们来学习在Linux下编译内核。