导航:首页 > 编程系统 > linuxkernel38

linuxkernel38

发布时间:2025-02-28 10:02:19

linux内核编译的几点疑惑

(1)编译内核于升级内核没有直接关联。如果编译的内核的版本比现在系统使用的版本新,那么使用编译后的内核可以看成是内核升级。但是有时候是因为需要而编译内核,比如某些模块需要重新编译,打开某些原来内核没打开的选项,这时候可以是同版本内核重新编译,这就不能说是升级内核。
(2)新内核编译好后,还需要安装。也就是make install(把bzimage移动到boot,重命名为vmlinuz) ,make moles install(把模块全部放到/lib/moles/(内核名)文件夹内);然后depmod,在/lib/moles/(内核名)建好新的***.dep文件,这样启动时系统就能通过读取***.dep文件信息来加载模块。还要在boot下新建一个于内核名一样的.img文件,如vmlinuz,那么就是vmlinuz.img,至于系统使用哪个内核,那是在grub.cfg里面写的配置文件决定的。指定哪个就从哪个启动,写两个entry就可以选择启动到哪一个。老内核当然还可以继续使用。
(3)新内核主要是一些新的特性,驱动更改什么的,我不是很清楚,比如2.6.34以上的内核就支持通过echo OFF>/sys/kernel/debug/vgaswitchroo/switch关闭某个显卡,也就是双显卡切换支持,又比如2.6.38中加入了所谓的autogroup在某些情况下提升桌面性能的特性,还有一些对系统某些情况的处理方式的变化等。但是从用户层来说一般感觉不到明显变化。对于程序什么的使用不影响(绝大多数)。

Ⅱ 如何更方便的查看Linux内核代码的更新记录

在官方http://git.kernel.org/网站可以找到linux的各种git更新记录,比如virt/kvm/kvm.git,通过这个链接,可以看到kvm的各种更新。
看我们重点关注的Linux 2.6内核的更新情况,我们知道Linux 2.6内核是由linus本人维护的,所以对应的git链接为:linux/kernel/git/torvalds/linux-2.6.git,从显示来看,这个和另外一个链接linux/kernel/git/torvalds/linux.git已经没有什么差别,估计是因为linux 3.x版本的引入以及版本仓库管理做了改进与优化,不过没关系,不影响我们继续了解这个官方web git库。
首先,查找我们关注的对应版本,这在linux/kernel/git/torvalds/linux-2.6.git页面上点击tags链接即可进入到所有版本列表,http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=tags,打开界面如下:

在这个页面就能找到对应的版本,以2.6.38.8为例,对应的条目即为Linux 2.6.38-rc8:

这里有好几个链接,不过点几下会发现都链到同一处,所以我们直接看最快的路径,shortlog和log,这两个链接点开后显示的都是修改日志,只是shortlog显示得比较紧凑而已。点开shortlog:

点击第一个条目:
2011-03-08 Linus Torvalds Linux 2.6.38-rc8 v2.6.38-rc8 commit | commitdiff | tree | snapsho
的tree链接,在这里可以看到2.6.38.8的所有最终代码,也就是和从http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.38.8.tar.bz2下载的代码一致。
下面我们举个示例,查看一下nmi到2.6.38.8这个版本为止都大致有什么更新?
跟着“[linux/kernel/git/torvalds/linux-2.6.git] / arch / x86 / include / asm /”一路链接点一下来,到这里:

找到nmi.h文件(这个文件跟NMI相关)条目,点击后面的history链接:

可以看到,从2008-10-23到当前版本的所有变动都有了。比如第一个条目2011-01-07有对nmi做修改提交,后面的commitdiff就是提交的更新内容,diff to current当然就不要了,因为自然是commitdiff一致,而其他条目则需要diff to current,因为它们的commitdiff是与后面一个版本的不同,而diff to current是针对Linux 2.6.38-rc8的不同;如果要看从2008-10-23到Linux 2.6.38-rc8的所有更新,只需点击2008-10-23这个条目的diff to current链接即可。
上面示例比较简单,我也说得比较粗糙,主要是由于里面的链接非常的多,一个个描述起来比较麻烦,贴图太多也只是浪费我个人网站的服务器空间而已,最好的办法是自己动手去点下链接,查看一下内容,几个回合肯定就能摸索清楚个一二了。

Ⅲ Linux 为什么还要坚持使用宏内核

深入探讨:Linux为何坚守宏内核设计


在System研究领域,Linux的宏内核设计一直是讨论的焦点。尽管Monolithic Kernel与Micro Kernel的争论已久,但Linux为何选择前者,背后的原因更深层次。让我们一起来看看这个决定背后的逻辑和考量因素。


Linux的起源可以追溯到Linus Torvalds的个人项目,他选择Monolithic Kernel是出于实现上的便利性。相比Micro Kernel需要处理复杂的通信机制,Monolithic Kernel在初期更为简洁,便于快速构建和扩展。更重要的是,Linux的目标是提供易用性,而非追求极致的效率,这一点与Minix追求全面兼容性但牺牲效率形成了对比。


