跳至主要內容
磁盘原理简要分析

磁盘原理简要分析

磁盘这玩意儿,即使不作为一个开发人员我们也会经常跟它打交道。比如你家里的台式机,或者拿来办公的电脑,再比如你装个操作系统,会涉及到对磁盘进行分区。

而作为开发人员,自然更加需要关注磁盘。

平时你开发的代码会暂存在磁盘上;开发中用的最多的数据库 MySQL,其数据是持久化到磁盘中的;Redis 的持久化数据是落到磁盘的;Zookeeper 内存中的数据、事务日志、快照会持久化到磁盘;像 RocketMQ 这种消息队列也会将收到的 Message 持久化到磁盘,Kafka 当然也不例外;


LeonSH...大约 9 分钟操作系统磁盘
图解四种 IO 模型

图解四种 IO 模型

最近越来越认为,在讲解技术相关问题时,大白话固然很重要,通俗易懂,让人有想读下去的欲望。但几乎所有的事,都有两面性,在看到其带来好处时,不妨想想是否也引入了不好的地方。

例如在博客中,过于大白话的语言的确会让你阅读起来更加顺畅,也更容易理解。但这都是其他人理解,已经咀嚼过了的,人家是已经完全理解了,你从这些信息中大概可能会观察不到全貌。所以,适当的白话是很好的,但这个度得控制一下。

接下来切入正文。

相信大家经常看到这个问题:

BIO、NIO 和 AIO 有什么区别?


LeonSH...大约 5 分钟操作系统IO 模型
用户态和内核态的区别是啥

用户态和内核态的区别是啥

这篇文章的深度不会太深,重点就是了解一下用户态和内核态的区别就 OK 了。

先给不了解内核态、用户态的简单介绍一下,我们在什么时候会提到这两个概念。

例如我们的应用程序需要从磁盘读取某个文件的数据,此时并不是直接从磁盘加载到应用内存中,而是:

  • 先将数据从「磁盘」复制到「内核 Buffer」
  • 再将数据从「内核 Buffer」复制到「用户 Buffer」

以上就是用户态内核态的概念。首先我们给他下个定义,这两个是操作系统的运行级别


LeonSH...大约 4 分钟操作系统操作系统