求新一点的,大家觉得萌新求问这个好用吗的DS内核。是...

linux最新内核的一些变化以及我的一些想法 - CSDN博客
linux最新内核的一些变化以及我的一些想法
自从2.6内核放出以后,对于内核爱好者来说,每天都有享不尽的大餐,太令人激动了,每个版本都会推出新东西,本文就很简单的两个方面来讨论一下,一个是2.6内核以后在进入系统空间S***E_ALL的时候,将ds寄存器设置为了__USER_DS
#define S***E_ALL /
movl $(__USER_DS), % /
movl %edx, % /
movl %edx, %
这 里将ds和es设置成了__USER_DS,这岂不是胡闹吗?记住,linux之所以设置什么ds,cs段选择符也是例行公事,完全没有必要,要明白为什 么这里将ds设置成__USER_DS,还要先看看ds是干什么用的,ds是数据段寄存器,cs是代码段寄存器(涉及到intel寄存器的可见部分和不可 见部分,这个不谈),ds的保护作用是:如果你访问的段,要求的访问级别高于当前进程的代码段级别的话,访问会导致GP异常。现在进入了内核,当前代码段 的访问级别为0,处于最高级别,它访问任何段都不会出错,再者,linux为了减少复杂性,只用了2个级别,那么就没有任何问题了,如果要像intel规 定的那样将ds寄存器设置成 __KERNEL_DS,那么看看从内核返回的时候:恢复CS,EIP的值,此时CS的CPL是3.因为DS,ES被设为了__KERNEL_DS,所以其DPL是0,所以要将DS,ES中的值清除.这样就要一个清除动作,损失了效率,因此就先将ds段寄存器设置成__USER_DS,这么做的一切都是 intel的什么狗屁分段机制造成的,汗!另外在创建内核线程的时候还有一处诡异也是这个道理:
int kernel_thread(int (*fn)(void *), void * arg, unsigned long flags)
struct pt_
memset(®s, 0, sizeof(regs));
regs.ebx = (unsigned long)
regs.edx = (unsigned long)
regs.xds = __USER_DS;//一会ret_from_fork的时候要RESTORE_ALL
regs.xes = __USER_DS;
regs.orig_eax = -1;
regs.eip = (unsigned long) kernel_thread_
regs.xcs = __KERNEL_CS;
regs.eflags = X86_EFLAGS_IF | X86_EFLAGS_SF | X86_EFLAGS_PF | 0x2;
/* Ok, create the new process.. */
return do_fork(flags | CLONE_VM | CLONE_U***ACED, 0, ®s, 0, NULL, NULL);
E***Y(ret_from_fork)
pushl %eax
call schedule_tail
GET_THREAD_INFO(%ebp)
jmp syscall_exit
syscall_exit:
# make sure we don't miss an interrupt
# setting need_resched or sigpending
# between sampling and the iret
movl TI_flags(%ebp), %ecx
testw $_TIF_ALLWORK_MASK, %cx
# current->work
jne syscall_exit_work
restore_all:
RESTORE_ALL
#define RESTORE_ALL
#这里RESTORE_ALL的正是上面伪造的regs现场
RESTORE_REGS
addl $4, %
#define RESTORE_REGS
RESTORE_INT_REGS; /
.section .fixup,"ax";
movl $0,(%esp); /
movl $0,(%esp); /
.section __ex_table,"a";/
.long 1b,3b;
.long 2b,4b;
上面就是说2.6内核已经不再用__KERNEL_DS了,因为没有任何意义。(传统的intel段寄存器里面会有一些“门”,linux包括windows并没有用那么
多复杂的专为老式系统设计的“门”)
说完了这个再说说内核线程的创建,以前都是直接调用kernel_thread就完事了,最新的2.6.26和27内核倒好,专门为创建内核线程在系统保 留了一个内核守护线程,这下好了,你要创建一个内核线程也要向这个守护线程请求,然后排队,唤醒这个守护线程,这样这个守护线程会替你把内核线程创建出来,linux对进程/线程真是情有独钟啊!重要的是,进程/线程拥有上下文,于是它就可以接受系统的管理,这样就不会有那么多的限制,管理起来更方便, 毕竟将创建内核线程这件事情给统一管理了,但是我担心的是。这会不会出现单点故障。唉,分离和统一,一对矛盾啊,当你觉得不能再进一步统一时,就尝试分离吧!前面的博客还说windows喜欢将一切纳入自己的“管理器”,现在linux也差不多了,但是不同的是,windows钟情于自己设计的对象,一切 都是对象,所以管理器都是对象管理器,而linux更钟情于一个古老的概念----进程,实际上,linux能进程/线程化的都进程/线程化了。
设计上的东西,说起来没完,就此打住,且待下回!
本文已收录于以下专栏:
相关文章推荐
  内核抢占补丁在2.5系列中就已经被打上,接下来在2.6中也会打。这将显著地降低用户交互式应用程序、多媒体应用程序等类似应用程序的延迟。这一特性对实时系统和嵌入式系统来说特别有用。
