当前位置:  技术问答>linux和unix

关于linux下载及安装的问题

    来源: 互联网  发布时间:2015-04-13

    本文导语:  请问从哪可以下载到标准的linux,我是指linux组织正式发布的那种,像2.2、2.4,下载后如何安装??? 救各位高手相助啊 | ftp://ftp.kernel.org 借花献佛了,呵呵 1. 请推荐一些好的Linux内核参考...

请问从哪可以下载到标准的linux,我是指linux组织正式发布的那种,像2.2、2.4,下载后如何安装???
救各位高手相助啊

|
ftp://ftp.kernel.org

借花献佛了,呵呵
1. 请推荐一些好的Linux内核参考书? 
a.《Linux Device Drivers, Second Edition》,有中文译本 
b.《Understanding the Linux Kernel, 2nd Edition》 
c.《Linux内核源代码情景分析》,分上下两册 
d.《边干边学-Linux内核指导》 


2. 内核源代码问题 
2.1 如何得到某一版本的Linux内核源代码? 
a. http://www.kernel.org或ftp://ftp.kernel.org,这是Linux内核版本的发布 
网站。 
b. 很多镜像或本地网站也提供部分Linux内核版本的下载,多用ftp搜索引擎。 
c. 一般的Linux发行版如Redhat之类会随盘提供相应的内核源代码,不过这个源代 
码往往是改动过的,与同版本的标准Linux内核可能有些差异。 

2.2 请推荐一些源代码查看工具? 
a. Windows系统可以用Source Insight,Linux系统可以用Source Navigator。 
b. vim或emacs编辑器,配合cscope、ctags、etags等交叉索引工具。 
c. vim或emacs编辑器,配合grep、egrep等文本搜索工具,不过最好要对源代码目 
录结构有所熟悉 
d. LXR,以网页的形式通过浏览器浏览,安装复杂,可从http://lxr.linux.no/下 
载该工具也可以直接访问http://lxr.linux.no/source/在线阅读Linux内核源 
代码。 

2.3 xx结构的定义在哪个内核源文件中? 
a. 请使用源码查看工具,见问题2.2。 
b. 如果用grep等文本搜索工具,主要在include/linux和include/asm两个目录下 
搜索。 

2.4 volatile和__volatile__是什么意思? 
a. volatile是C语言定义的关键字,gcc为了需要又定义了__volatile__,它和 
volatile表达的是同一意思。 
b. volatile的本意是"易变的",由于访问寄存器的速度快于访存,所以编译器一般 
都会作优化以减少访存。如果变量加上volatile修饰,则编译器就不会对此变量 
的读写操作进行优化,即不通过寄存器缓冲而直接访存。 
c. __asm__ __volatile__一起指示编译器不要改动优化后面的汇编语句。 

2.5 do{ ... } while(0)是什么意思? 
a. 主要是为了避免宏在不同情况展开可能会出现的一些错误。 
b. 在http://www.kernelnewbies.org/faq/上有详细介绍。 

2.6 list_entry的定义是怎么回事? 
a. list_entry的定义在内核源文件include/linux/list.h中: 
#define list_entry(ptr, type, member)  
((type *)((char *)(ptr)-(unsigned long)(&((type *)0)->member))) 
b. 其功能是根据list_head型指针ptr换算成其宿主结构的起始地址,该宿主结构是 
type型的,而ptr在其宿主结构中定义为member成员。如下图: 

req-->|type型对象起始地址 

|... ... 
ptr-->|ptr指针所指的member成员地址 

|... ... 

ptr指向图中所示的位置,通过(unsigned long)(&((type*)0)->member)得到ptr 
和req之间的差值,ptr减去这个差值就得到了type型宿主结构的指针req,返回 
类型为(type*)。 


3. 模块编程问题 
3.1 模块编程需要注意什么? 
a. 在gcc编译选项中增加-c 
b. 在gcc编译选项中定义两个宏:-DMODULE -D__KERENL__ 
或直接在源文件中定义这两个宏: 
#define MODULE 
#define __KERNEL__ 
c. 在源文件中包括module.h文件: 
#include  
d. 如果要用inline功能,需要在gcc编译选项中增加-O2 

3.2 为什么insmod一个模块时显示版本不匹配? 
假定你现在运行的内核的源码目录绝对路径是MyKernelSrcPath,在gcc编译时 
增加选项: 
-I $MyKernelSrcPath/include 

