自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(49)
  • 问答 (1)
  • 收藏
  • 关注

原创 商业 v. s. 自由 ——W*ndows v. s. 现代UNIX

导读“天下没有免费的午餐。”这句话只说对了一半。对于软件业,或者更准确一点,自由软件业,这并不一直是对的。商业软件公司正在控制着我们——普通计算机用户甚至专业的程序员——的大脑,在我们的潜意识里面,似乎只有大公司的东西才质量好。下面是几个场景:我倾向通过收费的网课、系列视频或者文章来学习技术,而不是阅读软件自带的免费文档或者是免费外语甚至中文标准,因为前者更容易。免费的东西都是劣质的。只有收费的东西才可以保证质量高。不会有人将优质资源公开免费,除非他们有着特殊目的。大公司的软件比一群只因为兴

2022-03-17 14:46:51 653

原创 RISC-V 架构指令集手册 第一册 无特权指令集 中文翻译

RISC-V 手册页,翻译完了的熟肉好吃

2022-02-01 23:17:23 6154 2

原创 Huffman赫夫曼编码的工作原理

谈到压缩这玩意儿,大家可能会想到忘记压缩密码将巨大文档变成一个神秘的小文件,而且你还通过这个小文件来恢复这个巨大文档。但是,大家一定都想过,为什么压缩能这么神奇呢?首先抛开那些什么二叉树,二分查找的。假如让人帮忙复述这一段话:中华人民共和国于公元2008年在北京举办了奥林匹克运动会。他可能会说成:中国2008年在北京举办了奥运会。一下子短了将近一半!这是怎么回事儿啊?我们都知道,中国就是指中华人民共和国,奥运会就是指奥林匹克运动会。...

2021-05-01 23:00:04 470

原创 空指针 - segmentation fault: 栈中的临时变量

所谓 空指针,其实就是指内存地址0。这个地址操作系统保留,是不能够被访问的。所以,尝试访问一个空指针,程序就会崩溃。而大家熟悉的 segmentation fault (段错误,段异常),就是因为访问一个不存在的地址 (或尝试访问操作系统的地址)。程序就会崩溃,不是说程序运行不下去了。我们常见的Intel x86系列处理器在遇到这类错误时候回产生一个中断,而操作系统收到这个中断以后,就知道,现在运行的程序出现了错误,把他kill (杀死,结束)掉吧。Windows系列系统在遇到这类问题,会显示如下图的

2021-04-09 23:34:16 428

原创 32位有符号整形的溢出

最近,笔者当然还是在努力写系统,并且在笔者的“滋润”下,我们的cunix系统已经有一个操作系统的样子了。大家可以看看https://github.com/pengruiyang-cpu/cunix.git,gitee上也有,https://gitee.com/pengruiyang-cpu/cunix.git,有兴趣的当然可以向上面提交代码啦,作为开源与GPL的狂热热爱者,笔者当然欢迎。今天我们要聊的这个“诡异的数值”,几乎就是一本活生生的教科书,是笔者在编写cunix的文件系统时出现的一个问题。代码笔者

2021-03-27 23:15:27 929

原创 我的OS | 一个文件系统的设计与实现

今天,笔者要设计一个类似ext2的文件系统CFS (cunix file-system),在https://github.com/pengruiyang-cpu/rlib上的cfs.c和cfs.h。设计不管啥样的文件系统,他都是由这几个部分组成的:启动区超级块根目录数据区(NTFS, FAT系列文件系统将超级块放到了启动区内)所以,咱们就一个个的分析,一个个设计吧。启动区 + 超级块CFS的启动区就放在超级块的前512个字节里头,里面只放了代码,文件系统的全部信息都存储在超级块409

2021-01-17 21:40:33 502

原创 尝试使用Linux操作系统

最近将近一个月,笔者都没有更新。主要是因为笔者卡在这里好久了,保护模式一直都没法切换成功,更不用说去使用C语言了。笔者的电脑在这几天也崩溃过好几次,Windows实在不稳定。笔者也想要换...

2021-01-17 21:37:38 155

原创 GitHub pages搭建个人博客

