【网站后面源码】【restful 源码分析】【showwindow函数源码】linuxcn源码

来源:c 源码n

1.linux.bz2解压linux.bz
2.探寻最优linux镜像网站linux镜像网站
3.四步解决Linux系统中出现中文乱码问题

linuxcn源码

linux.bz2解压linux.bz

       LinuxKernel(Linux内核)怎么安装?

       1、下载新内核源码:到官网www.kernel.org,下载最新版本linux内核,保存到/usr/src/kernels目录,大约MB。

       2、#cd/usr/src/kernels

       3、#tarjvxflinux-2.6..5.tar.bz2

       4、进入系统原内核目录,把其中的隐藏文件.config复制到新内核目录中。

       5、cd进入新内核目录,然后执行#makeoldconfig此时所有提示均按回车,选项提示都默认。

       6、#makexconfig此时弹出一个内核配置窗口,里面全是英文,我看不懂,干脆就直接把这个窗口关掉,继续往下做。

       7、#makebzImagemakemodulesmakemodules_installmakeinstall第七步编译时间比较长,要到分钟不等,要看机器情况了。

       8、#uname-r查看内核版本,完成上面步骤后就可以重启系统了,启动时会在GRUB菜单里出现新内核选项了。此方法安装新内核后同时也会保留旧内核,启动时,可以在新老内核间选择,相当的实用

       å¦‚何给linux安装新内核?

       ä¸€ã€èŽ·å–内核源码

       äºŒã€è§£åŽ‹å†…核源码

       é¦–先以root帐号登录,然后进入/usr/src子目录。如果用户在安装Linux时,安装了内核的源代码,则会发现一个linux-x.y.z的子目录。该目录下存放着内核x.y.z的源代码。此外,还会发现一个指向该目录的链接linux。删除该连接,然后将新内核的源文件拷贝到/usr/src目录中,并解压:

       #tarzxvfLinux-2.3..tar.gz

       æ–‡ä»¶é‡Šæ”¾æˆåŠŸåŽï¼Œåœ¨/usr/src目录下会生成一个linux子目录。其中包含了内核2.3.的全部源代码。将/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-iasm

       #ln-s/usr/src/linux/include/linuxlinux

       #ln-s/usr/src/linux/include/scsiscsi

       åˆ é™¤æºä»£ç ç›®å½•ä¸­æ®‹ç•™çš„.o文件和其它从属文件。

       #cd/usr/src/linux

       #makemrproper

       ä¸‰.增量补丁

       æœ‰æ—¶ä¸éœ€è¦å®Œå…¨é‡æ–°å®‰è£…,只需打增量补丁,类似升级,在内核源码树根目录运行:

       patch-p1../patch-x.y.z

       å››.内核源码树目录:

       arch:包含和硬件体系结构相关的代码,每种平台占一个相应的目录。和位PC相关的代码存放在i目录下,其中比较重要的包括kernel(内核核心部分)、mm(内存管理)、math-emu(浮点单元仿真)、lib(硬件相关工具函数)、boot(引导程序)、pci(PCI总线)和power(CPU相关状态)。

       block:部分块设备驱动程序。

       crypto:常用加密和散列算法(如AES、SHA等),还有一些压缩和CRC校验算法。

       Documentation:关于内核各部分的通用解释和注释。

       drivers:设备驱动程序,每个不同的驱动占用一个子目录。

       fs:各种支持的文件系统,如ext、fat、ntfs等。

       include:头文件。其中,和系统相关的头文件被放置在linux子目录下。

       init:内核初始化代码(注意不是系统引导代码)。

       ipc:进程间通信的代码。

       kernel:内核的最核心部分,包括进程调度、定时器等,和平台相关的一部分代码放在arch/*/kernel目录下。

       lib:库文件代码。

       mm:内存管理代码,和平台相关的一部分代码放在arch/*/mm目录下。

       net:网络相关代码,实现了各种常见的网络协议。

       scripts:用于配置内核文件的脚本文件。

       security:主要是一个SELinux的模块。

       sound:常用音频设备的驱动程序等。

       usr:实现了一个cpio。

       åœ¨i体系下,系统引导将从arch/i/kernel/head.s开始执行,并进而转移到init/main.c中的main()函数初始化内核。

       äº”.配置内核

       #cd/usr/src/linux

       å†…核配置方法有三种:

       ï¼ˆ1)命令行:makeconfig

       ï¼ˆ2)菜单模式的配置界面:makemenuconfig

       (3)Xwindow:makexconfig

       Linux的内核配置程序提供了一系列配置选项。对于每一个配置选项,用户可以"y"、"m"或"n"。其中"y"表示将相应特性的支持或设备驱动程序编译进内核;"m"表示将相应特性的支持或设备驱动程序编译成可加载模块,在需要时,可由系统或用户自行加入到内核中去;"n"表示内核不提供相应特性或驱动程序的支持。由于内核的配置选项非常多,本文只介绍一些比较重要的选项。

       1、Codematurityleveloptions(代码成熟度选项)

       Promptfordevelopmentand/orincompletecode/drivers(CONFIG_EXPERIMENTAL)如果用户想要使用还处于测试阶段的代码或驱动,可以选择“y”。如果想编译出一个稳定的内核,则要选择“n”。

       2、Processortypeandfeatures(处理器类型和特色)

       ï¼ˆ1)、Processorfamily(,/Cx,/K5/5x/6x,Pentium/K6/TSC,PPro/6xMX)选择处理器类型,缺省为Ppro/6xMX。

       ï¼ˆ2)、MaximumPhysicalMemory(1GB,2GB)内核支持的最大内存数,缺省为1G。

       ï¼ˆ3)、Mathemulation(CONFIG_MATH_EMULATION)协处理器仿真,缺省为不仿真。

       ï¼ˆ4)、MTRR(MemoryTypeRangeRegister)support(CONFIG_MTRR)

       é€‰æ‹©è¯¥é€‰é¡¹ï¼Œç³»ç»Ÿå°†ç”Ÿæˆ/proc/mtrr文件对MTRR进行管理,供Xserver使用。

       ï¼ˆ5)、Symmetricmulti-processingsupport(CONFIG_SMP)选择“y”,内核将支持对称多处理器。

       3、Loadablemodulesupport(可加载模块支持)

       ï¼ˆ1)、Enableloadablemodulesupport(CONFIG_MODULES)选择“y”,内核将支持加载模块。

       ï¼ˆ2)、Kernelmoduleloader(CONFIG_KMOD)选择“y”,内核将自动加载那些可加载模块,否则需要用户手工加载。

       4、Generalsetup(一般设置)

       ï¼ˆ1)、Networkingsupport(CONFIG_NET)该选项设置是否在内核中提供网络支持。

       ï¼ˆ2)、PCIsupport(CONFIG_PCI)该选项设置是否在内核中提供PCI支持。

       ï¼ˆ3)、PCIaccessmode(BIOS,Direct,Any)该选项设置Linux探测PCI设备的方式。选择“BIOS”,Linux将使用BIOS;选择“Direct”,Linux将不通过BIOS;选择“Any”,Linux将直接探测PCI设备,如果失败,再使用BIOS。

       ï¼ˆ4)Parallelportsupport(CONFIG_PARPORT)选择“y”,内核将支持平行口。

       5、PlugandPlayconfiguration(即插即用设备支持)

       ï¼ˆ1)、PlugandPlaysupport(CONFIG_PNP)选择“y”,内核将自动配置即插即用设备。

       ï¼ˆ2)、ISAPlugandPlaysupport(CONFIG_ISAPNP)选择“y”,内核将自动配置基于ISA总线的即插即用设备。

       6、Blockdevices(块设备)

       ï¼ˆ1)、NormalPCfloppydisksupport(CONFIG_BLK_DEV_FD)选择“y”,内核将提供对软盘的支持。

       ï¼ˆ2)、EnhancedIDE/MFM/RLLdisk/cdrom/tape/floppysupport(CONFIG_BLK_DEV_IDE)选择“y”,内核将提供对增强IDE硬盘、CDROM和磁带机的支持。

       7、Networkingoptions(网络选项)

       ï¼ˆ1)、Packetsocket(CONFIG_PACKET)选择“y”,一些应用程序将使用Packet协议直接同网络设备通讯,而不通过内核中的其它中介协议。

       ï¼ˆ2)、Networkfirewalls(CONFIG_FIREWALL)选择“y”,内核将支持防火墙。

       ï¼ˆ3)、TCP/IPnetworking(CONFIG_INET)选择“y”,内核将支持TCP/IP协议。

       ï¼ˆ4)TheIPXprotocol(CONFIG_IPX)选择“y”,内核将支持IPX协议。

       ï¼ˆ5)、AppletalkDDP(CONFIG_ATALK)选择“y”,内核将支持AppletalkDDP协议。

       8、SCSIsupport(SCSI支持)

       å¦‚果用户要使用SCSI设备,可配置相应选项。

       9、Networkdevicesupport(网络设备支持)

       Networkdevicesupport(CONFIG_NETDEVICES)选择“y”,内核将提供对网络驱动程序的支持。

       ã€Ethernet(orMbit)(M或M以太网)

       åœ¨è¯¥é¡¹è®¾ç½®ä¸­ï¼Œç³»ç»Ÿæä¾›äº†è®¸å¤šç½‘卡驱动程序,用户只要选择自己的网卡驱动就可以了。此外,用户还可以根据需要,在内核中加入对FDDI、PPP、SLIP和无线LAN(WirelessLAN)的支持。

       ã€Characterdevices(字符设备)

       ï¼ˆ1)、Virtualterminal(CONFIG_VT)选择“y”,内核将支持虚拟终端。

       ï¼ˆ2)、Supportforconsoleonvirtualterminal(CONFIG_VT_CONSOLE)

       é€‰æ‹©â€œy”,内核可将一个虚拟终端用作系统控制台。

       ï¼ˆ3)、Standard/generic(dumb)serialsupport(CONFIG_SERIAL)

       é€‰æ‹©â€œy”,内核将支持串行口。

       ï¼ˆ4)、Supportforconsoleonserialport(CONFIG_SERIAL_CONSOLE)

       é€‰æ‹©â€œy”,内核可将一个串行口用作系统控制台。

       ã€Mice(鼠标)

       PS/2mouse(aka"auxiliarydevice")support(CONFIG_PSMOUSE)如果用户使用的是PS/2鼠标,则该选项应该选择“y”。

       ã€Filesystems(文件系统)

       ï¼ˆ1)、Quotasupport(CONFIG_QUOTA)选择“y”,内核将支持磁盘限额。

       ï¼ˆ2)、Kernelautomountersupport(CONFIG_AUTOFS_FS)选择“y”,内核将提供对automounter的支持,使系统在启动时自动mount远程文件系统。

       ï¼ˆ3)、DOSFATfssupport(CONFIG_FAT_FS)选择“y”,内核将支持DOSFAT文件系统。

       ï¼ˆ4)、ISOCDROMfilesystemsupport(CONFIG_ISO_FS)

       é€‰æ‹©â€œy”,内核将支持ISOCDROM文件系统。

       ï¼ˆ5)、NTFSfilesystemsupport(readonly)(CONFIG_NTFS_FS)

       é€‰æ‹©â€œy”,用户就可以以只读方式访问NTFS文件系统。

       ï¼ˆ6)、/procfilesystemsupport(CONFIG_PROC_FS)/proc是存放Linux系统运行状态的虚拟文件系统,该项必须选择“y”。

       ï¼ˆ7)、Secondextendedfssupport(CONFIG_EXT2_FS)EXT2是Linux的标准文件系统,该项也必须选择“y”。

       ã€NetworkFileSystems(网络文件系统)

       ï¼ˆ1)、NFSfilesystemsupport(CONFIG_NFS_FS)选择“y”,内核将支持NFS文件系统。

       ï¼ˆ2)、SMBfilesystemsupport(tomountWfWsharesetc.)(CONFIG_SMB_FS)

       é€‰æ‹©â€œy”,内核将支持SMB文件系统。

       ï¼ˆ3)、NCPfilesystemsupport(tomountNetWarevolumes)(CONFIG_NCP_FS)

       é€‰æ‹©â€œy”,内核将支持NCP文件系统。

       ã€PartitionTypes(分区类型)

       è¯¥é€‰é¡¹æ”¯æŒä¸€äº›ä¸å¤ªå¸¸ç”¨çš„分区类型,用户如果需要,在相应的选项上选择“y”即可。

       ã€Consoledrivers(控制台驱动)

       VGAtextconsole(CONFIG_VGA_CONSOLE)选择“y”,用户就可以在标准的VGA显示方式下使用Linux了。

       ã€Sound(声音)

       Soundcardsupport(CONFIG_SOUND)选择“y”,内核就可提供对声卡的支持。

       ã€Kernelhacking(内核监视)

       MagicSysRqkey(CONFIG_MAGIC_SYSRQ)选择“y”,用户就可以对系统进行部分控制。一般情况下选择“n”。

       å…­ã€ç¼–译内核

       ï¼ˆä¸€ï¼‰ã€å»ºç«‹ç¼–译时所需的从属文件

       #cd/usr/src/linux

       #makedep

       ï¼ˆäºŒï¼‰ã€æ¸…除内核编译的目标文件

       #makeclean

       ï¼ˆä¸‰ï¼‰ã€ç¼–译内核

       #makezImage

       å†…核编译成功后,会在/usr/src/linux/arch/i/boot目录中生成一个新内核的映像文件zImage。如果编译的内核很大的话,系统会提示你使用makebzImage命令来编译。这时,编译程序就会生成一个名叫bzImage的内核映像文件。

       ï¼ˆå››ï¼‰ã€ç¼–译可加载模块

       å¦‚果用户在配置内核时设置了可加载模块,则需要对这些模块进行编译,以便将来使用insmod命令进行加载。

       #makemodules

       #makemodelus_install

       ç¼–译成功后,系统会在/lib/modules目录下生成一个2.3.子目录,里面存放着新内核的所有可加载模块。

       ä¸ƒã€å¯åŠ¨æ–°å†…æ ¸

       ï¼ˆä¸€ï¼‰ã€å°†æ–°å†…核和System.map文件拷贝到/boot目录下

       #cp/usr/src/linux/arch/i/boot/bzImage/boot/vmlinuz-2.3.

       #cp/usr/src/linux/System.map/boot/System.map-2.3.

       #cd/boot

       #rm-fSystem.map

       #ln-sSystem.map-2.3.System.map

       ï¼ˆäºŒï¼‰ã€é…ç½®/etc/lilo.conf文件。在该文件中加入下面几行:

       default=linux-2.3.

       image=/boot/vmlinuz-2.3.

       label=linux-2.3.

       root=/dev/hda1

       read-only

       ï¼ˆä¸‰ï¼‰ã€ä½¿æ–°é…ç½®ç”Ÿæ•ˆ

       #/sbin/lilo

       ï¼ˆå››ï¼‰ã€é‡æ–°å¯åŠ¨ç³»ç»Ÿ

       #/sbin/reboot

       æ–°å†…核如果不能正常启动,用户可以在LILO:提示符下启动旧内核。然后查出故障原因,重新编译新内核即可。

       CDlinux里启动提示cantfindoutwherecdlinuxisinstalled?

       æˆ‘已经解决了我用grub4dos引导,目录如下H:LinuxCDlinuxCDlinux-0.9.7.1.isomenu.lst如下:titlefindandbootCDlinux-0.9.7.1.isofallback3find--set-root/Linux/CDlinux/BZIMAGEkernel/Linux/CDlinux/BZIMAGEquietCDL_LANG=zh_CN.UTF-8CDL_GUI=yesCDL_AMOUNT=yesCDL_DIR=/Linux/CDlinuxCDL_IMG=CDlinux-0.9.7.1.isoinitrd/Linux/CDlinux/INITRD注意把CD里的BZIMAGE、INITRD解压出来放到CDlinux目录下