3.3 为什么出现Unresolved Symbol? 
a. 首先查看文件/proc/ksyms,看内核有没有输出这个符号,不同的内核版本如 
2.2和2.4输出的符号会有些变化。 
b. 如果内核输出的符号带有版本控制信息如符号printk_R12345678,则性质同 
问题3.2。 

3.4 为什么出现no license错误? 
在源文件加入下面一行: 
MODULE_LICENSE("GPL"); 

3.5 为什么看不到用printk打印的信息? 
a. 打印消息受级别的限制,消息级别可以通过printk设置,如: 
printk("something"); /* 其中0read。 
最后用filp_close()函数关闭文件。 
filp_open()、filp_close()函数在fs/open.c定义,在include/linux/fs.h中 
声明。 
c. 自己写包装函数,可参照文件fs/exec.c中的open_exec()和kernel_read()函数。 
在http://www.linuxforum.net/forum/showflat.php?Cat=&Board=linuxK 
&Number=363455&page=&view=&sb=&o=&vc=1上有些代码可以参照。 

4.4 在内核中读写文件时为什么会出现EFAULT错误? 
a. 内核文件系统提供的read()和write()之类的函数,期望是对用户态程序服务的, 
所以它会验证读写缓冲区不超过用户空间的上限即0xC000 0000。但现在内核中 
要读写文件,缓冲区在内核中即地址会超过0xC000 0000。 
b. 在读写文件前先得到当前fs:mm_segment_t old_fs=get_fs(); 
并设置当前fs为内核fs:set_fs(KERNEL_DS); 
在读写文件后再恢复原先fs: set_fs(old_fs); 
set_fs()、get_fs()等相关宏在文件include/asm/uaccess.h中定义。 


5. 其它 

5.1 请问xx命令、xx库的源码是哪个文件? 
a. 一个系统除了内核以外,还需要有shell、gcc等一系列工具和命令以及C库等一 
系列库,这些作为应用程序其源代码都不在内核中,需要另外下载相应的源代码。 
b. 对于Redhat系统,可以用rqm -qf命令来查找某一命令所在的软件包,然后再找 
相应的源代码包安装。

|
你说的linux组织发布的是内核,光有linux内核是无法构筑一个操作系统的,还需要大量的软件包,所以,麻烦是其次,主要要求你必须是专家才能做到。最好去下载商业化的linux发行,他们有简单的安装界面,指导。照着做就行了,如,redhat9.0,debian,Mandrake。他们使用的也是内核组发行的标准内核。商业linux的升级也是跟着内核的升级而升级的

    
 
 

您可能感兴趣的文章:

  • Linux下curl的下载,安装以及curl命令的详细参数,用法介绍
  • 在win分区上安装linux和独立分区安装linux有什么区别?可以同时安装吗?(两个linux系统)
  • linux/centos下安装nginx(rpm安装和源码安装)详细步骤
  • 在windowsxp安装完vm后,想安装linux(作为guest os),是不是需要linux安装盘?
  • linux/centos安装nginx常见错误及解决办法
  • 安装vmware软件,不用再安装linux系统,就可以模拟linux系统了,然后可以在其上学习一下LINUX下的基本操作 了?
  • linux/centos源码安装nginx编译配置选项参数介绍
  • 先安装了redhat linux ,后来安装了windows,如何恢复redhat linux ?
  • Linux下通过rpm安装软件详细介绍以及如何将软件安装到指定目录
  • 我C盘安装win2k,在E盘安装linux。安装后,如何进入linux系统?
  • Linux下c/c++ boost安装及并发编程库mpi介绍
  • 我没有linux安装光盘!可不可以通过网络在我的电脑上安装一个linux操作系统!
  • 在linux下面怎么安程序啊?我刚裝了一个 linux,下了一个迅雷安装程序,可是不知道怎么安装啊?真心请教。
  • 我安装linux时 为什么直接按Enter后就 linux text 安装?
  • 听说安装linux要很小的空间,我在网上看到,安装linux要3张光盘啊!
  • 请问在vmstation下怎么安装linux??但不想从头安装linux,不知在windows下怎么办?
  • 安装LINUX时,GRUB没有安装到主MBR,而是安装到了hdb7(/boot分区)上,请问怎样才能进入LINUX
  • linux安装nagios,安装nrpe时候,先安装了openssl再从安装nrpe出错。
  • 在已经安装了windows2000server的机器上安装红旗linux时,如何配置引导记录安装位置?急
  • Red Hat linux如何 安装,当我要划分区来安装的时候,提示我说要划和""linux根区,才可以继续安装.请问如何处理?
  • 请问如何安装一个LINUX内核到我的电脑上,成为一个系统比如安装linux-2.2.16-高分
  • Linux下时钟同步问题:Clock skew detected原因分析及解决方法
  • linux 繁体 汉字输入法 问题 linux 繁体 汉字输入法 问题
  • Linux 下c++开发error while loading shared libraries问题解决
  • 先安装linux,后安装winxp,能否解决正常启动linux的问题不?(初学者问题,很容易回答)
  • 弱弱的一问,linux下的中文问题及网络问题,分不是问题
  • Linux新手问,Linux安装问题。
  • linux下游戏问题。(菜鸟问题)
  • 初学Linux,发现Linux下的版本问题很头痛。【系列问题】
  • 高深问题:有了linux内核源代码如何做成一个linux操作系统
  • 一个很菜的问题,关ARM与linux内核裁剪的问题!
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • linux命令大全详细分类介绍及常用linux命令文档手册下载
  • WINDOWS下可以使用flashget来下载软件,那在linux下用什么工具软件来下载程序呢?哪里有linux平台下的下载工具可以下载?谢谢!
  • Linux/CentOS抓包命令tcpdump介绍及最新版下载
  • Linux不是免费的嘛,怎么在红旗的网站只有桌面版下载?没有server版下载?哪有红旗Linux数据库服务器3.0版下载?
  • 红旗Linux下载专区中这么多版本,我想学linux,应该下载哪个,谢谢
  • 哪有红旗Linux数据库服务器3.0版下载?红旗的网站只有桌面版下载,没有服务器版下载
  • 寻找linux下载工具,下载速度快,支持断点续传
  • ubuntu Linux 死活下载不了bt东西,网页能下载,什么原因?
  • 请问,哪里有Linux源代码下载?哪里有GNC C编译器下载?
  • LINUX 没有装telnet,我想下载一个装一下,我该从哪里去下载呢?
  • 提供些下载linux C 编程 原代码的 下载 链接吧?
  • 在LINUX OS 上是否有类似于Netant 或FlashGet之类多线程多任务的下载软件及其源代码,若有哪里能下载
  • 请问:j2sdk-1_4_2_15-linux-i586.bin下载、或者j2sdk1.4的版本下载?
  • 哪儿有包含linux 基本命令的linux入门电子书下载?
  • Linux新手问,Linux安装问题。 iis7站长之家
  • 最近想学linux 那儿有linux虚拟机下载 win7环境下的
  • 哪里有<<linux入门>>电子版,<<linux手册>>电子版下载,我好想要他们啊,就是找不到啊....惭愧
  • 那里有linux c 函数库和linux 网络编程的书下载??
  • 想学习linux 编程,请问一下,用什么版本的linux好啊,什么地方有下载?谢了
  • 网站系统 linux 如何设置才能限制下载的流量呢?
  • 我下载了一个LINUX,是.ISO文件格式的,请问怎么在用硬盘安装LINUX啊?
  • linux c/c++ IP字符串转换成可比较大小的数字
  • 在虚拟机上安装的linux上,能像真的linux系统一样开发linux程序么?
  • linux哪个版本好?linux操作系统版本详细介绍及选择方案推荐
  • 我重装window后,把linux的引导区覆盖了,进不了linux怎么办?急啊,望热心的人帮助 (现在有linux的盘)
  • secureCRT下Linux终端汉字乱码解决方法
  • 红旗Linux主机可以通过127.0.0.1访问,但如何是连网的Win2000机器通过Linux的IP去访问Linux
  • Linux c字符串中不可打印字符转换成16进制
  • 我重装window后,把linux的引导区覆盖了,进不了linux怎么办?急啊,望热心的人帮助 (现在没有linux的盘,只有DOS启动盘)
  • Linux常用命令介绍:更改所属用户群组或档案属性
  • 如何让win2000和linux共存。我装好WIN2000,再装LINUX7.0,但LILO只能找到LINUX,不能引导WIN2000


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3