作者: intotw

91 篇文章

软件系统到底是在做什么?
从下层来看,开发的职责是修正以及开发功能,但是将视角提高,软件系统到底是在做什么? 初级的软件系统 初级的软件系统,主要的目标停留在现实中传统行为的信息化上。 这么说也许不是那么恰当,更恰当的说法是,软件系统的初级功能,是现实中传统行为的信息化上。 借助计算机的以下功能,我们可以对一些传统行为进行信息化,以信息化提升效率: 信息的存储 信息的传递 …
thumbnail
读书笔记-人月神话
这是一本很散的书,记录和讨论了许多软件工程中会遇到的问题。作者对这些问题的本质进行了讨论,并且给出了自己认为的较好的处理方式。 ​ 至于为什么这本书的观点非常散乱,可以参考这本书后大半段的大量讨论:没有银弹 ​ 所以这篇读后感,主要就是一些摘抄和观点的总结,并且导向另一篇在看这本书中笔者对于整个国内互联网软件系统发展的思考。 摘抄 编程为什么有趣?…
听听歌吧-ECHO《ECHO》
这个ECHO其实是个很冷门小众的乐队,大部分人唯一可能听过的反而是他们的一夜尘埃 但是个人最喜欢的是他们第一张同名专辑的同名主打歌Echo 他们应该也就出过这一张同名专辑,可惜了,其实这张专辑里好歌真的很多 歌未央 风筝祭 一夜尘埃 Echo 说回Echo这首歌,感觉女主唱也挺能唱的,后面不知道为啥好像没啥动静,也没在唱歌了 他是如此的吸引也让我 …
G1 GC笔记
php转java重构搭脚手架的时候,因为是从新开始的项目,所以打算直接升jdk版本+spring boot3.0+。查了下jdk17自带的zgc是保障低延迟的,并且为了保障低延迟,需要的额外空间开销比较大,出于以下角度考虑,还是选择了G1 我们的堆往往没那么大,所以内存比较宝贵,尽可能减少额外的内存额外开销 我们对吞吐量的要求明显高于低延迟,单接口…
thumbnail
Ostep 39 Interlude File and Directories
本书老套路,介绍文件系统的实现之前,先介绍一下相关的api和使用。 文件和目录的几个核心点 文件可以认为包含2种级别的定义。一个是低级别的inode number,可以认为是id。另一个是用户级别的,也就是filename 文件的后缀其实只是一种惯例。这个其实熟悉Linux的都知道,可执行文件不像windows一样一定要有exe,在shell中,只…
thumbnail
Ostep 38 Redundant Arrays of Inexpensive Disks
这章如名字,主要讲的是磁盘冗余阵列,也就是我们常说的RAID。一种扩展磁盘的容量、提升磁盘可靠性的技术。 RAID存在RAID0到RAID6等多种方案。评估一个RAID方案,主要从容量、可靠性、性能这三个方面。RAID的特点和前面的一些虚拟化一样,将多个磁盘虚拟化为一个磁盘,来对上游提供服务。 RAID 0 条带化分块 RAID0是最基础的思路,实…
thumbnail
Ostep 37 Hard Disk Drives
这章主要聚焦到了编写硬盘驱动上。 在开始编写之前,我们首先需要知道硬盘的实际构造以及查询逻辑。 磁盘构造 参考上图,上图表示了硬盘的一层,或者说一盘,实际硬盘是有多层堆叠起来的。我们介绍一下它 最上面的Rotates this way,表示了硬盘转动的方向 中间的点Spindle,表示了转轴,每片硬盘围绕着转轴旋转 图中从内到外我们可以看到分三圈,…
thumbnail
Ostep 36 Io Device
第三part持久化,开始讲设备I/O了。 体系结构 整个I/O的体系结构基本如图。 CPU通过一些专门的高速线路,直接连接显卡和内存 再通过DMI(Direct Media Interface),与专门的IO芯片相连 其他设备通过与IO芯片相连,以此连接到CPU(如网络的PCIE,USB的键鼠,eSATA硬盘) 硬件连接相关 硬件如何和OS交互? …
Ostep Second Part Summary
第二部分到此也就结束了。这边按照惯例做一下总结。 并发整块内容包括整章,主要还是描述了并发为什么会产生,以及操作系统如何结合CPU硬件去一步步构造一些使用的api来供开发者避免或者解决这些并发问题。 第二部分主要是通过一些思路来介绍的,更加详细的内容推荐美团技术团队的一篇文章,会有一些细节的补充 基本功 | 一文讲清多线程和多线程同步 其实博客总结…
Ostep 33 Event Based Concurrency
这章详细描述了之前20年看netty源码时就了解过的一个概念:eventloop,Netty以及Eventloop eventloop实际上是一个并发模型,基于事件驱动,用于实现在单线程或者单进程上的并发执行(是的,单线程也可以并发执行,没想到吧。 redis,node.js,浏览器,都大量使用到了这个并发模型。它的代码可能如下: while (1…