
操作系统原理与实战
文章平均质量分 90
本专栏以原理为突破口,结合实际动手,彻底理解操作系统的原理与应用。
数据存储张
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
barrier 和 preempt_disable() 学习
#define preempt_disable() \do { \ inc_preempt_count(); \ barrier(); \} while (0)一、这个barrier 在干什么... 内存屏障出现因为编译器或现在的处理器常会自作聪明地对指令序列进行一些处理,比如数据缓存,读写指令乱序执行等等。如果优化对象是普通内存,那么一般会提升性能而且不会产生逻辑错转载 2014-09-28 18:59:57 · 724 阅读 · 0 评论 -
OCFS2文件系统磁盘布局和基本管理
概述前文已经大概介绍过OCFS2的部署和应用场景,本文及后续文章重点介绍OCFS2文件系统的具体实现。为了便于后续代码的理解,本文首先介绍一下该文件系统关键数据的磁盘布局情况。理解磁盘布局是理解OCFS2文件系统的基础,只有理解了布局,才能更好的理解代码中的各种处理流程。本文介绍基于Linux4.1.12内核,其它版本内核可能稍有不同,但不影响理解。本文示例文件系统格式化采用默认参数,也即...原创 2018-12-08 21:01:22 · 5146 阅读 · 0 评论 -
OCFS2文件系统的集群管理及分布式锁
任何错误敬请指正!作者: Sunny整体架构OCFS2文件系统整体比较复杂,涉及的内核模块多达七八个。各个内核模块的名称及调用关系如图1所示。为了便于理解,我们对这个软件模块关系进行简化。简化后如图2所示。关于各个模块的详细分析我们放在后面,这样更利于理解。简化后的软件栈变得比较简单,大概分为3层。从下网上分别是集群层,分布式锁和OCFS2文件系统。集群层用于建立一个集群的联系,也就...原创 2018-12-08 21:02:59 · 1974 阅读 · 0 评论 -
Linux内核开发必读书目,从菜鸟到大牛必备
学完C语言之后,最终是要应用到某个领域的,比如后端开发,应用开发或者Linux内核开发等。本文将介绍一下Linux内核相关的内容,Linux内核开发是相对比较难的领域,主要是门槛相对较高。虽然门槛较高,但有它的好处,一方面是难度大,因此竞争力就高,另外一方面本操作系统内核的知识半衰期长,不需要频繁的学习新东西。因此,本号以为进行Linux内核开发是IT领域一个相对还可以的选择。但肯定不是最好的,L...原创 2019-03-23 10:54:44 · 2872 阅读 · 1 评论 -
带您进入内核开发的大门 | 内核中的等待队列
配套的代码可以从本号的github下载: https://github.com/shuningzhang/linux_kernel内核相关电子书可以在这里下载: https://u19702000.ctfile.com/dir/19702000-33344559-0b7371/等待队列是一种基于资源状态的线程管理的机制,它可以使线程在资源不满足的情况下处于休眠状态,让出CPU资源,而资源状...原创 2019-03-23 16:18:35 · 463 阅读 · 0 评论 -
这些底层技术才是一个优秀架构师必须掌握的
上层应用开发的多了之后,对底层技术的接触就越来越少了。以至于很多人有了“底层技术无用论”的观点。很多人认为学习框架多好啊,大家都在用,跳槽的时候也能用的上。学习那些底层技术干啥,平时都用不到。本号并不这么认为。我们先举一个活生生的例子,比如我们现在有个Web服务应用,崩溃重启后在绑定套接字的时候出现报错(socket_bind(): unable to bind address [98]: A...原创 2019-07-26 07:40:53 · 2957 阅读 · 0 评论