腾讯云
开发者社区
文档
建议反馈
控制台
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
登录/注册
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
(9999+)
视频
沙龙
2
回答
高效的
Linux
套接字(DMA/零拷贝)
linux
、
sockets
、
asynchronous
我正在构建一个非常高性能的
Linux
服务器(基于epoll、非阻塞套接字和基于IO _submit/io_getevents/eventfd的异步磁盘io)。特别是,我关注的是从
用户
空间
缓冲区
到网卡的数据,以及从网卡返回到
用户
空间
缓冲区
的数据(现在让我们忽略sendfile调用)。据我所知,在非阻塞
Linux
套接字上调用read/write并不是完全异步的-系统调用在将
缓冲区
从
用户
空间复制到内核(或者反过来)时阻塞,然后才
浏览 4
提问于2009-12-02
得票数 32
2
回答
内核读/写
用户
空间内存
memory
、
linux-kernel
首先,从
用户
空间malloc一个
缓冲区
,并用全'A‘填充
缓冲区
最后,我可以使用直接从
用户
空间传递的原始指针来读写
缓冲区
。
Linux
设备驱动程序,第三版,第415页,说内核不能直接操作没有映射到内核地址空间的内存。
浏览 2
提问于2012-01-17
得票数 1
回答已采纳
1
回答
用户
空间
缓冲区
与内存映射文件之间的DMA
c++
、
linux
、
memcpy
、
dma
内存通过
用户
空间DMA:在
linux
中可以通过
用户
空间DMA实现memcpy吗?我知道有一些方法可以通过DMA将内核
缓冲区
复制到
用户
空间
缓冲区
,但是想要在
用户
空间中通过DMA对memcpy进行扩展吗?
浏览 1
提问于2014-04-07
得票数 1
回答已采纳
3
回答
EAGAIN是否会在发送时返回
缓冲区
已满以外的任何内容?
linux
、
networking
、
tcp
、
sockets
、
send
如果我在
Linux
的非阻塞tcp套接字上使用send(),它是否会为发送
缓冲区
已满以外的任何条件返回EAGAIN?基本上,我需要决定是使用套接字发送
缓冲区
作为应用程序的唯一
缓冲区
,还是需要自己的
用户
空间
缓冲区
来填充套接字
缓冲区
。
浏览 2
提问于2010-06-18
得票数 2
1
回答
同步命令实际上同步了什么?
debian
、
disk
、
synchronization
当我作为常规
用户
执行sync时,是否会刷新属于其他
用户
的所有
缓冲区
(包括根
用户
或仅属于我自己的
缓冲区
)?man不提供此信息。我特别询问Debian 9,但欢迎在
Linux
和Unix上提供更普遍的答案。
浏览 0
提问于2018-09-12
得票数 1
回答已采纳
1
回答
如何知道从
用户
空间传递的
缓冲区
大小?
linux-kernel
、
buffer
、
sizeof
我正在尝试为
linux
内核开发一个新的系统调用。此系统调用将在
用户
缓冲区
上写入作为参数的信息,例如:char buffer[10000]; 有一种方法(如
用户
级别的sizeof() )可以知道整个
缓冲区
的大小(在本例中为10000)?我尝试过strlen_user(buffer),但它返回当前进入
缓冲区
浏览 1
提问于2013-02-06
得票数 0
1
回答
Xilinx Zynq平台上使用AXI-DMA IP的PCM DMA引擎
linux
、
xilinx
、
alsa
、
pcm
、
dma
这是我当前的数据路径: 我在Zynq PS上使用的是
Linux
4.10内核。我使用
Linux
的ASoC子系统来产生pcm流和控制我的外部音频放大器。我有512MB的DDR内存连接到Zynq。
浏览 57
提问于2017-02-24
得票数 3
2
回答
在ARM DMA_ZONE上增加
Linux
i.MX287内存
c
、
linux
、
arm
、
virtual-memory
、
dma
我正在一个嵌入式
Linux
系统中工作,它有2.6.35.3内核。 在设备中,我们需要为数据捕获驱动程序之一提供一个4MB+192kB连续DMA
缓冲区
。驱动程序使用SPI传输将数据复制到此
缓冲区
。
用户
空间应用程序发出mmap系统调用,将
缓冲区
映射到
用户
空间,然后直接读取可用数据。
缓冲区
是使用"alloc_bootmem_low_pages“调用分配的,因为不可能使用其他方法(如kmalloc )分配超过4MB的
缓冲区
。但是,由于最近的升级,我们
浏览 9
提问于2017-06-06
得票数 2
1
回答
dmesg从哪里获得内核消息和
用户
空间消息?
linux
、
debian
、
logs
、
dmesg
据说,dmesg检查或控制内核环
缓冲区
。但它可以选择--kernel和--userspace。内核是否只存储由内核生成的消息,而不是由进程生成的消息?dmesg从哪里获得
用户
空间消息?
用户
空间消息是否包括由所有进程(例如,cron )生成的消息?
浏览 0
提问于2021-04-03
得票数 1
回答已采纳
1
回答
在
Linux
中,是否有类似CreateConsoleScreenBuffer/ReadConsoleOutput的功能来读取终端内容?
c
、
linux
、
terminal
也就是说,如何在
Linux
中创建新的屏幕
缓冲区
和读/写
缓冲区
内容?我所说的屏幕
缓冲区
是指显示给
用户
的内容。或者整个屏幕。 我不想用诅咒。我找到了instead,但是我想要一个函数而不是命令。也许ioctl可以读取
缓冲区
,但我不知道如何使用它。
浏览 1
提问于2021-10-29
得票数 1
回答已采纳
2
回答
其他操作系统是否实现
Linux
系统调用拼接?
sockets
、
operating-system
、
implementation
、
system-calls
、
splice
在我正在开发的应用程序中,我在
Linux
上使用进行套接字到套接字数据传输。 您可以在
Linux
上看到splice与
用户
空间
缓冲区
的性能改进。 +p+t使用带有
用户</
浏览 5
提问于2012-09-01
得票数 5
回答已采纳
2
回答
对用O_DIRECT打开的文件执行'write‘操作后的
用户
缓冲区
c
、
linux
、
file
、
block-device
我使用O_DIRECT标志直接从
用户
缓冲区
写入磁盘。但据我所知,
Linux
不能保证在这个调用之后,数据会被写入。它只是使用DMA或其他任何东西直接从
用户
缓冲区
写入物理设备...因此,我不知道在调用“write”函数后是否可以写入
用户
缓冲区
。写入DMA可能用来向设备传输数据的
用户
缓冲区
是否有效?
浏览 4
提问于2012-12-01
得票数 3
2
回答
什么是Unix/
Linux
等价于注册I/O?
linux
、
unix
、
network-programming
、
winsock
Windows 8和Server 2012运行,它允许您预先注册I/O
缓冲区
一次,然后重复使用相同的
缓冲区
,从而避免了其他(显然)必要的每个I/O
缓冲区
检查。力拓还允许完全以
用户
模式完成轮询等完成操作,而无需进行系统调用。 (如何)这在
Linux
/Unix中是可能的吗?
浏览 6
提问于2015-05-28
得票数 7
回答已采纳
1
回答
splice()在
Linux
中是如何实现零拷贝的?
c
、
linux
、
splice
、
sendfile
、
zero-copy
我对零拷贝的概念很陌生,但据我所知,这是一种不将任何东西从内核
缓冲区
复制到
用户
缓冲区
并直接在两个内核
缓冲区
之间传递数据的方法。这样,CPU就不必将数据从内核
缓冲区
复制到
用户
缓冲区
并返回到内核
缓冲区
。CPU现在所做的就是在两个内核
缓冲区
之间复制数据,从而减少no。在
Linux
2.4和更高版本的某些情况下,即使在内核
缓冲区
中也不需要复制数据,只有要传输的数据的位置和长度被传递到套接字
缓冲区</
浏览 13
提问于2022-09-08
得票数 1
2
回答
3台机器上不同的C++
缓冲区
溢出
c++
、
compiler-construction
、
buffer-overflow
我正在c++中测试一个简单的
缓冲区
溢出。该示例是一个测试,在该测试中,如果检查不到位,恶意
用户
可以使用
缓冲区
溢出覆盖变量。该示例定义了一个
缓冲区
,然后定义了一个变量,这意味着应该为
缓冲区
分配空间,然后为变量分配空间。该示例从cin读取到长度为5的
缓冲区
,然后检查管理变量是否设置为0 (如果是的话)
用户
在概念上获得管理访问权。= 0) return 0;
浏览 9
提问于2013-09-16
得票数 2
回答已采纳
1
回答
如何在
Linux
下访问DMA
linux-kernel
、
device-driver
、
dma
我正在用
Linux
编写一个设备驱动程序,我需要为它实现DMA。 很明显,可以通过调用pci_alloc_consistent()来分配DMA
缓冲区
。但是我们如何从
用户
级别向这些
缓冲区
写入命令呢?
浏览 12
提问于2012-02-12
得票数 1
1
回答
单个
缓冲区
;多个套接字;
Linux
下的单个syscall
linux
、
performance
、
sockets
、
io
、
kernel
Linux
是否有任何本机内核功能,可以将提供的
缓冲区
发送到一组套接字?一种类型的矢量I/O,除了套接字句柄而不是
缓冲区
。
浏览 2
提问于2015-08-24
得票数 2
回答已采纳
2
回答
Linux
用户
空间DMA访问(用于内存-内存复制)
c
、
linux
、
kernel
、
dma
、
userspace
我的嵌入式ARM设备有一个800x480的16位
Linux
帧缓冲LCD,需要手动进行双缓冲。目前,我只是使用memcpy()将双
缓冲区
写入帧
缓冲区
,这非常慢。我正在使用的ARM设备和
Linux
内核确实支持DMA内存-内存复制,但我在解决如何在
用户
空间程序中访问它时遇到了麻烦。似乎我需要使用
linux
/dmaengine.h和dma_async_memcpy_buf_to_buf(),但它们似乎只在内核中可用?
浏览 30
提问于2015-09-09
得票数 0
1
回答
如何使非root
用户
能够清空
linux
缓冲区
缓存
debian
、
permissions
、
cache
、
setuid
、
buffer
我需要在python脚本中清空
linux
缓冲区
缓存,该脚本运行在Debian wheezy上。作为根
用户
,我运行sync; echo 3 | sudo tee /proc/sys/vm/drop_caches,但是脚本由
用户
运行,没有根权限。我想到了以下几种可能性: 授予
用户
对文件/proc/sys/vm/drop_caches的写权限(这似乎不起作用,因为当我chmod 646 /proc/sys
浏览 0
提问于2014-11-18
得票数 3
回答已采纳
1
回答
Linux
内核中的sscanf函数容易受到
缓冲区
溢出攻击吗?
linux
、
linux-kernel
、
linux-device-driver
、
buffer-overflow
据我所知,典型的
缓冲区
溢出攻击发生在攻击溢出堆栈上的内存
缓冲区
时,从而允许攻击者注入恶意代码并重写堆栈上的返回地址以指向该代码。*/static char str[8]; /* global string恶意
用户
是否能够通过write调用故意使
缓冲区
溢出? 通常,我希望防范
缓冲区
溢出攻击--比如限制读取的字节数--但我在大量函数
浏览 1
提问于2013-05-02
得票数 4
回答已采纳
点击加载更多
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
Libc Realpath缓冲区下溢漏洞,可导致Linux本地提权
nginx缓冲区排坑
Linux 切换用户
Linux 杂志之死!死于吝啬的 Linux 用户
Linux管理用户、用户组权限
热门
标签
更多标签
云服务器
ICP备案
实时音视频
对象存储
即时通信 IM
活动推荐
运营活动
广告
关闭
领券