LWN:5.18 合并窗口,第二部分!

Intel CET缓解机制实战解读 基于硬件设计的ROP缓解技术 阅读详情

关注了就能看到更多这么棒的文章哦~

5.18 Merge window, part 2

By Jonathan Corbet
April 4, 2022
DeepL assisted translation
https://lwn.net/Articles/889266/

Linus Torvalds 在 4 月 3 日发布了 5.18-rc1 内核预编译版本,在此之前,他已经将 13207 个 non-merge changeset 拉到了 mainline 仓库。因此,这个合并窗口不仅纷争不断(有大量的 regression 以及被拒绝的 pull request),同时也是相对繁忙的。在写完第一篇 5.18 合并窗口的总结后,有超过 9000 个 changeset 被合入。现在是时候来补充记录这个开发周期中的剩余改动了。

在 5.18 合并窗口的后半部分,最有趣的变化包括:

Architecture-specific

  • live patching 也支持 32 位 PowerPC 系统了。

  • RISCV 架构已经支持了 "Sv57" 页表格。这是一种支持 57 位虚拟地址的五级页表。

  • RISCV 的 perf 实现代码已经被移除,取而代之的是基于 SBI PMU 和 Sscofpmf 扩展的另一个 perf 实现。这就可以支持大多数 perf 功能了。

  • RISCV 的 SBI CPU-idle extension 在 5.18 中开始支持。

  • RISCV 还支持了 restartable sequence。

  • Intel software-defined silicon driver,允许英特尔控制这个处理器中哪些功能是可以使用的,已经被合入 mainline 了。

  • 对 AMD 的 "host system management port" 的支持,这是 "为操作系统级软件提供通过一组 mailbox 寄存器来访问系统管理功能的接口",已经被合入 mainline。文档提交中可以找到少量的额外信息。

Core kernel

  • BPF type format(BTF)机制现在可以对指向用户空间内存的变量进行标注(annotate)了。这个功能的好处之一就是为 verifier 提供了一种更好的方法来检测和检查用户空间的内存访问。更多信息请参见 merge changelog。

  • BPF program-packing memory allocator 已经被合并;这使得那些存在大量加载好的 BPF program 程序的系统中能更有效地使用内存。

  • MADV_DONTNEED madvise() 命令现在可以支持 hugetlb page。

  • 新增一个 madvise() 操作,MADV_DONTNEED_LOCKED,它将(像 MADV_DONTNEED 一样)触发对指定 page 的回收。但与 MADV_DONTNEED 不同的是,这个操作甚至适用于已经被 lock 在内存中的 page;这些 page 被强制取出,但它们的 "locked" 状态并没有改变。因此,如果受影响的 page 后续由于内存缺页而回来,那么它们将保持被 lock 的状态。相关的 changelog 解释了这个功能背后的原因。

Filesystems and block I/O

  • Device-mapper I/O 统计功能已被大幅重构了,这可以使 dm-crypt 等场景的统计更加准确。

  • Reiserfs 文件系统已被弃用(deprecated),有望在 2025 年被移除。

  • 对 write stream 的支持已经从 block 子系统中移除。目前没有任何设备支持该功能,也看不到有什么未来需求。

  • 现在支持 NVMe 设备上的 64-Bit integrity checksum 完整性校验。

  • exfat 文件系统新增挂载选项(keep_last_dots),这个选项会让它不去除文件名的尾部句号;这使得该文件系统与 Windows 不兼容,后者会去除尾部句号。

