首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux 中的各种:进程 线程 内核 中断

各种的内存位置? 介绍完的工作原理和用途作用后,我们回归到 Linux 内核上来。...Linux 内核将这 4G 字节的空间分为两部分,将最高的 1G 字节(0xC0000000-0xFFFFFFFF)供内核使用,称为 内核空间。...进程的初始化大小是由编译器和链接器计算出来的,但是的实时大小并不是固定的,Linux 内核会根据入情况对区进行动态增长(其实也就是添加新的页表)。...二、线程Linux 内核的角度来说,其实它并没有线程的概念。Linux 把所有线程都当做进程来实现,它将线程和进程不加区分的统一到了 task_struct 中。...线程仅仅被视为一个与其他进程共享某些资源的进程,而是否共享地址空间几乎是进程和 Linux 中所谓线程的唯一区别。

3.4K20

Linux 中的各种:进程 线程 内核 中断

各种的内存位置? 介绍完的工作原理和用途作用后,我们回归到 Linux 内核上来。...Linux 内核将这 4G 字节的空间分为两部分,将最高的 1G 字节(0xC0000000-0xFFFFFFFF)供内核使用,称为 内核空间。...进程的初始化大小是由编译器和链接器计算出来的,但是的实时大小并不是固定的,Linux 内核会根据入情况对区进行动态增长(其实也就是添加新的页表)。...二、线程Linux 内核的角度来说,其实它并没有线程的概念。Linux 把所有线程都当做进程来实现,它将线程和进程不加区分的统一到了 task_struct 中。...线程仅仅被视为一个与其他进程共享某些资源的进程,而是否共享地址空间几乎是进程和 Linux 中所谓线程的唯一区别。

2.8K50
您找到你想要的搜索结果了吗?
是的
没有找到

扩展Linux网络

扩展Linux网络 来自Linux内核文档。之前看过这篇文章,一直好奇,问什么一条网络流会固定在一个CPU上进行处理,本文档可以解决这个疑问。为了更好地理解本文章中的功能,将这篇文章穿插入内。...简介 本文的描述了Linux网络中的一组补充技术,用于增加多处理器系统的并行性和提高性能。...默认会将队列平均分布到表中,但也可以在运行时通过ethtool命令进行检索和修改(–show-rxfh-indir 和 –set-rxfh-indir)。...为了启用加速RFS,网络会带调用ndo_rx_flow_steer 驱动函数来与期望(匹配特定流)的硬件队列进行交互。网络会在rps_dev_flow_table 中的流表项更新之后调用该函数。...参考: Queues, RSS, interrupts and cores Linux Network Scaling: Receiving Packets Linux 网络协议收消息过程-Per CPU

3.5K30

