自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

原创 Linux文件系统构建

我们需要在etc 目录下创建mtab文件,/etc/mtab是当前的分区挂载情况,记录的是当前系统已挂载的分区。文件系统是一个用来组织和管理文件的系统,有了文件系统之后,就可以轻松操作存储在存储介质上的文件,比如文件的增、删、查、改等基本操作。语句,启动/bin/sh 的时候会启动 /etc/profile 文件的配置信息,后面我们也会创建 inittab文件,这里我们先来编写 profile 文件.使用“首先返回到文件系统源码所在文件下的上一级目录,在这个目录下创建一个rootfs文件,然后输入命令。

2023-03-15 17:30:17 1355

原创 Xv6操作系统导论(第八章)

xv6文件系统实现分为七层,如图8.1所示。磁盘层读取和写入virtio硬盘上的块。缓冲区高速缓存层缓存磁盘块并同步对它们的访问,确保每次只有一个内核进程可以修改存储在任何特定块中的数据。日志记录层允许更高层在一次事务(transaction)中将更新包装到多个块,并确保在遇到崩溃时自动更新这些块(即,所有块都已更新或无更新)。索引结点层提供单独的文件,每个文件表示为一个索引结点,其中包含唯一的索引号(i-number)和一些保存文件数据的块。

2023-02-07 17:50:57 476

原创 Xv6操作系统导论(第七章)

图7.1概述了从一个用户进程(旧进程)切换到另一个用户进程(新进程)所涉及的步骤:一个到旧进程内核线程的用户-内核转换(系统调用或中断),一个到当前CPU调度程序线程的上下文切换,一个到新进程内核线程的上下文切换,以及一个返回到用户级进程的陷阱。调度程序在旧进程的内核栈上执行是不安全的:其他一些核心可能会唤醒进程并运行它,而在两个不同的核心上使用同一个栈将是一场灾难,因此xv6调度程序在每个CPU上都有一个专用线程(保存寄存器和栈)。的实现会唤醒在特定通道上等待的所有进程,可能有许多进程在等待该特定通道。

2023-02-06 19:36:00 546

原创 Xv6操作系统(第六章)

另一个例子是,如果一个线程改变了其进程的地址空间(例如,映射或取消映射内存),内核必须安排运行同一进程下的线程的其他CPU更新其硬件页表,以反映地址空间的变化。如果一个CPU在其本地cache中缓存了一个锁,而另一个CPU必须获取该锁,那么更新保存该锁的cache行的原子指令必须将该行从一个CPU的cache移动到另一个CPU的cache中,并且可能会使cache行的任何其他副本无效。作为细粒度锁定的一个例子,xv6对每个文件都有一个单独的锁,这样操作不同文件的进程通常可以不需等待彼此的锁而继续进行。

2023-02-05 21:28:37 446

原创 Xv6操作系统导论(第五章)

驱动程序是操作系统中管理特定设备的代码:它配置硬件设备,告诉设备执行操作,处理由此产生的中断,并与可能正在等待设备输入/输出的进程进行交互。编写驱动可能很棘手,因为驱动程序与它管理的设备同时运行。此外,驱动程序必须理解设备的硬件接口,这可能很复杂,而且缺乏文档。需要操作系统关注的设备通常可以被配置为生成中断,这是陷阱的一种。内核陷阱处理代码识别设备何时引发中断,并调用驱动程序的中断处理程序;在xv6中,这种调度发生在中(kernel/trap.c:177)。许多设备驱动程序在两种环境中执行代码:上半部分

2023-02-01 20:44:33 237

原创 Xv6操作系统导论(第四章)

第四章 陷阱指令和系统调用有三种事件会导致中央处理器搁置普通指令的执行,并强制将控制权转移到处理该事件的特殊代码上。一种情况是系统调用,当用户程序执行ecall指令要求内核为其做些什么时;另一种情况是异常:(用户或内核)指令做了一些非法的事情,例如除以零或使用无效的虚拟地址;第三种情况是设备中断,一个设备,例如当磁盘硬件完成读或写请求时,向系统表明它需要被关注。陷阱(trap)作为这些情况的通用术语。通常,陷阱发生时正在执行的任何代码都需要稍后恢复,并且不需要意识到发生了任何特殊的事情。

2023-01-20 10:33:44 450

原创 Xv6操作系统导论(第三章)