Hardware support

  • 时钟。Microchip PolarFire 时钟控制器、瑞萨 RZ/G2L 时钟控制器、瑞萨 9 系列 PCIe 时钟发生器、恩智浦 i.MX93 时钟控制器、StarFive JH7100 音频时钟、苹果 M1 数字控制振荡器、高通 QCM2290、SM6125 和 SM6350 显示时钟控制器、高通 SM6350 图形时钟控制器和全志 H616/R329 RTC 时钟控制器。

  • Graphics。ChromeOS 隐私屏幕控制器、ITE IT6505 DisplayPort 桥接器、所罗门 SSD130x OLED 显示器和 MIPI DBI 兼容面板。

  • Industrial I/O。Semtech SX9324 和 SX9360 接近传感器、Analog Devices ADXL367 三轴加速计、Analog Devices ADMV1014 微波降频器、Analog Devices ADA4250 instrumentation amplifiers、Analog Devices ADMV4420 K-band 降频器和 Analog Devices LTC2688 数模转换器。

  • Miscellaneous。SiGma Micro-based 键盘,Airoha EN7523 GPIO 控制器,UPI uG3105 电池监视器,Injoinic IP5xxx power bank IC,Macronix 外部硬件 ECC 引擎,Silergy SY7636A 温度传感器,Maxim Semiconductor MAX77714 电源管理 IC。AMD PSP I2C semaphores、联发科 ADSP mailbox controllers、ASPEED PECI 控制器、Layerscape security fuse processors、Sunplus 片上控制器、Sunplus UARTs、Rockchip NANENG COMBO PHYs、联发科键盘、Imagis IST30xxC 触摸屏。

  • Networking。Realtek RTL8367S 以太网交换机、Davicom dm9051 SPI 以太网控制器、Fungible 以太网适配器、联发科 MT7986 无线 MAC、联发科 MT7921U 802.11ax 2x2:2SS 无线适配器、Lynx 28G SerDes PHY 和 I2C 连接的管理控制器传输协议(MCTP)设备,实施的是 DSP0237 规范。

  • Pin control and GPIO:Broadcom BCM4908 引脚控制器、Meson s4 引脚控制器、Sunplus SP7021 PinMux 和 GPIO 控制器、Renesas R8A779F0 引脚功能控制器、Mediatek MT8186 引脚控制器、NXP i.MX93 引脚控制器、Nuvoton WPCM450 引脚和 GPIO 控制器,以及 Qualcomm SC8280xp 引脚控制器。

  • USB。Richtek RT1719 Sink Only Type-C USB 控制器和高通公司嵌入式 USB 调试器。

Miscellaneous

  • 像往常一样,用户空间的 perf 工具有一长串的改进;详见相关 merge commit 中的总结。

Networking

  • bridge 子系统现在支持多生成树(multiple spanning trees);更多信息请参见 merge commit。

  • 继续致力于在网络代码中添加监控点来揭示丢包原因。

  • 加载到 network control group 的 BPF program 现在可以使用一些新增 helper 函数来明确设置系统调用的返回值。这有助于了解某个特定系统调用被拒绝的原因。

  • 现在支持从以 BPF_PROG_RUN 运行的 BPF program 中传输数据包。欲了解更多信息,请参见相关 merge commit、changelog 以及文档 patch。

  • 在 express data path (XDP) 机制中加入了对 fragment 的支持, 允许处理 jumbo frame (巨帧)等。更多信息请参见相关 commit。

  • network namespace 拆分(teardown)工作大大加快了,这对于一些有大量网络流量的大型系统来说非常重要。

Security-related

  • 严格的 memcpy() 边界检查 patch 已经被合并了。这项工作应该有助于在一系列内存安全问题进入 production kernel 之前就提前 fix。

  • 内核在编译时已经启用了 -Warray-bounds 和 -Wzero-length-bounds warning。这是一个长期努力的成果,旨在消除内核代码中的零长度的数组以及一些相关技巧。

  • 为 x86 架构增加了 indirect branch tracking 的 control-flow integrity。这个功能可以防止 indirect branch 被重定向到那些不应该跳转到的位置。具体来说,所有的 indirect branch 都必须落在 ENDBR 指令位置。

Virtualization and containers

  • virtio-crypto 设备已经支持了 RSA 加密。似乎没有相关文档,但 commit 中的内容对某些人来说可能就够了

