Linux
xander1981
这个作者很懒,什么都没留下…
展开
-
linux内核启动(2)——2.1. Tack结构和进程表
2.进程和中断管理(http://www.chinaunix.net/jh/4/571760.html) 2.1. Tack结构和进程表 2.2. 创建和中止任务与内核线程 2.3. 调度程序 2.4. Linux执行链表 2.5. 等待队列 2.6.转载 2009-09-04 17:01:00 · 557 阅读 · 0 评论 -
带xen的linux下直接安装虚拟系统
以下操作均在root@local-desktop 完成。1. dd if=/dev/zero of=fedora50.img bs=2k seek=2048k count=1 在/root中创建一个大小为4.1G的fedora映像文件。2. mkfs.ext3 fedora50.img 将该映像文件格式化成ext3格式。3. mkdir /mnt/fedora原创 2009-09-07 17:27:00 · 360 阅读 · 0 评论 -
linux内核启动(2)——2.10.原子操作
2.10. 原子操作目前有两种类型的原子操作:bitmaps 和 atomic_t。对于维护“已分配”或者“释放”单位(这些单位来自于某些大型的以数字标识每个单位的集合)的概念,bitmaps非常便利。释放inodes和块就是例子。这也在某些简单锁中有广泛的应用,例如提供打开设备的互斥访问。这样的例子可以在arch/i386/kernel/microcode.c中被找到。/* * B转载 2009-09-04 17:11:00 · 410 阅读 · 0 评论 -
linux内核启动(2)——2.7.下半部机制
2.7. 下半部机制bottom half(又名下半部机制)是Linux提高系统中断响应和处理能力的有效机制。 发生中断时,处理器要停止当前正在执行的指令,而操作系统负责将中断发送到对应的设备驱动程序去处理。在中断的处理过程中,系统不能进行其他任何工作,因此,在这段时间内,设备驱动程序要以最快的速度完成中断处理,而其他大部分工作在中断处理过程之外进行。Linux 内核利用bottom转载 2009-09-04 17:08:00 · 405 阅读 · 0 评论 -
linux内核启动(2)——2.6.内核时钟
2.6. 内核时钟现在我们来看看内核时钟。内核时钟常用来为细节函数(时钟处理函数)分派执行时间。主数据结构timer_list定义在include/linux/timer.h文件中:struct timer_list { struct list_head list; unsigned long expires; unsigned long data; void (*function)转载 2009-09-04 17:08:00 · 352 阅读 · 0 评论 -
linux内核启动(2)——2.5. 等待队列
2.5. 等待队列当进程要求内核完成一件当前不会发生但稍后可能发生的事情时,它就进入休眠并在事件条件符合时被唤醒。内核实现机制的其中之一就被称为“等待队列”。Linux实现允许通过TASK_EXCLUSIVE标记来唤醒。对于等待队列,你可以采用通用的队列,然后简单地sleep_on /sleep_on_timeout /interruptible_sleep_on /interrup转载 2009-09-04 17:07:00 · 387 阅读 · 0 评论 -
linux内核启动(2)——2.4.Linux执行链表
2.4. Linux执行链表在遍历等待队列之前,首先执行Linux标准的双向执行链表。等待队列用起来繁杂,行话称之为“list.h 实现”,因为它最相关的文件是include/linux/list.h。基础数据结构是list_head结构:struct list_head { struct list_head *next, *prev; }; #define LIST_HEAD_IN转载 2009-09-04 17:04:00 · 275 阅读 · 0 评论 -
linux内核启动(2)——2.3.Linux 调度程序
2.3. Linux 调度程序调度程序的任务就是从多个进程中挑选一个访问当前CPU,它在kernel/sched.c中实现,对应的被每个内核源文件都引用的头文件定义在include/linux/sched.h。任务结构中对应调度的字段为: p->;need_resched:如果schedule()函数需要在下次唤醒,则设置本字段。 p->;counte转载 2009-09-04 17:03:00 · 391 阅读 · 0 评论 -
linux内核启动(2)——2.2.创建和中止任务与内核线程
2.2. 创建和中止任务与内核线程不同的操作系统书籍,从一个“正在执行的程序的实例”到“由clone或者fork系统调用产生的任务”等不同方式定义了“进程”。在linux下,共有三种类型程序: 空线程; 内核线程; 用户任务;空线程在为第一个CPU引导时创建,然后依靠定义在arch/i386/kernel/smpboot.c的fork_转载 2009-09-04 17:03:00 · 747 阅读 · 0 评论 -
linux内核启动(1)
本文档是《Linux2.4 内核说明文档》中的第一部分。以下是整个文档大致目录: 1,启动 2,进程和中断管理 3,虚拟文件系统 4,Linux 页缓冲 5,IPC机制 本篇文档目录: 1.1. 创建Linux内核镜像 1.2. 引导:概述 1.3. 引导:BOIS POST 1.4. 引导:bootsector和setup 1.5. 采用LILO转载 2009-09-04 16:57:00 · 457 阅读 · 0 评论 -
linux内核启动(2)——2.9.I386体系中系统调用实现
2.9. I386体系中系统调用实现linux实现系统调用有两种机制: lcall7/lcall27调用方式; 0x80号软中断;Linux附带的程序使用0x80方式,同时外来程序如UNIX (Solaris, UnixWare 7等)使用lcall7机制。由于历史原因,lcall7机制包含了lcall27机制,但是处理函数却命名为lcall7_fun转载 2009-09-04 17:10:00 · 343 阅读 · 0 评论 -
linux内核启动(2)——2.8.任务队列
2.8. 任务队列任务队列可以看作是以前的下半部机制的动态扩展。在源代码里面,有时以新下半部机制来称呼他们。以前的下半部机制有一下的限制:1) 他们仅有一个固定的数目;2) 每个下半部仅仅能够关联一个处理函数;3) 下半部可以被旋转锁结束,所以他们不能阻塞;所以,对于任务队列,任意数目的函数可以被关联并前后连续的处理。通过DECLARE_TA转载 2009-09-04 17:09:00 · 420 阅读 · 0 评论 -
SELinux结构图
原创 2009-12-25 10:18:00 · 535 阅读 · 0 评论