Ext4文件系统

本文为原创文章,转载注明出处,欢迎关注网站https://hkvision.cn 缘起 接上面的文件系统介绍,接着介绍一下Ext4文件系统 Ext4的历史 知乎上有一篇文章,Ext4的历史讲的较为详细,可以直接参考,这里只简单讲一下。 Ext4由Ext2,Ext3发展而来,从结构上是兼容Ext2/3的,也就是说你可以在不损失数据的情况下,直接平滑过渡到Ext4文件系统,这一点上Ext4是占有极大的优势的(与XFS等其他文件系统相比)。 对于Linux,Ext系列的文件系统就像亲儿子一样,可以说Ext系列文件系统的发展就是伴随着Linux发展的,因此实际上Ext系列的文件系统和VFS即为相像,甚至于部分结构是嵌在Linux中的而不是Ext中。 Ext4的一些特性 和Ext3相比,Ext4有一些很有意思的特性……

阅读全文

文件系统介绍

本文为原创文章,转载注明出处,欢迎关注网站https://hkvision.cn 缘起 这段时间研究了很多和文件系统有关的内容,于是打算写一篇博客记录一下,最近太忙都没时间打理博客了。 为什么要文件系统 文件系统这个东西是一个随着计算机发展而必然会产生的产物,我们以个人PC为例,现代的个人PC五大件:CPU,主板,显卡,硬盘,内存。文件系统就是专门为硬盘准备的。 我们想象一个场景,CPU哼哧哼哧的算了一个结果出来,放在内存里面,这个时候你想让这个结果持久化,也就是永久保存,即使我关机了,重新开机之后我也能读到我计算的结果,硬盘的作用就体现出来了,我们将结果放在硬盘里面,下次咱就可以读到了。但是我们思考一下,结果是如何存在硬盘中的呢? 硬盘 首先我们来看一下硬盘是啥,这里我们先局限于机械硬盘(HDD)。……

阅读全文

理解shell

本文为原创文章,转载注明出处,欢迎关注网站https://hkvision.cn 缘起 最近在看《深入理解操作系统》,抛开了汇编那一块,书里面很多例子是拿Unix shell来举例的,这使得我对此有了更多的感悟,特此记录一下。 shell与终端 shell不是终端,平时容易弄混的原因是因为这两个东西总是一起出现。准确来说,单独的终端是没有任何意义的,因为这个终端只能回显你输入的一堆字符,而不能执行你输入的命令,所以一般来说,你打开一个终端之后(打开终端是处于一个进程中),同时会执行一个shell(linux中是调用execve这个函数来在一个进程中执行另外一个程序,可以先fork一个子进程,然后在这个子进程里面执行shell)。 shell做的事情 基本的shell功能就是解析用户输入的命令,解析为可执行文件,参数,环境变量等等,然后fork一份子程序,子程序调用execve函数来执行你输入的命令。此外,shell会内置一部分指令,例如quit这个指令并不是一个可执行程序,但是输入在shell中就会退出shell。……

阅读全文

Hyper V安装ENVI

本文为原创文章,转载注明出处,欢迎关注网站https://hkvision.cn 缘起 最近的任务要用到ENVI(除非我决定手撸一个影像空间匹配,逃…),然后,我又不想ENVI这个我平时可能用不上的软件直接装在电脑里面(而且还是破解版,万一有个毒啥的),于是我决定用虚拟机装ENVI 虚拟机选择 说到虚拟机嘛,自然说说选择的问题,个人电脑三大虚拟机阵营——VirtualBox,VMWare Workstation,Hyper-V。前两个我都用过,说实话,也许是我之前电脑比较渣的原因,用起来都很不爽(虚拟机卡成ppt),而且,这两个玩意真的不好卸啊,不如试试微软自家的Hyper-V,集成在操作系统里面的。 家庭版开启Hyper-V 首先遇上的一个问题,笔记本厂商装的正版Win10是家庭版,而家庭版是不带Hyper-V的,需要手动安装激活一下,这个不难,网上很多教程,批处理一键搞定。……

阅读全文

华为软件实习生笔试

本文为原创文章,转载注明出处,欢迎关注网站https://hkvision.cn 缘起 做了个华为实习生的笔试,3道题,2小时,比字节和阿里要好点 题目 明日之星 题目名字叫明日之星,就是一个投票,输入一行人名(投给的人),然后统计谁的票数最高,输出票数最高的人的名字,然后如果有重票的,就按字母表来 由于忘了python多关键的排序咋弄的了,就写了个有点问题的 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 import sys if __name__ == "__main__": line = sys.……