一文搞懂 | Linux 中的各种(进程 线程 内核 中断

各种的内存位置? 介绍完的工作原理和用途作用后,我们回归到 Linux 内核上来。...Linux 内核将这 4G 字节的空间分为两部分,将最高的 1G 字节(0xC0000000-0xFFFFFFFF)供内核使用,称为 内核空间。...进程的初始化大小是由编译器和链接器计算出来的,但是的实时大小并不是固定的,Linux 内核会根据入情况对区进行动态增长(其实也就是添加新的页表)。...二、线程Linux 内核的角度来说,其实它并没有线程的概念。Linux 把所有线程都当做进程来实现,它将线程和进程不加区分的统一到了 task_struct 中。...线程仅仅被视为一个与其他进程共享某些资源的进程,而是否共享地址空间几乎是进程和 Linux 中所谓线程的唯一区别。

5.4K20

分布式系统技术全

0x01: 分布式系统 根据分布式的CAP理论我们了解“任何一个分布式系统都无法同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance...很多场景下,我们为了保证最终一致性,都会做很多技术方案来支持,比如分布式事务、分布式锁。...分布式事务概念 讨论分布式事务之前我们分清两个概念:本地事务、分布式事务; 本地事务是解决单个数据源上的数据操作的一致性问题的话,而分布式事务则是为了解决跨越多个数据源上数据操作的一致性问题。...XA实现分布式事务的原理如下: ? 特点:XA协议比较简单,目前很多商业数据库实现XA协议,使用分布式事务的成本也比较低。...Curator提供了四种分布式锁: InterProcessMutex:分布式可重入排它锁 InterProcessSemaphoreMutex:分布式排它锁 InterProcessReadWriteLock

91730

一文读懂 | Linux 中的各种:进程 线程 内核 中断

各种的内存位置? 介绍完的工作原理和用途作用后,我们回归到 Linux 内核上来。...进程的初始化大小是由编译器和链接器计算出来的,但是的实时大小并不是固定的,Linux 内核会根据入情况对区进行动态增长(其实也就是添加新的页表)。...二、线程Linux 内核的角度来说,其实它并没有线程的概念。Linux 把所有线程都当做进程来实现,它将线程和进程不加区分的统一到了 task_struct 中。...Linux 为什么需要区分这些? 为什么需要区分这些,其实都是设计上的问题。这里就我看到过的一些观点进行汇总,供大家讨论: 1. 为什么需要单独的进程内核?...Linux 调度程序中并没有区分线程和进程,当调度程序需要唤醒”进程”的时候,必然需要恢复进程的上下文环境,也就是进程;但是线程和父进程完全共享一份地址空间,如果也用同一个那就会遇到以下问题。

1.7K20

分布式机器学习:如何快速从Python过渡到Scala

首先介绍下我的情况和需求,如果你跟我类似,那么这篇文章将很有帮助; 我之前的技术主要是Java、Python,机器学习方面主要用到是pandas、numpy、sklearn、scipy、matplotlib...pyspark; 之后一方面团队其他成员基本都是用scala,同时在Spark API更新上,pyspark也要慢于scala的,而且对于集群维护的同事来说,也不想再维护一套python环境,基于此,开始将技术转到...项目介绍 基于300w用户的上亿出行数据的聚类分析项目,最早使用Python完成,主要是pandas+sklearn+seaborn等库的使用,后需要使用spark集群,因此转移到pyspark; 现在的需求是功能等不动的前提下转移到

1.2K20

Linux 内核的网络协议

前言 本文主要记录 Linux 内核网络协议的运行原理 数据报文的封装与分用 封装:当应用程序用 TCP 协议传送数据时,数据首先进入内核网络协议中,然后逐一通过 TCP/IP 协议族的每层直到被当作一串比特流送入网络...Linux 内核网络协议 协议的全景图 协议的分层结构 逻辑抽象层级: 物理层:主要提供各种连接的物理设备,如各种网卡,串口卡等。...NAPI 是 Linux 上采用的一种提高网络处理效率的技术,它的核心概念就是不采用中断的方式读取数据,而代之以首先采用中断唤醒数据接收服务,然后采用 poll 的方法来轮询数据。...函数是体系结构相关的汇编代码,它首先初始化内核堆栈段为创建系统中的第一过程进行准备,接着用一段循环将内核映像的未初始化的数据段清零,最后跳到 start_kernel() 函数中初始化硬件相关的代码,完成 Linux...函数 start_kerenl() 将会调用一系列的初始化函数,如:平台初始化,内存初始化,陷阱初始化,中断初始化,进程调度初始化,缓冲区初始化,完成内核本身的各方面设置,目的是最终建立起基本完整的 Linux

2.8K50

Linux内核IO技术详解

这是《Linux系统调用那些事》高级部分的第一章《聊聊Linux IO》。高级部分的文章均假设读者完整的学习过Linux系统基础以及Linux系统编程相关的内容,并已有一定的工程实践经验。...图中描述了Linux下文件操作函数的层级关系和内存缓存层的存在位置。中间的黑色实线是用户态和内核态的分界线。...Linux内核中的IO 这一小节来看Linux内核的IO的结构。...先上一张全貌图[4]: 由图可见,从系统调用的接口再往下,Linux下的IO致大致有三个层次: 文件系统层,以 write 为例,内核拷贝了write参数指定的用户态数据到文件系统Cache中,并适时向下层同步...设备层,通过DMA与内存直接交互,完成数据和具体设备之间的交互 结合这个图,想想Linux系统编程里用到的Buffered IO、mmap、Direct IO,这些机制怎么和Linux IO联系起来呢

2.4K10

明白了的基本操作后,我们需要去深入地思考一下,是如何工作的。换句话说,为了使这个数据结构按照的方式去工作,它需要什么?...1)需要有一个指针,我们称之为 TOP,用它来指向中最顶部的那个元素。 2)当我们初始化一个的时候,我们把 TOP 的值设置为 -1,这样我们就可以通过 TOP == -1 来判断是否为空。...空的时候,TOP 等于 -1;把元素 1 压入中的时候,stack[0] 为 1,TOP 加 1 变为 0;把元素 2 压入中的时候,stack[1] 为 2,TOP 加 1 变为 1;把元素 3...假设中的元素是 int 类型,我们可以用 Java 语言来自定义一个最简单的。...3)用于浏览器:浏览器的后退按钮会把我们访问的 URL 压入一个中,每次我们访问一个新的页面,新的 URL 就压入了的顶部,当我们点了后退按钮,最新的那个 URL 就从中移除,之前的那个 URL

