【1.0】操作系统概述
前言操作系统的基本概述,内容来源自《王道操作系统》并略有补充,此为本人笔记,仅供参考
操作系统的基本概念操作系统概念操作系统(英语:Operating System,缩写:OS)是一组主管并控制计算机操作、运用和运行硬件、软件资源和提供公共服务来组织用户交互的相互关联的系统软件程序。根据运行的环境,操作系统可以分为桌面操作系统,手机操作系统,服务器操作系统,嵌入式操作系统等。
内容来源:百度百科
操作系统特点
并发:指两个或者多个程序在同一个时间间隔内发生。
注意:区分并行,并行指同一时刻发生。这就意味着,对于单核的CPU同一时刻只能执行一个程序,各个程序只能并发的执行,而对于多核CPU可以同时执行多个程序,多个程序可以并行的执行。
共享,指系统中的资源可以供内存中多个并发执行的进程共同使用。共享可以分为两种类型:互斥共享方式和同时访问方式。
如果失去并发性,也就没必要实现共享性,反之同理,两者互为存在条件。
虚拟,指把一个物理上的实体变为若干个逻辑上的对应物。虚拟技术也可以分为两种类型:空分复用技术和时分复用技术。
异步,由于并发运行的程序会争抢着使用系统资源,而系 ...
随记开发日志
前言尝试开发第一个项目,详情可以查看关于我的短期想法,此文档是我的开发进度日志,希望我可以坚持到顺利开发更新。
一些想法想法第一版采用侧边栏任务栏,将功能模块尽量缩小,让更多的内容专注于写作的右侧主模块。
右侧主模块默认主页是类似于气泡框的呈现形式,类似于小组件后续方便组件开发和排版。
配色采用经典白色,蓝色纯属是为了迎合背景图片,其他重要的功能压缩在设置中。
想法第二版在尝试改进 UI 美化,参考了网上很多 UI 设计,做出来第二版的 UI 布局,相比于第一版的确美化程度上来说有质的飞跃,看起来更加的现代化,但是我个人感觉,这样的设计在增加美化的同时反而削弱了对写作记录本身的专注,使得使用者更加倾向于外观上的使用而不是写作内核的使用。
同样的右侧采用气泡框来展示每个内容,每个气泡框是一个小组件,用户可以自定义小组件的显示排序等,同样也可以根据我留下来的接口来开发其他小组件来完成首页的美化。
想法第三版思考了几天,这个软件的定位应该是“电子手账本”,软件设计的要灵活模块化,可以加载不同的 UI界面,不同的页面,以及插件。软件主体功能还是日记,日记事,计划,手账本以及记录一些自己 ...
【2.0】XAML
前言本来没打算写的,但是考虑到我的开源项目,我决定写一下当作复习了。
XAML(EXtensible Application Markup Language)是微软推出的对标 HTML 的标记语言,其本质就是XML的变体,微软在设计 WPF 的时候就学习了 HTML 的前后端分离的模式,这样就类比过来,WPF 技术,使用 XAML 作为前端,C#作为后端,分离了前后端,方便了团队合作和项目开发不必过于耦合。
理解XAMLXAML编译
WPF 创建者知道,XAML 不仅要能仅仅设计协作的问题,它还需要快速运行。尽管 XML 格式可以很灵活的迁移到其他工具和平台,但是它们并不是最有效的选择。XML 的设计目标是逻辑性,易读性而且简单,且没有被压缩。
WPF 使用 BAML(Binary Application Markup Language,是一种二进制应用程序标记语言)来克服这个缺点。BAML 并不是新事物,它实际上就是 XAML 的二进制表示形式。在 Visual Studio 中编译 WPF 应用程序时,所有的 XAML 文件都被转换为 BAML,这些 BAML 然后作为资源嵌入到最 ...
【基础 02】构建函数可视化图形
前言
前排说明:关于本教程目录导航以及说明:猫式教程
在本篇文章中你将会学到:
创建一个预制体(prefab)
实例化(Instantiate)多个立方体
图形化一个数学函数
创建surface shader and shader graph
将图形赋予动画
这是有关学习和使用 Unity 基础知识系列教程的第二篇。这次我们将会使用基本的游戏对象(物体)来构建函数图形,我们可以通过图形来展示(图形化)数学函数。同时我们将会使用函数和时间进行关联创建对应的动画。
本篇教程使用Unity 2020.3.38f1c1 编写。
创建一排”点”对数学的理解是编程所必不可少的。从表面上来说,数学是对表示数值的符号(即未知数)的操作。求解方程归结为一组符号(即方程)。数学规则(即函数定义)决定了这种结果。
例如,我们使用函数 $F(x) = X +1$ ,现在我们使用数值 $3$ 来替代 $X$ 的位置,你就可以得到输出为 $F(x) = 3 + 1 = 4$ 。我们可以说通过函数 $F(x) = X +1$ 将数值 $3$ 映射到 数 ...
猫式教程
前言这部分既是猫式教程的说明,也是猫式教程的索引开始文章页。
关于猫式教程猫式教程(Catlike Coding)系列原作者: Catlike Coding,作者名叫:Jasper Flick,是一位 software developer living in Amsterdam ,他创建并编写了 Unity 的 Catlike Coding 的博客教程。
关于作者Jasper Flick
我在前年的时候尝试翻译过他的博客,在翻译了 3 篇博文后由于一些事情遂放弃了,此次打算捡起来继续翻译,在翻译的时候也会对作者的过程进行复刻,一是提升我的 Unity 能力,二是为了能在翻译作者博文的时候校验可行性。
如果教程对你们有利的话,请对原作者进行打赏,最终知识版权归原作者所有。我本人仅做翻译和二次编写以及一些补充说明。因为很多小伙伴对于英语的编写查看以及复现起来很麻烦,所以我打算解决这个问题。
翻译过程中可能会出现错误或者其他问题,如果发现了请谅解,我会尽量保证不会出错
猫式教程更新我暂定于一周更新一篇博文的频率来尝试更新教程,我会在一些关键词和必要的部分进行英文和中午的双解释。
我会 ...
【基础 01】游戏物体和脚本
游戏物体和脚本
前排说明:关于本教程目录导航以及说明:猫式教程
本篇任务:创建一个钟表,你将会学到:
使用基本物体创建一个钟表
编写一个C#脚本
通过转动指针来显示时间
为指针做一个动画
这是 Unity 教程的第一篇,在这篇学习中,我们将创建一个简单的时钟并编写一些组件使其显示当前时间。你不需要有任何 Unity 的经验,但是你需要有一定的 Windows 窗口使用能力。
在文章最后我会放出本文原文的 PDF (注:英文原作者的),以及教程项目的仓库(代码仓库)。
本教程使用Unity 2020.3.6f1编写,我采用 Unity 2020.3.38f1c1 来翻译复刻编写。
创建项目开始使用 Unity 之前,你需要先创建一个项目。
新项目当你需要打开 Unity 的时候,需要通过 Unity Hub 启动器来完成 Unity 的版本安装和启动,你可以通过 Unity Hub 来创建或者打开,安装 Unity 等一系列操作。
【如何选择 Unity 版本?】
123Untiy 每年会发布多个新版本,并且有两个并行的发布时间表。分别是:最稳定和最安全的是 LTS 版本。L ...
NAS入门
前言最近在折腾NAS,关于NAS的想法我去年就有了,不过一直执行,其实那个时候我的硬盘空间已经不足了,因为我也算是个蓝光党,于是花费300余¥买了个 1t 的移动硬盘,到我现在购买并调试使用NAS,决定记录相关事宜。
前排提醒:入门NAS需谨慎,这是一个烧钱的东西,第二如果你只希望存储完全不需要购买NAS,买个多硬盘的硬盘阵列盒即可。最重要的一点是NAS需要折腾。
NAS是什么NAS(Network Attached Storage:网络附属存储)按字面简单说就是连接在网络上,具备资料存储功能的装置,因此也称为“网络存储器”。它是一种专用数据存储服务器。它以数据为中心,将存储设备与服务器彻底分离,集中管理数据,从而释放带宽、提高性能、降低总拥有成本、保护投资。其成本远远低于使用服务器存储,而效率却远远高于后者。
内容来源:百度百科
用人话来说,你可以把 NAS 看作数据库,你可以将你需要保存的,备份的等只要是计算机数据都可以存储在上面。不过这样来理解 NAS 不是很正确,但是的确可以,相比于把电脑多加快硬盘,NAS 的优势就由凸显出来了。关于电脑多加块硬盘和 NAS 的区别,在 ...
【4.0】依赖项属性
前言在我尝试写一部分 WPF 元素绑定的相关内容的时候,写到开头发现我不得不先解释说明一下依赖项属性的相关内容,遂停止元素绑定内容的记录,补写依赖项属性的相关内容。
理解依赖项属性属性和事件是.NET抽象模型的核心部分,如果你懂得 VB 或者 WinForm 相关开发的话会十分了解这点。但是对于 WPF 来说,它在传统的属性基础上做了一层封装,将它变成了更加高级的依赖项属性。同时也不会和传统的属性发生冲突。
这种更高级的依赖项属性使用了效率更高的保存机制,并支持附加功能,例如:更高通知以及属性值的继承。
依赖项属性是.NET属性的新实现,在 WPF 技术特性中,是及其依赖于依赖项属性的实现,虽然在使用过程中,感觉和普通的属性一致。
定义依赖项属性绝大部分的微软提供的属性都是依赖项属性,但是在某些情况下,我们需要自定义我们自己的依赖项属性,比如我们自定义的控件。
定义依赖项属性需要注意的是:**自定义的依赖项属性的类,必须继承于DependencyObject**,因为后续需要使用该类的方法来修改依赖项属性的值。代码示例:
123456// 自定义了 Test 类,该类继承于 Depen ...
【1.0】初识Mainm
前言我了解到Manim是在去年春夏的时候的事情了,当时沉迷于游戏开发,涉及到3D数学方面的知识,然后就找到了3blue1brown 的相关视频,然后就了解到了他所开发使用的数学动画引擎工具,即Manim。
前排提醒:学习Manim需要一定的Python基础。
关于Manim所能实现的数学动画效果可以查看3blue1brown 的相关视频。
Mainm简述Manim was originally created by Grant Sanderson as a personal project and for use in his YouTube channel, 3Blue1Brown. As his channel gained popularity, many grew to like the style of his animations and wanted to use manim for their own projects. However, as manim was only intended for personal use, it was very difficu ...
【CSharp实例】文件基本操作
前言我记得我之前的博客是写过C#实例相关的文章,但是考虑到过于琐碎,我并没有那么多时间,所以指拿出来文件操作的部分来记录,因为对于程序来说,输入和输出的使用频率和重要性会更高一些。
本篇内容参考自 互联网,哔哩哔哩相关视频,《C#开发实例》以及本人经验
获取文件基本信息获取文件的大小方法说明获取文件大小,需要使用File类的Open方法开打开指定的文件,然后使用FileStream类的Length属性获取文件的长度。
File类的Open方法
File类的Open根据传入的文件路径,获取其FileStream并返回,函数签名如下:
123public static FileStream Open(string path, FileMode mode, FileAccess access, FileShare share);public static FileStream Open(string path, FileMode mode, FileAccess access);public static FileStream Open(string path, FileMode mo ...