【Linux内核】教程文章相关的互联网学习教程文章

《Linux内核分析》实验一【图】

陈智威,《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 课堂学习笔记:作业截图:汇编代码堆栈分析:总结:计算机的工作是通过一系列的代码使其硬件能够按照所编写的指令进行运行,而此次实验就是具体介绍了一下Linux的运行方式,用汇编的语言,即更贴切计算机的语言来向我们介绍了计算机是如何进行工作的。 原文:http://www.cnblogs.com/vioczw/p/5225692.html

linux内核代码框架熟悉(一) itop4412-linux内核4.14.2总体框架熟悉【图】

按照以下思路大概总结下对linux内核4.14.2总体框架的认识1、内核是由哪些文件组成的2、内核的编译体系是怎么样的,是怎么编译链接起来的3、内核的启动流程,在启动过程中大致做了哪些工作4、通过对exynos4412开发板上移植linux内核4.14.2验证上述分析5、编译出uImage后,是怎么被uboot加载运行起来的 一、linux内核4.14.2是由哪些文件组成的1. arch目录 这个目录是体系结构相关的代码,里面每一个目录对应一种架构CPU,比如a...

Linux内核4.4版本带来的网络新特性【代码】

本文题目有点大,但其实我只想描述一些我个人一直比较关注的特性,并且不会太详细,跟往常一样,主要是帮忙理清思路的,不会分析源码。这主要是为了哪一天突然忘了的时候,一目十行扫一眼就能记忆当时的理解,不然写的太细节了,自己都看不懂了。Lockless TCP listener先 从TCP的syncookie说起,如果都能使用syncookie机制该有多好,但是不能,因为它会丢失很多选项协商信息,这些信息对TCP的性能至关 重要。TCP的syncookie主要是为...

Linux内核架构读书笔记 - 2.4.2 内核线程【代码】【图】

内核线程what? 内核本身启动的线程,也被称之为内核守护进程内核线程分为两种类型 启动后一直等待,直到内核请求线程执行某一动作 启动后周期运行,检测特定资源的使用,在用量超出时采取行动 kernel_thread 启动一个内核线程,特定于体系结构,但是原型相同  asm-arm/process.h1/*2 * Create a new kernel thread 3*/4externint kernel_thread(int (*fn)(void *), void *arg, unsigned long flags); fn回调函数 arg 参数 f...

Linux内核调优部分参数说明

#接收套接字缓冲区大小的默认值(以字节为单位)。net.core.rmem_default = 262144 #接收套接字缓冲区大小的最大值(以字节为单位)。net.core.rmem_max = 16777216 #发送套接字缓冲区大小的默认值(以字节为单位)。net.core.wmem_default = 262144 #发送套接字缓冲区大小的最大值(以字节为单位)。net.core.wmem_max = 16777216 #用来限制监听(LISTEN)队列最大数据包的数量,超过这个数量就会导致链接超时或者触发重传机制。net.core.so...

linux内核源码“双向链表list_head”续

上篇博文《linux内核源码“双向链表list_head”》中以一个实例介绍了list_head双向链表的用法,只有实例的代码,并没有list_head链表的代码,考虑到各位好学博友的强烈愿望,今天把list_head的代码即list.h头文件粘贴到此,供各位好学博友使用。一、list.h头文件源码[root@bdkyr cstudy]# cat list.h #list.h头文件 #ifndef _LINUX_LIST_H #define _LINUX_LIST_H #include <stdlib.h> #undef offsetof #ifdef __compil...

Linux内核系列—12.a.操作系统开发之从Loader到内核【图】

Loader要做两项工作,我们先来做第一项,把内核加载到内存:1.加载内核到内存。2.跳入保护模式。 首先编译无内核时:nasm boot.asm -o boot.binnasm loader.asm -o loader.bindd if=boot.bin of=a.img bs=512 count=1 conv=notruncsudo mount -o loop a.img /mnt/hgfs/sudo cp loader.bin /mnt/hgfs/ -vsudo umount /mnt/hgfs/运行结果如下:接下来编译内核并将其写入软盘映像:nasm -f elf -o kernel.o kernel.asmld -m elf_i386 ...

Linux内核RCU(Read Copy Update)锁简析

