`
kongweile
  • 浏览: 517300 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论
文章列表
  我们学习操作系统课程的时候,一直在讲微内核,说什么“微内核是现代操作系统的主流”(时间太久,记不清了,如果说错了,不要拍我)。可是事实上,真正进入工业级别应用的微内核操作系统并不多,Microsoft的系统虽 ...
from : http://www.yandong.org/archives/191 介绍 WIKI上的解释是:在计算机科学中,微内核是一个近乎最小的软件集合,但具有能够提供实现操作系统所需的机制。  In computer science, a microkernel is the near-minimum amount of software that can provide the mechanisms needed to implement an operating system (OS).   —wiki 微内核把硬件驱动,协议栈,以及文件系统等都放入用户空间 ...
Linux模块简介   首先这个module不同于microkernel的module,microkernel的module是一个个的daemon进程,工作于用户 空间,Linux的module只是一个内核的目标代码,内核通过执行运行时的连接,来把它整合到kernel中去,所以说Linux的module机制 并没有改变Linux内核为monolithic OS本质,其module也是工作于内核模式,享有内核的所有特权。   至于为什么要引入Linux Kernle Module(一下简称LKM),我想至少有一下几点: 模块化编程的需要,降低开发和维护成本。
70年代末,在Unix发展到了版本6之后,AT&T认识到了Unix的价值,成立了Unix系 统实验 室(Unix System Lab,USL)来继续发展Unix。因此AT&T一方面继续发展内部使 用的Unix 版本7,一方面由USL开发对外正式发行的Unix版本,同时AT&T ...
在头文件 <linux/kernel.h> 中定义了 【8种可用的日志级别字符串】KERN_EMERG    用于紧急事件消息,它们一般是系统崩溃之前提示的消息。KERN_ALERT    用于需要立即采取动作的情况。KERN_CRIT     临界状态,通常涉及严重的 ...

关于Linux的syslog

内核中printk发出的消息是这样传递到用户空间的。 内核留给用户空间的接口是syslog(2),glibc对它进行了包装,于是就有了klogctl(3)和syslog(3)。 先由klogd通过klogctl(3)搜集内核消息(见sysklogd/klogd.c),并通过自己实现的syslog()(注意:和syslog(2),syslog(3)都不一样)传递给 syslogd。syslogd根据/etc/syslog.conf的配置情况进行记录。syslogd提供的是一个统一的方式,它不单单记录内核的消息,还包括其它服务器进程的消息,比如Apache,vsftp。 klogd和sy ...
在网络中,不少服务器采用的是Linux系统。为了进一步提高服务器的性能,可能需要根据特定的硬件及需求重新编译Linux内核。编译Linux内核,需要根据规定的步骤进行,编译内核过程中涉及到几个重要的文件。比如对于RedHat Linux,在/boot目录下有一些与Linux内核有关的文件,进入/boot执行:ls –l。编译过RedHat Linux内核的人对其中的System.map 、vmlinuz、initrd-2.4.7-10.img印象可能比较深刻,因为编译内核过程中涉及到这些文件的建立等操作。那么这几个文件是怎么产生的?又有什么作用呢?本文对此做些介绍。   一、vmli ...
在线课件:http://210.44.176.183/jsjxy/jsjzcyl/%E6%95%99%E5%AD%A6%E8%AF%BE%E4%BB%B6/Chap03/3.5.2.htm 与主存容量相比,Cache的容量很小,它所保存的信息仅是主存信息的一个子集,且cache与主存的信息交换是以块为单位。为了把信息放到Cache中,必须事先规定好主存与cache之间的地址映像方式,即某一个Cache块可以作为哪些主存块的副本(即映像)。映像方式一旦确定,就决定了访问Cache时对主存地址的理解,因而也就决定了Cache的组织结构。目前有三种地址映像方式:直接映像、全相联映像和组相联映像。   ...
http://7dot9.com/2011/08/android%E4%B8%AD%E8%A7%A3%E5%86%B3%E5%9B%BE%E5%83%8F%E8%A7%A3%E7%A0%81%E5%AF%BC%E8%87%B4%E7%9A%84oom%E9%97%AE%E9%A2%98/ 在上一篇博文Android Bitmap内存限制中我们详细的了解并分析了Android为什么会在Decode Bitmap的时候出现OOM错误,简单的讲就是Android在解码图片的时候使用了本地代码来完成解码的操作,但是使用的内存是堆里面的内存,而堆内存的大小是收VM实例可用内存大小的限制的,所以当应 ...
.进程的堆栈 内核在创建进程的时候,在创建task_struct的同事,会为进程创建相应的堆栈。每个进程会有两个栈,一个用户栈,存在于用户空间,一个内核栈,存在于内核空间。当进程在用户空间运行时,cpu堆栈指针寄存器里 ...

Linux 内核堆栈

所有进程(包括内核进程和普通进程)都有一个内核栈,在x86的32位机器上内核栈大小可以为4KB或8KB,这个可以在编译内核的时候配置。内核栈的用 途有两个:1)当进程陷入内核态,即内核代表进程执行系统调用时,系统调用的参数就放在内核栈上,内核栈记录着进程的在内核中的调用链;2)在内核栈被配 置成8KB大小的情况下,当中断服务程序中断当前进程时,它将使用当前被中断进程的内核栈。对于用户进程,其既有用户地址空间中的栈,也有它自己的内核栈。而内核进程就只有内核栈。   每一个进程(包括普通进程和内核进程)的地址空间都分为用户地址空间和内核地址空间两部分,在32位的x86机器上,用户地址空间的 ...
http://19880512.blog.51cto.com/936364/274610 最近linux内核的中断部分,总是被书里的栈弄晕,一会儿内核栈,一会儿用户栈的……很是崩溃,在网上google了一下 找了一篇不错的文章拿来分享。   5.8 Linux 系统中堆栈的使用方法 本节内容概要描述了Linux内核从开机引导到系统正常运行过程中对堆栈的使用方式。这部分内容的说明与内核代码关系比较密切,可以先跳过。在开始阅读相应代码时再回来仔细研究。 Linux 0.12系统中共使用了4种堆栈。第1种是系统引导初始化时临时使用的堆栈;第2种是进入保护模式之后提供内核程序初始化使 ...
Debian 6 驱动开发环境搭建1.安装相关工具apt-get install -y gcc g++ gdb make build-essential2
由于linux-kernel 的mail list中邮件很多,有时一天会有好几百封,所以最好单独申请一个邮箱用来接受   第一步  请求订阅 用刚申请的邮箱发送一封邮件到majordomo@vger.kernel.org,主题自己定义(我一般用一个hello), 内容为:subscribe linux-kernel 下面这个是我的申请邮件: From:  "qiang wang"<0oo0.hust@gmail.com>;Date:  Sun, Nov 6, 2011 11:58 AMTo:  "majordomo"<m ...
http://blog.csdn.net/ostrichmyself/article/details/5333558 http://blog.csdn.net/liuhaobupt/article/details/5350950 http://linux.chinaunix.net/techdoc/beginner/2006/06/06/933913.shtml   Unix文化贯穿始终的一条设计主线, 被翻译为: 机制, 而不是策略(Mechanism, not policy), 这句话的英文解释如下:   The distinction between mechanis ...
Global site tag (gtag.js) - Google Analytics