探寻最优linux镜像网站linux镜像网站

       探寻最优Linux镜像网站

       Linux是一种自由、开放源代码的操作系统,其应用及用户群体越来越广泛,已经从最初的服务器端应用扩展到了桌面端、移动端等各个领域。然而,网站后面源码作为一个开放源代码的操作系统,不同版本的Linux安装包及其应用软件需要从不同的服务器下载,而服务器不同,下载速度也会不同。因此,如何选取最优的Linux镜像网站来下载软件包,成为了Linux用户必须要解决的问题。

       常见的Linux镜像网站包括: 阿里云、网易云、中科大、清华大学镜像站等。这篇文章将采用Python编程语言,通过测速工具获取Linux镜像站点下载速度,restful 源码分析以得出最优Linux镜像网站。

       1.编写Python程序获取镜像站点速度

       通过Python编程语言,我们可以很快地编写程序来测量和比较各个Linux镜像网站的下载速度。首先,我们需要安装Python requests 和time模块。

       import requests

       import time

       def test_speed(url):

        start_time = time.time()

        try:

        response = requests.get(url, timeout=3)

        end_time = time.time()

        speed = round(response.content.__len__() / (end_time-start_time) / , 2)

        return speed

        except:

        return -1

       上述代码中,定义了test_speed()函数,该函数接收一个url参数,在函数内使用requests.get()方法获取返回的showwindow函数源码数据,如果成功,计算下载速度,并返回。如果下载失败,返回-1。

       2.测试镜像站点速度

       我们定义一个Linux镜像网站列表来测试速度,如下所示:

       mirror_list = [

        “/ubuntu/dists/xenial/main/installer-amd/”,

        “/ubuntu/dists/xenial/main/installer-amd/”

       ]

       使用for循环循环遍历镜像站点,调用test_speed()函数进行速度测试,并将测试结果输出:

       for mirror in mirror_list:

        print(mirror,dbutils 源码下载 test_speed(mirror))

       3.选择最优的Linux镜像网站

       我们定义一个函数get_best_mirror(),该函数依次对所有Linux镜像网站进行速度测试,并找出其中下载速度最快的镜像网站,并返回该站点的url:

       def get_best_mirror():

        mirror_list = [

        “/ubuntu/dists/xenial/main/installer-amd/”,

        “/ubuntu/dists/xenial/main/installer-amd/”

        ]

        best_mirror = “”

        best_speed = 0

        for mirror in mirror_list:

        speed = test_speed(mirror)

        if speed > best_speed:

        best_mirror = mirror

        best_speed = speed

        return best_mirror

       运行get_best_mirror()函数,将输出下载速度最快的Linux镜像网站。

       综上所述,我们可以通过Python编程语言,使用测速工具获取Linux镜像站点的下载速度,以得出最优的Linux镜像网站。这样可以提高软件的rfcn源码解读下载速度,节约时间,提高效率。