阅读全文

用C++实现一个命令行进度条

本文为原创文章,转载注明出处,欢迎关注网站https://hkvision.cn 缘起 最近做GWPCA,在带宽比较大的时候速度太慢了,需要有个进度条指示一下,然后我去找进度条的库,发现github上面的C/C++的相应的库似乎没有能在VS下跑的,自己花了点时间写了一个。 效果 实现 大概需要考虑这样几个要素 已完成的百分比 执行速度 已执行的时间 剩余时间 另外进度条的引入不能破坏已有的执行结构,最好和Python的tqdm库类似,通过start,update等函数来完成整个进度条,因此对于C语言来说,需要一个定时器,定期将进度条进行重绘(不可能更新一次就重绘一次),因此整个进度条就包含了两个类,一个是进度条类,一个是定时器类。另外需要考虑线程安全的问题。……

阅读全文

PCA与GWPCA

本文为原创文章,转载注明出处,欢迎关注网站https://hkvision.cn 缘起 其实没什么缘起,本人的专业是地理信息系统,结果之前全写的计算机的内容,貌似完全偏题了,这次我来写一下最近做的GWPCA的内容。 PCA 原理 中文名叫主成分分析,做数据分析的人一定对这个不陌生,一般来说做PCA的都是用于数据降维,数据压缩等等。那么为什么这个PCA能够做到数据降维呢? 首先,大家明确一点的是,一堆数据给你了,那么这个数据一定得是有意义的数据,也就是说,我给你n个数据,我希望你能给我n个不同的信息(当然一般不可能),你别给我了n个数据,结果你给我的n个数据是一模一样的,那和给我1个数据没有什么区别。那么用于描述这堆数据的有意义的程度的一个指标——信息熵,就出来了。也就是说你这堆数据到底蕴含了多少信息。 那么一堆数据是没什么意思的,但是这堆数据里面蕴含的信息才是我们需要关注的内容,那么有没有什么办法能够让我们将这堆数据的最精华的部分(也就是蕴含的信息,剔除了冗余的部分)选择出来呢?这个时候我们的主成分分析就能派上用场了。……

阅读全文

字节后台实习生笔试题目

本文为原创文章,转载注明出处,欢迎关注网站https://hkvision.cn 背景 昨天做了字节的实习生后台开发的题目,4道编程题,2个小时。 题目 用户模型和模型文件之间的对应: 输入: n 用户模型1 模型文件1……

阅读全文

Web终端仿真器

本文为原创文章,转载注明出处,欢迎关注网站https://hkvision.cn 背景 ​ 在我的上一篇文章中已经说过了,我想做一个web命令行。但是呢,我这两天碰到了一些问题,主要是基础不牢引起的一些概念性的问题,导致我在搜索资料的时候花费了很多时间。 ​ 最开始我碰到的问题是我在执行git clone命令的时候,我发现如果我把执行结果重定向到一个文件上,或者是我用Golang的exec.Command命令执行的时候将结果用管道扔到我的程序里,执行的结果就只有一行Cloning xxx into xxx.……

阅读全文

阿里云API网关与函数计算的基础理解

本文为原创文章,转载注明出处,欢迎关注网站https://hkvision.cn 背景 想法是在函数计算上搭建一个web命令行(加速GitHub,国内太慢了),并且通过websocket实时将执行过程发送到前端。在本地其实已经成功了,但是实际上放到函数计算的时候出现了一个大问题,就是函数计算的Http触发器不支持异步调用,更是不支持websocket协议,查了些资料之后发现和阿里云的API网关配合起来使用可以用上websocket。在查这些资料的过程中终于弄明白了函数计算的custom runtime是怎么回事,这里记录一下。 函数计算 首先,我们需要明白,阿里云的函数计算(custom runtime)更像是给你一个极小极小的小型虚拟机,理论上来说,你可以拿这个小虚拟机做正常主机任何的操作(在阿里云给你的权限下)。这里给一下阿里云的文档的说法 大家可以看到这里,custom runtime本质上是一个HTTP Server,也就是说,如果我们能在HTTP Server中写一些执行linux的命令的代码,也就意味着我们有了一个位于阿里云的小型虚拟机,最关键的是这个虚拟机我们还不需要花钱。……

阅读全文