- 博客(102)
- 资源 (9)
- 收藏
- 关注
原创 哈工大操作系统实验1 熟悉实验环境
实验1主要是介绍了在Ubuntu下如何编译、运行和调试linux0.11内核程序。课程中的说明非常详细了,目前照着做没有发现什么问题。
2024-10-30 08:43:02 266
原创 第2章 计算机和汇编语言
第2章重点介绍了寄存器(Register)、内存(Memory)和指令(Instruction)、指令集(Instruction set)、字节(Byte)等基本概念,然后引出了为什么要发明汇编语言(Assembly)。
2024-10-23 14:35:15 273
原创 第20章 平坦内存模型和软件任务切换
该章节的代码功能和前面几章类似,只是本章通过平坦内存模型简化开发、通过软件进行任务切换。如果前面几章都理解了,这章就容易理解了。
2024-10-18 10:57:54 962
原创 第19章 分页机制和动态页面分配
该章主要讲解了内存的分页机制,根据其机制对第18章的代码进行改造优化。在阅读的过程中,一开始比较懵,但后来掌握一个方法后就容易理解多了:就是多从线性地址转成物理地址的角度去思考。因为书中很多的地方要通过物理地址构造线性地址,比如页目录表的物理地址是0x21000,构造的线性地址是0xFFFFF000,反向思考有点难,但是正向从线性地址0xFFFFF000转成物理地址0x21000进行思考并尝试自己计算,就很容易理解了。
2024-10-11 10:30:46 986
原创 第18章 中断和异常的处理与抢占式多任务
本章代码实现的功能,创建内核任务、用户任务1、用户任务2,然后通过中断的方法在几个任务之间切换,不同的任务打印不同的字符串。
2024-09-30 11:56:31 862
原创 第16章 任务和特权级保护
该章节的内容我感觉比较难,其中涉及了很多新的知识:调用门、LDT、TSS、TCB、特权级、IO特权级等,并且调用门还涉及特权级检查和变更等。我也看了很多遍,才弄清楚,建议是一个一个知识点厘清。
2024-09-24 16:42:47 802
原创 第14章 存储器的保护
该章主要介绍了GDT、代码段、数据段、栈段等的访问保护机制。存储器的保护功能可以禁止程序的非法内存访问。利用存储器的保护功能,也可以实现一些有价值的功能,比如虚拟内存管理。
2024-09-18 11:04:34 492
原创 第13章 操作数和有效地址的尺寸
16位操作尺寸的指令和32位操作尺寸的指令可能具有相同的机器码,为了区分这两种不同操作尺寸的指令,32位处理器引入了默认操作尺寸的概念。
2024-09-14 10:56:22 469
原创 第11章 32位x86处理器编程架构
IA-32(INTEL Architecture, 32-bit):INTEL 32位处理器架构简称IA-3,以8086处理器为基础发展起来的。该章重点介绍了IA-32处理器的工作方式和相关技术。
2024-09-10 15:28:37 903
原创 第10章 中断和动态时钟显示
书中介绍了为什么有中断(Interrupt)的设计,中断的几种方式:外部硬件中断、内部中断和软中断。通过中断做了一个会走的时钟和屏幕上输入字符的程序。
2024-09-09 11:23:54 1435
原创 第7章 相同的功能,不同的代码
该章节和上章实现的功能是一样。也在屏幕上输出:Label offset: number标号的十进制格式,不过用了更优雅的实现方式。
2024-08-30 11:51:49 747
原创 第6章 编写主引导扇区代码
该章节的程序就是在屏幕上输出:Label offset: number标号的十进制格式,通过这个例子介绍了屏幕显示内容原理、主引导扇区知识和Bochs调试知识等。
2024-08-28 11:53:39 691
原创 第5章 虚拟机的安装和使用
第5章 虚拟机的安装和使用,第一节介绍了计算机的启动过程原理,为后面创建和使用虚拟机做铺垫。第二节介绍虚拟机(Virtual Box)的安装和使用,以及如何在虚拟机上运行我们编写的汇编程序。
2024-08-23 16:03:29 977
原创 第4章 汇编语言和汇编软件
第4章 汇编语言和汇编软件读书札记,了解了汇编语言全貌,用visual studio code编写汇编还有习题的解答。
2024-08-22 09:29:59 1837
原创 做一款软件到底要花多少钱?
如果考虑saas服务的一些缺点,希望有更多的自主权,例如有源码,可以部署在自己服务器上,可以申请自己的软著,后续可以持续迭代等,那么基本上几万元的预算跑不了,通常的方式是购买一套源码,在此基础上做一些定制功能,或者是在开源程序上进行定制开发,俗称二开,这种方案的好处就是价位适中、自主权更高;可靠性,一台服务器挂了,全部嗝屁?在这个价位上,如果有人说几千元可以做,要么软件功能确实简单,例如企业信息站,要么就是现成的一套源程序直接给你,改改标题,改改logo完事,后续要改动功能,那么基本上是要加钱的。
2023-12-27 16:44:59 1113
原创 css中skew实现元素倾斜
css中可以用transform可以实现元素2D、3D的一些变化,其中有一个变化倾斜可以用skew实现。skew语法skew语法:skew(ax, ay)其中:1. ax 表示在x轴上的倾斜角度,单位为 deg。2. ay 表示在y轴上的倾斜角度,单位为 deg。x轴倾斜示例1,x轴上倾斜30deg:<!-- 要旋转的div --><div class="box"></div><!-- 参照物 --><div class="b
2021-12-23 10:02:08 8224
原创 vue3中基于script setup语法糖的$refs使用
在用vue3开发项目的时候,需要调用子组件的方法,于是想着用$refs来实现,但是我是使用script setup语法糖,原先vue2的语法已经不适用了。于是一番折腾和查阅资料,终于搞定。vue2语法vue2语法在组件上设置ref属性后,在代码里可以通过 this.$refs.ref值 访问到对应的子组件。一个设置ref值的组件:<base-input ref="usernameInput"></base-input>在js代码中可以通过如下代码访问到这个组件:thi
2021-12-02 15:04:55 6445 2
原创 从谷歌一行代码能学到哪些姿势
网上很流行的一行代码,据说是谷歌工程师写的,它的作用是给页面所有元素增加一个随机颜色的外边框。[].forEach.call($$("*"),function(a){a.style.outline="1px solid #"+(~~(Math.random()*(1<<24))).toString(16)})运行效果如下图:这个代码虽然只有一行,但是包含的知识点不少,网上有很多解析。我也说下自己的理解,然后最后推荐在实务中使用TreeWalker对象进行遍历。我的理解其中主要包含如下
2021-11-26 15:33:13 298
原创 JavaScript用html5新方法操作元素类名
现在网页中类属性使用越来越多,经常会通过增加类、移除类给指定的元素修改样式效果。早先JavaScript处理起来特别不方便,需要先取到class属性,然后对字符串进行处理。现在html5给所有元素增加了classList属性来操作类属性,非常方便。classList先看如下代码:<ul class="nav"> <li class="active">栏目1</li> <li>栏目2</li> <li>栏目3</li
2021-11-20 12:26:13 748
原创 JavaScript用Element Traversal新属性遍历子元素
之前遍历子元素可以用childNodes属性或者firstChild进行遍历,但是要判断子元素是否是ELement元素。后来W3C通过Element Traversal规定定义了一组新的属性来进行遍历,就不用判断了,非常方便。childNodes属性遍历遍历子元素通常是通过childNodes属性进行遍历,但是这个属性会包含空白节点,如果只是要遍历Element元素就特别不方便。请看如下代码示例:<div class="article"> <p>段落一</p>
2021-11-20 11:51:29 611
原创 JavaScript中选择器函数querySelector和querySelectorAll
选择器是Css非常强大的功能,早先一般是通过getElementById和getElementsByTagName来获取页面元素,在一些场景下就很不方便。后来DOM扩展出了Selector API标准,其中 Selector API Level 1 包含了querySelector和querySelectorAll两个方法,可以通过Css选择器匹配页面元素。querySelector查询单个元素querySelector用于查询页面中第一个符合规则的元素,可以在Document实例和Element实例
2021-11-20 10:29:37 4615
原创 JavaScript中if判断包含逗号表达式
有时会看到JavaScript中if判断里包含英文逗号 “,”,这个是其实是逗号表达式。在if条件里,只有最后一个表达式起判断作用。请看如下示例:let a = 1, b = 2, c = 3;// if只判断最后一个表达式if (a == 10, b == 20, c == 3) { console.log("c == 3");} else { console.log("c != 3")}// 控制台输出:// c == 3上面if中有3个表达式,前面两个都不成立,只有最后
2021-11-19 21:25:12 4130
原创 JavaScript中MutationObServer监听DOM元素详解
DOM的MutationObServer接口,可以在DOM被修改时异步执行回调函数,我的理解就是可以监听DOM修改。基本使用可以通过MutationObserver构造函数实例化,参数是一个回调函数。let observer = new MutationObserver(() => console.log("change"));console.log(observer);observer对象原型链如下:可以看到有disconnect、observer、takeRecords方法。1.
2021-11-19 14:51:19 1942
原创 也谈JavaScript浅拷贝和深拷贝
网上关于这个话题,讨论有很多了,根据各路情况我自己整理了一下,最后还是能接近完美的实现深拷贝,欢迎大家讨论。javascript中的对象是引用类型,在复制对象的时候就要考虑是用浅拷贝还是用深拷贝。直接赋值对象是引用类型,如果直接赋值给另外一个对象,那么只是赋值一个引用,实际上两个变量指向的同一个数据对象,如果其中一个对象的属性变更,那么另外一个也会变更。示例1,简单示例:let human1 = { id: 1, name: "happy"};human2 = human1; // 这里就
2021-11-04 17:24:04 105
原创 JavaScript中isPrototypeOf函数详解
有时看一些框架源码的时候,会碰到 isPrototypeOf() 这个函数,那么这个函数有什么作用呢?isPrototypeOf()isPrototypeOf() 是 Object函数(类)的下的一个方法,用于判断当前对象是否为另外一个对象的原型,如果是就返回 true,否则就返回 false。这个函数理解的关键是在原型链上,这个据说是JavaScript的三座大山之一。这里不详述其中的原理,简单的来讲就是3点:1. 函数对象,都会天生自带一个prototype原型属性。2. 每一个对象也天生自
2021-11-03 15:05:28 4366
原创 script使用integrity属性进行安全验证
script标签引入文件在html中,script标签可以通过src属性引入一个js文件,引入的js文件可以是本地的,也可以是远程的。1. 引入本地文件开发环境一般多引入本地js文件。<script src="./js/index.js"></script>2. 引入远程文件部署到线上后,一般会分发到cdn,需要引入远程文件,形如:<script src="https://cdn.xxx.xx/js/index.js"></script>只
2021-11-02 09:17:05 6186
原创 webpack配置typescript详解
随着现在typescript使用越来越多,作为打包工具界的webpack怎么编译typescript呢?下面我把自己的实践记录一下,成功编译了typescript文件,并且引入typescript模块后,也可以成功编译。我们从新建webpack项目开始,在此之前先贴一下环境,经常环境不同会造成不同的状况,这边先贴上的环境:$ node -v v14.15.4$ npm -v 6.14.10$ webpack -v webpack: 5.58.2webpack-cli: 4.9.0we
2021-10-19 08:14:40 2802 2
原创 svg中viewbox图解分析
svg中有一个viewbox属性,中文翻译为视区,就是在svg上截取一小块,放大到整个svg显示。这个属性初学的话有点难以理解,这边做一个简单的示例,一看就明白了。**1)**先来一个svg,宽高各位300,设置一下边框:<svg width="300" height="300" style="border: 1px solid steelblue"></svg>运行效果:这边其实就是一个300*300的矩形。**2)**svg里面画一个矩形:<svg wi
2021-10-18 08:11:35 480
原创 svg中path贝塞尔曲线和圆弧图文详解
最近研究了一下svg的path标签,功能非常强大,理论上来讲path标签可以画出任意图形。自己记性不太好,记录一下path的使用语法和自己的理解。path介绍path用d属性来描述路径,语法格式大概如下:<svg> <path d="路径描述" /></svg>其中路径描述包含如下命令:M = moveto 移动到某点。L = lineto 画一条直线到某点。H = horizontal lineto 画一条水平线到某点。V = vertical l
2021-10-15 00:08:51 8879
原创 svg用animate实现简单动画效果
svg中可以使用animate标签实现动画效果。就是在相应的形状标签内加入animate标签,其中若干属性如下:attributeName 目标属性名称from 起始值to 结束值dur 持续时间repeatCount 次数|indefinite,动画时间将发生几次,indefinite表示无限次。一个简单示例效果,颜色在3秒内从steelblue渐变到pink:<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="
2021-10-13 21:19:05 1980
原创 svg绘制六种基本形状
svg 意为可缩放矢量图形(Scalable Vector Graphics),最大的特点就是伸缩不会失真。svg是用xml进行描述的,在前端方面现在应用越来越广泛,各大浏览器支持越来越好了。
2021-10-12 22:05:02 1861
原创 网页引入svg图片的4种方式
web应用开发使用svg图片,总结了下,可以有如下4种方式: 1. 直接插入页面。 2. img标签引入。 3. css引入。 4. object标签引入。
2021-10-11 20:27:28 41386
原创 css中box-sizing解放盒子实际宽高计算
我们知道传统的盒子模型,如果增加内边距padding和边框border,那么会撑大整个盒子,造成**盒子的宽度不好计算**,在实务中特别不方便。box-sizing可以设置盒模型的方式,可以很好的设置固定宽高的盒模型。
2021-10-10 15:01:50 733
php实现文章中关键词加链接的功能
2012-12-02
Atheros Communications Inc. AR8151 v2.0 Gigabit Ethernet (rev c0)网卡驱动
2012-02-26
谷歌黑板报--数学之美.rar
2010-05-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人