LWN: Linux 5.12中非常非常不妙的错误!

达梦数据守护集群监视器详解与应用指南 主库/备库:承担读写和只读服务的数据节点Redo 日志:记录数据库变更的核心日志Redo 日志传输:主备库间的日志同步机制Redo 日志重演:备库重做日志的应用过程守护进程 (dmwatcher):实例级别的监控和管理组件监视器 (dmmonitor):集群级别的监控和管理工具监视器作为数据守护系统的重要组成部分,提供了集群监控、故障管理和状态确认等关键功能。达梦数据守护集群监视器是维护数据库高可用性的关键工具。 阅读详情

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

Linux 5.12's very bad, double ungood day

By Jonathan Corbet
March 8, 2021
DeepL assisted translation
https://lwn.net/Articles/848431/

Linus Torvalds 发布内核的 -rc release 是确有必要的:在两周时间的合并窗口中,有 10,000 个左右的改动流入内核后,肯定会有一些错误需要解决。在所有这些 patch 被整合之后,-rc 内核提供了一个更广泛的测试机会。大多数时候,-rc 内核(甚至是最初的-rc1 版本)运行起来出乎意料地稳定。不过偶尔也会出现一些问题,让早期的测试者感到后悔来测试这个版本。事实证明,5.12-rc1 内核就是其中之一。

1 月 26 日,Christoph Hellwig 发布了 17 个 patch 的系列改动,其中清理了分配 BIO 结构的代码。BIO structure 代表了一个一个的 block-I/O request。最后一个 patch里简化了 swap file 所需的 request 分配。这组 patch 在一天后由 block 子系统的维护者 Jens Axboe 合入了。然后被包含在 2 月 17 日的这个 pull request 中,并于 2 月 21 日登陆 mainline,作为 Torvalds 家里恢复电力供应后所合入的大批 pull request 中的一部分。

"swapping",是指当内存紧张时,内核将匿名页面(anonymous pages,那些没有对应的磁盘文件的 page——换句话说,就是程序数据)移动到 persistent storage 中。Linux 可以直接将数据 swap(换出)到块设备上的某个分区,这是传统系统中的常用设置。但是也可以换出到挂载上来的文件系统中的某个文件,而且这两种方式性能差异不大。交换文件(swapping to a file)给管理员带来了一些额外的灵活性。这种方法很简单,可以在不干扰现有 workload 的情况下,给当前正在运行的、内存不足的系统帮忙缓解一下紧张的内存空间。

有问题的 patch 在使用交换分区的情况下效果还不错。但是,当使用交换文件时,错误的丢弃了在文件系统中各个 block 中的 offset 偏移信息。这就导致了数据在 swap 出去的时候会写到错误的位置,而且很可能那里原本就有某些需要保留的数据。换句话说,放置了交换文件的这个文件系统会被破坏。有趣的是,2014 年就引入过一个类似 bug,并且潜伏了很长时间一直没有被发现,因为它只在极其罕见的配置条件下会出错)。

3 月 2 日,在 mainline 中合入了 fix。一天后,Torvalds 向 linux-kernel 邮件列表发送了一个警告邮件,描述了这个问题,并指出:"这就是我们业界所说的'double ungood'" 。他从他的 git 仓库中删除了 5.12-rc1 tag(其实是把它改名为 "5.12-rc1-dontuse"),并明确表示所有人都应该避免使用这个版本。他还对维护者提出了一些要求。

一个要求是关于 5.12-rc1 tag 的,他可以从他的版本库中删除它,但这不会改变其他人的 git 仓库。所以,他要求维护者应该自己手动删除这个 tag,防止不小心使用到这个版本。

除此之外,子系统的维护者经常会基于 -rc release 来开启新的分支,甚至很有可能是基于-rc1。但这次这样做的话,这些分支都会对正常的开发和测试社区造成严重危害,因为它们都不包含这个问题的 fix。git bisect 工具经常被用来寻找确认哪个 patch 导致了质量回退(regression),因此 git bisect 可能会导致当前代码跳到开发历史上的任何位置,如果包含那个错误 commit 的话(但不包含修复),这个 branch 会进一步扩展出去,导致今后发生破坏文件系统的情况。这一点,看起来也是 Linus 所说的"'double ungood'"。

