
Linux系统
文章平均质量分 81
小牡蛎
这个作者很懒,什么都没留下…
展开
-
iptables & netfilter 概述
1. iptables 位于用户空间工具,用于编写规则 iptables演进: Linux 2.0,称为 ipfw Linux 2.2,称为 ipchains Linux 2.4之后,称为 iptables 2. netfilter 位于内核中,一种框架(framework) 具有5个钩子点(hook fu原创 2014-04-24 09:30:47 · 999 阅读 · 0 评论 -
Linux内核态抢占机制分析
【摘要】本文首先介绍非抢占式内核(Non-Preemptive Kernel)和可抢占式内核(Preemptive Kernel)的区别。接着分析Linux下有两种抢占:用户态抢占(User Preemption)、内核态抢占(Kernel Preemption)。然后分析了在内核态下:如何判断能否抢占内核(什么是可抢占的条件);何时触发重新调度(何时设置可抢占条件);抢占发生的时机(何时检查可抢转载 2014-07-29 15:12:15 · 668 阅读 · 0 评论 -
Linux进程调度学习笔记
1. Linux进程调度的时机 Linux进程的调度时机大致分为两种情况:一种是进程自愿调度;另一种是发生强制性调度。 首先,自愿的调度随时都可以进行。在内核空间中,进程可以通过schedule()启动一次调度;在用户空间中,可以通过系统调用pause()达到同样的目的。如果要为自愿的暂停行为加上时间限制,在内核中使用schedule_timeout(),而在用户空间则使用nano原创 2014-07-10 10:58:40 · 1334 阅读 · 0 评论 -
Linux 线程实现机制分析
一.基础知识:线程和进程按照教科书上的定义,进程是资源管理的最小单位,线程是程序执行的最小单位。在操作系统设计上,从进程演化出线程,最主要的目的就是更好的支持SMP以及减小(进程/线程)上下文切换开销。无论按照怎样的分法,一个进程至少需要一个线程作为它的指令执行体,进程管理着资源(比如cpu、内存、文件等等),而将线程分配到某个cpu上执行。一个进程当然可以拥有多个线程,此时,如果转载 2014-07-29 15:45:53 · 596 阅读 · 0 评论 -
Linux内核空间保护和空间数据传递分析
一定要注意的是不能直接访问用户空间数据,内核代码可以通过特殊的函数来访问用户空间数据,copy_to_user copy_from_user这两个函数就是内核代码访问用户空间数据的函数,但是内核不能直接通过像是memcpy函数来直接操作用户空间数据。按照linux设备驱动书本上的说法,我的理解,三个原因描述如下。其一,驱动程序架构不同或者内核的配置不同,用户空间数据指针可能运行在内转载 2014-07-31 14:29:39 · 859 阅读 · 0 评论 -
Linux线程ID和进程ID
1. Linux线程的线程ID和进程IDLinux内核并不支持真正意义上的线程,Linux线程库是用与普通进程具有同样内核调度视图的轻量级进程来实现线程支持的。这些轻量级进程拥有独立的进程id,在进程调度、信号处理、IO等方面享有与普通进程一样的能力。每个Linux线程都同时具有线程id和进程id,其中进程id就是内核所维护的进程号,而线程id则由线程库分配和维护。1)原创 2014-07-30 15:54:16 · 4124 阅读 · 0 评论 -
从 Linux 内核访问用户空间内存
原文:http://www.ibm.com/developerworks/cn/linux/l-kernel-memory-access/ 从 Linux 内核访问用户空间内存Linux 内存和用户空间 API 简介因为内核和用户空间存在于不同的虚拟地址空间中,在它们之间移动数据需要特别注意。研究虚拟地址空间和内核 API 理念,用于转载 2014-07-31 09:22:41 · 894 阅读 · 0 评论 -
Linux虚拟文件系统小结
原文:http://www.cnblogs.com/biyeymyhjob/archive/2012/07/27/2610619.html 1.inode1).inode简介inode 是 UNIX/Linux 操作系统中的一种数据结构,其本质是结构体,它包含了与文件系统中各个文件相关的一些重要信息,例如文件及目录的基本信息,包含时间、档名、使用者及群组等。在 UNIX/L转载 2014-08-10 16:12:43 · 574 阅读 · 0 评论 -
linux嵌入式系统下实现U盘、SD卡自动挂载功能
在 Linux的嵌入式系统中我们经常用到U盘、SD卡的挂载,而每次都手动挂载或卸载非常麻烦,我们可以采取以下方法实现自动挂载或卸载U盘、SD卡这就要用到mdev了其具体操作如下:1、首先在/etc/init.d/rsC中加入以下语句echo /sbin/mdev > /proc/sys/kernel/hotplug2、在/etc/下简历m转载 2014-10-30 11:43:11 · 1194 阅读 · 0 评论 -
linux文件系统类型及mount
1. 查看系统所支持的文件系统的方法1.1 通过命令查看 mount df fdisk file parted fstab1.2 通过系统文件查看 cat /proc/filesystems ls /lib/modules/2.6.x/kernel/fs 例如, # ls /lib/modu原创 2014-10-30 18:08:26 · 3642 阅读 · 0 评论 -
iptables 扩展详解
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://peaceweb.blog.51cto.com/3226037/9241841、其实匹配扩展中,还有需要加-m引用模块的显示扩展,默认是隐含扩展,不要使用 -m状态检测的包过滤-m state --state {NEW,ESTATBLISHE转载 2014-06-16 17:57:49 · 681 阅读 · 0 评论 -
linux 用户空间与内核空间——高端内存详解
原文:http://blog.youkuaiyun.com/tommy_wxie/article/details/17122923 摘要:Linux 操作系统和驱动程序运行在内核空间,应用程序运行在用户空间,两者不能简单地使用指针传递数据,因为Linux使用的虚拟内存机制,用户空间的数据可能被换出,当内核空间使用用户空间指针时,对应的数据可能不在内存中。用户空间的内存映射采用段页式,而内核空间有自己的规转载 2014-07-16 17:06:04 · 640 阅读 · 0 评论 -
iptables DNAT 与 SNAT 详解
DNAT target 这个target是用来做目的网络地址转换的,就是重写包的目的IP地址。如果一个包被匹配了,那么和它属于同一个流的所有的包都会被自动转换,然后就可以被路由到正确的主机或网络。DNAT target是非常有用的。比如,你的web服务器在LAN内部,而且没有可以在Internet上使用的真实IP地址,那就可以使用这个target让防火墙把所有到它自己HTTP端口的包转载 2014-05-22 16:34:38 · 878 阅读 · 0 评论 -
Linux进程控制
Linux进程控制 程序是一组可执行的静态指令集,而进程(process)是一个执行中的程序实例。利用分时技术,在Linux操作系统上同时可以运行多个进程。分时技术的基本原理是把CPU的运行时间划分成一个个规定长度的时间片,让每个进程在一个时间片内运行。当进程的时间片用完时系统就利用调度程序切换到另一个进程去运行。因此实际上对于具体单个CPU的机器来说某一个时刻只能运行一个进转载 2014-07-16 10:43:17 · 742 阅读 · 0 评论 -
对Linux内核中进程上下文和中断上下文的理解
对Linux内核中进程上下文和中断上下文的理解作者:杨老师,华清远见嵌入式学院讲师。内核空间和用户空间是操作系统理论的基础之一,即内核功能模块运行在内核空间,而应用程序运行在用户空间。现代的CPU都具有不同的操作模式,代表不同的级别,不同的级别具有不同的功能,在较低的级别中将禁止某些操作。Linux系统设计时利用了这种硬件特性,使用了两个级别,最高级别和最低级别,内核运行在最高级别(内核态转载 2014-07-15 23:07:35 · 581 阅读 · 0 评论 -
linux 中断机制(一)
linux0.11下的中断机制分析 异常就是控制流中的突变,用来响应处理器状态中的某些变化。当处理器检测到有事件发生时,它就会通过一张叫做异常表的跳转表,进行一个间接过程调用,到一个专门设计用来处理这类事件的操作系统子程序,这张表即中断描述符表IDT。本文将针对Linux0.11代码进行分析和调试,来了解中断机制,主要分析以下三个问题:1. 中断描述符表的建立。2. 一般中转载 2014-07-16 11:19:19 · 898 阅读 · 0 评论 -
Linux中断机制(二)
Linux中断解析摘要:本章将向读者依次解释中断概念,解析Linux中的中断实现机理以及Linux下中断如何被使用。作为实例我们第一将向《i386体系结构》一章中打造的系统加入一个时钟中断;第二将为大家注解RTC中断,希望通过这两个实例可以帮助读者掌握中断相关的概念、实现和编程方法。中断是什么中断的汉语解释是半中间发生阻隔、停顿或故障而断开。那么,在计算机系统中,我们为什么需要“阻隔、转载 2014-07-16 11:47:26 · 1905 阅读 · 0 评论 -
linux内核空间和用户空间的是怎样区别的,如何交互,如何从用户空间进入内核空间
linux驱动程序一般工作在内核空间,但也可以工作在用户空间。下面我们将详细解析,什么是内核空间,什么是用户空间,以及如何判断他们。 Linux简化了分段机制,使得虚拟地址与线性地址总是一致,因此,Linux的虚拟地址空间也为0~4G.Linux内核将这4G字节的空间分为两部分。将最高的1G字节(从虚拟地址0xC0000000到0xFFFFFFFF),供内核使用,称为"内核空间".而将较转载 2014-07-16 17:12:45 · 902 阅读 · 0 评论 -
用户空间栈 & 内核空间栈
以下简称用户栈、内核栈1、用户栈和内核栈的区别 内核在创建进程的时候,在创建task_struct的同时,会为进程创建相应的堆栈。每个进程会有两个栈,一个用户栈,存在于用户空间,一个内核栈,存在于内核空间。记住,进程对应的用户栈和内核栈都是进程私有的。当进程在用户空间运行时,cpu堆栈指针寄存器里面的内容是用户堆栈地址,使用用户栈;当进程在内核空间时,c转载 2014-07-16 16:35:23 · 1538 阅读 · 0 评论 -
Linux中断过程概述
原创 2014-07-16 16:17:48 · 700 阅读 · 0 评论 -
Linux进程地址空间详解
之前写的一篇文章《a.out分段及运行时内存结构》简要介绍了Linux下的可执行文件格式和运行时的内存布局,这篇文章将更为详细得讨论Linux下进程的虚拟地址空间的布局。如下所述的内容都是基于32位系统的。Linux传统内存布局进程的线性地址空间分为两部分:1、从0×00000000到0xbfffffff的线性地址,无论进程运行在用户态还是内核态都可以寻址。转载 2014-07-17 19:50:38 · 941 阅读 · 0 评论 -
Linux内核地址空间与进程地址空间
内核地址空间分布直接映射区:线性空间中从3G开始最大896M的区间,为直接内存映射区,该区域的线性地址和物理地址存在线性转换关系:线性地址=3G+物理地址。动态内存映射区:该区域由内核函数vmalloc来分配,特点是:线性空间连续,但是对应的物理空间不一定连续。vmalloc分配的线性地址所对应的物理页可能处于低端内存,也可能处于高端内存。永久内存映射区:该区域可访转载 2014-07-17 20:04:22 · 816 阅读 · 0 评论 -
嵌入式linux自动挂载U盘
hotplug+mdev机制实现U盘自动挂载、卸载【背景1】 自动挂载磁盘分区的操作从底层来说,是要内核支持的,2.6 内核的sysfs 虚拟文件系统就提供了这一支持,这个文件系统 (/sys/) 通常用于反应系统硬件信息,总线上的设备变化、网络设备的变化等事件在这里都能反应出来,这个文件系统的变化配合上内核的 hotplug 机制就可以掌握硬件改动相关的信息。 说原创 2014-11-03 14:49:40 · 1374 阅读 · 0 评论