戴文的Linux内核专题:02源代码】的更多相关文章

转自Linux中国 在下载并解压内核源代码后,用户可以看到许多文件夹和文件.尝试去找一个特定的文件或许是一个挑战.谢天谢地,源代码以一个特定的方式组织的.这使开发者能够轻松找到任何文件或者内核的一部分. 内核源代码的根目录下包含了以下文件夹 还有一些文件在源代码的根目录下.它们会在下面列出. COPYING -许可和授权信息.Linux内核在GPLv2许可证下授权.该许可证授予任何人有权免费去使用.修改.分发和共享源代码和编译代码.然而,没有人可以出售源代码. CREDITS - 贡献者列表 K…
转自:https://linux.cn/article-2190-1.html?pr 在下载并解压内核源代码后,用户可以看到许多文件夹和文件.尝试去找一个特定的文件或许是一个挑战.谢天谢地,源代码以一个特定的方式组织的.这使开发者能够轻松找到任何文件或者内核的一部分. 内核源代码的根目录下包含了以下文件夹 arch block crypto Documentation drivers firmware fs include init ipc kernel lib mm net samples s…
转自Linux中国 译者按:本文作者戴文.科利尔.约翰逊(Devyn Collier Johnson)今年才19岁,但是他在Linux内核.人工智能.编程语言方面拥有丰富的经验,本文是其在linux.org上连载的一系列关于内核的文章.文章写的深入浅出,本站不揣浅陋,由LCTT成员geekpi进行了系列翻译,以分享给广大Linux爱好者. 在1991年,一个叫林纳斯·本纳第克特·托瓦兹的芬兰学生制作了一个现在非常流行的操作系统的内核.他于1991年9月发布了Linux 0.01,并且于1992年…
转自Linux中国 驱动程序是使内核能够沟通和操作硬件或协议(规则和标准)的小程序.没有驱动程序,内核不知道如何与硬件沟通或者处理协议(内核实际上先发送指令给BIOS,然后BIOS传给硬件). Linux的内核代码在驱动程序文件夹中以源代码的形式包含了许多驱动程序.驱动文件夹中的每个文件夹会在下面说明.在配置和 编译内核时,这样有助于你了解驱动程序.否则,用户可能会在编译时加入不必要的或者漏掉重要的驱动.驱动代码通常会包含一个单行注释来指出驱动的目的. 比如,tc的驱动代码,有一行的注释说是用于…
转自:http://www.lai18.com/content/432194.html 驱动程序是使内核能够沟通和操作硬件或协议(规则和标准)的小程序.没有驱动程序,内核不知道如何与硬件沟通或者处理协议(内核实际上先发送指令给BIOS,然后BIOS传给硬件). Linux的内核代码在驱动程序文件夹中以源代码的形式包含了许多驱动程序.驱动文件夹中的每个文件夹会在下面说明.在配置和 编译内核时,这样有助于你了解驱动程序.否则,用户可能会在编译时加入不必要的或者漏掉重要的驱动.驱动代码通常会包含一个单…
转自Linux中国 Linux内核拥有许多可以配置的特性,接下来我们还有许多要配置. 下一个可以配置的特性是x86的随机数生成器(x86 architectural random number generator (ARCH_RANDOM)).记住,我们现在配置的是针对AMD64系统的内核代码.这个随机数生成器使用Intel x86的RDRAND指令.这并不通用,所以为了一个更轻量的内核我禁用了它. 接着,我们可以启用或者禁用"Supervisor Mode Access Prevention…
转自Linux中国 欢迎来到下一篇关于内核配置文章!还有大量的选项需要配置.这篇文章将主要讨论PCI和ACPI. 这里我们可以启用由ACPI控制的扩展坞和可移动驱动器槽的支持(Dock).记住,ACPI(Advanced Configuration and Power Management Interface)是一个电源管理系统.扩展坞是一种其他的设备通过额外的接口插入的设备.扩展坞可以容纳许多不同的端口和连接器.一个ACPI控制的扩展坞是指其电源管理是通过ACPI进行的.驱动器槽是一套可以增加…
转自Linux中国 OK,我们还继续配置内核.还有更多功能等待着去配置. 下一个问题(Enable ELF core dumps (ELF_CORE))询问的是内核是否可以生成内核转储文件.这会使内核变大4KB.所以我选择了"no". 注意:内核转储文件(内存或者系统的转储)是程序崩溃前已记录的状态.内核转储是用来调试问题的.这个转储文件的格式是ELF(Executable and Linkable Format ). 下面可以启用PC扬声器(Enable PC-Speaker sup…
转自Linux中国 Linux内核是所有Linux系统的核心.如果有任何恶意代码控制或破害了内核的任何一部分,那么系统会严重受损,文件可能被删除或损坏,私人信息可能被盗等等.很明显,保持内核安全涉及到用户的最大利益.值得庆幸的是,由于Linux内核极其安全,Linux是一个非常安全的系统.在用户比例上,Linux病毒比Windows病毒更少,并且Linux用户比Windows用户个人更少感染病毒.(这就是为什么许多公司使用Linux来管理他们的服务器的一个原因.) 然而,我们仍然没有借口去忽视内…
转自Linux中国 这个第四部分里,我们将继续配置更多的设置和特性. 这里我们被问及关于"IBM Calgary IOMMU support (CALGARY_IOMMU)".这个选项将会提供对IBM xSeries x366和x460的IOMMU的支持.这也将让那些32位PCI的设备工作正常——在这些系统上不支持双地址周期(DAC : Double Address Cycle)——因为该系统设置在访问超过3GB内存的时候会有问题.如果需要这些IOMMU设备可以用"iommu…
转自Linux中国 这一部分我们讲配置内核IRQ子系统.中断请求(IRQ)是硬件发给处理器的一个信号,它暂时停止一个正在运行的程序并允许一个特殊的程序占用CPU运行. 这个目录中的第一个问题属于内核特性(Expose hardware/virtual IRQ mapping via debugfs (IRQ_DOMAIN_DEBUG))(通过debugfs来显示硬件/虚拟的IRQ映射),它询问是否可以使用虚拟的调试文件系统来映射硬件及Linux上对应的IRQ中断号.这个用作调试目的,大多数用户不…
转自Linux中国 现在我们已经了解了内核,现在我们可以进入主要工作:配置并编译内核代码.配置内核代码并不会花费太长时间.配置工具会询问许多问题并且允许开发者配置内核的每个方面.如果你有不确定的问题或者特性,你最好使用配置工具提供的默认值.本系列教程会使读者逐步了解配置内核的整个过程. 配置代码前需要在源文件的文件夹内打开一个终端.当终端打开后,基于你喜好的配置界面,这里有几种不同的配置方法: make config - 纯文本界面 (最常用的选择). make menuconfig - 基于文…
二,操作系统是如何工作的 1.函数调用堆栈 三大法宝:存储程序计算机 函数调用堆栈 中断机制 堆栈:是C语言程序运行时必须的一个记录调用路径和参数的空间.是计算机内部现成的东西,我们直接使用. 包括函数调用框架.传递参数.保存返回地址.提供局部变量的空间等等. 堆栈相关寄存器:esp堆栈指针(栈顶).ebp基址指针(栈底) * ebp在C语言中用作记录当前函数调用基址. 堆栈操作:push(栈顶地址减少四个字节).pop(栈顶地址增加四个字节)(32位) 其他关键寄存器:cs:eip,总是指向下…
http://blog.csdn.net/column/details/linux-kernel-net.html…
本文来源于linux内核代码的Document文件夹下的Hoto文件.Chinese translated version of Documentation/HOWTO If you have any comment or update to the content, please contact theoriginal document maintainer directly.  However, if you have a problemcommunicating in English yo…
如果想评论或更新本文的内容,请直接联系原文档的维护者.如果你使用英文 交流有困难的话,也可以向中文版维护者求助.如果本翻译更新不及时或者翻 译存在问题,请联系中文版维护者.   英文版维护者: Greg Kroah-Hartman <greg@kroah.com> 中文版维护者: 李阳 Li Yang <leoli@freescale.com> 中文版翻译者: 李阳 Li Yang <leoli@freescale.com> 中文版校译者: 钟宇 TripleX Chu…
如何参与linux 内核开发   如果想评论或更新本文的内容,请直接联系原文档的维护者.如果你使用英文 交流有困难的话,也可以向中文版维护者求助.如果本翻译更新不及时或者翻 译存在问题,请联系中文版维护者.   英文版维护者: Greg Kroah-Hartman <greg@kroah.com> 中文版维护者: 李阳 Li Yang <leoli@freescale.com> 中文版翻译者: 李阳 Li Yang <leoli@freescale.com> 中文版校译…
HACK #2 如何编译Linux内核 本节介绍编译Linux内核的方法.当发现bug而修改源代码或者添加新功能时,就需要对内核进行重新编译,生成二进制映像文件.另外,如果想要使用发布版内核中无效的功能或者驱动程序时,或者相反地,想要删除不需要的功能从而使内核更精简.更快时,或者想使用最新版的上游内核时,也需要对内核进行编译.下面主要介绍对上游内核进行设置.编译以及安装的方法.当使用发布版内核的源码包管理系统来管理内核映像文件时,需要将内核映像文件打包.接下来以两个具有代表性的发布版Fedora…
 一.Linux内核  一个完整可用的操作系统主要由 4 部分组成:硬件.操作系统内核.操作系统服务和用户应用程序,如下图所示:             用户应用程序:是指那些自处理程序. Internet 浏览器程序或用户自行编制的各种应用程序: 操作系统服务程序:是指那些向用户所提供的服务被看作是操作系统的部分功能的程序.在 Linux 操作系统上,这些程序包括 X 窗口系统. shell 命令解释系统以及那些内核编程接口等系统程序. 操作系统内核程序:它主要用于对硬件资源的抽象和访问调度.…
你想知道如何成为一个Linux内核开发者么?或者你的老板告诉你,“去为这个设备写一个Linux驱动.“这篇文档的目的,就是通过描述你需要 经历的过程和提示你如何和社区一起工作,来教给你为达到这些目的所需要知道的所有知识.本文也尝试解释社区为什么这样工作的一些原因.内核几乎全 是用C写成的,有一些架构相关的部分是用汇编语言写成的.熟练掌握C语言是内核开发的必备条件.汇编语言(任何架构)的了解不是必须的,除非你准备做某个 架构的底层开发.虽然下面这些书不能完全代替扎实的C语言教学和/或者成年累月的经…
本文分析基于内核Linux Kernel 1.2.13 原创作品,转载请标明http://blog.csdn.net/yming0221/article/details/7488828 更多请看专栏,地址http://blog.csdn.net/column/details/linux-kernel-net.html 作者:闫明 以后的系列博文将深入分析Linux内核的网络栈实现原理,这里看到曹桂平博士的分析后,也决定选择Linux内核1.2.13版本进行分析. 原因如下: 1.功能和网络栈层次…
转载地址 http://blog.csdn.net/yming0221/article/details/7488828 作者:闫明 本文分析基于内核Linux Kernel 1.2.13 以后的系列博文将深入分析Linux内核的网络栈实现原理,这里看到曹桂平博士的分析后,也决定选择Linux内核1.2.13版本进行分析. 原因如下: 1.功能和网络栈层次已经非常清晰 2.该版本与其后续版本的衔接性较好 3.复杂度相对新的内核版本较小,复杂度低,更容易把握网络内核的实质 4.该内核版本比较系统资料…
终极资料 1.<Understanding Linux Network Internals> 2.<TCP/IP Architecture, Design and Implementation in Linux> 以下博客内容可用于导读. 自底向上 链路层质料 1.linux内核网络协议栈架构分析,全流程分析-干货: https://blog.csdn.net/zxorange321/article/details/75676063 2.专栏:Linux内核网络栈源代码分析 htt…
Makefile不是Make Love 从前在学校,混了四年,没有学到任何东西,每天就是逃课,上网,玩游戏,睡觉.毕业的时候,人家跟我说Makefile我完全不知,但是一说Make Love我就来劲了,现在想来依然觉得丢人. 毫不夸张地说,Kconfig和Makefile是我们浏览内核代码时最为依仗的两个文件.基本上,Linux内核中每一个目录下边都会有一个 Kconfig文件和一个Makefile文件.对于一个希望能够在Linux内核的汪洋代码里看到一丝曙光的人来说,将它们放在怎么重要的地位都…
linux内核奇遇记之md源代码解读之四 转载请注明出处:http://blog.csdn.net/liumangxiong 运行阵列意味着阵列经历从无到有,建立了作为一个raid应有的属性(如同步重建),并为随后的读写做好的铺垫.那么运行阵列的时候到底做了哪些事情,让原来的磁盘像变形金刚一样组成一个新的巨无霸.现在就来看阵列运行处理流程: 5158 static int do_md_run(struct mddev *mddev) 5159 { 5160 int err; 5161 5162…
说明:只供学习交流 一,目录结构 Linux内核源代码采用树形结构进行组织,非常合理地把功能相关的文件都放在同一个子目录下,使得程序更具有可读性. 二,目录结构 arch目录 arch是architecture的缩写.内核所支持的每种CPU体系,在该目录下都有对应的子目录.每个CPU的子目录,又进一步分解为boot,mm,kernel等子目录,分别包含控制系统引导,内存管理,系统调用等 | --x86  /* 英特尔cpu及与之相兼容体系结构的子目录*/ | |--boot   /*引导程序*/…
内核源代码下载:www.kernel.org Linux内核源代码采用树形结构进行组织,非常合理地把功能相关的文件都放在同一个子目录下,使得程序更具可读性. linux内核代码最好不要在windows下解压,因为同名(大小写)会丢失一些code. source insight:添加汇编文件:option->Document option 添加.c..h..s..S 内核目录: arch目录 :内核所支持的每种CPU体系,在该目录下都有对应的子目录.每个CPU的子目录,又进一步分解为boot,mm…
Linux 内核文档 该文件是 Linux 内核文档树中最顶层的,会随着内核一起更新:其目的是把散乱的文档集成为一个逻辑清晰的完整版,非常欢迎改善文档,如果想做出自己的贡献,加入vger.kernel.org中的 linuxdoc 列表中 许可证文件 见 Linux 内核源代码 Linux kernel licensing rules 用户导向的文档 以下手册是给那些想最优化某个系统的内核用户准备的 The Linux kernel user's and administrator's guid…
简介 Linux内核使用 Sphinx 实现把 Documentation 目录下的 reStructuredText 文件转换为非常漂亮的文档.文档既可以通过 make htmldocs 转换成 HTML 格式,也可以通过 make pdfdocs 转换为 PDF 格式. 转换生成的文档存放于 Documentation/output 目录下. Linux内核强大的文档功能,除了直接转换 .rst文档之外,还能从源码中汲取API说明,结构体说明等信息.当然要做到这样,源码的注释是有一定要求的.…
Linux内核源代码获取方法 什么叫Linux 什么叫Linux内核 Linux内核源代码的获取 什么叫Linux? Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户.多任务.支持多线程和多CPU的操作系统.它能运行主要的UNIX工具软件.应用程序和网络协议.它支持32位和64位硬件.Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统.Linux最早是由芬兰黑客 Linus Torvalds为尝试在英特尔x86架构上提…