众所周知,Linux 桌面系统与 MAC 或 Windows 相比有许多不如人意的地方,为了改善这种状况,开源社区提出用户态需要内核提供一些机制,以便用户态能够及时地得知内核或底层硬件设...
众所周知,Linux 桌面系统与 MAC 或 Windows 相比有许多不如人意的地方,为了改善这种状况,开源社区提出用户态需要内核提供一些机制,以便用户态能够及时地得知内核或底层硬...
板子上插入SD卡启动Linux系统后,emmc的设备名称是/dev/mmcblck1;板子上没有插入SD卡,Linux启动后,emmc的设备名称是/dev/mmcblck0.
uboot传递...
注:我也觉得,linux的好处是开源,坏处恰好也就是开源。
转:http://blog.csdn.net/jw212/article/details/6702152
原标题“a...
转:自、 引言
转自:/developerworks/cn/linux/l-inotifynew/
众所周知,Linux 桌面系统与 MAC 或 Wi...
众所周知,Linux 桌面系统与 MAC 或 Windows 相比有许多不如人意的地方,为了改善这种状况,开源社区提出用户态需要内核提供一些机制,以便用户态能够及时地得知内核或底层硬...
最近Linux的最新内核已经release到Linux-3.19-rc6,根据Linus的release note,大约再经过一次rc7版本就可以正式release了。Linux 3.19内核在blo...
/developerworks/cn/linux/l-inotifynew/
众所周知,Linux 桌面系统与 MAC 或 Windows 相比...
众所周知,Linux 桌面系统与 MAC 或 Windows 相比有许多不如人意的地方,为了改善这种状况,开源社区提出用户态需要内核提供一些机制,以便用户态能够及时地得知内核或底层硬...
他的最新文章
讲师:吴岸城
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)DS6和途观 我该如何抉择?求大家指正释疑。_DS 6_长安标致雪铁龙
& DS6和途观 我该如何抉择?求大家指正释疑。 (发表于 )
正在加载,请稍候......
DS6和途观 我该如何抉择?求大家指正释疑。 目前陷入选车困难中,去年看了很多车型,最初看好新奇骏,但是家人反对日系车,只好作罢。之后DS6上市,惊鸿一瞥就迷上了它的外观,特别是看了现车后,发觉做工一流,内饰也很漂亮,还有车载互联系统等我喜欢的装置。在已经打算下单订车之际,又被家人浇了一盆凉水:本地没有4S店,后期保养维护是个大问题,而且是小众车型,维护费用也会偏高;再之是新车型,各种问题还有待时间验证!之后家人热情推荐途观,原因就是此车保有量高,维修便宜;4S店很近,维护方便;大众车保值率高等等。今日我又专门去4S店再次看了看途观,其做工较DS6明显要差一点,而且后备箱体积在不放下后排的情况下,比DS6后备箱小五分之一左右。当然,途观也有优点,身高比DS6高10厘米,底盘也高一点点,还有前后都是独立悬架等等。目前的情况是这样:在DS 6 2014款 1.6T 豪华版THP160和途观 2015款 1.8TSI 自动两驱豪华型中选择,首先说价格,通过内部渠道,DS6 160豪华大致可以优惠5000(非现金优惠,加送安全包及其他),DS6车价为22.99万元;途观此款车原价25.98万,本地加价1.5万元,也是通过外地其他渠道购车可以免加价,再优惠3万,也就是说途观22.98万元。如此一来两款车,价格几乎一致,在此情况下,我有点动摇了,但是想到途观EA888发动机的普遍存在的问题,又有点怕怕。(途观目前换代到2015版本,是否其发动机进行了优化?)现求各位车友,帮忙参考分析他们各自的优缺点,我好下定决心,不再犹豫。请各位不要简单推荐,说出你的理由。谢谢大家! 用户名 操作 操作时间 查看全部 ...

参考资料

 

随机推荐