Internal kernel changes

  • 正如 https://lwn.net/Articles/885941/ 所述,内核现在编译时改为符合 C11 语言标准,而不是 C89 标准了。

  • 新增的 "fprobe" 机制允许在不需要 ftrace 的全部功能时进行快速的函数调用追踪(quick function-call tracing);更多信息请参见相关文档 commit。

  • build 系统现在支持两个新的环境变量:USERCFLAGS 和 USERLDFLAGS;它们可以分别用来向编译器和链接器传递额外参数。

  • 网络文件系统的内部支持代码有了很大的改动;请看相关 merge changelog 来了解更多。

  • 早已过时的 PCI DMA API 已经被移除,驱动程序应该使用常规的 DMA API 来代替。

5.18 内核现在进入了稳定阶段,在这个阶段,所有这些新功能中所存在的 bug 将被发现并 fix。假设正常的时间表保持不变的话,那么最终 5.18 版本可望在 5 月 22 日或 29 日发布。

全文完
LWN 文章遵循 CC BY-SA 4.0 许可协议。

欢迎分享、转载及基于现有协议再创作~

长按下面二维码关注,关注 LWN 深度文章以及开源社区的各种新近言论~

d91c48bd0df07ddb3615a9912f0fe440.png

保姆级教程:QGC地面站Vehicle Setup全模块配置详解(从固件升级到安全设置) 本文提供QGC地面站Vehicle Setup全模块配置的保姆级教程,涵盖从固件升级到安全设置的完整流程。详细解析二次开发环境准备、传感器校准、飞行模式配置等关键步骤,帮助用户快速掌握无人机配置技巧,确保飞行安全与性能优化。 阅读详情

相关推荐

RV1126B芯片实战:如何用这款视觉处理器SoC打造你的第一个AI摄像头项目

本文详细介绍了如何利用瑞芯微RV1126B视觉处理器SoC从零构建AI摄像头项目。涵盖硬件选型、开发环境搭建、ISP配置、AI模型部署及系统集成等关键步骤,帮助开发者高效实现边缘计算方案,特别适合智能安防和工业检测应用。

dropout6artist的博客 930

riscv sscofpmf(Count Overflow and Mode-based Filtering)扩展介绍

Sscofpmf扩展填补了RISC-V性能监控的关键缺口,通过标准化溢出中断、模式过滤和S-mode访问机制,显著提升了性能分析的效率与灵活性,为高性能计算场景(如数据中心、AI加速)提供了基础支撑。:通过模式过滤,开发者可以灵活选择监控不同特权层的事件(如仅监控用户模式或监控所有模式),优化性能分析的针对性。:S-mode可直接识别溢出计数器,无需通过M-mode介入,降低了性能监控的软件开销。:首次在RISC-V中标准化溢出中断支持,解决了早期仅能通过轮询检测溢出的问题。例如,S-mode需。

Y_7659348的博客 674

InVEST模型实战指南:从水源涵养到热岛缓解的生态系统服务评估

本文提供了InVEST模型的实战指南,详细介绍了从环境搭建、数据预处理到核心模型应用的完整流程。通过水源涵养、碳存储、土壤保持和城市热岛缓解等核心模型的拆解,帮助生态学者与规划者系统量化评估生态系统服务,将复杂的生态价值转化为直观的空间数据与地图,为科学决策提供有力支撑。

weixin_29197051的博客 428

RISCV Hardware Performance Monitor 和 Sscofpmf 扩展

RISCV的HPM和Sscofpmf 扩展

qq_45226456的博客 1511

python特征选择pso_【来点干货】机器学习中常用的特征选择方法及非常详细的Python实例...

花费了很长时间整理编辑,转载请联系作者授权,违者必究。特征选择(Feature selection)是在构建预测模型的过程中减少输入变量的一个过程。它是机器学习中非常重要的一步并在很大程度上可以提高模型预测精度。这里我总结了一些机器学习中常见的比较有用的特征选择方法并附上相关python实现code。希望可以给大家一些启发。首先,我们为什么要进行特征选择呢?它有以下几个优点:减少过拟合:冗余数据常...

weixin_39927158的博客 1161

