下载一个linux-2.6.22.6.tar并解压 再其解压的文件中加入下面的bat脚本 生成当前文件的目录树脚本如下: @rem 此BAT文件名一定不能是"tree.bat",否则tree命令会实效,不知道为什么 @rem 可能是因为系统目录有"tree.com",系统会混淆吧. @rem 用"dir.bat"作文件名却可以. @echo off rem 在当前目录生成很漂亮的结构树 tree /f > 目录树.TXT 双击后出现一个 目…
在windows下解压缩Linux内核源代码出现重复文件原因 2009年06月30日 13:35 来源:ChinaUnix博客 作者:embededgood 编辑:周荣茂     原因一.因为在Linux下文件名是大小写敏感的,而Windows下文件名则是大小不敏感,所以对于同一目录下如果有两个文件不同名但大小写不一样时在windows下会有问题.如kernel source中的include/linux/netfilter_ipv4/存在ipt_ecn.h和ipt_ECN.h,在linux这是…
主要提供三种格式的mysql包:rpm格式.二进制格式.源码格式:(tar打包,gz压缩) rpm格式: libjpeg-devel-6b-33.x86_64.rpm       #rpm格式很好区分, 二进制包: mysql-3.23.58-pc-linux-i686.tar.gz   #二进制格式的包名字很长,有版本号.适应平台.适应的硬件类型等,格式:mysql-<版本>-<OS>-tar.gz 源码包:    php-5.2.14.tar.gz              …
Linux内核源代码获取方法 什么叫Linux 什么叫Linux内核 Linux内核源代码的获取 什么叫Linux? Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户.多任务.支持多线程和多CPU的操作系统.它能运行主要的UNIX工具软件.应用程序和网络协议.它支持32位和64位硬件.Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统.Linux最早是由芬兰黑客 Linus Torvalds为尝试在英特尔x86架构上提…
在2.6.24内核中链路层接收网络数据包出现了两种方法,第一种是传统方法,利用中断来接收网络数据包,适用于低速设备:第二种是New Api(简称NAPI)方法,利用了中断+轮询的方法来接收网络数据包,是linux为了接收高速的网络数据包而加入的,适用于告诉设备,现在大多数NIC都兼容了这个方法. 今天我的任务是扒一扒网络数据包在传统方法也就是低速路径中如何传入链路层以及如何将其发送给上层网络层的.下面先来看看这条低速路径的简略示意图: //当产生硬件中断时,此中断处理例程被调用.例程确定该中断是…
源代码所有在目录:/usr/src/linux (大部分linux发行版本中)  init 内核初始化代码  kernel 内核核心部分:进程.定时.程序执行.信号.模块...  mm 内存处理  arch 平台相关代码     i386 IBM的PC体系结构         kernel 内核核心部分         mm 内存管理         math-emu 浮点单元软件仿真         lib 硬件相关工具函数         boot 引导程序            compr…
linux下源代码包的编译安装其实没那么复杂. 我是win7系统装的虚拟机,就简单说下: 举个简单的例子: http://www.openssl.org/ 这是openssl的官网,下载openssl包(官网肯定是安全的)要是其他的网上下载的--scripts看清包的脚本在玩,别最后安装不成一卸掉发现 "/"没了. 然后上传到你的虚拟机,要是都不知道怎么上传上去,那就别学了. 红色的是网上下载下来的,蓝色的是我解压说过的.解压后或生成蓝色的目录. tar zxvf openssl-1.…
http://blog.sina.com.cn/s/blog_6b94d5680101vfqv.html Linux内核源代码情景分析---第五章 文件系统  5.1 概述 构成一个操作系统最重要的就是 进程管理 与 文件系统: 有些操作系统有进程管理而没有文件系统,有些操作系统有文件系统而没有进程管理(MSDOS):两者都没有那就不是操作系统了: 狭义的文件:指磁盘文件,进入指可以是有序地存储在任何介质中(包括内存)的一组信息. 广义的文件:(unix把外部设备也当成文件)凡是可以产生或消耗信…
本文主要讲解了Linux内核数据包的传输流程,使用的内核的版本是2.6.32.27 为了方便理解,本文采用整体流程图加伪代码的方式从内核高层面上梳理了二层数据包发送传输的流程,希望可以对大家有所帮助.阅读本文章假设大家对C语言有了一定的了解 整体流程如下 数据包的传输可以分为两种: 一种是正常的传输流程,即一般网卡的发送流程用于一般的:另一种是基于软中断的发送流程,这种发送流程用于CPU冲突时候的重新调度和QOS的流量整形 正常的传输流程伪代码如下: /*正常传输流程*/ /*高层协议dev_q…
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6564592 在前一篇文章提到,从源代码树下载下来的最新Android源代码,是不包括内核代码的,也就是Android源代码工程默认不包含Linux Kernel代码,而是使用预先编译好的内核,也就是prebuilt/android-arm/kernel/kernel-qemu文件.那么,如何才能DIY自己的内核呢?这篇文章一一道来. 一. 首选…
  原创,转载时请注明,谢谢.邮箱:tangzhongp@163.com 博客园地址:http://www.cnblogs.com/embedded-tzp Csdn博客地址:http://blog.csdn.net/xiayulewa   "生于忧患,死于安乐". 说说linux如何阅读内核源代码,几年里我所有的笔记和资料都用word写的,看着它们静静的躺在硬盘里,就感觉有些浪费,希望能分享出来,因为包括ucos,u-boot,linux kernel的移植,我都喜欢下载官网比较新的…
说明:只供学习交流 一,目录结构 Linux内核源代码采用树形结构进行组织,非常合理地把功能相关的文件都放在同一个子目录下,使得程序更具有可读性. 二,目录结构 arch目录 arch是architecture的缩写.内核所支持的每种CPU体系,在该目录下都有对应的子目录.每个CPU的子目录,又进一步分解为boot,mm,kernel等子目录,分别包含控制系统引导,内存管理,系统调用等 | --x86  /* 英特尔cpu及与之相兼容体系结构的子目录*/ | |--boot   /*引导程序*/…
Linux内核源代码目录树结构. arch:包含和硬件体系结构相关的代码,每种平台占一个相应的目录.和32位PC相关的代码存放在i386目录下,其中比较重要的包括kernel(内核核心部分).mm(内存管理).math-emu(浮点单元仿真).lib(硬件相关工具函数).boot(引导程序).pci(PCI总线)和power(CPU相关状态). block:部分块设备驱动程序. crypto:常用加密和散列算法(如AES.SHA等),还有一些压缩和CRC校验算法. Documentation:关…
秉承着"不懂操作系统原理的程序员不是合格的程序员"的至理名言,鄙人又是买陈莉君老师的“Linux教学视频”,又是研读其力作<深入分析Linux内核源代码>,先将总结笔记放送给大家,希望对大家研习Linux源码提供更多的帮助,分章总结,从硬件起源开始->CPU中断->进程调度->内存管理->进程通信->文件系统->Socket网络通信,以源码结合注释的方式,对<深入分析Linux内核源代码>做了总结,Windows为闭源的,虽然…
朱荟潼 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课http://mooc.study.163.com/course/USTC 1000029000 知识笔记 1.arch/ 支持不同的CPU的源代码--X86. 2.init/ 内核启动相关的代码基本在此目录下. main.c Linux内核启动的起点:start_kernel. start_kernel 相当于普通C程序的main(). mm/ 内存管理代码. kernel/ 与进程调度有关:Linux内核的核心代码在该…
1. 目的 内核模块需要运行在Linux 3.8.13内核中,因此需要为此内核重新编译内核模块源代码. 2. 步骤 1.在Ubuntu 14.04 64位(内核3.13.0-24-generic)上, 编译Linux 3.8.13内核源代码,并安装编译后的Linux内核. 2.为Linux 3.8.13内核编译内核模块 3. 方法 (1)下载:Linux内核源代码压缩包 https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.8.13.tar.g…
Linux内核源代码分析方法   一.内核源代码之我见 Linux内核代码的庞大令不少人"望而生畏",也正由于如此,使得人们对Linux的了解仅处于泛泛的层次.假设想透析Linux,深入操作系统的本质,阅读内核源代码是最有效的途径.我们都知道,想成为优秀的程序猿,须要大量的实践和代码的编写.编程固然重要,可是往往仅仅编程的人非常easy把自己局限在自己的知识领域内.假设要扩展自己知识的广度,我们须要多接触其它人编写的代码,尤其是水平比我们更高的人编写的代码.通过这样的途径,我们能够跳出…
内核源代码下载:www.kernel.org Linux内核源代码采用树形结构进行组织,非常合理地把功能相关的文件都放在同一个子目录下,使得程序更具可读性. linux内核代码最好不要在windows下解压,因为同名(大小写)会丢失一些code. source insight:添加汇编文件:option->Document option 添加.c..h..s..S 内核目录: arch目录 :内核所支持的每种CPU体系,在该目录下都有对应的子目录.每个CPU的子目录,又进一步分解为boot,mm…
介绍 openstack平台需要使用各种Linux发行版模板镜像,其制作方法主要有两种,要么是基于各大Linux发行版ISO光盘手动制作,要么是使用官方提供的模板镜像再做修改 之前制作的openstack centos6.5模板镜像,其内核为2.6.xx,现需要升级其内核到3.18.x,使用这里提供的rpm包kernel-ml-3.18.3-1.el6.elrepo.x86_64.rpm升级内核遇到了下面几个问题,下面谈谈我的解决过程 问题 问题1.virtio驱动加载问题 使用上面提到的rpm…
本文原创为freas_1990,转载请标明出处http://blog.csdn.net/freas_1990/article/details/10223581 TCP状态转移的原理并不高深,但是处理逻辑比较复杂,以下是TCP状态转移图.出自<TCP/IP协议详解:卷2>——W.Richard Stevens 这些状态是怎么实现的呢? 我们来看一下内核源代码.(server端部分) int tcp_rcv(struct sk_buff *skb, struct device *dev, stru…
1 突破系统最大fd   查看当前文件描述符的限制数目的命令: ulimit -n .修改文件描述符的限制数目 2.1 临时改变当前会话: ulimit -n 2.2 永久变更需要下面两个步骤: ./etc/pam.d/login: 增加:session required pam_limits.so ./etc/security/limit.conf:增加 * soft nofile * hard nofile *               -       nofile         999…
随着Linux服务器越来越多了,底层系统内核想要保持版本统一就需要定制专门的二进制安装包来便捷的升级和管理. RedHat系那当然就是使用rpmbuild来做定制化管理了. 今天我们分俩个部分(root和普通用户)来讲解如何制作内核的二进制rpm包. Building主机系统环境约定: OS : CentOS release 6.6 Arch : i686 一,rpm包简单定制 注意: 这里我们首先要预留至少20GB的临时文件空间. 1.rpm 制作前的环境准备: yum -y groupins…
随着Linux服务器越来越多了,底层系统内核想要保持版本统一就需要定制专门的二进制安装包来便捷的升级和管理. RedHat系那当然就是使用rpmbuild来做定制化管理了. 今天我们分俩个部分(root和普通用户)来讲解如何制作内核的二进制rpm包. Building主机系统环境约定: OS : CentOS release 6.6 Arch : i686 第一部分,rpm包简单定制 注意: 这里我们首先要预留至少20GB的临时文件空间. 一.rpm 制作前的环境准备: yum -y group…
配置过程最终结果是生成.config文件,我们想要对配置的目的有很清楚的了解,必须先对.config文件进行分析.通过cd命令切换到linux-2.6.22.6内核目录,输入vi .config 可以看到如下图所示内容(截图仅部分内容): 分析.config文件被什么文件使用,为了简便化我们以网卡DM9000配置项为例进行分析.首先要在.config文件内找到关于DM9000相应配置,vi编辑器环境下输入 /DM9000  命令既能执行搜索命令,搜索的结果如下图: 这里CONFIG_DM9000…
Linux下TCP/IP及内核参数优化有多种方式,参数配置得当可以大大提高系统的性能,也可以根据特定场景进行专门的优化,如TIME_WAIT过高,DDOS攻击等等. 如下配置是写在sysctl.conf中,可使用sysctl -p生效,文中附带了一些默认值和中文解释(从网上收集和翻译而来),确有些辛苦,转载请保留链接,谢谢-. 相关参数仅供参考,具体数值还需要根据机器性能,应用场景等实际情况来做更细微调整. net.core.netdev_max_backlog = #该参数决定了,网络设备接收…
如图所示为 X86 PC 上从上电/复位到运行 Linux 用户空间初始进程的流程.在进入与 Linux相关代码之间,会经历如下阶段. ( 1 ) 当系统上电或复位时, CPU 会将 PC 指针赋值为一个特定的地址 0xFFFF0 并执行该地址处的指令.在 PC 机中,该地址位于 BIOS 中,它保存在主板上的 ROM 或 Flash 中. ( 2) BIOS 运行时按照 CMOS 的设置定义的启动设备顺序来搜索处于活动状态并且可以引导的设备. 若从硬盘启动, BIOS 会将硬盘 MBR(主引导…
为了实现类似SourceInsight功能,通过VIM+Ctags+Cscope+Taglist+Source Explore +NERD Tree实现. 一, 安装插件 1)安装Ctags 和Cscope Ubuntu下可以直接通过命令安装: sudo apt-get install ctags cscope 注:cscope与ctags功能类似,但能补充Ctags的不足,二者结合便能兼具ctags的便利,双能用cscope补充ctags的局限,算得上是Linux内核代码分析的强大工具. 2)…
由于用的学习材料是<linux设备驱动开发详解(第二版)>,所以linux驱动学习笔记大部分文字描述来自于这本书,学习笔记系列用于自己学习理解的一种查阅和复习方式. #make config(基于文本的最为传统的配置界面,不推荐使用)#make menuconfig(基于文本菜单的配置界面)#make xconfig(要求 QT 被安装)#make gconfig(要求 GTK+被安装)在配置 Linux 2.6 内核所使用的 make config. make menuconfig. mak…
[转]ubuntu(12.04)下, 命令 ,内核 源代码的获取 http://blog.chinaunix.net/uid-18905703-id-3446099.html 1.命令:例如:要查看ls命令的源代码    1)  whereis ls          ls: /bin/ls /usr/share/man/man1/ls.1.gz    2)   sudo dpkg -S /bin/ls          coreutils: /bin/ls    3)   sudo apt-g…
 ------------------------------------------------------------------------------------------------------ 转载或引用请务必注明原文地址: http://blog.csdn.net/luzhenrong45/article/details/9882189 或联系作者:luzhenrong45@gmail.com 谢谢!  --------------------------------------…