四步解决Linux系统中出现中文乱码问题

       在使用CentOS 系统时,安装的时候可能你会遇到英文的CentOS系统,在这中情况下安装CentOS系统时是默认安装(即英文)。安装完毕后,出现的各种中文乱码。那么,我们如何解决这种问题呢。

一、CentOS系统访问 g.cn ,发现中文乱码。

       于是用以前的方式:yum -y install fonts-chinese

       CentOS系统安装后,还是不能显示中文字体。我使用 gedit 编辑源码,其中文注释也为乱码。

       后来,终于找到以下方法可以解决,需要两个中文支持的包:

       fonts-chinese-3.-.el5.noarch.rpm

       ftp://ftp.muug.mb.ca/mirror/centos/5.4/os/x_/CentOS/fonts-chinese-3.-.el5.noarch.rpm

       fonts-ISO-2-dpi-1.0-.1.noarch.rpm

       ftp://ftp.muug.mb.ca/mirror/centos/5.4/os/x_/CentOS/fonts-ISO-2-dpi-1.0-.1.noarch.rpm

       一个是中文字体,一个是字体显示包。

       下载后,在命令行安装:

       #rpm -ivh XXXX ( XXXX 代表上面那两个包的全名, rpm 不会不知道怎么用吧?)

       CentOS系统安装完成后,重新启动即可。

