linux编译内核空间不够怎么办?我分给linux的盘只有8G

今天尝试在XP下安装Linux,成功1:我的盘是C、E、F、G。
其中,我使用的是XP光盘来擦除E盘。
空格注:如果不删除的话。
当我安装Linux2时,我无法在XP下安装NTFS格式。
挂载/hda**作为你的空间,然后进入NEXT4:选择GRUB(启动文件),因为Linux非常友好,如果你不启动,它会告诉你从哪个系统启动。
当你按下回车键时,默认情况下,您选择的系统将启动XP5:然后NEXT6:结束!

ubuntu下怎么编译linux内核

Linux下编译软件的一般三步流程:./configuremakesudomakeinstall但是,编译内核要复杂得多,尤其是定制内核,需要根据具体的硬件信息配置.config文件。
可以说.config文件是Linux内核优秀与否的关键。
也可以在github或者码元上搜索类似型号,如果找到同型号的电脑,可以直接复制到内核源码目录下,然后依次执行shell命令:makeudomakeinstallsudomakemodules_installsudoupdate-grub2或sudoupdate-grub。

如何编译linux内核

内核是操作系统的核心。
它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,并决定系统的性能和稳定性。
由于是免费软件,Linux的内核版本在大多数爱好者的支持下不断更新。
新内核修复了旧内核的错误并添加了许多新功能。
如果用户想要利用这些新功能或者使更高效、更稳定的内核适应自己的系统,则需要重新编译内核。
本文以RedHatLinux6.0(Kernel2.2.5)作为操作系统平台来介绍Linux下内核编译的方法。
1.下载新内核的源代码。
目前互联网上有很多网站提供Linux源代码。
笔者从www.kernelnotes.org网站下载了Linux内核最新开发版本2.3.14的源代码。
所有代码都被压缩到一个名为Linux-2.3.14.tar.gz的文件中。
2.发布内核源代码。
由于源代码存储在压缩文件中,因此在配置内核之前必须将源代码释放到指定目录中。
首先使用root账号登录,然后进入/usr/src子目录。
在安装Linux时,当用户安装内核源码时,会发现有一个linux-2.2.5的子目录。
内核2.2.5的源代码存放在该目录中。
您还将找到Linux目录的链接。
删除连接并将新的内核源文件复制到/usr/src目录。
(1)使用tar命令共享内核源代码#cd/usr/src#tarzxvfLinux-2.3.14.tar.gz。
文件释放成功后,会在/usr/src目录下生成Linux子目录。
它包含2.3.14内核的完整源代码。
(2)将/usr/include/asm、/usr/inlude/linux和/usr/include/scsi链接到/usr/src/linux/include目录下的相应目录。
  #cd/usr/include​​#rm-Rfasmlinux​​#ln-s/usr/src/linux/include/asm-i386asm​​#ln-s/usr/src/linux/include/linuxlinux【#ln-s/usr/src/linux/include/scsiscsi】(3)删除源代码目录下剩余的.o文件和其他依赖文件。
#cd/usr/src/linux#makemrproper3.配置内核(1)启动内核配置实用程序。
  #cd/usr/src/linux​​#makeconfig​除上述命令外,用户还可以使用makemenuconfig命令以菜单方式启动配置界面。