69220

Linux漏洞分析入门笔记-溢出

在IDA的安装目录中的dbgsrv文件夹中,选择linux_server或者linux_serverx64复制到需要调试Linux程序所在的目录下。...将复制过来的文件赋予执行权限chmod 777 linux_server*。执行该文件./linux_server或者./linux_server64。 2....顺序执行:F9 0x01:漏洞简介 1.一个简单的linux x64平台溢出漏洞,漏洞定位到vuln函数,如下图: ?         图5 ?         图6 ?         ...而根据Linux X86 32位函数调用约定,参数是压到上的。但是空间完全由我们控制了,所以控制system的函数不是一件难事情。...Linux系统中对应用程序漏洞防护有三个: SSP(Stack-Smashing Protectot):堆栈防溢出保护,它会在每个函数的帧底部添加一个随机字节,每次函数将要返回时,都会这个随机字节进行验证

2K40

如何学习 Linux 内核网络协议

协议的细节 下面将介绍一些内核网络协议中常常涉及到的概念。...sk_buff 结构自身并不存储报文内容,它通过多个指针指向真正的报文内存空间: sk_buff 是一个贯穿整个协议层次的结构,在各层间传递时,内核只需要调整 sk_buff 中的指针位置就行。...而这里提到的 socket 和 sock 是内核中的两个数据结构,其中 socket 向上面向用户,而 sock 向下面向协议。 如下图所示,这两个结构实际上是一一对应的。...L3->L4 我们知道网络协议是分层的,但实际上,具体到实现,内核协议的分层只是逻辑上的,本质还是函数调用。...Netfilter Netfilter 是报文在内核协议必然会通过的路径,我们从下面这张图就可以看到,Netfilter 在内核的 5 个地方设置了 HOOK 点,用户可以通过配置 iptables

1.4K20

现代Linux系统上的溢出攻击

基本内容 这个教程试着向读者展示最基本的溢出攻击和现代Linux发行版中针对这种攻击的防御机制。...经典的溢出 首先让我们回到从前,一切都很简单,向上面复制草率的复制数据很容易导致程序的执行完全失控。...因为的工作方式(译者注:也就是是向低地址衍生的,也就是说最后进的保存在最低的地址处),如果用户的数据超过了缓冲区的长度,那么输入的数据就会覆盖掉函数的返回地址(译者注:因为往缓冲区里面写数据是从低地址向高地址写...0x1b4000 /lib/x86_64-linux- 0x7f0e124a7000 0x7f0e124a9000 0x2000 0x1b8000 /lib/x86_64-linux- 0x7f0e124a9000...0x1b4000 /lib/x86_64-linux- 0x7fdbb2b0b000 0x7fdbb2b0d000 0x2000 0x1b8000 /lib/x86_64-linux- 0x7fdbb2b0d000

1.2K10
领券