因此需要人们不要基于 5.12-rc1 创建分支,而是要么使用更老的版本,要么等到-rc2。这对于那些已经发布了基于-rc1 的分支的子系统维护者来说,就来不及做什么了。确实有些人肯定已经公开发布了。他们必须做个选择,是保留这个有危险的分支,还是将其 rebase 到一个更安全的 commit 节点上、但是可能会给其他在使用该 branch 的人带来麻烦。这种 rebasing 的做法通常是不受欢迎的,但 Torvalds 明确表示这次可以,也是期望大家这么做。

内核社区大多数人还是把它当作 "bug happened" 的情况,然后继续向前演进。我们确实可以说,这个过程确实已经按照它本该有的方式起作用了:一个灾难性的 bug 在稳定期(during the stabilization)被提前发现,并且永远不会接近生产系统(production system)。话虽如此,但可能还有反省和思考的余地,即如何能把事情做得更好。

例如,有人可能会说,review 过程可以做得更好。这个 patch 只发布了一次,第二天就被合入到了代码库中。mainline 仓库中的 patch 包含两个 Reviewed-by tag 和一个 Acked-by tag,但邮件列表记录里面可以看出这些 tag 都是为该系列中的其他 patch 提供的。也许这三个 reviewer 人都在邮件列表之外提供了他们的 Reviewed-by tag,但从公开的记录来看,看不出这个导致问题的 patch 到底有多少人 review。

就算有更多人 review,但是我们也不能确保这个 BUG 触发之前就被发现,但似乎这次没有太多的 review 机会。人们经常把 "cleanup" 补丁看成天生就是安全的,需要较少的 review,但这些 patch 也可能包含微妙的 bug。

在这个过程中,可以做得更好的是关于提醒整个社区这部分。在上面链接的邮件中,Torvalds 承认他应该更早采取行动,而不是等着确定这个提出的 fix 方案是否真的可以让问题消失。可以想象,下一次的警告邮件会更早发出。

这里还有一个小问题,居然很少有人谈到。vger.kernel.org 上的邮件列表已经有一段时间都有些小问题了。有时候,邮件列表上的邮件会被延迟一两天,或者完全消失了。Torvalds 的警告并没有延迟那么久,但还是花了几个小时才送到 linux-kernel 的接收者手中。这个警告邮件的延迟传递,是否导致了更多的测试者受害呢?还不清楚,但肯定这是没有好处的。

好消息是,目前正在采取措施使 vger mailing list 可以更加稳定、可靠。运气好的话,邮件列表的问题在不久的将来就会成为过去式。

不过,哪怕到了那个时候,只发给 linux-kernel 的警告邮件也有可能消失在其他信息之中。邮件列表中每天都会超过 1000 条信息,很可能会淹没重要的信息,并导致许多开发者完全取消订阅。对于这种紧急信息,我们很可能需要更好的沟通渠道。

最后,这个 bug 造成的实际麻烦可能没有想象中那么大,并没有出现大量的 "它毁了我的文件系统!"的消息。流程确实大部分都能按照预期的方式进行。如果运气好的话,从这次事件中吸取的教训可以帮助这个流程在下一次工作得更好。

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

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

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

Matt Pocock Skills — AI 编码代理技能包介绍与使用指南 《Matt Pocock Skills:AI编码代理技能包指南》 摘要: Matt Pocock Skills是一套开源AI编码代理技能包,旨在解决AI辅助开发中的四大痛点:需求理解偏差、token浪费、代码质量差和架构腐化。该技能包包含多种实用工具:/grill-with-docs用于需求对齐,/tdd实现测试驱动开发,/diagnose提供规范化调试流程,/triage管理issue生命周期。核心思想包括:通过拷问式对齐确保需求理解一致,建立共享领域语言提高沟通效率,快速反馈闭环加速开发,以及持续架构维 阅读详情

相关推荐

Clock Gating设计陷阱:为什么你的ICG cell总是导致setup violation?(附解决方案)

本文深入分析了数字IC设计中ICG(Integrated Clock Gating)单元导致setup时序违规的常见问题,包括时钟偏斜和数据路径过长两大核心原因。通过量化分析影响因素,提供了逻辑重组、寄存器重定时等优化策略,并介绍了预防性设计方法和物理实现阶段的优化技巧,帮助工程师有效解决ICG相关的setup violation问题。

weixin_29168153的博客 203

linux下软件发布,Linux Kernel 5.12发布下载,附新特性及新功能介绍

