linux课程设计?linux基础知识点
大家好,linux课程设计相信很多的网友都不是很明白,包括linux基础知识点也是一样,不过没有关系,接下来就来为大家分享关于linux课程设计和linux基础知识点的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!
课程设计电脑配置指南
教育技术学专业需要配备什么样的笔记本电脑?
教育技术学专业需要配备一台性能较高的笔记本电脑。1.电脑的性能对于教育技术学专业的学习和研究至关重要,需要较高的CPU、内存和显卡等配置才能满足复杂的软件应用和模拟实验等需求;2.由于该专业涉及到多媒体课件制作、网络课程设计、在线教学、虚拟教室等应用,对于电脑的运行和处理速度要求较高,否则会影响到学习和教学效果。在选择笔记本电脑时,除了要求性能较高外,还应该考虑其他因素,如重量、屏幕大小、电池续航能力、散热效果、接口数量、品牌和售后服务等。此外,也可以根据个人需求和预算进行选择,如选择2合1笔记本、便携轻薄型电脑、游戏本等,以达到更好的用户体验和学习效果。
动画专业什么配置的电脑最适合?
显示器一定要买2台,尺寸24就好,面板选好点的,至少IPS屏吧,分辨率最好是16:10的。京东上这个配置的显示器便宜的差不多1600一台,2个就是3200。这东西一分价钱一分货,别买那种不知名品牌超便宜的,你会发现,等你毕业的时候,显示器是你这套电脑当中最保值的配件之一。
第二,买块好点的手写板,肯定是wacom咯,现在普通的影拓也就1200不到,这个东东也是能够伴随你到毕业之后的。bamboo系列和其他牌子的我不推荐,前者目前做工越来越差,后者吐槽都懒得吐槽了的说。
第三,整机CPU上个i7系列入门级别就好了,主板选个大板,散热比较好,内存一次性到位配到16G(8G*2),双硬盘(至少256G固态硬盘+至少2T机械硬盘,前者给你装系统,后者给你存资料),鼠标键盘别太省钱,至少买个微软套或者罗技套,以后碰到手感好的再换。
第四,上一点所说的主机配置大概也就是游戏主机5000+~6000+档次就能提供的主流配置了,按上一点的标准先把除显卡以外的东西都配好,包括机箱、电源、风扇、音箱、耳机等等,最后再看还能剩下多少预算来买显卡。估计买1080是买不起了的,配个960GTX我觉得也就足够了,又不是配游戏主机。显卡不要买A卡,对各大专业软件的支持不太好,同理上一点所说的CPU和主板也不要图便宜去选AMD架构的。PS:既然显示器是2个,显卡当然要买支持双屏输出的,不要被一些阉割版的高性价比给骗到了。
最后,系统装个64位Win7就好了,Win10并没有很好用。如果不是以视频剪辑为主的专业(比如影视编导之类)就不要上Macbook系列了
学建筑室内设计,上课需要带电脑吗?
我是长春建筑学院艺术设计系的,也是学室内设计的,我明确告诉你,需要,非常需要,但刚开学不需要,我学校大一上学期只学最基础的理论,了解形态构成什么的,下学期做小茶室之类的设计,但要求手绘。
到了大二就要用电脑了,因为有CAD,PHOTOSHOP,3DMAX的课程,再加上大二的设计学校也允许用电脑做了,所以到了大二人手一台电脑,不过一般大一下学期就有不少人买了,因为3DMAX不好学,有些同学会提前学,这样就要用电脑。至于配置的要求则要高一些,作图的话还是台式机才好,不过要是你笔记本性能过硬当然也能作图做的很嗨,我建议买一个四核处理器的,内存2G以上,独立显卡,显存512M以上,硬盘也要大些,最低250G,(这配置应该可以撑三四年而不OUT)因为3DMAX的素材很多很大,显示器嘛还真不好说,其实液晶的(包括笔记本)也行,但作图的话还是那种大头式的颜色准,笔记本作图也可以连外接显示器,这样的显示器大概200块钱左右,闲他太占地方可以不予理会,喜欢用什么就用什么,具体价格就不说了,因为各地有差价。
都市天际线学校如何配置?
1都市天际线学校的配置需要充分考虑学校的规模和功能需求。2首先,学校应该有足够的教学楼和教室,以容纳学生和教师的教学活动。此外,学校还应该有图书馆、实验室、体育馆等配套设施,以满足学生的学习和生活需要。3另外,学校还应该考虑课程设置和教学资源的配置,如是否有足够的教师和教学设备,是否有完善的教学计划和课程体系等。总之,都市天际线学校的配置应该是全面、科学、合理的,以保证学生能够获得高质量的教育和培养。
搞电气自动化需要什么配置的电脑?
搞电气自动化通常需要一台配置较高的电脑来满足相关软件和工具的要求。以下是一些建议的配置要求:
处理器:建议选择多核心处理器,如IntelCorei7或更高级别的处理器,以提供较高的计算性能。
内存:推荐至少16GB的内存,以便同时运行多个应用程序和处理复杂的电气自动化任务。
存储:选择较大容量的固态硬盘(SSD),以提供快速的数据读写速度和更好的系统响应能力。
显卡:对于图形处理和可视化任务,选择一款具备独立显卡(如NVIDIAGeForce系列)的电脑,以确保良好的图形性能和显示质量。
操作系统:根据使用的软件和工具的要求,选择支持的操作系统,如Windows10或特定的Linux发行版。
连接接口:确保电脑具备足够的USB端口、以太网端口和其他必要的接口,以连接各种设备和传感器。
显示器:选用一块较大的高分辨率显示器,以提供更好的工作区域和视觉体验。
需要根据具体的应用和工作要求来选择电脑配置参考软件和工具的官方推荐配置要求,以确保能够顺利进行电气自动化工作。
LINUX操作系统课程设计:企业服务器的配置与实现怎样做
一般购买大品牌的服务器才有相应的驱动程序:
硬件:4核CPU,4G的内存,主板带RIAD,512G内存,
安装与配置Web服务器
Apache服务器源代码安装:
Apache RPM软件下载:
Apache模块和MPM可使用类型的更详细介绍:
Apache对模块的使用有两种方法,一种是将其永久性地编译Apache内核中,即采用静态编译;另一种是采取动态编译,将其编译成DSO(Dynamic shared object,动态共享对象)模块,DSO模块的存储是独立于内核的,可被内核在需要时调用,具体是由mod_so模块提供的运行时配置指令(LoadModule)来实现的,若在编译中包含有任何动态模块,则mod_so模块会被自动包含进内核。若仅希望内核能够支持装载DSO模块,但不实际编译任何动态模块,则在编译配置时就明确指定--enable-so配置参数。
还提供了多道处理模块MPMs(multi-processing modules),编译过程中必须包含一个且只能有一个MPM,编译时系统会根据平台类型自动选择使用默认的MPM,也可在configure命令行中配置:
--with-mpm=要使用MPM类型
模块的指定方法:
1.静态编译模块到内核中,如编译包含mod-sll和mod_rewrite(去掉mod_)模块:
./configure--enable-module="ssl rewrite"或./configure--enable-sll--enable-rewrite
动态编译模块为DSO:
./configure--enable-mods-shared="ssl rewrite"或./configure--enable-rewrite=shared
模块说明:
httpd-l//查看httpd进程中包含哪些模块;
httpd-S//检查虚拟主机的配置是否存在语法错误;
httpd-f//启动httpd守护进程时,加载配置文件;
mod_deflate模块允许支持此功能的浏览器,在请求的页面内容发送前进行压缩,以节少网络带宽。
mod_vbost_alias模块支持虚拟主要的动态配置。
chkconfig--level 235 httpd on
chkconfig--list httpd
service httpd start
service httpd restart
service httpd reload//重新装载httpd.conf(不重启服务器)
./configure--prefix=/usr/local/apache2--enable-so--with-mpm=prefork--enable-modules="setenvif rewrite deflate vhost_alias"
#apachectl start//启动Apache服务器;
#apachectl restart
#echo"/usr/local/apache2/bin/apachectl start">>/etc/rc.d/rc.local//自动启动
#httpd-t//检查配置文件httpd.conf
#apachect configtest//检查配置文件httpd.conf
#ServerRoot apache安装路径//设置服务器的根目录;
#ServerName完整的域名[:端口号]//设置服务器用于重定向(端口)和虚拟主机;
#Listen [IP地址]端口号//告诉服务器接受来自指定端口或者指定IP地址的某端口的请求;
Listen 80
Listen 61.186.160.104:8088
#ServrAdmin E-mail地址//设置Web站点管理员的E-mail地址,当产生错误时(如指定的网页找不到),服务器返回给客户端的
错误信息中将包含该邮件地址,以告诉用户该向谁报告错误;
#DocumentRoot目录路径名//设置Web服务器站点根目录;
DocumentRoot/usr/local/apache2/htdocs
#ErrorDocument错误号所要显示的网页//定义当遇到错误时,服务器将给客户端什么样的回应,通常是显示预设置的一个错误页面;
grep ErrorDocument/etc/httpd/conf/httpd.conf//httpd.conf中一些对不同错误的响应信息;
#DirectoryIndex index.php index.htm index.html default.htm//设置站点主页文件的搜索顺序;
#user nobody//设置服务器以哪种(nobody)用户身份来响应客户端的请求;
#Group#-1//设置服务器以哪种(nobody)用户身份来响应客户端的请求;nobody用户权限较小。
#AddDefaultCharset GB2312//指定默认的字符集;
#TimeOut//设置连接请求超时的时间(秒),超时将断开;
#KeepAlive//用于启用持续的连接或者禁用;KeepAlive On|Off
#MaxKeepAliveRequests//设置在一个持续连接期间允许的最大HTTP请求数目;
#KeepAliveTimeout//设置在关闭TCP连接之前,等待后续请示求的秒数;一旦接受请求建立了TCP连接后则开始计时;
#PidFile logs/httpd.pid//指定存放httpd主(父)进程号的文件名;
日志配置命令:
#ErrorLog//指定服务器存放错误日志文件的位置和文件名;
#LogLevel//设置记录在错误日志中的信息的详细程序;
emerg紧急,系统将无法使用;
alert必须立即采取措施;
crit致命情况;
crror错误情况;
warm警告;
info普通信息;
notice一般重要情况;
debug出错级别信息;
测试Apache是否正常运行
Test Page
This page is used to test the proper operation of the Apache Web server after it has been installed. If you can read this page, it means that the Apache Web server installed at this site is working properly.
#rpm-q httpd
#rpm-Uvh http-2.0.40-21.11.i386.rpm
目录说明:
/etc/httpd/conf//Apache服务器的配置文件httpd.conf
/etc/rc.d/init.d///Apache服务器启动脚本安装,httpd
/var/www/html//Web站点根目录;
/usr/bin//Apache软件包提供的可执行程序安装在该目录下。
/etc/httpd/logs//日志文件
htdocs//默认Web站点的根目录,可通过配置文件httpd.conf进行设置或更改;
cgi-bin//CGI脚本目录;
bin//apachectl启动脚本会自动设置在某些操作系统下,正常运行httpd所需的环境变量;
httpd守扩进程被调用后做的第一件事就是读取httpd.conf,并根据其配置项来配置当前Web服务器;
httpd.conf分为三部分(section),
第一部分为全局环境设置,主要用于设置ServerRoot、主进程号的保存文件、
对进程的控制、服务器侦听的IP地址、端口、要装载的DSO模块
第二部分是服务器的主要配置指一位置;
第三部分用于设置和创建虚拟主机;
Listen 80//Web服务器绑定在80端口;
DocumentRoot//设置Web站点的根目录等;
访问控制指令:
<Directory/usr/local/*/htdoes>//<Directory>使指定的目录及其子目录有效;不可嵌套。目录名可使用“*”或“?”通配符,
<Files~“\.ht">//作用于指定的文件,则不管该文件实际存在子哪个目录,允许所有主机访问位于任何目录下的.ht开的文件
Order allow,deny//指定allow和deny语句,哪一个被执行;允许、禁止访问主机。
Allow from all//允许所有主机访问;也可以是IP地址。
<Files>
</Directory>
<Location/assistant>//针对URL地址进行访问限制,不是文件系统;
Order deny,allow//
Deny from all
Allow from 61.186.160.105
</Location>
Order deny,allow//若主机没有被特别指出拒绝访问,则该资源被允许访问。
Order allow,deny//若主机没有被特别指出允许访问,则该主要将被拒绝访问该资源。
Order mntual-failure//只有那些在allow语句中被指定,同时又没有出现在deny语句的主机,才允许访问。若主机在两条指
令中都没有出现,则将被拒绝访问;
*、?//*代表任意个字符,?代表一个任意的字符;
<DirectoryMatch>//指定目录名时,可直接使用正则表达式;<Directory>若要使用正则表达式,则需要在正则表达式前加“~"
<FilesMatch>//可直接使用正则表达式来通配多个文件;
AccessFileName.htaccess//.htaccess分布式配置文件,在该文件中也可放置一些配置指令,以作用于该文件所在的目录以及
其下的所有子目录。搜寻.htaccess文件会降低系统性能;
<Directory/>
AllowOverride None//禁止系统查找.htaccess文件;
Options FollowSymLinks//Options:控制在特定目录中将使用哪些服务器特性;
</Directory>
Options命令可用的选项:
None不启用任何额处特性;
All除MultiViews之外的所有特性,默认设置;
ExecCGI允许执行CGI脚本;
FollowSymLinks服务器允许在此目录中使用符号连接。在<Location>段中无效
Includes允许服务器端包含SSI(Server-side includes)
IncludesN()EXEC允许服务器端包含,但禁用#exec和#exec CGI命令。但仍可以从ScriptAltase目录使用#include虚拟CGI脚本;
Indexes如果一个映射目录的URL被请求,而此目录中又没有DirectoryIndex(如:index.html),那么服务器返回一个
格式化后的目录列表;
MultiViews允许内容协商的多重视图;
SymLinksIfOwnerMatch服务器仅在符号连接与其目的目录或文件拥有者具有同样的用户ID时,才使用它;
ExecCGI拥有ExecCGI执行权限;
prefork.c控制Apache进程,对于使用prefork多道处理模块的Apache服务器;
<IfModule prefork.c>
StartServers 5//设置服务器启动时启动的子进程的个数;
MinSpareServers 5//设置服务器中空闲子进程(即没有HTTP处理请求的子进程)数目的下限;
MaxSpareServers 10//设置服务器中空闲子进程数目的上限。若空闲子进程超过该设置值,则父进程就会
停止多余的子进程;
MaxClients 150//设置服务器允许连接的最大客户数;
MaxRequestsPerChild 0//设置子进程所能处理请求的数目上限,0为不受限制;
</IfModule>
access_log//日志文件用于记录服务器处理的所有请求;
CustomLog指定access_log日志文件的位置和日志记录的格式;
LogFormat定义日志的记录格式;
LogFormat日志格式字符串日志格式名称
LogFormat"%h%1%u%t\"%r\"%>s%b\"%{Referer}i\"\"%{User-Agent}i\"" combined;
LogFormat"%h%1%u%t\"%r\"%>s%b" common;
LogFormat"%{Referer}i->%U" referer;
LogFormat"%{User-agent}i“ agent;
LogFormat logs/access_log common
LogFormat"%v%h%l%u%t\"%r"\%>s%b" vhost
CustomLog logs/vhost_log vhost
%a远程主机IP地址
%A本地主机IP地址
%h远程主机名
%H请求协议
%l远程登录名
%u来自auth的远程用户
%U请求的URL路径
%U{User-agent}i用户浏览器类型
%b发送的字节数,不包括HTTP标题
%t请求的时间
%r HTTP请求的第一行的内容
%s HTTP响应状态码,200代表访问成功,404代表文件未找到,403代表禁止访问,401代表未授权访问,400代表错误请求。
%m请求方法
%v服务于该请求的服务器的ServerName
%V服务器的名字,取决于UseCanonicalName的设置
%{Host}i返回HTTP请求的主机头信息,可能含端口号信息
split-logfile</var/www/myweb/vhost_log//当所有虚拟机日志都记录在主站点日志中时,使用此命令将日志按虚拟主机名分组,拆分成一个个独立的日
志文件,第个日志文件采用"虚拟主机名.log“形式命名,其中包含了该虚拟主机所产生的日志记录;
容器与访问控制指令:容器指令通常用于封装一组指令,使其在容器条件成立时有效,或者用于改变指令的作用域。
<IfModue! mpm_winnt.c>//<IfModue>用于判断指定的模块是否存在,若存在(被静态地编译进服务器,或是被动态装载进服务器)则包含于
其中的指令将有效,否则会被忽略。可嵌套使用。
<IfModue! mpm_netware.c>//若要使模块不存在时所包含的指令有效,只需在模块名前加一个“!”即可,
User nobody
Group#-1
</IfModue>
</IfModue>
基于域名虚拟主机:
例:假设当前服务器的IP地址为192.168.3.120,现要在该服务器创建两个基于域名的虚拟主机,使用端口为标准的80,其域名分别为www.myweb1.com和www.myweb2.com,站点根目录分别为/var/www/myweb1和/var/www/myweb2,日志文件分别放在/var/vhlogs/myweb1和/var/vhlogs/myweb2目录下面,Apache服务器原来的主站点采用域名www.myweb.com进行访问。
#vi/etc/hosts//使用/etc/hosts进行域名注册;
192.168.3.120 www.myweb1.com www.myweb2.com www.myweb.com
#ping www.myweb1.com//检测域名解析是否正常;
#ping www.myweb2.com
#ping www.myweb.com
#mkdir-p/var/www/myweb1
#mkdir-p/var/www/myweb2
#mkdir-p/var/vhlogs/myweb1
#mkdir-p/var/vhlogs/myweb2
#vi/etc/httpd/conf/httpd.conf
Listen 80//设置Listen指令侦听的端口
NameVirtualHost 192.168.3.120//基于域名的虚拟主机,如果对多个地址使用了多个基于域名的虚拟主机
则对每个地址均要使用此指令:NameVirtualHost IP地址:端口
NameVirtualHost*当IP地址无法确定时,使用“*”通配任意的IP地址
<VirtualHost 192.168.3.120>//定义一个虚拟主机,VirtualHost的参数必须与NameVirtualHost后面所使用的参数保持一致。
ServerName www.myweb.com//当一个请求到时,服务器会首先检查它是否使用了一个能和NameVirtualHost相匹配的IP地址。如果匹配,就会
DocumentRoot/usr/local/apache/htdoes//就会查找每个与这个IP地址相对应的<VirtualHost>配置段,并尝试找出一个ServerName或ServerAlias配置相
ServerAdmin yjghddii@126.com//与请求的主机名(域名)相同的,若找到,则使用该虚拟主机的配置,并响应其访问请求。否则将使用符合这个
</VirtualHost>//IP地址的第一个列出的虚拟主机。在最前面的虚拟主机成为默认虚拟主机。
<VirtualHost 192.168.3.120>
ServerName www.myweb1.com
DocumentRoot/var/www/myweb1
DirectoryIndex index.php index.php3 index.html index.htm default.html default.html
ServerAdmin yjghddii@126.com
ErrorLog/var/vhlogs/myweb/error_log
TransferLog/var/vhlogs/myweb1/access_log
</VirtualHost>
<VritualHost 192.168.3.200>
ServerName www.myweb2.com
DocumenRoot/var/www/myweb2
DirectoryIndex index.php index.php3 index.htm index.html default.htm default.html
ServerAdmin yjghddii@126.com
ErrorLog/var/vhlogs/myweb2/error_log
TranferLog/var/vhlogs/myweb2/access_log
</VirtualHost>
<Directory/var/www>//对Web站点目录设置访问控制;
Options FllowSymLinks
AllowOverride None
Order deny,allow
Allow from all
</Directory>
Apachectl–S//查查虚拟主机配置是否正确;
Aparhectl restart//重启Apache服务器配置生效;
例:
NameVirtualHost 192.168.168.10//服务器配有两块网卡,IP:内网192.168.168.10,外网61.186.160.104,在Internet网中,企业域名
NameVirtualHost 61.186.160.104//www.example.com指向外网IP地址,在企业内网的DNS服务器中,指向内网IP地址;现要求为来自内网
<VirtualHost 192.168.168.10 61.186.160.104>//外网的请求提供同样的Web服务。(httpd.conf中设置)
DocumentRoot/www/server1
ServerName www.example.com
</Virtual>
例:
Listen 80//服务器:192.168.168.154,服务器上创建两个基于域名(主机名)的虚拟主机,域名:www.myweb3.com和www.
Listen 8080//myweb4.com,每个虚拟主机的80端口和8080端口,分别服务一个Web站点,其站点根目录分别为
///var/www/myweb3-80、/var/www/myweb3-8080、/var/www/myweb4-80、/var/www/myweb4-8080。
NameVirtualHost 192.168.168.154:80//www.myweb3.com的80端口作为默认Web站点。
NameVirtualHost 192.168.168.154:8080
<VirtualHost 192.168.168.154:80>
ServerName www.myweb3.com
DocumentRoot/var/www/myweb3-80
<VirtualHost>
<VirtualHost 192.168.168.154:8080>
ServerName www.myweb3.com
DocumentRoot/var/www/myweb3-8080
</VirtualHost>
<VirtualHost 192.168.168.154:80>
ServerName www.myweb4.com
DocumentRoot/var/www/myweb4-80
</VirtualHost>
<VirtualHost 192.168.168.154:8080>
ServerName www.myweb4.com
DocumentRoot/var/www/myweb4-8080
</VirtualHost>
基于IP地址虚拟主机:
#cd/etc/sysconfig/network-scripts//服务器有两张网卡eth0、eth1,eth0:192.168.167.157,
#cp ifctg-eth1 ifcfg-eth1:0//eth1:192.168.167.156.eth0网卡用作了基于主机名的虚拟主机,
#vi ifcfg-eth1:0//eth1通过IP别名方式,为其绑定多个IP地址,用于提供基于IP地址
DEVICE=eth1:0//的虚拟主机。eth1绑定的第一张虚拟网卡的设备名为eth1:0,对应的
IPADDR=192.168.167.157//配置文件为ifcfg-eth1:0,通过修改配置文件中的设备名和IP地址,
#ifdown eth1//即可实现IP地址的绑定。
#ifup eth1:0
#ifup eth1
#ping 192.168.167.157
#ping 192.168.167.156
#vi/etc/hosts//192.168.167.156:www.example2.com,192.168.167.157:
192.168.167.157 www.example3.com//www.example3.com,试为其创建基于IP地址的虚拟主机,端口使用80
#mkdir-p/var/www/example2//目录分别为/var/www/example2、/var/www/example3,为这两个域再增
#mkdir-p/var/www/example3//8080端口,使其也能在8080端口发布另外的Web站点。Web站点根目录分
///var/www/example2-8080、/var/www/example3-8080
#vi httpd.conf
Listen 80
Listen 8080
<VirtualHost 192.168.167.156:80>
ServerName www.example2.com
DocumentRoot/var/www/example2
</VirtualHost>
<VirtualHost 192.168.167.156:8080>
ServerName www.example2.com
DocumentRoot/var/www/example2-8080
</VirtualHost>
<VirtualHost 192.168.167.157:80>
ServerName www.exaple3.com
DocumentRoot/var/www/example3
</VirtualHost>
<VirtualHost 192.168.167.157:8080>
ServerName www.exaple3.com
DocumentRoot/var/www/example3-8080
</VirtualHost>
操作系统课程设计《设计内核同步原语》
这里介绍linux内核修改
内核配置过程比较烦琐,但是配置的适当与否与日后linux的运行直接相关,有必要了解一下一些主要的且经常用到的选项的设置。
配置内核可以根据需要与爱好使用下面命令中的一个:
#make config(基于文本的最为传统的配置界面,不推荐使用)
#make menuconfig(基于文本选单的配置界面,字符终端下推荐使用)
#make xconfig(基于图形窗口模式的配置界面,Xwindow下推荐使用)
#make oldconfig(如果只想在原来内核配置的基础上修改一些小地方,会省去不少麻烦)
这三个命令中,make xconfig的界面最为友好,如果你可以使用Xwindow,那么就推荐你使用这个命令
如果你不能使用Xwindow,那么就使用make menuconfig好了。界面虽然比上面一个差点,总比make config的要好多了
选择相应的配置时,有三种选择,它们分别代表的含义如下:
Y--将该功能编译进内核
N--不将该功能编译进内核
M--将该功能编译成可以在需要时动态插入到内核中的模块
如果使用的是make xconfig,使用鼠标就可以选择对应的选项。如果使用的是 make menuconfig,则需要使用空格键进行选取。你会发现在每一个选项前都有个括号,但有的是中括号有的是尖括号,还有一种圆括号。用空格键选择时可以发现,中括号里要么是空,要么是"*",而尖括号里可以是空,"*"和"M"。这表示前者对应的项要么不要,要么编译到内核里;后者则多一样选择,可以编译成模块。而圆括号的内容是要你在所提供的几个选项中选择一项。
在编译内核的过程中,最烦杂的事情就是这步配置工作了,很多新手都不清楚到底该如何选取这些选项。实际上在配置时,大部分选项可以使用其缺省值,只有小部分需要根据用户不同的需要选择。选择的原则是将与内核其它部分关系较远且不经常使用的部分功能代码编译成为可加载模块,有利于减小内核的长度,减小内核消耗的内存,简化该功能相应的环境改变时对内核的影响;不需要的功能就不要选;与内核关心紧密而且经常使用的部分功能代码直接编译到内核中。
至于选项,因为比较复杂,只是简单做一介绍,编译时应视具体情况,参考帮助的内容再加以选择。
1. Code maturity level options
代码成熟等级。此处只有一项:prompt for development and/or incomplete code/drivers,如果你要试验现在仍处于实验阶段的功能,比如khttpd、IPv6等,就必须把该项选择为Y了;否则可以把它选择为N。
2. Loadable module support
对模块的支持。这里面有三项:
Enable loadable module support:除非你准备把所有需要的内容都编译到内核里面,否则该项应该是必选的。
Set version inFORMation on all module symbols:可以不选它。
Kernel module loader:让内核在启动时有自己装入必需模块的能力,建议选上。
3. Processor type and features
CPU类型。内容蛮多的,不一一介绍了,有关的几个如下:
Processor family:根据你自己的情况选择CPU类型。
High Memory Support:大容量内存的支持。可以支持到4G、64G,一般可以不选。
Math emulation:协处理器仿真。协处理器是在386时代的宠儿,现在早已不用了。
MTTR support:MTTR支持。可不选。
Symmetric multi-processing support:对称多处理支持。除非你富到有多个CPU,否则就不用选了。
4. General setup
这里是对最普通的一些属性进行设置。这部分内容非常多,一般使用缺省设置就可以了。下面介绍一下经常使用的一些选项:
Networking support:网络支持。必须,没有网卡也建议你选上。
PCI support:PCI支持。如果使用了PCI的卡,当然必选。
PCI access mode:PCI存取模式。可供选择的有BIOS、Direct和Any,选Any吧。
Support for hot-pluggabel devices:热插拔设备支持。支持的不是太好,可不选。
PCMCIA/CardBus support:PCMCIA/CardBus支持。有PCMCIA就必选了。
System V IPC
BSD Process Accounting
Sysctl support:以上三项是有关进程处理/IPC调用的,主要就是System V和BSD两种风格。如果你不是使用BSD,就按照缺省吧。
Power Management support:电源管理支持。
Advanced Power Management BIOS support:高级电源管理BIOS支持。
5. Memory Technology Device(MTD)
MTD设备支持。可不选。
6. Parallel port support
并口支持。如果不打算使用串口,就别选了。
7. Plug and Play configuration
即插即用支持。虽然linux对即插即用目前支持的不如Windows好,但是还是选上吧,这样你可以拔下鼠标之类的体验一下Linux下即插即用的感觉。
8. Block devices
块设备支持。这个就得针对自己的情况来选了,简单说明一下吧:
Normal PC floppy disk support:普通PC软盘支持。这个应该必选。
XT hard disk support:
Compaq SMART2 support:
Mulex DAC960/DAC1100 PCI RAID Controller support:RAID镜像用的。
Loopback device support:
Network block device support:网络块设备支持。如果想访问网上邻居的东西,就选上。
Logical volume manager(LVM)support:逻辑卷管理支持。
Multiple devices driver support:多设备驱动支持。
RAM disk support:RAM盘支持。
9. Networking options
网络选项。这里配置的是网络协议。内容太多了,不一一介绍了,自己看吧,如果你对网络协议有所了解的话,应该可以看懂的。如果懒得看,使用缺省选项(肯定要选中TCP/IP networking哦)就可以了。让我们看看,TCP/IP、ATM、IPX、DECnet、Appletalk……支持的协议好多哦,IPv6也支持了,Qos and/or fair queueing(服务质量公平调度)也支持了,还有kHTTPd,不过这些都还在实验阶段。
10. Telephony Support
电话支持。linux下可以支持电话卡,这样你就可以在IP上使用普通的电话提供语音服务了。记住,电话卡可和modem没有任何关系哦。
11. ATA/IDE/MFM/RLL support
这个是有关各种接口的硬盘/光驱/磁带/软盘支持的,内容太多了,使用缺省的选项吧,如果你使用了比较特殊的设备,比如PCMCIA等,就到里面自己找相应的选项吧。
12. SCSI support
SCSI设备的支持。我没有SCSI的设备,所以根本就不用选,如果你用了SCSI的硬盘/光驱/磁带等设备,自己找好了。
13. Fusion MPT device support
需要Fusion MPT兼容PCI适配器,不用选。
14. I2O device support
需要I2O接口适配器支持,在智能Input/Output(I2O)体系接口中使用。
15. Network device support
网络设备支持。上面选好协议了,现在该选设备了,可想而知,内容肯定多得很。还好还好,里面大概分类了,有ARCnet设备、Ethernet(10 or 100 Mbit)、Ethernet(1000Mbit)、Wireless LAN(non-hamradio)、Token Ring device、Wan interfaces、PCMCIA network device support几大类。我用的是10/100M的以太网,看来只需要选则这个了。还是10/100M的以太网设备熟悉,内容虽然多,一眼就可以看到我所用的RealTeck RTL-8139 PCI Fast Ethernet Adapter support,为了免得麻烦,编译到内核里面好了,不选M了,选Y。耐心点,一般说来你都能找到自己用的网卡。如果没有,你只好自己到厂商那里去要驱动了。
16. Amateur Radio support
配置业余无线广播。
17. IrDA(infrared)support
红外线支持。
18. ISDN subsystem
如果你使用ISDN上网,这个就必不可少了。
19. Old CD-ROM drivers(not SCSI、not IDE)
做的可真周到,原来那些非SCSI/IDE口的光驱谁还在用啊,自己选吧,用IDE的CD-ROM不用选。
20. Character devices
字符设备。这个内容又太多了,先使用缺省设置,需要的话自己就修改。把大类介绍一下吧:
I2C support:I2C是Philips极力推动的微控制应用中使用的低速串行总线协议。如果你要选择下面的Video For linux,该项必选。
Mice:鼠标。现在可以支持总线、串口、PS/2、C&T 82C710 mouse port、PC110 digitizer pad,自己根据需要选择。
Joysticks:手柄。即使在linux下把手柄驱动起来意义也不是太大,游戏太少了。
Watchdog Cards:虽然称为Cards,这个可以用纯软件来实现,当然也有硬件的。如果你把这个选中,那么就会在你的/dev下创建一个名为watchdog的文件,它可以记录你的系统的运行情况,一直到系统重新启动的1分钟左右。有了这个文件,你就可以恢复系统到重启前的状态了。
Video For linux:支持有关的音频/视频卡。
Ftape, the floppy tape device driver:
PCMCIA character device support:
21. File systems
文件系统。内容又太多了,老法子,在缺省选项的基础上进行修改。介绍以下几项:
Quota support:Quota可以限制每个用户可以使用的硬盘空间的上限,在多用户共同使用一台主机的情况中十分有效。
DOS FAT fs support:DOS FAT文件格式的支持,可以支持FAT16、FAT32。
ISO 9660 CD-ROM file system support:光盘使用的就是ISO 9660的文件格式。
NTFS file system support:ntfs是NT使用的文件格式。
/proc file system support:/proc文件系统是linux提供给用户和系统进行交互的通道,建议选上,否则有些功能没法正确执行。
还有另外三个大类都归到这儿了:Network File Systems(网络文件系统)、Partition Types(分区类型)、Native Language Support(本地语言支持)。值得一提的是Network File Systems里面的两种:NFS和SMB分别是linux和Windows相互以网络邻居的形式访问对方所使用的文件系统,根据需要加以选择。
22. Console drivers
控制台驱动。一般使用VGA text console就可以了,标准的80*25的文本控制台。
23. Sound
声卡驱动。如果你能在列表中找到声卡驱动那自然最好,否则就试试OSS了。
24. USB supprot
USB支持。很多USB设备,比如鼠标、调制解调器、打印机、扫描仪等,在linux都可以得到支持,根据需要自行选择。
25. Kernel hacking
配置了这个,即使在系统崩溃时,你也可以进行一定的工作了。普通用户是用不着这个功能的。
配置完后,存盘退出,当然你也可以把现在的配置文件保存起来,这样下次再配置的时候就省力气了。
接下来是编译,输入以下命令。
#make dep
#make clean
#make bzImage或make zImage
#make modules
#make modules_install
#depmod-a
第一个命令make dep实际上读取配置过程生成的配置文件,来创建对应于配置的依赖关系树,从而决定哪些需要编译而那些不需要;第二命令make clean完成删除前面步骤留下的文件,以避免出现一些错误;make zImage和make bzImage则实现完全编译内核,二者生成的内核都是使用gzip压缩的,只要使用一个就够了,它们的区别在于使用make bzImage可以生成大一点的内核。建议大家使用make bzImage命令。
后面三个命令只有在你进行配置的过程中,在回答Enable loadable module support(CONFIG_MODULES)时选了"Yes"才是必要的,make modules和make modules_install分别生成相应的模块和把模块拷贝到需要的目录中。
严格说来,depmod-a命令和编译过程并没有关系,它是生成模块间的依赖关系,这样你启动新内核之后,使用modprobe命令加载模块时就能正确地定位模块。
更新
经过以上的步骤,我们终于得到了新版本的内核。为了能够使用新版本的内核,我们还需要做一些改动:
#cp/usr/src/linux/System.map/boot/System.map-2.4.18
#cp/usr/src/linux/arch/i386/bzImage/boot/vmlinuz-2.4.18
以上这两个文件是我们刚才编译时新生成的。下面修改/boot下的两个链接System.map和vmlinuz,使其指向新内核的文件:
#cd/boot;rm-f System.map vmlinuz
#ln-s vmlinuz-2.4.18 vmlinuz
#ln-s System.map-2.4.18 System.map
七、修改启动管理器
如果用LILO,修改/etc/lilo.conf,添加以下项:
image=/boot/vmlinuz-2.4.18
label=linux240
read-only
root=/dev/hda2
其中root=/dev/hda2一行要根据需要自行加以修改。
运行:
#/sbin/lilo-v
确认对/etc/lilo.conf的编辑无误,现在重新启动系统:
#shutdown-r now
如果是用Grub启动管理器,则添加如下几项即可。
title Red Hat linux(2.4.18)
root(hd0,0)
kernel/vmlinuz-2.4.18 ro root=/dev/hda2
Grub不需再次调用命令,自动生效。
重启以后就可以用新内核了。