Linux系统内核首次加入锁定功能

Linux系统内核首次加入锁定功能,第1张

Linux之父林纳斯·托瓦兹(Linus Torvalds)上周六宣布在新版Linux系统内核中首次加入锁定功能。

这项名为“lockdown”的Linux内核新安全功能将作为LSM(Linux安全模块)出现在即将发布的Linux 5.4版本当中。

该功能默认情况下处于关闭状态,由于存在破坏现有系统的风险,因此用户可选使用。这项新功能的主要目的是通过防止root帐户与内核代码进行交互来加强用户态进程与内核代码之间的鸿沟。

启用后,新的“锁定”功能将限制Linux某些内核功能,即使对于root用户也是如此,这使得受到破坏的root帐户更难于破坏其余的系统内核。

托瓦兹表示:“启用后,各种内核功能都受到限制。 ” 这包括限制对内核功能的访问,这些功能可能允许通过用户级进程提供的代码执行任意代码;阻止进程写入或读取/ dev / mem和/ dev / kmem内存;阻止对打开/ dev / port的访问,以防止原始端口访问;加强内核模块签名等。

Linux是一种自由和开放源码的类UNIX *** 作系统。该 *** 作系统的内核由林纳斯·托瓦兹在1991年10月5日首次发布。在加上用户空间的应用程序之后,成为 Linux *** 作系统。Linux也是最著名的自由软件和开放源代码软件。只要遵循GNU 通用公共许可证(GPL),任何个人和机构都可以自由地使用Linux 的所有底层源代码,也可以自由地修改和再发布。

进程间通信有一种[共享内存]方式,大家有没有想过,这种通信方式中如何解决数据竞争问题?我们可能自然而然的就会想到用锁。但我们平时使用的锁都是用于解决线程间数据竞争问题,貌似没有看到过它用在进程中,那怎么办?

关于进程间的通信方式估计大多数人都知道,这也是常见的面试八股文之一。

个人认为这种面试题没什么意义,无非就是答几个关键词而已,更深入的可能面试官和面试者都不太了解。

关于进程间通信方式我之前在【这篇文章】中有过介绍,感兴趣的可以移步去看哈。

进程间通信有一种[共享内存]方式,大家有没有想过,这种通信方式中如何解决数据竞争问题?

我们可能自然而然的就会想到用锁。但我们平时使用的锁都是用于解决线程间数据竞争问题,貌似没有看到过它用在进程中,那怎么办?

我找到了两种方法,信号量和互斥锁。

直接给大家贴代码吧,首先是信号量方式:

代码中的MEOW_DEFER,它内部的函数会在生命周期结束后触发。它的核心函数其实就是下面这四个:

具体含义大家应该看名字就知道,这里的重点就是sem_init中的pshared参数,该参数为1表示可在进程间共享,为0表示只在进程内部共享。

第二种方式是使用锁,即pthread_mutex_t,可是pthread_mutex不是用作线程间数据竞争的吗,怎么能用在进程间呢?

可以给它配置一个属性,示例代码如下:

它的默认属性是进程内私有,但是如果给它配置成PTHREAD_PROCESS_SHARED,它就可以用在进程间通信中。

相关视频推荐

360度无死角讲解进程管理,调度器的5种实现

Linux进程间通信-信号量、消息队列和共享内存

学习地址:C/C++Linux服务器开发/后台架构师【零声教育】-学习视频教程-腾讯课堂

需要C/C++ Linux服务器架构师学习资料加qun812855908获取(资料包括 C/C++,Linux,golang技术,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK,ffmpeg 等),免费分享

完整代码如下:

我想这两种方式应该可以满足我们日常开发过程中的大多数需求。

锁的方式介绍完之后,可能很多朋友自然就会想到原子变量,这块我也搜索了一下。但是也不太确定C++标准中的atomic是否在进程间通信中有作用,不过看样子boost中的atomic是可以用在进程间通信中的。

其实在研究这个问题的过程中,还找到了一些很多解决办法,包括:

Disabling Interrupts

Lock Variables

Strict Alternation

Peterson's Solution

The TSL Instruction

Sleep and Wakeup

Semaphores

Mutexes

Monitors

Message Passing

Barriers

这里就不过多介绍啦,大家感兴趣的可以自行查阅资料哈。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7282817.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-03
下一篇 2023-04-03

发表评论

登录后才能评论

评论列表(0条)

保存