很多人肯定都想做一个自己的网站,但是苦于没有经费(穷)。毕竟服务器和域名都是很贵的。但是,我们经常用的GitHub就可以给你一个免费搭建网站的机会。起步注册Github账号首先当然是要注册一个GitHub的账号,如果你已经有了可以跳过这部分。不过要注意的是,你的用户名最终会作为你的网址,如果你的用户名是pengruiyang-cpu,最终的网址就会是http://pengruiyang-cpu.github.io/首先打开GitHub主页这里username可以任意填,如果有重名的GitHub会

2020-12-11 16:01:07 176

原创 一个64位操作系统的设计与实现源代码下载

之前发布了一篇文章《一个64位操作系统的设计与实现的源代码下载地址》,里面有这本书的源代码和效果图下载地址,但由于是CSDN下载,很多小伙伴买不起。有一位小伙伴就提醒笔者了,图灵这本书的主页是有下载链接的,还是免费的,大家可以从这里免费下载。点我点我啊对了,笔者的公众号“彭睿扬”正在做一个操作系统,欢迎关注阿!...

2020-08-17 11:22:54 1509

原创 Linux 0.0.1源代码下载

欢迎关注个人公众号彭睿扬,专用于分享学习心得 啊呸,玩耍心得很多人对Linux那是无比的着迷,但是这玩意儿动不动就200000000000000000000、300000000000000000000000行,(给我数清楚几个零!)太烦人了,而且不知道从哪里开始看。(到现在main函数都没找到)今天找到了一个Linux 0.0.1源代码的下载,放到了GitHub上。不吝啬的话,欢迎点击(910, 210)处的那个点...

2020-07-21 14:47:12 1761 2

转载 你的代码被冰冻到北极了吗?

最近真是被Github官方的一条消息给刷屏了呀:近日,GitHub 官方推文宣布,代码永久保存计划顺利完成,代码已经于 7 月 8 日正式保存到 the Arctic Code Vault存储的地点正是北极,并且至少保存1000年。保存的内容是截止今年2月2日GitHub上所有开源项目的代码快照备份为什么要实施该永久保存计划?想必大家都了解过一个叫做国际种子库的计划,就是把世界各地各种的植物种子保存在地下仓库里,以防因全球物种迅速缩减而造成物种灭绝,而那个种子库也正是在北极同样,存储在现代设备平台

2020-07-21 14:43:23 571

原创 几款超好看的英文字体

对于笔者来说,有一款看着顺心的英文字体肯定是一件很重要的事情。今天这篇文章笔者就来推荐几款笔者很喜欢的英文字体(完全免费)。并且这些字体都可以在https://pengruiyang-c...

2020-07-19 13:55:33 9972 2

原创 我的OS | 分段和分页

今天这篇文章很长,但是如果静心读下来,一定会有所收获的。最近,笔者一直在忙着编写切换到保护模式的代码,但由于能力不足,一直没有编写出来。在上一篇文章中有这么一句:; 设置bits31为0...

2020-07-19 13:55:33 316

原创 我的OS | 从启动层加载内核程序

上一篇文章我们制作了一个启动层,它可以在屏幕上输出一条信息。但是,由于一个扇区只有512字节,而一个操作系统少说也有1MB左右,所以,我们需要从磁盘读取内核程序到内存,然后用汇编jmp指...

2020-05-30 21:27:11 411

原创 我的OS | 不要欺负BIOS,好吗

我们在第二篇文章中讲了如何制作一个启动层,但是,人家BIOS只读取一个扇区,我们也不能只做一个扇区啊?上次我们生成的文件是一个.img格式的文件,这是一个磁盘映像文件,磁盘映像文件是一个...

2020-05-30 21:27:11 262

原创 我的OS | 地图和航灯

看到这个标题,大家可能会很奇怪“地图是什么高科技啊?”其实地图和航灯的意思是大家可以根据这篇文章来知道自己到底要干什么,不要干到一半之后忘记了自己到底要干什么了。我们叫这个操作系统叫做M...

2020-05-30 21:27:11 299 2

原创 我的OS | 为切换到C语言做准备

注意啊,没看下面的文章的要先看看下面的,再看这一篇啊。我们刚才成功从启动层跳转到了内核程序,现在就应该从内核程序执行C语言了。但是,由于现在的CPU处于实模式中,而我们计划使用保护模式,...