Carsim2019与Simulink (Matlab2018b)联合仿真成功(超详细)

Carsim与Simulink联合仿真成功

强强的博客 3万+

Linux内核配置Kconfig

在遍历完各级子目录的Makefile和Kconfig文件后,会在内核源码的顶层目录下生成一个.config文件,该文件用来保存所有的配置项,然后回到顶层Makefile开始编译。Kconfig文件用来控制内核的编译动作。简单理解,就是Kconfig配置了哪些文件需要参与编译,哪些文件不用编译。...

Pz_z1的博客 6987

Android Telephony主要模块及功能

Telephony的代码主要由五个模块组成 1.Telephony Frameworks 代码区域: frameworks/opt/telephony/ 其中主要的文件在如下目录 /frameworks/opt/telephony/src/java/com/android/internal/telephony/ 其中比较常见的有以下几类文件 1.BaseCommands、RIL构成R

泊客 7720

LWN:Intel CPU的间接跳转保护功能!

关注了就能看到更多这么棒的文章哦~Indirect branch tracking for Intel CPUsBy Jonathan CorbetMarch 31, 2022DeepL assisted translationhttps://lwn.net/Articles/889475/"Control-flow integrity"(CFI)是一套旨在防止攻击者改动...

Linux News搬运工 1285

从底层结构开始学习FPGA(8)----Block RAM(BRAM,块RAM)

BRAM作为FPGA底层的存储资源,作用很大,比如可以RAM/ROM/FIFO。

孤独的单刀 2万+

RK3568平台(KBuild篇)KBuild编译体系

从Linux内核2.6开始,Linux内核的编译采用Kbuild系统,这和过去的编译系统有很大的不同,尤其对于Linux内核模块的编译。在新的系统下,Linux编译系统会两次扫描Linux的Makefile:首先编译系统会读取Linux内核顶层的Makefile,然后根据读到的内容第二次读取Kbuild的Makefile来编译Linux内核。kbuild,即 kernel build,用于编译 Linux 内核文件。

weixin_49303682的博客 348

LWN:5.18合并窗口第一部分!

关注了就能看到更多这么棒的文章哦~5.18 Merge window, part 1By Jonathan CorbetMarch 25, 2022DeepL assisted translationhttps://lwn.net/Articles/888736/截至目前,在 5.18 开发周期中已有 4127 个 non-merging changeset 进入了 ma...

Linux News搬运工 502

OpenClaw实战一|企业微信AI客服数字员工:自动应答+工单创建+数据统计,零代码3天落地

OpenClaw做企业微信AI客服数字员工,真正的价值不是“能自动回复”,而是把“咨询-应答-工单-统计-复盘”全流程闭环。对中小企业来说,不用招专职AI开发、不用买昂贵客服系统,一台服务器、零代码配置,就能拥有媲美大厂的智能客服能力。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 515

LWN:6.11 合并窗口第一部分!

关注了就能看到更多这么棒的文章哦~The first half of the 6.11 merge windowBy Jonathan CorbetJuly 18, 2024Gemini-1.5-flash translationhttps://lwn.net/Articles/982034/6.11 内核发布的合并窗口于 7 月 14 日打开;截至撰写本文时,自那时起已有 4,072 个非合并变...

Linux News搬运工 2653

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

LWN:Linux 5.11 合并窗口第一部分!

关注了就能看到更多这么棒的文章哦~5.11 Merge window, part 1By Jonathan CorbetDecember 18, 2020DeepL assisted t...

Linux News搬运工 735

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

LWN: 6.1 合并窗口第一部分!

关注了就能看到更多这么棒的文章哦~The first half of the 6.1 merge windowBy Jonathan CorbetOctober 7, 2022DeepL assisted translationhttps://lwn.net/Articles/910312/6.1 合并窗口正在顺利进行中:自从窗口打开以来,已经有 5,752 个 non-merge changes...

Linux News搬运工 368

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

LWN:Linux 5.10合并窗口,第一部分!