如果用户安装了Xwindow系统,还可以运行makexconfig命令来启动Xwindow下的内核配置程序。
(2)配置内核Linux内核配置实用程序提供了许多配置选项。
对于每个配置选项,用户可以回答“y”、“m”或“n”。
其中,“y”表示将相应的功能支持或设备驱动编译到内核中;“m”表示将适当的功能支持或设备驱动程序编译成可加载模块,该模块可以由系统或用户添加到内核中。
“n”表示内核不支持相应的功能或驱动程序。
由于内核的配置选项有很多,本文只介绍一些比较重要的选项。
1.代码成熟度级别选项Promptfordevelopmentand/orincompletecode/drivers(CONFIG_EXPERIMENTAL)[N/y/?]如果用户想要使用以下代码或驱动程序仍处于测试阶段,可以选择“y”。
如果你想编译一个稳定的内核,请选择“n”。
1、处理器类型及特性(1)、Processorfamily(386,486/Cx486,586/K5/5x86/6x86、Pentium/K6/TSC、PPro/6x86MX)【PPro/6x86MX】选择处理器类型,默认Ppro/6x86MX。
(2)MaximumPhysicalMemory(1GB,2GB)[1GB]内核支持的最大内存数,默认为1G。
(3)、Mathemulation(CONFIG_MATH_EMULATION)[N/y/?]协处理器模拟,默认不模拟。
(4)、MTRR(MemoryTypeRangeRegister)支持(CONFIG_MTRR)[N/y/?]选择该选项,系统生成/proc/mtrr文件来管理MTRR,供Xserver使用。
(5)、Symmetricmulti-processingsupport(CONFIG_SMP)[Y/n/?]选择“y”,支持内核支持对称多处理器。
2.Loadablemodulesupport(1)Enableloadablemodulesupport(CONFIG_MODULES)[Y/n/?]选择“y”,内核支持加载模块。
(2)内核模块加载器(CONFIG_KMOD)选择“y”[N/y/?],内核会自动加载这些可加载模块,否则用户需要手动加载。
3.一般设置(1)Networkingsupport(CONFIG_NET)[Y/n/?]该选项指定内核是否应提供网络支持。
(2)PCIsupport(CONFIG_PCI)[Y/n/?]该选项指定是否在内核中提供PCI支持。
(3)PCIaccessmode(BIOS、Direct、Any)[Any]该选项决定Linux如何识别PCI设备。
选择“BIOS”,Linux将使用BIOS;选择“Direct”,Linux将不通过BIOS;选择“Any”,Linux将直接检测PCI设备,如果失败则使用BIOS。
(4)并口支持(CONFIG_PARPORT)[N/y/m/?]选择“y”,内核支持并口。
4、即插即用配置(PlugandPlayDeviceSupport)(1)在PlugandPlaySupport(CONFIG_PNP)中选择“y”[Y/m/n/?],内核自动配置即插即用设备。
(2)ISAPlugandPlaysupport(CONFIG_ISAPNP)[Y/m/n/?]选择“y”,内核将自动配置基于ISA总线的即插即用设备。
5.块设备(1)NormalPCfloppydisksupport(CONFIG_BLK_DEV_FD)[Y/m/n/?]选择“y”,内核将提供对软盘的支持。
(2)、EnhancedIDE/MFM/RLLdisk/cdrom/tape/floppysupport(CONFIG_BLK_DEV_IDE)[Y/m/n/?]选择“y”,内核提供对增强型IDE硬盘、CD-ROM和磁带机的支持。
6.网络选项(1)为Packetsocket(CONFIG_PACKET)[Y/m/n/?]选择“y”。
某些应用程序使用数据包协议直接与网络设备进行通信,而无需通过内核协议中的其他中介进行通信。
(2)Networkfirewalls(CONFIG_FIREWALL)[N/y/?]选择“y”,内核支持防火墙。
(3)TCP/IPNetwork(CONFIG_INET)选择“y”[Y/n/?],内核支持TCP/IP协议。
(4)IPX协议(CONFIG_IPX)[N/y/m/?]选择“y”,内核支持IPX协议。
(5)如果AppletalkDDP(CONFIG_ATALK)[N/y/m/?]选择“y”,则内核支持AppletalkDDP协议。
8.SCSIsupport如果用户想使用SCSI设备,可以配置相应的选项。
9.NetworkdevicesupportNetworkdevicesupport(CONFIG_NETDEVICES)[Y/n/?]选择“y”,内核将为网络驱动提供支持。
10.Ethernet(10or100Mbit)(10M或100M以太网)在此设置下,系统提供了多种网卡驱动程序,用户只需选择适合自己的网卡驱动程序即可。
此外,用户还可以如有必要,内核还添加对FDDI、PPP、SLIP和无线LAN(WirelessLAN)的支持。
11、Characterdevices(字符设备)(1)Virtualterminal(CONFIG_VT)[Y/n/?]选择“y”,内核支持虚拟终端。
(2)、支持虚拟终端上的控制台(CONFIG_VT_CONSOLE)[Y/n/?]选择“y”,内核可以使用虚拟终端作为系统控制台。
(3)、Standard/generic(dumb)serialsupport(CONFIG_SERIAL)[Y/m/n/?]选择“y”,内核支持串口。
(4)、Supportforconsoleonserialport(CONFIG_SERIAL_CONSOLE)[N/y/?]选择“y”,内核可以使用串口作为系统控制台。
12.Mice(鼠标)支持PS/2鼠标(又名“Auxiliarydevice”)(CONFIG_PSMOUSE)[Y/n/?]如果用户使用PS/2鼠标,该选项应选择“y”。
13.文件系统(1)配额支持(CONFIG_QUOTA)[N/y/?]选择“y”,内核支持磁盘配额。
(2)kernelautomountersupport(CONFIG_AUTOFS_FS)[Y/m/n/?]选择“y”,内核提供automounter支持,允许系统在启动时自动挂载远程文件系统。
(3)DOSFATfssupport(CONFIG_FAT_FS)[N/y/m/?]选择“y”,内核支持DOSFAT文件系统。
(4)、ISO9660CD-ROM文件系统支持(CONFIG_ISO9660_FS)[Y/m/n/?]选择“y”,内核支持ISO9660CD-ROM文件系统。
(5)、NTFSfilesystemsupport(readonly)(CONFIG_NTFS_FS)[N/y/m/?]选择“y”,用户可以以只读方式访问NTFS文件系统。
(6)/procfilesystemsupport(CONFIG_PROC_FS)[Y/n/?]/proc是一个虚拟文件系统,存储Linux系统的运行状态。
必须为此元素选择“y”。
(7)Secondextendedfssupport(CONFIG_EXT2_FS)[Y/m/n/?]EXT2是Linux的默认文件系统,此项也必须选择“y”。
14、NetworkFileSystems(网络文件系统)(1)、NFSfilesystemsupport(CONFIG_NFS_FS)[Y/m/n/?]选择“y”,内核支持NFS文件系统。
(2)、SMBfilesystemsupport(tomountWfWsharesetc.)(CONFIG_SMB_FS)选择“y”,内核支持SMB文件系统。
(3)、NCPfilesystemsupport(tomountNetWarevolumes)(CONFIG_NCP_FS)选择“y”,内核支持NCP文件系统。
15.PartitionTypes该选项支持一些不太常用的分区类型。
如果用户需要,只需选择“y”作为适当的选项。
16.ConsoledriversVGAtextconsole(CONFIG_VGA_CONSOLE)[Y/n/?]选择“y”,用户可以在标准VGA显示模式下使用Linux。
17.Sound(声音)Soundcardsupport(CONFIG_SOUND)[N/y/m/?]选择“y”,内核可以提供对声卡的支持。
18.KernelHacking(内核监控)MagicSysRqkey(CONFIG_MAGIC_SYSRQ)[N/y/?]选择“y”,用户可以部分控制系统。
通常你选择“n”。
4、编译内核(1)。
创建编译所需的依赖文件#cd/usr/src/linux​#makedep​(2)删除内核编译的目标文件#makeclean​(3)编译内核#makezImage​内核编译成功后,会生成一个新的内核镜像文件在zImage目录下创建/usr/src/linux/arch/i386/boot生成。
如果编译的内核较大,系统会提示您使用makebzImage命令进行编译。
此时,编译器会生成一个名为bzImage的内核映像文件。
(4)编译可加载模块如果用户在配置内核时设置了可加载模块,则需要编译这些模块,以便将来可以使用insmod命令使用可以加载。
#makemodules#makemodelus_install编译成功后,系统会在/lib/modules目录下生成一个2.3.14子目录,其中存放了新内核所有可加载模块。
5.启动新内核(1)。
将新内核和System.map文件复制到/boot目录#cp/usr/src/linux/arch/i386/boot/bzImage/boot/vmlinuz-2.3.14​#cp/usr/src/linux/System.map/boot/System.map-2.3.14​#cd/boot​#rm-fSystem.map​#ln-sSystem.map-2.3.14System.map​(2)配置/etc/lilo.conf文件。
将以下行添加到文件中:default=linux-2.3.14image=/boot/vmlinuz-2.3.14label=linux-2.3.14root=/dev/hda1.只读。
(3)使新配置生效。
#/sbin/reboot如果新内核无法正常启动,用户可以启动旧内核LILO:提示。
然后找出错误原因,重新编译新内核。
要了解有关开源的更多信息,请访问LUPA社区。

