【linux内核的一些知识点(上)】教程文章相关的互联网学习教程文章

Linux内核--网络栈实现分析(二)--数据包的传递过程(上)

本文分析基于Linux Kernel 1.2.13原创作品,转载请标明http://blog.csdn.net/yming0221/article/details/7492423更多请看专栏,地址http://blog.csdn.net/column/details/linux-kernel-net.html作者:闫明注:标题中的”(上)“,”(下)“表示分析过程基于数据包的传递方向:”(上)“表示分析是从底层向上分析、”(下)“表示分析是从上向下分析。 上一篇博文中我们从宏观上分析了Linux内核中网络栈的初始化过程,这里我们再...

Linux内核实验作业四【图】

实验作业:使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用20135313吴子怡.北京电子科技学院【第一部分】使用库函数API来获取用户标识号。库函数为getuid() 代码如下:编译运行之后,将用户id号1000打印输出在屏幕上。 【第二部分】使用汇编方式触发系统调用来获取用户标识号。库函数依旧为getuid() 代码如下:可以看出,打印出来的用户id和之前的一样都是1000.【第三部分】系统调用的工作机制学习总结我认为系统调...

高并发下的Linux内核参数优化【图】

高并发的影响因素除了硬件,Web服务器外,操作系统对TCP相关参数的配置也会对其有很大影响。 默认情况下Linux内核参数是考虑通用场景的(如ulimits -n 限定为1024),这在高并发访问的Web服务器下会造成影响。所以一般需要进行内核参数的调整,来使Web服务器(如Nginx)可以支持更高的并发。先来回顾一下TCP的三次握手与四次挥手过程:有了以上说明,我们来看如何修改以及需要修改哪些参数。 修改方式有sysctl命令及sysctl.conf两种: 1、...

构建调试Linux内核网络代码的环境MenuOS系统【代码】【图】

构建调试Linux内核网络代码的环境MenuOS系统下载linux内核并编译1. 下载linux源码下载地址,下载之后解压即可。【本次使用的linux-5.0.1版本】安装编译所需的工具 1 sudo apt install build-essential flex bison libssl-dev libelf-dev libncurses-dev 生成X86配置文件1make i386_defconfig#生成x86的配置文件 2 make menuconfig进入GUI编辑配置文件的生成依次选择:Kernel hacking =====》 Compile-time checks and compiler op...

《Linux内核分析》期中总结

《Linux内核分析》期末总结 20135109 高艺桐 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一、博客地址汇总第一周学习笔记计算机是如何工作的第二周学习笔记深入理解计算机第三周学习笔记构造一个简单的Linux内核的MenuOS第四周学习笔记...

Linux内核之vmlinux与vmlinuz

因为是初次系统的学习Linux内核,过程中遇到了一些常常出现的名词。似曾相识,但对他们的含义又不是非常清楚。因此,将搜索到的内容进行一下汇总。1.vmlinux vmlinux是一个包括linux kernel的静态链接的可运行文件。文件类型是linux接受的可运行文件格式之中的一个(ELF、COFF或a.out)。 2.vmlinuz vmlinuz是可引导的,压缩的linux内核,“vm”代表的“virtual memory”。vmlinuz是vmlinux经过gzip和objcopy(*)制作出来的压缩文件...

《Linux内核设计与实现》Chapter 1 读书笔记【图】

《Linux内核设计与实现》Chapter 1 读书笔记 一、Unix的特点Unix从Multics中产生,是一个强大、健壮和稳定的操作系统。特点1.很简洁  2.在Unix系统中,所有的东西都当做文件对待。这种抽象使对数据和对设备的操作都是通过一套相同的系统调用借口来进行的:open(),read(),write(),lseek()和close()  3.Unix内核和相关的系统工具软件用C语言编写而成——该特点使其具备出色的平台可移植性  4.Unix进程创建非常快速简洁,目标在...

linux内核分析课程总结()待完善

第一节 计算机是如何工作的http://www.cnblogs.com/July0207/p/5218597.html第二节 操作系统是如何工作的http://www.cnblogs.com/July0207/p/5242103.html第三节 构造一个简单的Linux系统MenuOShttp://www.cnblogs.com/July0207/p/5266594.html第四节 系统调用的三个层次(上)http://www.cnblogs.com/July0207/p/5277774.html第五节 系统调用的三个层次(下)http://www.cnblogs.com/July0207/p/5320325.html第六节 进程的描述和进...

