linux kernel
拉里山姆
这个作者很懒,什么都没留下…
展开
-
让我们现在开始Start Kernel: i386_start_kernel
http://blog.chinaunix.net/uid-1701789-id-161409.htmlKernel是从header_32.S里面跳转到i386_start_kernel的。回忆一下在进入i386_start_kernel之前已经建立起来的运行环境:1. CR3已经指向PMD或者PT的起始地址。2. PMD或者PT已经完全建立起来,其所指向的页框已经覆盖了从0起转载 2013-12-23 11:27:37 · 773 阅读 · 0 评论 -
Linux 上的基础网络设备详解
http://blog.jobbole.com/50618/原文出处: IBM 夏文超 抽象网络设备的原理及使用网络虚拟化是 Cloud 中的一个重要部分。作为基础知识,本文详细讲述 Linux 抽象出来的各种网络设备的原理、用法、数据流向。您通过此文,能够知道如何使用 Linux 的基础网络设备进行配置以达到特定的目的,分析出 Linux 可能转载 2014-02-08 14:09:36 · 831 阅读 · 0 评论 -
linux 的 page 结构体的一点笔记
http://bbs.bccn.net/thread-374463-1-1.htmlLinux的内核在内存管理中处理的最小单位是physical pages然而处理器的的最小的可寻址的单位是byte 或者是 word很多32位系统构架都是4k的页,64位则是8k的页所以对于4k的页,1G的内存就有262144个不同的页内核通过struct page 结构体来表示转载 2014-02-08 17:42:20 · 4626 阅读 · 0 评论 -
Why Memory Barrier?
http://sstompkins.wordpress.com/2011/04/12/why-memory-barrier%EF%BC%9F/要了解如何使用memory barrier,最好的方法是明白它为什么存在。CPU硬件设计为了提高指令的执行速度,增设了两个缓冲区(store buffer, invalidate queue)。这个两个缓冲区可以避免CPU在某些情况下进行不必要的转载 2014-04-25 17:34:44 · 573 阅读 · 0 评论 -
子进程复制了父进程的什么
http://www.cnblogs.com/zhangchaoyang/articles/2317420.html如果你对代码段、数据段、栈、堆存放哪些数据还不是很清楚,请先看我写和Linux 内存管理。有时会出现父子进程变量的地址一样,但值不一样。看下面代码:#include#includestring.h>#include#includemain(){转载 2014-04-11 10:40:50 · 836 阅读 · 0 评论 -
文件与内存的桥梁:Page Cache
作者:Gustavo Duarte翻译:fleurer原文:http://duartes.org/gustavo/blog/post/page-cache-the-affair-between-memory-and-files前面我们观察了内核为用户进程管理虚拟内存的方法,简单起见,一时忽略了文件和IO。本文则着重讨论下这块,说说文件和内存之间的暧昧关系,及其对性能的影响。转载 2014-04-25 17:36:06 · 818 阅读 · 0 评论 -
Module Example
http://docs.blackfin.uclinux.org/doku.php?id=linux-kernel:modules:example转载 2014-06-06 15:16:47 · 933 阅读 · 0 评论 -
linux initrd
http://blog.csdn.net/veritastry/article/details/6435276第二部分:initrd 文件探秘 kernel被GRUB加载经内存并执行后会进一步加载initrd文件,它是按照initrd文件中提供的init 脚本一步步执行的,所以要掌握initrd文件的执行过程就必须要搞清楚init文件的内容和作用。下面我会重点介绍init文件。转载 2014-06-26 15:55:52 · 812 阅读 · 0 评论 -
Linux启动代码header.S研究
http://blog.csdn.net/luomoweilan/article/details/6085426Linux内核从2.4升级到2.6之后,内核的引导过程发生了许多变化,现在研究一下Linux内核2.6版本的主要引导过程。(参考资料:1、《深入理解Linux内核》附录A;2、Linux源码自带文档http://lxr.linux.no/linux+v转载 2014-06-26 13:42:06 · 768 阅读 · 0 评论 -
NUMA微架构
http://www.qingran.net/2011/09/numa%E5%BE%AE%E6%9E%B6%E6%9E%84/现在开始补日志,逐步的扫清以前写了一半的和“欠账未还的”。半年之前开的头,今天先把NUMA说完。PC硬件结构近5年的最大变化是多核CPU在PC上的普及,多核最常用的SMP微架构:多个CPU之间是平等的,无主从关系(对比IBM Cell转载 2014-01-17 10:41:12 · 802 阅读 · 0 评论 -
Linux--根文件系统的挂载过程分析
http://blog.csdn.net/guopeixin/article/details/5962482前言:本篇文章以S3C6410公版的Linux BSP和U-Boot来进行分析,文中所有提及的名词和数据都是以该环境为例,所有的代码流程也是以该环境为例来进行分析。哈哈。如果有不正确或者不完善的地方,欢迎前来拍砖留言或者发邮件到guopeixin@126.com进行讨论,转载 2013-12-27 10:31:11 · 739 阅读 · 0 评论 -
Linux源码阅读:以后怎么看源码的思考
http://blog.chinaunix.net/uid-1701789-id-172258.html进入了start_kernel,个人感觉再象前几天那样按照代码顺序进行阅读的话会对代码的理解,kernel的理解还有阅读效率造成一定的阻碍。所以这些天一直在想接下来应该怎么继续。现在的想法是结合内核书籍对于内核模块的介绍进行start_kernel各个代码段的解释。由于要花不少时间看书,博文转载 2013-12-23 11:29:49 · 727 阅读 · 0 评论 -
2.6.37的setup_arch
http://blog.chinaunix.net/uid-1701789-id-284584.html暂时放下对于内存管理的探讨而对setup_arch进行深入分析的目的在于要找出相关于内存管理初始化细节。在遍历代码的过程中,我跳过了一些和特殊平台相关的代码,例如EFI等。1. 首先kernel将全局页表目录page global directory切换到swapper_转载 2013-12-23 11:33:07 · 1375 阅读 · 0 评论 -
Linux Kernel 2.6.37 启动过程笔记 :MBR
http://blog.chinaunix.net/uid-1701789-id-125510.htmlPC加电的过程就是将cs:ip指向0xFFFF0,这里是BIOS的内容。BIOS接下来就接管系统启动,负责检查并初始化硬件设备,初始化实模式下中断向量表。然后i386系统就会将硬盘的第一个扇区(0扇区)加载到内存0x7c00处---这就是MBR。最简单的MBR的结构如下:转载 2013-12-23 10:55:32 · 714 阅读 · 0 评论 -
Linux Kernel 2.6.37 启动过程笔记 :Header.S
http://blog.chinaunix.net/uid-1701789-id-127294.html写这篇东西的目的是对于这些天看bootloader和kernel启动的一点总结。写Linux启动的文章很多,但是写Header.S是怎么被执行到的不多,这也造成了我花了很多时间来寻找为什么入口不在0x7c00。现在终于弄明白了。arch/x86/boot/Header.S是K转载 2013-12-23 10:56:02 · 1199 阅读 · 0 评论 -
Linux Kernel 2.6.37 启动过程笔记 :main详解
http://blog.chinaunix.net/uid-1701789-id-132589.html上次粗略的过了一下Header.S的控制权传递的过程。随着慢慢地进入main.c,发现仍然有必要重新审视一下Header.S。main()的代码如下:void main(void){ /* First, copy the boot heade转载 2013-12-23 10:57:19 · 855 阅读 · 0 评论 -
Linux Kernel 2.6.37 启动过程:go_to_protected_mode
http://blog.chinaunix.net/uid-1701789-id-145357.html现在就让我们看一下到底是怎么进入保护模式。void go_to_protected_mode(void){ /* Hook before leaving real mode, also disables interrupts */ re转载 2013-12-23 11:22:57 · 825 阅读 · 0 评论 -
深度解析Linux根文件系统的挂载过程
http://blog.tektea.com/archives/1184.html在前面的文章中介绍《Linux操作系统启动过程》,而Linux系统的根文件系统(root file system)的挂载过程则是其中一个重要环节,下面这部分内容来自于网络,经整理分享如下,希望能给这部份知识点比较迷茫的朋友一点帮助。一、rootfs的种类总的来说,rootfs分为两种:虚拟转载 2013-12-23 17:53:25 · 688 阅读 · 0 评论 -
init 进程和inittab 引导指令
http://blog.csdn.net/ce123_zhouwei/article/details/6744121init 进程和inittab 引导指令init 进程是系统所有进程的起点,内核在完成内核引导以后,即在本线程(进程)空间内加载init 程序,它的进程号是1。init 程序读取/etc/inittab 文件作为其行为指针,根据initab 描述文件的内容建立相应的进转载 2013-12-24 15:25:54 · 584 阅读 · 0 评论 -
linux文件系统初始化过程(1)---概述
http://blog.csdn.net/luomoweilan/article/details/17850377术语表:struct task:进程struct mnt_namespace:命名空间struct mount:挂载点struct vfsmount:挂载项struct file:文件struct super_block:超级转载 2014-06-25 17:40:08 · 706 阅读 · 0 评论 -
时间管理——高精度时钟、动态时钟——实现
http://www.cnblogs.com/openix/p/3327202.html参考:1、《Professional Linux Kernel Architecture》1ed_CN p714~p760 2、http://blog.csdn.net/droidphone/article/details/7975694 3、转载 2014-07-21 15:29:01 · 1948 阅读 · 0 评论 -
时间管理——概念、注意点
http://www.cnblogs.com/openix/p/3324243.html参考:1、http://bbs.eyeler.com/thread-69-1-1.html 2、《Linxu Kernel De转载 2014-07-21 15:33:18 · 705 阅读 · 0 评论 -
Linux操作系统启动过程详解
http://blog.tektea.com/archives/782.html如果你对Linux操作系统有一定的了解,想对其更深层次的东西做进一步探究。这当中就包括系统的启动流程、文件系统的组成结构、基于动态库和静态库的程序在执行时的异同、协议栈的架构和原理、驱动程序的机制等等。其中Linux操作系统启动过程肯定是大家最有兴趣了解的,这里在综合了现有网上大家智慧的基础上,基于转载 2013-12-23 17:52:19 · 1857 阅读 · 0 评论 -
Linux per_cpu机制的详解
http://hi.baidu.com/leowang715/item/112512cae0d19d10b67a24ebLinux per_cpu机制的详解 针对IA64体系结构 在Linux操作系统中,特别是针对SMP或者NUMA架构的多CPU系统的时候,描述每个CPU的私有数据的时候,Linux操作系统提供了per_cpu机制。 per_cpu机制就是让每个CP转载 2014-07-07 13:45:52 · 625 阅读 · 0 评论 -
IO端口和IO内存的区别及分别使用的函数接口
http://blog.csdn.net/insoonior/article/details/8011192IO端口和IO内存的区别及分别使用的函数接口 每个外设都是通过读写其寄存器来控制的。外设寄存器也称为I/O端口,通常包括:控制寄存器、状态寄存器和数据寄存器三大类。根据访问外设寄存器的不同方式,可以把CPU分成两大类。一类CPU(如M68K,Power转载 2014-07-28 11:29:02 · 729 阅读 · 0 评论 -
linux rcu
http://www.cnblogs.com/chanwai1219/p/3592893.htmlRCU(Read-Copy Update)是一种同步机制,通过保存对象的多个副本来保障读操作的连续性,并保证在预定的读方临界区没有完成之前不会释放这个对象。传统的同步机制如spin lock,semaphore,rwlock等,并发线程不区分读写线程,或者并发线程允许同时读,但是读的时转载 2014-07-10 11:25:50 · 855 阅读 · 0 评论 -
A example of NF_IP_PRE_ROUTING module(转载)
1、 要做什么在netfilter Hook点注册一个自己的Hook函数,截取每一个数据包读取文件,获取IP列表Ip匹配是否进行重定向的工作,是否丢弃等2、netfilter结构以及HOOK点的选择 Fig.1 Hook Point of netfilter[选择]NF_IP_PRE_ROUTING(local process所发送的包不在限制之列)转载 2014-08-20 16:44:40 · 799 阅读 · 0 评论 -
linux network
http://www.ecsl.cs.sunysb.edu/elibrary/linux/network/NETWORKDocuments listed here are local copies of papers or technical reports collected from Internet.General:Linu转载 2014-08-21 09:47:24 · 654 阅读 · 0 评论 -
网络数据接收过程分析
网络数据接收过程分析(七)---tcp_v…(0/767)2008-09-19 14:56网络数据接收过程分析(六)---tcp缓…(0/635)2008-09-19 14:53网络数据接收过程分析(六)---tcp缓…(0/1086)2008-09-19 14:50网络数据接收过程分析(五)---tcp_v…转载 2014-08-20 10:52:57 · 1184 阅读 · 0 评论 -
网络数据包收发流程(一):从驱动到协议栈
http://blog.chinaunix.net/uid-24148050-id-464587.html转载 2014-08-22 16:57:11 · 1329 阅读 · 0 评论 -
Linux内存管理--基本概念
1. Linux物理内存三级架构 对于内存管理,Linux采用了与具体体系架构不相关的设计模型,实现了良好的可伸缩性。它主要由内存节点node、内存区域zone和物理页框page三级架构组成。 • 内存节点node 内存节点node是计算机系统中对物理内存的一种描述方法,一个总线主设备访问位于同一个节点中的任意内存单元所花的代价相同,而访问转载 2014-07-07 14:07:38 · 602 阅读 · 0 评论 -
Page Frame Management 页框管理
http://blog.sina.com.cn/s/blog_67b48ddf010100wz.html页描述符页描述符由struct page表示,它是用来管理物理内存的页框的。而所有的page存放在mem_map数组中: 。因为每个struct page小于64Byte,所以每MB的RAM,大约需要4个页框。其中count表示页的引用计数器,当cou转载 2014-07-07 14:08:49 · 962 阅读 · 0 评论 -
Linux内部的时钟处理机制全面剖析
http://www.xuebuyuan.com/388444.html在 Linux 操作系统中,很多活动都和时间有关,例如:进程调度和网络处理等等。所以说,了解 Linux 操作系统中的时钟处理机制有助于更好地了解 Linux 操作系统的运作方式。本文分析了 Linux 2.6.25 内核的时钟处理机制,首先介绍了在计算机系统中的一些硬件计时器,然后重点介绍了 Linux 操作系统中的转载 2014-07-21 15:06:58 · 845 阅读 · 0 评论 -
用TAP方式让QEMU虚拟机与host联网
转载自 cgjvcd最终编辑 cgjvcdQEMU虚拟机网络的缺省模式是NAT方式,即虚拟机可以通过host访问外网,但host和外网无法访问虚拟机。如果要想让host访问虚拟机,则可以使用TAP方式。 1、确认host的内核支持TAP/TUN设备 使用TAP方式的前提是host的内核支持TAP/TUN。现在的linux发行版一般都通过内核模块的方式支持TAP/TUN。如果ho转载 2014-05-27 00:44:27 · 8534 阅读 · 0 评论 -
用qemu与gdb调试linux kernel tcp/ip协议栈
description用gdb debug linux kernel容易吗?其实要走到这步真的不容易啊,其实也难道是不难,就是要知道的东西太多了。用gdb debug linux kernel 可以有2中方式:UML和qemu方式,这里主要说qemu,从源码编译安装qemu很费劲。准备环境linux OS: Debian7.5-i386(当时最新的Wheezy,装在VMware原创 2014-05-27 19:53:21 · 4945 阅读 · 9 评论 -
x86体系结构下Linux-2.6.26的中断处理
http://home.ustc.edu.cn/~hchunhui/linux_intr.htmlPB09210183 何春晖Linux对x86中断机制的利用IDT的初始化8259A的初始化和基本操作中断、异常、系统调用入口上下文的保存与恢复总结Linux中断处理的体系结构无关层irq_chipirqactionirq_descdo_IRQ中断处理程序的注册与运转载 2014-07-23 11:38:10 · 1013 阅读 · 0 评论 -
x86体系结构下Linux-2.6.26的进程调度和切换
http://home.ustc.edu.cn/~hchunhui/linux_sched.htmlPB09210183 何春晖进程调度相关数据结构task_structthread_union和thread_infosched_classsched_entity和sched_rt_entityrqschedule函数分析进程的切换switch_mmswitch_t转载 2014-07-23 11:36:20 · 768 阅读 · 0 评论 -
x86体系结构下Linux-2.6.26启动流程
http://home.ustc.edu.cn/~hchunhui/linux_boot.htmlPB09210183 何春晖内核映像编译流程分析源码目录结构Makefile分析结论系统开机到Linux内核流程分析BIOSBootloader(以GRUB-0.97为例)Linux内核映像编译流程分析源码目录结构arch:体系结构相关代转载 2014-07-23 11:34:56 · 1043 阅读 · 0 评论 -
《Linux内核设计与实现》读书笔记 - 目录 (完结)
http://www.cnblogs.com/wang_yb/p/3514730.html读完这本书回过头才发现, 第一篇笔记居然是 2012年8月发的, 将近一年半的时间才看完这本书(汗!!!).为了方便以后查看, 做个《Linux内核设计与实现》读书笔记 的目录: 《Linux内核设计与实现》读书笔记(一)-内核简介《Linux内核设计与实现》读书笔记(二)转载 2014-07-03 16:58:49 · 864 阅读 · 0 评论 -
Linux内核的中断机制分析
http://os.chinaunix.net/a2008/0910/985/000000985664.shtml Copyright © 2003 by 詹荣开 E-mail:zhanrk@sohu.com Linux-2.4.0 Version 1.0.0,2003-2-14 摘要:本文主要从内核实现的角度分析了Linu转载 2014-07-24 15:38:41 · 883 阅读 · 0 评论