linux编译内核模块linux编译内核模块

我为Linux编写了一个小型内核模块。
如何将其编译成.ko文件?

从网上找到一个Makefile来编译模块,将其放在你的模块文件夹中,然后编辑里面的路径以指定编译的内核和目标名称。
去做就对了。

编译Linux内核模块时找不到头文件?

-I/usr/src/linux-headers-2.6.32-24/include,-I及其后面的路径没有空格-I/usr/src/linux-headers-2.6.32-24/includegeneral直接使用gcc命令的情况很少见。
其中大多数使用makefile和make-Ckernel_path模块

Windows操作系统是消息驱动的。
那么Linux呢?它是由什么驱动的?。
简单解释一下这是原理,谢谢?

Linux内核采用可加载的模块化设计(LKM,LoadableKernelModules)。
一般编译出来的Linux内核都支持可插拔模块,即把最基本的核心代码编译到内核中,其他代码可以选择。
位于内核中,或编译成内核模块文件。

如果您需要某种功能,例如访问NTFS分区,请加载相应的NTFS模块。
这种设计可以防止内核文件太大,但可以支持许多功能,并在需要时动态加载它们。
这是与微内核不同类型的内核设计,但它是一种实用的内核设计解决方案。

我们常见的驱动都是作为内核模块动态加载的,比如声卡驱动、网卡驱动,还有最基本的Linux驱动,比如CPU、PCI总线、TCP/IP协议、APM(高级电源管理)、VFS等驱动被编译到内核文件中。
有时内核模块也称为驱动程序,但驱动程序的内容不一定是硬件,例如ext3文件系统驱动程序。

理解这一点很重要。
因此,在加载驱动程序的同时,也加载了内核模块。

新增的netfilter功能模块如何编译?

所以,要实现netfilter(iptables),需要从两个方面入手:

1)内核支持netfilter

2)配置用户级iptables;订单。
1.编译内核,支持netfilter访问主机上的Linux内核目录,并配置所需的内核模块:cd/usr/SRC/linuxmakemenuconfig选择以下