《Linux内核分析》第八周 进程的切换和系统的一般执行过程【图】

张文俊 原创作品转载请注明出处 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000一、进程切换的关键代码switch_to的分析1.进程调度与进程调度的时机分析进程分类分类1I/O-bound:等待I/OCPU-bound:大量占用CPU进行计算分类2交互式进程(shell)实时进程批处理进程进程调度策略 一组决定何时以何种方式选择进程的规则Linux的调度基于分时和优先级策略:进程根据优先级(系统根据特定算法计算出来)排队...

结合中断上下文切换和进程上下文切换分析Linux内核的一般执行过程【代码】【图】

一、实验目的以fork和execve系统调用为例分析中断上下文的切换分析execve系统调用中断上下文的特殊之处分析fork子进程启动执行时进程上下文的特殊之处以系统调用作为特殊的中断,结合中断上下文切换和进程上下文切换分析Linux系统的一般执行过程二、fork系统调用分析  fork()系统调用用于复制父进程从而创建子进程。fork()的特殊之处在于:一次调用,两次返回。如果fork()执行出现了问题则会返回一个负数。如果fork()系统调用正常...

【华为云技术分享】Linux内核编程环境 (2)【图】

在上一期中,我们介绍了Linux内核编译方法,这一期我们用一个例子来介绍如何向Linux内核中增加一个模块。一、LKM内核模块LKM是Loadable Kernel Module的缩写,意思是可加载内核模块。它有点儿像动态链接库,可在运行时加载,成为内核代码和数据的一部分,访问全部内核地址空间,也可运行时动态卸载(需要解决依赖关系,并释放内存空间),所谓的更新就是加载→卸载→加载的过程。LKM是大部分设备驱动、文件系统的存在形式。为了编写...

《C/C++ 高级开发 与Linux内核源码探析 提高班(王保明老师)》

视频选集5/123P101-接口封装设计思想引导及初步实践-王保明 (1)P201-接口封装设计思想引导及初步实践-王保明 (2)P302-课堂答疑P403-课程安排和学员要求P504-热身-学员标准-数组做函数参数技术推演P605-数组做函数参数中的形参和实参初步理解-王保明P706-数据类型本质和变量本质剖析-王保明P806-不动手后果严重P907-中午课程回顾P1008-内存四区测试P1109-内存四区模型及堆栈模型概念入门-王保明P1210-内存四区结合函数调用内存分配强...

如何参与linux内核开发

如果想评论或更新本文的内容,请直接联系原文档的维护者。如果你使用英文交流有困难的话,也可以向中文版维护者求助。如果本翻译更新不及时或者翻译存在问题,请联系中文版维护者。 英文版维护者: Greg Kroah-Hartman <greg@kroah.com>中文版维护者: 李阳 Li Yang <leoli@freescale.com>中文版翻译者: 李阳 Li Yang <leoli@freescale.com>中文版校译者: 钟宇 TripleX Chung <xxx.phy@gmail.com> 陈琦 Maggie Che...

Linux内核--网络栈实现分析(八)--应用层发送数据(下)

本文分析基于Linux Kernel 1.2.13原创作品,转载请标明http://blog.csdn.net/yming0221/article/details/7547826更多请查看专栏,地址http://blog.csdn.net/column/details/linux-kernel-net.html作者:闫明注:标题中的”(上)“,”(下)“表示分析过程基于数据包的传递方向:”(上)“表示分析是从底层向上分析、”(下)“表示分析是从上向下分析。 下面是发送数据的流程:应用层发送数据包的入口函数是BSD socket层的sock_...

使用Ubuntu编译Linux内核【代码】

1.下载内核并解压到 /usr/src 目录下在终端执行以下命令即可下载 4.16.14版本(目前最新的稳定版)的内核到当前shell打开的目录下wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.16.14.tar.xz 解压下载的内核文件 linux-4.16.14.tar.xzxz -d linux-4.16.14.tar.xz 将 linux-4.16.14.tar.xz 文件解压成 linux-4.16.14.tar 压缩文件 sudo tar -xvf linux-4.16.14.tar -C /usr/src 将 linux-4.16.14.tar 解压到 /usr...