Linux的成功在于其聚焦于核心功能的统一API,允许底层硬件驱动的灵活扩展。在初始阶段,Linux专为当时用户最多的i386架构优化,但在关键领域如内存管理和网络上表现出色,吸引了大量用户,从而奠定了其在操作系统领域的地位。而Monolithic Kernel在这些场景下表现稳定,证明了其在特定应用场景下的效能和实用性。


尽管学术界曾认为Micro Kernel在效率上具有优势,但Linux的设计理念更强调易用性和兼容性。实际上,LinuxKernel的成功案例也表明,设计上的优秀并不总是决定成败的唯一因素。正如Worse is Better理论所指出,有时候,简单实用的设计可能更胜过复杂的理想方案。Nokia的Symbian系统就是一个例子,它凭借简洁的架构,在一段时间内赢得了市场。


回到Linux的宏内核选择,它并非是固定不变的决定,而是适应了Linux项目的需求和发展。正如@王垠 所言,内存管理等核心功能置于内核态,是宏内核(Monolithic)而非宏观(Macro)的含义所在。操作系统设计的核心目标是保护用户态程序,隔离内存,确保安全,而非语言限制。C语言的指针操作只是内存管理的一种工具,而非设计障碍。


总结来说,Linux坚持使用宏内核,是基于其特定的历史背景、易用性原则和市场需求。虽然Micro Kernel在某些方面有其优点,但Linux在宏内核的道路上取得了巨大的成功,这使得它在实践中选择了最适合自己的道路。因此,我们可以说,Linux的设计选择与其独特的历史和哲学紧密相连,而非单纯的技术优劣之争。

Ⅳ linux双显卡怎么切换到独立显卡

如有驱动问题请咨询关注驱动人生
Thinkpad r400 t400等等机器都有着具有双显卡的型号,一般是ati3470和intel4500
利用
lspci | grep VGA
这个命令就可以看到目前可以使用的显卡是哪些
linux在默认情况下是两个显卡都开启,且电源管理极差,导致电脑温度超高,如果在BIOS里面强行切换为一个显卡,当然也可以解决这个问题,但是在双系统的情况下,就极为不便。如果需要切换显卡还要重启电脑,那实在是太落后了。
linux kernel 2.6.38以上的内核开始支持双显卡的切换。
在linux3.06下切换显卡的模块仍然处于debug状态,首先就要加载这些模块
Step1:
mount -t debugfs debugfs /sys/kernel/debug
注:需要在root权限下执行
Step2:
>cat /sys/kernel/debug/vgaswitcheroo/switch
查看是否可以进行显卡切换,正常的输出类似于:
0:DIS: : Pwr:0000:01:00.0
1:IGD:+:Pwr:0000:00:02.0
如果没有任何输出,那就很抱歉,这种方法不管用了,可能是linux内核过旧
Step3:
echo DDIS > /sys/kernel/debug/vgaswitcheroo/switch
用来切换到独立显卡
echo DIGD > /sys/kernel/debug/vgaswitcheroo/switch
用来切换到集成显卡
echo OFF > /sys/kernel/debug/vgaswitcheroo/switch
这个命令是用来关闭不用的显卡电源
echo ON > /sys/kernel/debug/vgaswitcheroo/switch
这个是用来重新开启关闭的显卡电源
一般情况下,我们就执行第三条命令
echo OFF > /sys/kernel/debug/vgaswitcheroo/switch
可以再看一下/sys/kernel/debug/vgaswitcheroo/switch这个文件的状态
cat /sys/kernel/debug/vgaswitcheroo/switch
如果输出结果是
0:DIS: :Off:0000:01:00.0
1:IGD:+:Pwr:0000:00:02.0
那就表明成功了。
这里Off表示电源已经关闭,Pwr表示正在运转。
至此大功告成,可以在rc.local里面加上
mount -t debugfs debugfs /sys/kernel/debug
echo OFF > /sys/kernel/debug/vgaswitcheroo/switch
这两句话,这样每次开机就自动将不用的显卡关闭电源了,不用再忍受烧烤温度的电脑。

阅读全文

与linuxkernel38相关的资料

热点内容
红头文件内容什么字体 浏览:344
编程猫怎么上下拖动 浏览:115
sai绘画app怎么用 浏览:849
tomcat内存读取配置文件失败 浏览:890
广东深圳学编程什么机构比较好 浏览:811
教视网是什么网站 浏览:104
电信app有哪些可以用宽带登录的 浏览:845
羽博数据线和罗马仕哪个好 浏览:425
升级包能用手机解压吗 浏览:922
手机浏览器用什么编程软件 浏览:351
wordpress添加小工具 浏览:566
indesign剪刀工具 浏览:956
图片上的文件怎么复制出来怎么办啊 浏览:264
网络综艺节目如何破局前行 浏览:297
做好游戏编程如何生成二维码 浏览:684
百店联盟最新版本 浏览:933
word2007背景文字 浏览:535
mvc反序列化json字符串 浏览:373
如何一个人建网站 浏览:979
19216801路由器密码 浏览:151

友情链接