二、终端、 gedit 显示乱码

       #vi /etc/sysconfig/in

       将LANG="en_US.UTF-8"

       SYSFONT="latarcyrheb-sun"

       修改原内容为

       LANG="zh_CN.GB"

       LANGUAGE="zh_CN.GB:zh_CN.GB:zh_CN"

       SUPPORTED="zh_CN.UTF-8:zh_CN:zh:en_US.UTF-8:en_US:en"

       SYSFONT="lat0-sun"

       用 yum 安装中文字体

       #yum install fonts-chinese.noarch

       system - logout 注销

       重新登录CentOS系统时,你会发现,所有界面已从英文变成中文。在终端输入 date 命令测试

       #date

        年 月 日 星期一 :: CST

三、在 ssh , telnet 终端中文显示乱码解决办法( CentOS 5.3 )

       #vi /etc/sysconfig/in

       将原内容 LANG="en_US.UTF-8"

       SYSFONT="latarcyrheb-sun"

       修改为

       LANG="zh_CN.GB"

       LANGUAGE="zh_CN.GB:zh_CN.GB:zh_CN"

       SUPPORTED="zh_CN.UTF-8:zh_CN:zh:en_US.UTF-8:en_US:en"

       SYSFONT="lat0-sun"

       用 yum 安装中文字体

       #yum install fonts-chinese.noarch

       断开 ssh ,重新连

       在终端输入 date 命令测试

       #date

        年 月 日 星期一 :: CST

四、在CentOS系统 5.3 中使用中文输入法

       我以前的方法是安装企鹅版 ,见下一页 。 在此,还有一个更简单的,只要使用 yum 安装 SCIM 即可。

       命令行输入:

       #yum install scim

       #yum install scim-pinyin

       重启动X(按Ctrl+Alt+Backpace)或注销(logout)。

       好了,可以输入中文了。CentOS系统出现中文乱码的问题就这样解决了。

文章所属分类:综合频道,点击进入>>