Linux开发技术
文章平均质量分 84
峥嵘岁月76
这个作者很懒,什么都没留下…
展开
-
(原创)Linux内核网络设备操作部分阅读笔记
一、网络设备的初始化网络设备初始化就是调用具有__init 前缀的net_dev_init函数完成的,网络设备初始化包含两个部分(在linux内核2.4办源代码分析大全一书的第550页有详细说明),就是:在系统初始化期间对系统已知的网络设备进行初始化过程,也就是,我们在编译内核时选择编入内核的那部分网卡设备就会在这个时候逐个进行初始化工作。系统中已知的网络设备都存储在一个全局表中,dev_原创 2006-01-27 21:16:00 · 5826 阅读 · 0 评论 -
(转载)EXT2文件系统内部布局
作者:Vitamin C[抗坏血酸] The Second Extended File SystemInternal LayoutExt2文件系统内部布局Dave Poirier instinc@users.sf.net翻译:Vitamin C[抗坏血酸] sing9806@sohu.com sing98原创 2006-02-04 12:27:00 · 3036 阅读 · 2 评论 -
(转载)使用kgdb调试linux内核及内核模块
使用kgdb调试linux内核及内核模块创建时间:2005-09-09文章属性:原创文章提交:xcspy (xcspy.com_at_gmail.com)作者:xcspy成员 ladybugE-mail:xcspy.com@gmail.com主页:www.xcspy.com1. 几种内核调试工具比较kdb:只能在汇编代码级进行调试; 优点是不需要两台机器进行调试。gdb原创 2006-02-03 22:23:00 · 1659 阅读 · 0 评论 -
(转载)Linux 调试技术
在 Linux 上找出并解决程序错误的主要方法 Steve Best(sbest@us.ibm.com) JFS 核心小组成员,IBM 您可以用各种方法来监控运行着的用户空间程序:可以为其运行调试器并单步调试该程序,添加打印语句,或者添加工具来分析程序。本文描述了几种可以用来调试在 Linux 上运行的程序的方法。我们将回顾四种调试问题的情况,这些问题包括段错误,内存溢出和泄漏,还有挂起。原创 2006-02-03 22:14:00 · 1758 阅读 · 0 评论 -
(转载)Linux 汇编语言开发指南
一、简介 作为最基本的编程语言之一,汇编语言虽然应用的范围不算很广,但重要性却勿庸置疑,因为它能够完成许多其它语言所无法完成的功能。就拿 Linux 内核来讲,虽然绝大部分代码是用 C 语言编写的,但仍然不可避免地在某些关键地方使用了汇编代码,其中主要是在 Linux 的启动部分。由于这部分代码与硬件的关系非常密切,即使是 C 语言也会有些力不从心,而汇编语言则能够很好扬长避短,最大限度地发挥硬件原创 2006-02-03 22:10:00 · 1987 阅读 · 0 评论 -
(转载)Linux主要shell命令详解
Linux主要shell命令详解 shell是用户和Linux操作系统之间的接口。Linux中有多种shell,其中缺省使用的是Bash。 本章讲述了shell的工作原理,shell的种类,shell的一般操作及Bash的特性。 什么是shell Linux系统的shell作为操作系统的外壳,为用户提供使用操作系统的接口。它是命令语言、 命令解释程序及程序设计语言的统称。 shell是用户和Li原创 2006-02-03 22:07:00 · 2632 阅读 · 0 评论 -
(转载)理解 Linux 配置文件
理解 Linux 配置文件 介绍 每个 Linux 程序都是一个可执行文件,它含有操作码列表,CPU 将执行这些操作码来完成特定的操作。例如,ls 命令是由 /bin/ls 文件提供的,该文件含有机器指令的列表,在屏幕上显示当前目录中文件的列表时需要使用这些机器指令。几乎每个程序的行为都可以通过修改其配置文件来按照您的偏好或需要去定制。 Linux 中有没有一个标准的配置文件格式? 一句话,原创 2006-02-03 22:05:00 · 1217 阅读 · 0 评论 -
(原创)Linux内核NAPI机制分析
简介:NAPI 是 Linux 上采用的一种提高网络处理效率的技术,它的核心概念就是不采用中断的方式读取数据,而代之以首先采用中断唤醒数据接收的服务程序,然后 POLL 的方法来轮询数据。随着网络的接收速度的增加,NIC 触发的中断能做到不断减少,目前 NAPI 技术已经在网卡驱动层和网络层得到了广泛的应用,驱动层次上已经有 E1000 系列网卡,RTL8139 系列网卡,3c50X 系列等主原创 2006-02-02 21:23:00 · 7562 阅读 · 2 评论 -
(转载)零拷贝技术研究与实现
零拷贝技术研究与实现作者:梁健(firstdot)E-MAIL:firstdot@163.com一.基本概念零拷贝(zero-copy)基本思想是:数据报从网络设备到用户程序空间传递的过程中,减少数据拷贝次数,减少系统调用,实现CPU的零参与,彻底消除CPU在这方面的负载。实现零拷贝用到的最主要技术是DMA数据传输技术和内存区域映射技术。如图1所示,传统的网络数据报处理,需要经过网络设备到操作原创 2006-02-02 21:26:00 · 5948 阅读 · 0 评论 -
(原创)linux内核进程调度以及定时器实现机制
一、2.6版以前内核进程调度机制简介Linux的进程管理由进程控制块、进程调度、中断处理、任务队列、定时器、bottom half队列、系统调用、进程通信等等部分组成。进程调用分为实时进程调度和非实时进程调度两种。前者调度时,可以采用基于动态优先级的轮转法(RR),也可以采用先进现出算法(FIFO)。后者调度时,一律采用基于动态优先级的轮转法。某个进程采用何种调度算法由改进程的进程控制块中原创 2006-02-02 21:11:00 · 12911 阅读 · 1 评论 -
(转载)Linux 内核调试器内幕
Linux 内核调试器内幕KDB 入门指南 级别: 初级Hariprasad Nellitheertha, 软件工程师, IBM2003 年 9 月 01 日调试内核问题时,能够跟踪内核执行情况并查看其内存和数据结构是非常有用的。Linux 中的内置内核调试器 KDB 提供了这种功能。在本文中您将了解如何使用 KDB 所提供的功能,以及如何在 Linux 机器上安装和设原创 2006-01-30 10:53:00 · 1904 阅读 · 0 评论 -
(转载)Linux 系统内核的调试
调试是软件开发过程中一个必不可少的环节,在 Linux 内核开发的过程中也不可避免地会面对如何调试内核的问题。但是,Linux 系统的开发者出于保证内核代码正确性的考虑,不愿意在 Linux 内核源代码树中加入一个调试器。他们认为内核中的调试器会误导开发者,从而引入不良的修正[1]。所以对 Linux 内核进行调试一直是个令内核程序员感到棘手的问题,调试工作的艰苦性是内核级的开发区别于用户级开发的原创 2006-01-30 10:44:00 · 2923 阅读 · 0 评论 -
(转载)深入Linux网络核心堆栈
文摘出处:http://www.xfocus.net/articles/200308/599.html创建时间:2003-08-22文章属性:翻译文章提交:raodan (raod_at_30san.com)==Phrack Inc.== 卷标 0x0b, 期刊号 0x3d, Phile #0x0d of 0x0f|=-------------------原创 2006-01-30 10:38:00 · 3167 阅读 · 0 评论 -
(原创)Linux设备轮询机制分析
一、设备轮询机制的基本思想所谓的设备轮询机制实际上就是利用网卡驱动程序提供的NAPI机制加快网卡处理数据包的速度,因为在大流量的网络环境当中,标准的网卡中断加上逐层的数据拷贝和系统调用会占用大量的CPU资源,而真正用于处理这些数据的资源却很少。一个基本的想法是对于大流量网络,如果发现一个DMA传输中断(这表明一个网络数据通过DMA通道到达了DMA缓冲区),则首先关闭网卡的中断模式,而对于随原创 2006-01-27 21:49:00 · 7203 阅读 · 2 评论 -
(原创)网络处理的软中断机制分析
内核默认软中断机制分析(process_backlog)首先需要介绍的就是netif_rx(在net/core/dev.c中定义)函数,这个函数在网卡驱动程序与linux内核之间建立了一道桥梁,将网卡接收上来的数据包(sk_buff形式)插入内核维护的接收缓冲区队列当中:int netif_rx(struct sk_buff *skb){ int this_cpu =原创 2006-01-27 21:26:00 · 5202 阅读 · 0 评论 -
(原创)Linux内核内存池管理技术实现分析
内核内存池管理技术实现分析一.Linux系统内核内存管理简介Linux采用“按需调页”算法,支持三层页式存储管理策略。将每个用户进程4GB长度的虚拟内存划分成固定大小的页面。其中0至3GB是用户态空间,由各进程独占;3GB到4GB是内核态空间,由所有进程共享,但只有内核态进程才能访问。Linux将物理内存也划分成固定大小的页面,由数据结构page管理,有多少页面就有多少page结构,它原创 2006-01-27 20:59:00 · 16386 阅读 · 2 评论 -
(转载)linux内核引导参数
linux内核引导参数1.“boot=” 此参数指明包含引导扇区的设备名(如:/dev/had),若此项忽略,则从当前的根分区中读取引导扇区。2.“root=” 此参数告诉内核启动时以哪个设备作为根文件系统使用,其设定值为构造内核时根文件系统的设备名,可用的设备名有: (1)/dev/hdaN~/dev/hddN:ST-506兼容硬盘,a到d上的N个分区 (2)/dev/sdaN~原创 2006-01-30 10:32:00 · 2524 阅读 · 0 评论