HowLinuxWorks随记
本文将记录《how linux works》一书中的知识。
第一章 概述Linux层次Linux分为用户进程,Linux内核,硬件。内核在硬件之上管理硬件系统,是硬件系统和应用程序之间进行通信的接口
进程指计算机中运行的所有程序,组成了最顶层,称作用户空间或用户进程
用户进程与内核之间最主要的区别是内核在内核模式 kernel mode中运行,用户进程在用户模式运行。内核模式中运行不受任何限制访问处理器与内存。那些只有内核可以访问的空间叫做内存空间 kernel space,反之用户进程可以访问的为用户空间 user space。一般来说用户进程的影响范围被限制在用户空间内。
主内存与CPU频繁产生读取行为的内存。数据以特定排列的0与1 bit存储,这被称为状态 state。我们可以用状态的变化阶段来描述进程的执行过程(eg. 进程的执行阶段 ,进程正在执行启动任务阶段)。镜像 image 通常表示比特值在内存中的特定物理排列
内核内存负责管理以下四个方面:
进程:决定哪个进程可以使用CPU
内存:内存分配,管理进程间的共享内存与空闲内存
设备驱动程序:作为硬件系统和进程之间的接口
...
全栈测试随记
本文将记录关于《Full Stack Testing》这本书中的诸多方法论与测试技巧
手动探索测试手动探索性测试一般处于开发后进行,探索性测试强调所有三个角度(业务需求,技术实现细节,最终用户需求)结合起来,并从这些所有角度去挑战在过去业务角度,功能开发角度中被认为对的事情。相较于传统手动测试,完成特定测试任务以满足某一需求文档中的验收标注,手动探索测试更为自由,更为全局。手动探索测试在特定的测试环境中随意干预各种应用程序组件,例如数据库,服务或者后台进程。
探索性测试框架等价类划分假如有一个正数的输入值x,有x小于500,x在500 与1500之间,大于1500,针对三种情况分别有三个不同的策略。如何进行测试?
可以划分为三个等价类 {0-500,500-1500,1500- },只需要在其区间内各区三个数就可覆盖所有情况。
边界值分析边界值分析法是等价类的扩展方法。它将类之间模糊不清的边界值也纳入测试,{0,1,500,501,1500,1501}
状态转换在程序的行为根据历史记录发生变化时可以使用状态转换将状态过程可视化。比如登录三次失败三次账号锁定。
决策表在面对逻辑关系(A ...
【galgame】rkr三部曲感想——悲剧是成年人的童话
最近推完了rkr三部曲,写下一些感想总结。
关于rkr喜欢写悲剧,擅长抓读者的同情心,注重剧情。在使用剧情工具时过于明显,以及大量的插叙与回忆让叙事的节奏把握不好,对于一些剧情伏笔过于刻意,莫名其妙的同时不能给读者留下印象。总体来说,瑕不掩瑜,大多数缺点都是技术性问题,可以看到rkr正在进步这些缺点逐渐减少。
关于rkr剧本下的叙事线在纸魔与冥契中rkr放弃传统的平行角色线结构采用了树形角色线结构。我可以理解树形结构层层递进在这种强剧情作品中的优势。但个人认为rkr并没有发挥的很好。rkr的剧本是非常跳跃式的,爱用叙述性诡计与埋伏笔。但是这种写法让剧情只能是单线的,否则前面的铺垫将很难收回。于是我们就看到了灾难般的个人分线,一个没头没尾不明所以的故事,叙事风格极其严重的割裂,完全不能算end的end。那么既然是单线剧情又是树形叙事结构,为何不将分线结束后重新回归到主线呢?我认为对于擅长叙述性诡计的rkr这种技法一定不在话下。但这个问题关键在于考虑读者的接受度,读者进入个人线是否愿意再回归主线。
但我们也不能把这个锅全扣在树形结构上因为平行结构的水葬银货也被诟病个人线水。这里为rkr伸冤 ...
混沌工程随记
混沌工程并不是在生产环境中搞破坏。搞破坏很容易但完成下述事情很难:减小爆炸半径,对安全性进行批判性思考,确定漏洞是否值得修复,决定是否应该进行实验。寻找做对的地方比寻找做错的地方提供的信息多得多,因为对于复杂系统而言,故障可能是因为熵增而导致的系统性错误,这些并不能被预测到。而混沌工程通过实验认识到系统的属性信息,从而可以通过测试的方法规避掉错误,让团队拥有更好韧性。 对与让系统更加健壮而言,一味的冗余只会掩盖问题的存在,同时冗余的同时引入了故障,发生了熵增。