2020-05-30 21:27:11 894

原创 什么是栈

栈说白了就是内存中的一块地址,是用来存储类似于变量,函数之类的程序需要它,但放到内存地址中太不容易找的东西。你明白了吗?阅读 10万+...

2020-05-22 17:38:47 538

原创 我的OS | 确认操作系统的执行状态

为了方便管理,“我的OS”源代码已经上传到GitHub。网址:https://github.com/pengruiyang-cpu/My-OS/昨天,我们成功制作了一个启动层。但是,这玩...

2020-05-22 17:38:47 1599

原创 我的OS | 了解基础知识

相信很多人都有一个自己制作操作系统的梦想吧。我们在文章如何制作没用的电脑操作系统中介绍了制作一个只能显示字符的“操作系统”,今天往后,我们要学习用汇编 + C语言制作一个简单的操作系统。...

2020-05-21 14:15:20 555

原创 文本编辑器,选什么好

想要编程,必须要有一个顺手的文本编辑器。这篇文章列出了作者用过的一些文本编辑器,由时间排序。第一名:记事本这个是笔者用过的第一个文本编辑器,缺点很多,优点倒是“很多”。例如:简单(简陋)...

2020-05-21 14:15:20 2466 1

原创 C语言获取命令行参数

欢迎关注微信公众号“彭睿扬”,专门分享学习变成心得体会。在开发过程中,经常会出现要获取命令行参数的场景,例如文本编辑器,数据库等等。其实实现起来也很简单,这样就可以。int main(int argc,char *argv[]){ return 0;}其中,argc是参数的总数,argv是参数数组。我们可以这样输出所有的参数。#include<stdio.h>int main(int argc,char *argv[]){ int i; printf("A

2020-05-09 13:08:39 3999 1

原创 C fopen无法打开文件的解决方案

欢迎大家关注俺滴公众号“彭睿扬”,分享学习编程心得C语言里面,大家基本都是使用fopen打开文件的吧?今天使用fopen时出现了不能打开文件的问题。代码如下。#include <stdio.h>int writefile(char *filename){ FILE *file = NULL; file = fopen(filename, "w"); if (file == NULL){ return 1; } else{ return 0; }}int main

2020-05-09 12:54:27 4651

原创 搞一个钉钉机器人

现在,我们都使用钉钉上网课,并且钉钉对于开发者们也是很友好。我们今天就来学习做一个钉钉机器人。首先,下载PC端的钉钉,登录一下。然后新建一个用于测试的群聊。点击右边菜单栏中第一项,点击智...

2020-04-29 15:01:13 2957 4

原创 你家的网络真的不好吗

在你使用浏览器访问网页很慢的时候,你很可能认为这是由于你的网络不好。其实不一定,你家的网络可能很好。我们来看一看几种常见的原因。正在等待服务器的响应……这种原因是因为对方服务器离你很远或...

2020-04-27 15:48:59 2290

原创 为啥C语言不老

在编程语言中,C语言已经快要50岁了。别的语言到了这个岁数基本上已经没人用了。比如Haskell、汇编等。但是,C语言不但没有被抛弃,反而总是保持和Java争夺第一名,这是为什么呢?我们...

2020-04-23 16:30:10 319

原创 在你的Windows系统上运行Linux系统

在操作系统领域,Windows无疑是最常用的。这种操作系统可以说是很好看。但是,由于维护Windows的人比较少,时不时还是会崩那么一下。操作系统领域也不是只有Windows这一个,还有...

2020-04-17 16:14:13 1211

转载 29个常用的Linux命令

以下内容来自公众号:JAVA虽然Linux发行版支持各种各样的GUI(graphical user interfaces),但在某些情况下,Linux的命令行接口(bash)仍然是简单快...

2020-04-17 16:14:13 171

转载 Linux内核什么样

我们常说Linux很安全,那它的内核长什么样子呢?有人画了一幅漫画,非常形象。以下内容来自公众号JAVA点击末尾的阅读原文,可以看到漫画原文。 ...

2020-04-17 16:14:13 206

原创 几行代码能干出什么事