页表是操作系统为每个进程提供私有地址空间和内存的机制。页表决定了内存地址的含义,以及物理内存的哪些部分可以访问。它们允许xv6隔离不同进程的地址空间,并将它们复用到单个物理内存上。页表还提供了一层抽象(a level of indirection),这允许xv6执行一些特殊操作:映射相同的内存到不同的地址空间中(a trampoline page),并用一个未映射的页面保护内核和用户栈区。本章的其余部分介绍了RISC-V硬件提供的页表以及xv6如何使用它们。3.1 分页硬件提醒一下,RISC-V指令(用户

2023-01-19 20:58:12 713

原创 Xv6操作系统导论(第二章)

操作系统的一个关键要求是同时支持多个活动。例如,使用第1章中描述的系统调用接口,一个进程可以用启动新进程。操作系统必须在这些进程之间分时使用计算机资源。例如,即使进程比硬件处理器多,操作系统也必须确保所有进程都有机会执行。操作系统还必须安排进程之间的隔离。也就是说,如果一个进程有错误和故障,它不应该影响不依赖于有错误的进程的进程。然而,完全隔离又太过头了,进程之间应当可以进行刻意为之的交互;管道就是一个例子。因此,操作系统必须满足三个要求:多路复用、隔离和交互。本章概述了如何组织操作系统来实现这三个要求。事

2023-01-12 20:26:42 1124

原创 轻松搞定Git提交代码到github

Support for password authentication was removed on August 13, 2021

2023-01-06 20:38:37 109

原创 Xv6操作系统导论(第一章)

在内部,xv6内核使用文件描述符作为每个进程表的索引,这样每个进程都有一个从零开始的文件描述符的私有空间。一个文件的名字和文件本身是不同的;Inode保存有关文件的元数据(用于解释或帮助理解信息的数据),包括其类型(文件/目录/设备)、长度、文件内容在磁盘上的位置以及指向文件的链接数。(百度百科:根据指定的文件名找到可执行文件,并用它来取代调用进程的内容,换句话说,就是在调用进程内部执行一个可执行文件)该文件必须有特殊的格式,它指定文件的哪部分存放指令,哪部分是数据,以及哪一条指令用于启动等等。

2023-01-04 18:12:11 1438

原创 Qt时间编程之计时器

制作计时器我们需要用到两个类:qtime(qt的时间类)和qtimer(qt的定时类)

2022-11-18 14:00:26 1147

原创 电商产品评论数据情感分析

针对用户在电商平台上留下的评论数据,对其进行分词、词性标注和去除停用词等文本预处理。基于预处理后的数据进行情感分析,并使用LDA主题模型提取评论关键信息,以了解用户的需求、意见、购买原因及产品的优缺点等,最终提出改善产品的建议。

2022-11-16 10:32:58 3197 2

原创 Qt之上位机开发实战(三)

udp相对于tcp来说相对简单,udp不分客户端和服务器,只需要使用一个QUdpSocket类,首先完成布局。最后可以下载网络连接助手进行测试。.h文件public下创建对象。定义槽函数,.h文件下。

2022-11-15 19:24:31 735

原创 Qt之上位机开发实战(二)

TCP的编程需要用到两个类:QTcpServer和QTcpSocket。本节将完成一个TCP服务器和一个客户端。网络编程包括TCP和UDP。,.h文件下包含头文件。.cpp文件中添加功能。首先我们需要完成布局。.h文件中添加头文件。

2022-11-15 15:38:45 1025

原创 Qt之上位机开发实战(一)

其中接受框使用Plain Text Edit(设置只读),串口号等按钮使用Combo Box,发送框使用Line Edit,其余按钮为Push Button,选项值设置双击Combo Box即可。然后我们将Qt切换到Release模式运行,这样我们就会得到一个.exe可执行文件,然后我们在桌面上新建文件并且将可执行文件复制到刚刚创建的文件下。Qt串口这里我们用到一个很关键的类serialport,在Pro文件下我们需要添加它。串口收发时使用信号槽实现的需要手动关联,首先在widget.h中的槽下声明。

2022-11-14 16:46:11 4437

原创 三步搞定QT6在线安装

三步搞定QT6在线安装

2022-11-03 16:09:58 1203

原创 WSL无法打开Netkeeper问题

中国电信创翼无法在WSL中使用解决办法

2022-09-04 17:12:05 274

原创 共享单车数据分析

一、项目背景共享单车是指企业在校园、地铁站点、公交站点、居民区、商业区、公共服务区等提供自行车单车共享服务,是一种分时租赁模式,是一种新型绿色环保共享经济。共享单车系统是一种租赁自行车的方法,注册会员、租车、还车都将通过城市中的站点网络自动完成。使用共享单车,可以注册会员,存入一定金额用于使用结束后自动扣费结算;也可以不注册会员,临时使用后通过其提供的支付方式结算费用。人们通过下载APP使用这个系统进行扫码开锁取车,然后从取车地骑到自己的目的地后停放锁车归还,系统自动按实际使用时长计费。共享单车是近年

2021-04-17 17:11:09 2954 2

原创 共享单车数据分析

一、项目背景共享单车是指企业在校园、地铁站点、公交站点、居民区、商业区、公共服务区等提供自行车单车共享服务,是一种分时租赁模式,是一种新型绿色环保共享经济。共享单车系统是一种租赁自行车的方法,注册会员、租车、还车都将通过城市中的站点网络自动完成。使用共享单车,可以注册会员,存入一定金额用于使用结束后自动扣费结算;也可以不注册会员,临时使用后通过其提供的支付方式结算费用。人们通过下载APP使用这个系统进行扫码开锁取车,然后从取车地骑到自己的目的地后停放锁车归还,系统自动按实际使用时长计费。共享单车是近年

2021-04-07 16:39:56 854

原创 数据分析(小试身手)

(小试身手)阳泉市一周天气数据分析一.目的与意义数据来源于一周的天气预报,通过各个指标对天气状况的分析,可以更清楚的了解本市的大概的天气状况,为进一步进行黄静保护提供依据。具体指标包括:1.最高温度2.最低温度3.相对湿度4.空气质量二.数据采集本文数据直接来源于天气预报,通过中国天气网查找阳泉市近七天的的天气数据。我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:全新的界面设计 ,将会带来全

2021-03-26 09:33:34 198 1

空空如也

空空如也

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

TA关注的人

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