Linux 内核知识学习/总结
i龙家小少
开源中国推出代码托管平台,与Github一样都是基于Git,但是国产货就是厚道!Git@osc 上每人可创建1000个项目~永不收费!还不快来点击创建 http://git.oschina.net/signup?inviter=longerzone
展开
-
Linux内核网络部分控制流
英文原文地址:http://www.linuxfoundation.org/collaborate/workgroups/networking/kernelflow#Layer_5:_Session_layer_.28sockets_and_files.29这篇文章描述Linux内核网络部分的控制流(以及相关的数据缓冲),上述图片是对网络控制流的一个概括性的总图。这篇文翻译 2013-03-14 03:29:52 · 2828 阅读 · 0 评论 -
使用autotools自动生成Makefile并在此之上使用dh-make生成可发布的deb程序包(详解)
本文将介绍如何使用autotools生成一个Makefile文件,并在此基础上使用dh-make和debuild生成一个可发布的deb程序包,这对我们在Linux下开发以及发布都是很有帮助的。原创 2013-10-14 11:21:49 · 5312 阅读 · 0 评论 -
Linux 下 Login 和 Logout 详解
本文将针对Linux系统的 Login&Logout 是如何运作的展开讨论,顺带也会提到配置文件的位置等,以及 exit 和Logout的区别。原创 2013-10-17 08:46:48 · 12075 阅读 · 1 评论 -
理解 Linux 的硬链接与软链接
硬链接与软链接是 Linux 文件系统中的一个重要概念,其涉及文件系统中的索引节点 (index node 又称 inode),而索引节点对象是 Linux 虚拟文件系统 (VFS) 的四个基本概念之一。通过剖析硬链接与软链接的联系与区别,我们可更好的了解 Linux 中 VFS 这一通用文件模型。并让 Linux 普通用户和系统管理员正确使用硬链接与软链接,帮助文件系统开发者获取 inode转载 2013-10-28 09:33:45 · 2207 阅读 · 0 评论 -
Linux 下的两个特殊的文件 -- /dev/null 和 /dev/zero 简介及对比
Linux下(类UNIX系统好像都有)写脚本的时候经常能遇到两个特殊的文件 /dev/null 和 /dev/zero, 本文主要介绍了这两个特殊文件的含义记忆使用方法。原创 2013-10-22 17:00:07 · 45632 阅读 · 2 评论 -
谈谈Linux打补丁的原理以及如何判别打补丁的错误 --- 从补丁学内核
对于Linux 下打补丁,大家可能还没意识到这是个学习Linux内核的非常好的机会,每个补丁的分析都会让你更加了解内核,日积月累,相信逐步积累终会引发质变,我们都会成为大牛~原创 2013-11-26 21:00:31 · 25149 阅读 · 3 评论 -
浅谈Linux中系统调用代码相关
内核代码的跳跃性造就了代码的难懂,本文对Linux中的系统调用实现代码做了简单分析,还有好多不懂,等待高手指点~~原创 2014-04-14 19:37:52 · 3491 阅读 · 0 评论 -
多角度分析为什么 Linux 的硬连接不能指向目录
本文翻译自两篇文章,先深刻的剖析硬链接、软链接以及inode ,此后从多个角度分析为什么Linux下不能对目录创建硬链接。在文章小结处,给以总结,如果您对Linux的文件系统感兴趣,我敢说本文值得一读!翻译 2014-04-17 09:27:15 · 9761 阅读 · 6 评论 -
请善用工具审核您的内核代码:)
在写内核代码时,代码风格是一个很重要的部分,否则内核代码将变的混乱不堪。那么什么样的代码算漂亮的代码?什么样的代码符合c99这样的标准?此外,程序写完之后,有什么工具能够帮我们检查代码有没有指针错误?本文将带你看看三个工具。原创 2014-04-17 21:31:22 · 13185 阅读 · 5 评论 -
UBIFS 白皮书 -- UBIFS设计简介
编者注: 最近刚好接触到UBIFS,于是就在UBIFS官网下载的ubifs_whitepaper(ubifs白皮书)学习,后来发现ChinaUnix博客上有这篇文档的翻译版本,但是经过我一番研读后发现那个翻译版本有如下几个小缺点: 1、中英文混杂,文章中有大量的英文短语短句还未翻译 2、毫无头绪 ,这个不能怪那篇博主,因为这个白皮书就是毫无章节的概念,所以我的译文中我自己添加翻译 2013-05-04 17:08:11 · 4203 阅读 · 1 评论 -
Linux 网络栈剖析 --- 从 socket 到设备驱动程序
本文转载自:http://www.ibm.com/developerworks/cn/linux/l-linux-networking-stack/index.html#简介: Linux® 操作系统的最大特性之一就是它的网络栈。它最初源于 BSD 的网络栈,具有一套非常干净的接口,组织得非常好。其接口范围从协议无关层(例如通用 socket 层接口或设备层)到各种网络协议的具体层。本文将从分转载 2013-03-03 21:41:40 · 2323 阅读 · 0 评论 -
Linux内核中内存相关的操作函数
1、kmalloc()/kfree() static __always_inline void *kmalloc(size_t size, gfp_t flags) 内核空间申请指定大小的内存区域,返回内核空间虚拟地址。在函数实现中,如果申请的内存空间较大的话,会从buddy系统申请若干内存页面,如果申请的内存空间大小较小的话,会从slab系统中申请内存空间。 gfp转载 2012-11-04 22:43:01 · 1550 阅读 · 0 评论 -
Linux系统调用
转载自: http://www.tinylab.org/linux-system-calls/ 系统调用是系统内核提供给用户态程序的一系列API,这样应用程序就可以通过系统调用来请求操作系统内核管理的资源[1]。本文尝试分析在Linux下是如何使用linux内核给我们提供的API,并分析其实现过程。一、用户态不管我们是打开一个文件,接收一个socke转载 2013-10-09 10:18:46 · 2735 阅读 · 0 评论 -
gcc 编译过程
平时我们使用gcc 编译C程序,我们通常只用 gcc hello.c -o hello 之类的,顶多为了gdb调试再使用 -g 参数!其实我们可以使用手动编译来了解整个gcc编译的过程!我们使用最简单的Hello World 程序做示例:#include "stdio.h"int main(){ printf("Hello World\n"); retur原创 2013-04-30 11:15:43 · 2224 阅读 · 0 评论 -
The Linux CPU scheduler & runqueue
转载自:http://ccu-cs-os2009s-495410059.blogspot.nl/2009/06/linux-cpu-scheduler-runqueue.html 在Linux 2.6,每個CPU有屬於自己的一個runqueue,而runqueue又分成兩個結構,active跟expired。這2個queue是根據每個process的prio转载 2013-03-17 21:53:00 · 3226 阅读 · 0 评论 -
linux内核cdev_init系列函数
内核中每个字符设备都对应一个 cdev 结构的变量,下面是它的定义:linux-2.6.22/include/linux/cdev.hstruct cdev {struct kobject kobj; // 每个 cdev 都是一个 kobjectstruct module *owner; // 指向实现驱动的模块const struct fi转载 2012-08-08 21:34:01 · 787 阅读 · 0 评论 -
浅谈Linux下CPU利用率和CPU负载及其代码实现原理
可能很多人仍然无法搞明白Linux下CPU利用率和CPU负载的含义以及区别,本文将简单介绍这两者的含义和区别原创 2013-03-03 12:57:21 · 23590 阅读 · 0 评论 -
理解 Linux 的处理器负载均值(翻译)
转载自:http://www.gracecode.com/posts/2973.html英文原文链接: http://blog.scoutapp.com/articles/2009/07/31/understanding-load-averages你可能对于 Linux 的负载均值(load averages)已有了充分的了解。负载均值在 uptime 或者 top 命令中可以看到转载 2013-03-02 13:36:27 · 1723 阅读 · 0 评论 -
异步通知fasync
linux设备驱动归纳总结(三):7.异步通知fasyncxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx异步通知fasync是应用于系统调用signal和sigaction函数,下面我会使用signal函数。简单的说,signal函数就是让一个信转载 2013-02-26 16:50:44 · 837 阅读 · 0 评论 -
Linux用户空间与内核空间
Linux 操作系统和驱动程序运行在内核空间,应用程序运行在用户空间,两者不能简单地使用指针传递数据,因为Linux使用的虚拟内存机制,用户空间的数据可能被换出,当内核空间使用用户空间指针时,对应的数据可能不在内存中。Linux内核地址映射模型x86 CPU采用了段页式地址映射模型。进程代码中的地址为逻辑地址,经过段页式地址映射后,才真正访问物理内存。段转载 2013-03-21 09:45:02 · 2527 阅读 · 0 评论 -
linux虚拟文件系统概述
本文转载自:http://blog.chinaunix.net/uid-12567959-id-160983.html原文是 Linux/D转载 2014-05-21 16:37:50 · 2176 阅读 · 0 评论