Linus Torvalds在Linux内核邮件列表中宣布正式发布Linux Kernel 5.12版本,已提供linux-5.12.tar.xz/tar.gz下载,以下为你介绍该版本的更改、新特性及新功能。Linux Kernel 5.12新特性及新功能介绍1、Linux 5.12添加了对Nintendo 64的支持,此内核更新增加了对系统、Nintendo 64游戏控制器和Nintendo 6...

weixin_42395171的博客 689

信创改造实战:SpringBoot项目迁移到宝兰德BES 9.5.5的完整避坑指南(附依赖与web.xml配置)

本文详细介绍了将SpringBoot项目迁移到宝兰德BES 9.5.5的完整流程,包括依赖改造、web.xml配置降级等关键步骤。通过实战案例和避坑指南,帮助开发者高效完成国产中间件适配,确保项目平稳运行。特别针对Tomcat依赖排除和BES适配器选择提供了专业建议。

weixin_30689307的博客 737

linux 下一周日期,Linux 5.12 最终版迎来额外一周的测试时间

通常在每周发布7个候选版本后,下一个稳定的Linux内核版本就会被宣布,而即将发布的下一个版本,也就是Linux5.12是其中一个特殊的内核,至少需要第八个RC才会成为黄金版本。由于Linux5.12-rc7内核一直是偏大的,加上一些早期的发行候选版本也比平时大,今天Linux5.12-rc8的出现也并不是什么惊喜。由于本周仍有一些修复程序落地,LinusTorvalds决定安全起见,进行额外的一...

weixin_36417344的博客 180

vnpy_ctp源码下载后转变为python可用的处理过程

vnpy_ctp源码下载后在window中编译使用

m0_37967652的博客 3327

MobaXterm简介和使用(服务器连接工具)

MobaXterm 是一个功能强大的远程计算工具,集成了许多常用的远程计算功能,包括 SSH、X11、RDP、VNC、FTP、SFTP 等。

清平乐的技术专栏 1940

Linux入职基础-5.12_网络配置(命令实例)

网络配置(命令实例)一:命令列表   arp       显示和修改地址解析协议 (ARP)缓存中的项目arpwatch  监听网络上ARP的记录,发现网络上新主机ifconfig    查看配置网卡(详见《命令实例专题07》)ip         传统的网络管理工具nc         网络管理工具hostname 显示主机名netstat    查看网络连接详细状态iptables   防护墙...

木生火 426

单片机设计具备断电记忆功能的计时器

本文介绍了如何设计一款具备断电记忆功能的计时器,利用单片机和EEPROM存储器实现了计时器值的保存和恢复。当然,在实际的设计中还需要考虑其他因素,如电源管理、时钟精度等,以确保计时器的正常运行和准确性。选择合适的单片机:在设计计时器时,我们需要选择一款具备存储功能的单片机,以便在断电后能够保存计时器的状态。可以优化显示方式,使用更加直观的界面来展示计时器的值;函数中,我们首先从 EEPROM 中读取计时器的初始值,然后在一个无限循环中每秒钟增加计时器的值,并将新的值写入 EEPROM 中。

RlDart的博客 1093

Linux 内核 5.12 的 I/O 相关改动

导读 正在开发中的Linux5.12 合并了块子系统和相关存储更改的代码,其中值得注意的包括 io_uring 、块和驱动的改动。 Linux 内核 5.12 的 I/O 相关改动 io_uring 改动的重点是请求回收和 task_work 优化,这些改动可以在大部分是内联的工作中提高 10-20% 的速度。 最初完成这项工作是为了将 io_uring 置于 memcg 下,这增加了相当大的开销,但这是值得的。另一个亮点是 VFS 中的 LOOKUP_CACHED 更改,并为其添加 i..

llawliet0001的专栏 384

海思3559av100平台lan9500模块调试记录

1. 前言 通过USB2.0接口扩展一路百兆虚拟网口 2. 配置lan9500驱动 make ARCH=arm64 menuconfig 开启LAN95XX驱动,编译进内核 保存内核配置 3. 编译内核 make ARCH=arm64 CROSS_COMPILE=aarch64-himix100-linux- uImage -j 20 cd ../../arm-trusted-firmware/arm-trusted-firmware ./mk.sh cp ...

jzwjzw19900922的博客 908

【S32K3 MCAL配置】-1.1-GPIO配置及其应用-DIO之高低电平输出-点亮LED灯(基于MCAL)