印象中,能干很多事的代码肯定是很长很长的。其实不然。几行代码也可以干出很棒的事呢。先看看一行代码。Python>>> print("Hello Worl...

2020-04-14 15:08:56 521

原创 搞一个最简单的“病毒”

其实很多人都想当一名黑客,只是自己不会编程而且觉得当黑客很难。今天这篇文章就可以做一个简单的“病毒”。看一下效果:[上传视频失败!错误码0x7c00103d20]怎么样,还是可以的吧…...

2020-04-14 15:08:56 2773 12

原创 虚拟机中Operating System not found怎么办

在运行虚拟机时,可能会出现Operating System not found的错误。这种情况大多是你没有选择正确的ISO文件或者这个文件已经损坏。解决方案:重新下载一个或使用虚拟机自带的镜像就可以解决了。...

2020-04-11 13:45:21 1333

转载 Linux有哪些常用的命令

虽然Linux发行版支持各种各样的GUI(graphical user interfaces,用户图形化),但在某些情况下,Linux的命令行仍然是简单快速的。Bash和Linux Shell 需要输入命令来完成任务,因而被称为 命令行接口。命令是计算机执行任务的指令。可以使用命令去关闭计算机,或者列出当前目录的文件列表,或当前文本的内容,或者屏幕显示一条消息。如果你是一个新手,并尝试使用命令...

2020-04-11 13:38:22 184

原创 如何用Python计算数字的阶乘

计算阶乘实在是令人烦恼的事情。今天我们就用Python制作一个专门计算数字阶乘的文件吧。def factorial(n)我们首先定义了一个名为factorial的函数。在函数中,我们利用一个for循环获取所有小于number的数字,然后将答案(answer)乘number,最终返回答案(answer)。经过测试,代码可以正常运行。如下:但这样还不怎么够。如果有用户恶意输入字符串,程序就会报...

2020-04-11 13:30:42 2046

原创 一个64位操作系统的设计与实现的源代码下载地址

今天看了《一个六十四位操作系统的设计与实现》这本书,很好。但是缺少源代码,写起来很累。今天看到一个博主李浩441605458写的文章,希望更多人看到,再发一遍吧。这是源代码下载。可能有小伙伴没法下载,我会在以后在发一篇文章,争取所有小伙伴都可以下载。https://download.csdn.net/download/qq_35540932/10588541?还有相关的图片,书上的字太小了...

2020-04-11 13:28:03 1392 2

原创 Python爬虫 | requests库和User Agent

回复爬虫来获取本篇文章的源代码。在上一篇文章中,我们学习了爬取一些简单的网页。当然,有爬虫就有反爬虫。像第一篇文章中,我们试图爬取百度主页就只得到了一点信息。今天我们来学习绕过一些简单...

2020-04-07 17:47:22 1068

原创 Python爬虫 | 分析页面

本片文章的源代码同样可以回复爬虫来得到。上一篇文章讲了Python爬虫获取网页源代码以及正则表达式寻找需要的内容,今天我们来学习怎么分析网页。我们继续找到百度贴吧,搜索潍坊吧。如果我们...

2020-04-02 16:43:05 453

原创 Python爬虫 | urllib和正则表达式

本篇文章的源代码可以在后台回复爬虫来获取。从今天开始,我们要开始学习Python爬虫来爬取网站上的数据。首先,我们要知道什么是爬虫,爬虫又是怎么工作的。爬虫又叫数据挖掘、网络机器人等,...

2020-03-31 21:11:01 481

原创 什么是哥德巴赫猜想

或许有人听说过哥德巴赫猜想就是1+1?完全错误!那么到底什么是哥德巴赫猜想呢?要说到哥德巴赫猜想,必须要说到两个人。第一个就当然是哥德巴赫,第二个是大名鼎鼎的数学家欧拉。有一天,哥德巴...

2020-03-27 15:21:53 2297

原创 如何不下载软件来制作自己的网站

注意:本文使用Windows操作系统。如果你计算机的操作系统不是Windows,这篇文章对于你来说没有丝毫意义。我们前几天介绍了如何建立一个自己的网站,虽然也有用,但是下载了许多软件。...

2020-03-27 15:21:53 790

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除