🌓

【8 位 CPU】给 CPU 添加控制系统和指令系统

CPU计划完结散花:tada: :tada: :tada: 。 核心给每个逻辑元件添加控制单元以达到,不同输入组合对应不同的输出。由于我们已实现了寄存器(一种能够记住1byte的单元),那么遍可以控制其允许输入/输出。不同的原件,同一时刻的允许输入输出状态就定义了当时单元和单元之间的关系,如A寄存器输出,B是输入,其他不设置,那么此刻完成了A寄存器...

阅读全文

【8 位 CPU】攒个可以计算加减法的初代 CPU

利用已有的电路部件,搭建一个可以计算加法和减法的电路。 上面的MC、RAM、PC、Reg、ALU都有控制选中(CS片选)、可写(不可写则可读)的输入,选中时对应灯泡点亮示意。使用16位中的13位二进制的01来对应。通过不同的排列组合即可定义每个时钟周期电路的状态(哪些单元可以被操控读写)。 下面是对应电路的控制单元的标识,或运算一组和,就是控制电路了。 1...

阅读全文

【8 位 CPU】一步一步画个寄存器

接上篇,仍然是基本电路往更复杂电路组合的逻辑。只不过,这部分电路有个特征,术语叫时序电路,其最基本的特征是相对组合电路来讲的,组合电路特定输入就得到特定输出,时序电路则不然,它的输出和输入的对应关系是不确定的,其电路的输出会接到输入上,最终输出是由输入、输出和电路当前状态决定。话不多说直接上截图。 R-S触发器,输出Q确定后,Set、Clear、Prs不改...

阅读全文

【8 位 CPU】8 位加法器

使用工具:https://www.logiccircuit.org/工具中有基本的逻辑电路单元、输入输出、分线器、晶振模拟器、显示装置模拟单元等。最基本的思想是:通过基本电路的接线,确立输入-输出规则,类似函数的入参和返回值,便构成一个功能电路单元。单元套单元组成新单元,如此往复。“一生二,二生三,三生万物”。 如下:半加器是异或、与门电路接线构成。2个输入...

阅读全文

计算机RAM的底层原理

计算机的电路,在搞软件的看来应该是很简单的,复杂的留给电路设计的从业者们。 本片文件结合最近重新研究底层的脉络书写,主要核心目的在于解决,计算机是如何一步一步构建(组合)出来的,行为期间发现有篇和我想写内容一样的文章。 计算的本质是什么?这个问题百度可以得到“答案”,逻辑符号的转变规则即是计算。它出现的目的,是人类为了从有限信息中提取新的信息而发现和指定的一...

阅读全文

内核启动过程 -- 操作系统是个死循环

以linux0.11为源码,几句话说清楚。1、操作系统启动完成各种资源的初始化2、手动构建了一个0号进程3、0号进程切到用户态fork出1号子进程4、1号子进程执行init()函数5、1号进程套了2个while循环,1号子进程在第一层while循环中fork子进程,该进程接受用户输入并执行命令后退出,然后在第二层while循环中持续等待子进程GG态后brea...

阅读全文

计算机各层次执行速度

计算机系统的内部设计、各类应用架构无不是受此影响。 比如:为了平衡CPU速度不断提升,但是内存频率没有同步提升带来的协同问题,CPU从没有片内缓存到L1、L2、L3相继出现。又比如,网络多IO请求磁盘速度无法满足要求,催生了redis缓存。 计算机存储体系图:《深入理解计算机系统》时间和空间局部性原理 决定了上一层级做下一层级的缓存; 计算机各层次速度表 ...

阅读全文

JDK中JUC包由浅入深原理——atomic包

intel CPU原子操作需有一个基本逻辑,CPU不支持的,上层不可能自己YY出来。沿着操作系统内核往应用层,通常都是利用底层的能力,构筑上层的大厦。 在intel中,指令lock+指令,可构成一个原子指令(即要么都执行,要么不执行)。上层代码,可基于此构建自己的原子操作。 依据可查阅intel开发手册Volume3 - 8.1到3。 从上可知,通常套路原...

阅读全文

ELF学习一

Excutable and Linking Format,ELF,有UNIX系统实验室发布并确定为应用程序二进制接口ABI(二进制程序标识所有工具集所遵循的一组运行时约定,包括:编译器、汇编器、连接器和语言运行时支持)的落地文件形式,其重要性不言而喻。 ELF文件类型ELF文件是由汇编器和连接器创建,是程序的二进制表示,以提供直接在目标处理器上执行的代码(指...

阅读全文

SpringBoot之博客实战

前言

自学这件事,要坚持下来真的挺耗费精神力的。本来打算把博客系统敲完,遇到面试,要准备,参加面试几轮几轮的面,准备入职的事,又有新面试等等,对入职公司的技术栈的研究涉及go,又大概看了go。测试学院开学,当了助教,也需要上课,答疑解惑。精神分散,还要做家务煮饭什么的,还是比较难办。差点把这个博客计划半途而废了。然后想起来还有件事没有利索,回头继续前进,一定完成!做一件成一件!

2020年6月入职现在的公司开启上班模式后这件事又耽搁了几个月,期间根据公司实际,研习了很多客户端的技术,博客代码的事有中断,后继续,目前是2021年6月7日,实际前前后后已经完成一个多月,打算对第一阶段的博客代码和套路做个总结。下一个阶段的总结应该是要前后端分离,并带上VUE相关内容的。

本文不适合跟操作,仅适合查看涉及的知识点,或扩充一二。

我的项目地址:https://gitee.com/windanchaos/my-blog-v2

师出同门的博客地址(可以大致跟敲):https://onestar.newstar.net.cn/types/33

李仁密教课的地址(我很多地方没跟,比如持久框架和很多细节):https://www.bilibili.com/video/BV13t411T72J

前置动作

  • jQuery速度学习一下,以便在操控界面元素上能有思路
  • mybatis速度学习一下,以便脱离视频教程的持久化方法

用户故事

三个关键点角色、功能、商业价值。

模板:作为一个(角色),我可以做什么,从而达到什么目的。

个人博客系统的用户故事

角色:普通访客、管理员(我)

这里的概念是头一次听到和见到,类似一个产品经理的视角看待问题。

访客的用户故事

  • 可以分页查看所有博客
  • 快速查看博客数最多的6个分类
  • 可以查看所有的分类
  • 可以查看某个分类下的博客列表
  • 查看标记博客最多的10个标签
  • 查看所有标签
  • 查看标签下的博客列表
  • 可以根据年度时间线查看博客列表

阅读全文