【S32K3 MCAL配置】-1.1-GPIO配置及其应用-点亮LED灯(基于MCAL)

「汽车电子助手」的博客 1937

高通骁龙888开始被Linux内核5.12版正式支持

在Linux 5.12内核合并窗口中,有很多新的硬件开始被支持,其中不乏一些知名产品例如高通骁龙888,除此之外还有一些与ARM平台和设备树有关的代码添加。来自Arnd Bergmann的...

嵌入式Linux 2140

DTI-ALPS 指标计算(附代码),评估脑类淋巴系统功能

DTI-ALPS 指标计算(附代码),评估脑类淋巴系统功能

xxx 1045

LWN:对2024所做预测的回顾!

关注了就能看到更多这么棒的文章哦~A 2024 retrospectiveBy Jonathan CorbetDecember 25, 2024Gemini-1.5-flash translationhttps://lwn.net/Articles/1002368/通常人们说的疯狂(insanity),就是重复同样的行为却期待不同的结果。尽管如此,LWN 每年年初都会进行一组预测,然后在年末不得不...

Linux News搬运工 955

深度学习工具包 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: 5.12 合并窗口,第二部分!

关注了就能看到更多这么棒的文章哦~5.12 merge window, part 2By Jonathan CorbetMarch 1, 2021https://lwn.net/Artic...

Linux News搬运工 268

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

LWN:调查文件系统的错误来源!

关注了就能看到更多这么棒的文章哦~Tracing the source of filesystem errorsBy Jake EdgeAugust 7, 2024LSFMM+BPFGemini-1.5-flash translationhttps://lwn.net/Articles/984556/在 Linux 内核中,许多地方会向用户空间返回EINVAL(无效参数) 错误码,但往往难以确...

Linux News搬运工 2081

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

LWN:LWN的2020年预测!

关注了就能看到更多这么棒的文章哦~LWN's 2020 visionByJonathan CorbetJanuary 1, 2020原文来自:https://lwn.net/A...

Linux News搬运工 471

LWN:5.15 合并周期后半部分!

关注了就能看到更多这么棒的文章哦~The rest of the 5.15 merge windowBy Jonathan CorbetSeptember 13, 2021DeepL as...

Linux News搬运工 448

LWN:magic 消失了!

关注了就能看到更多这么棒的文章哦~Losing the magicBy Jonathan CorbetDecember 5, 2022DeepL assisted translationhttps://lwn.net/Articles/915163/kernel 项目现在已经有三十多年的历史了。这期间不断有一些开发实践(development practice)出现和消失。曾几何时,人们认为用 "...

Linux News搬运工 8276

LWN:统一Linux 随机数设备!

关注了就能看到更多这么棒的文章哦~Uniting the Linux random-number devicesBy Jake EdgeFebruary 16, 2022DeepL ass...

Linux News搬运工 1143

LWN:如何为Linux内核贡献文档!

关注了就能看到更多这么棒的文章哦~How to contribute to kernel documentationByJonathan CorbetJanuary 23, 2020原...

Linux News搬运工 562

LWN: Control-flow integrity in 5.13!

关注了就能看到更多这么棒的文章哦~Control-flow integrity in 5.13By Jonathan CorbetMay 21, 2021DeepL assisted tr...

Linux News搬运工 1379

LWN:内核CVE编号是如何分配的!

关注了就能看到更多这么棒的文章哦~How kernel CVE numbers are assignedJune 19, 2024This article was contributed by Lee JonesGemini-1.5-flash translationhttps://lwn.net/Articles/978711/距离 Greg Kroah-Hartman 和 MITRE 宣布 L...

Linux News搬运工 2263

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

LWN:GDB 与 io_uring!

关注了就能看到更多这么棒的文章哦~GDB and io_uringBy Jake EdgeMarch 31, 2021DeepL assisted translationhttps://l...

Linux News搬运工 272

LWN:2022 Linux存储、文件系统、内存管理以及BPF峰会!

关注了就能看到更多这么棒的文章哦~The 2022 Linux Storage, Filesystem, Memory-Management, and BPF SummitBy Jonathan CorbetMay 4, 2022DeepL assisted translationhttps://lwn.net/Articles/893733/Linux Storage,...

Linux News搬运工 737
上一篇: LWN:Python的两个安全漏洞!
下一篇: LWN: lockless编程模式 - full memory barrier!
LinuxNews搬运工
博客等级 码龄7年 438粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值