在很早以前,大概是2009年的时候,写过一篇关于Linux RCU锁的文章《RCU锁在linux内核的演变》,现在我承认,那个时候我虽然懂了RCU锁,但是我没有能力用一种非常简单的描述把Linux的实现给展示出来,有道是你能给别人用你自己的方式非常简洁地描述清楚,你才是真正的精通它,否则,无异于背诵。换个说法,如果你在被面试,在短时间内靠嘴说给面试官,且他还要能听明白,就说明自己真的懂了,这种时候,是不会给你机会分析源代码的,...

linux内核源码结构【图】

一、概述  Linux内核庞大,但是这些文件的结构还是有章可循的,分别位于不同的目录下,各个目录功能相对独立。 二、源码结构表目录名描述arch体系结构相关的代码,对于每个架构的CPU,arch目录下有一个对应的子目录,比如arch/arm、arch/i386block块设备的通用函数crypto常用的加密和散列算法(如AES、SHA等),还有一些压缩和CRC校验算法drivers所有的设备驱动程序,里面每一个子目录对一个一类驱动程序,比如drivers/block为块设...

#2018-2019-1 20189213《Linux内核原理与分析》第二周作业【图】

Linux第二周学习报告在这一周里学习了庖丁解牛Linux内核分析第一章《计算机是如何工作的》: 这一章主要介绍了存储程序计算机的结构以及关于汇编的基础知识。从硬件角度讲,存储程序计算机包括输入、输出、存储、计算和控制五部分。从程序员的角度,一个程序的执行过程就是CPU不断从内存中获取指令并执行的过程。从汇编语言的角度可以比较清晰的看出计算机是如何执行程序的,当然,由于编译器以及平台的不同,使用高级语言编写的程...

《Linux内核设计与实现》读书笔记(十五)- 进程地址空间(kernel 2.6.32.60)【代码】【图】

进程地址空间也就是每个进程所使用的内存,内核对进程地址空间的管理,也就是对用户态程序的内存管理。主要内容:地址空间(mm_struct)虚拟内存区域(VMA)地址空间和页表 1. 地址空间(mm_struct)地址空间就是每个进程所能访问的内存地址范围。这个地址范围不是真实的,是虚拟地址的范围,有时甚至会超过实际物理内存的大小。 现代的操作系统中进程都是在保护模式下运行的,地址空间其实是操作系统给进程用的一段连续的虚拟内存空间。...

Linux内核TCP/IP参数分析与调优【图】

转载于:http://www.itxuexiwang.com/a/liunxjishu/2016/0225/167.html?1456482565 如下图展示的是TCP的三个阶段.1,TCP三次握手. 2,TCP数据传输. 3,TCP的四次挥手。SYN:(同步序列编号,Synchronize Sequence Numbers)该标志仅在三次握手建立的时候有效。表示一个新的TCP连接请求。 ACK:(确认编号,Acknowledgement Number)是对TCP请求的确认标志,同事提示对端系统已经成功连接所有数据。 FIN(结束标志,Finish)用来结束一个TCP会话...

Linux内核设计的艺术-进程2的创建及执行

1、打开标准输入设备 代码路径:init/main.c 目前处于进程1的3特权级void init(void) {int pid,i;setup((void *) &drive_info);(void) open("/dev/tty0",O_RDWR,0);(void) dup(0);(void) dup(0);... } open同样调用int 0x80进入进程1的0特权级,sys_open如下: 代码路径:fs/open.cint sys_open(const char * filename,int flag,int mode) {struct m_inode * inode;struct file * f;int i,fd;mode &= 0777 & ~curr...

漫谈Linux内核哈希表(2)

原文:http://blog.chinaunix.net/uid-23069658-id-5012484.html

“Linux内核分析”实验三【代码】【图】

跟踪分析Linux内核的启动过程 作者:何振豪原创作品转载请注明出处 http://www.cnblogs.com/scoyer/p/6516032.html 《Linux内核分析》MOOC课程 http://mooc.study.163.com/course/USTC-1000029000这节课讲了如何查看linux内核源代码,构造一个简单的linux系统(算不上构造,实际上就是编译内核,然后打包git上的根文件系统,然后启动这个简单系统而已),最后还讲了如何利用gdb来跟踪调试linux内核的执行情况(重点)。 这次实验主...