关注了就能看到更多这么棒的文章哦~5.10 Merge window, part 1By Jonathan CorbetOctober 16, 2020https://lwn.net/A...

Linux News搬运工 1087

LWN:6.8 合并窗口的剩余内容!

关注了就能看到更多这么棒的文章哦~The rest of the 6.8 merge windowBy Jonathan CorbetJanuary 22, 2024Gemini translationhttps://lwn.net/Articles/958178/尽管 Linus Torvalds 在一周的大部分时间里都处于停电状态,但他还是成功地发布了 6.8-rc1 并按时关闭 6.8 合并...

Linux News搬运工 289

LWN:user event,不过还未完工!

关注了就能看到更多这么棒的文章哦~User events — but not quite yetBy Jonathan CorbetApril 18, 2022DeepL assisted translationhttps://lwn.net/Articles/889607/ftrace 和 perf 子系统让开发者可以看到内核的工作细节,通过利用现有的 tracepoi...

Linux News搬运工 247

LWN: trusted_for() 没能被合并!

关注了就能看到更多这么棒的文章哦~trusted_for() bounces off the merge windowBy Jake EdgeApril 12, 2022DeepL assisted translationhttps://lwn.net/Articles/890957/在我们上一次关注 trusted_for() 系统调用的提案时,看起来还是很快就能合入 ...

Linux News搬运工 163

LWN:SA_IMMUTABLE以及修改signal处理行为有多危险!

关注了就能看到更多这么棒的文章哦~SA_IMMUTABLE and the hazards of messing with signalsBy Jonathan CorbetDecembe...

Linux News搬运工 248

LWN: splice() 以及 set_fs() 的残留印记!

关注了就能看到更多这么棒的文章哦~splice() and the ghost of set_fs()By Jonathan CorbetMay 26, 2022DeepL assisted translationhttps://lwn.net/Articles/896267/内核开发有一个通常规则,就是不允许导致用户空间出现 regression。那些会破坏以前能正常工...

Linux News搬运工 607

如何将tmux两个会话组合为一个会话?

上面的命令假设你已经知道源和目标会话的名称以及窗口和面板的编号。通过这样的操作,可以将内容从一个会话移动到另一个会话,实现类似合并的效果。在 tmux 中,不能直接将两个独立的会话合并为一个会话,但是你可以将一个会话中的窗口(windows)或面板(panes)移动到另一个会话。你可以将一个会话中的窗口移动到另一个会话。另一种方法是在两个会话之间链接窗口,这样同一个窗口就可以在两个会话中访问。这里需要指定源窗口和面板编号以及目标窗口和面板编号。这将在目标会话创建一个到源会话窗口的链接。

m0_57236802的博客 593

Intel应对ROP攻击的新技术

Intel长期与社区合作,以增强操作系统和软件的安全防护。但随着防护技术的增强,攻击者也相应地提高技术手段,JOP(Jump Oriented Programming)和ROP(Return Oriented Programming)就是被广泛采用的手段。因为使用的是内存中已有的代码,所以很难被发现。 Intel和Microsoft在过去的10年里,设计了十多种方案来解决这个问题,最后归结于x86

softee的专栏 4447

LWN:用户空间的影子堆栈!

关注了就能看到更多这么棒的文章哦~Shadow stacks for user spaceBy Jonathan CorbetFebruary 21, 2022DeepL assisted...

Linux News搬运工 2230

linux小技巧---在linux系统下把多个终端合并在一个窗口

用正常的方式打开一个终端。2.使用组合键 ctrl+shift+t , 这时就在同一个窗口中打开了另一个终端,当然再按一次ctrl+shift+t,会再生成一个,需要多少了大家可以自行决定。3.按组合键Alt+1,就会切换到第一个终端,按Alt+2,就会切换到第2个终端,Alt+n,对应的就会切换到第n个终端。...

vikki chen 的博客 1万+
上一篇: LWN:Linux audio plugin APIs综述!
下一篇: LWN:Intel CPU的间接跳转保护功能!
LinuxNews搬运工
博客等级 码龄7年 438粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值