文件 系统

一个操作系统的设计与实现——第8章 内存管理系统

计算机上的任何程序,包括操作系统自己,都需要使用内存。因此,操作系统需要实现内存管理系统,以进行内存的分配和回收。 在我们的操作系统中,内存管理系统由两部分组成:页分配器与页回收器。本章将实现这两个部分。 8.1 从虚拟地址到物理地址 回顾CPU对内存地址的转换过程: 使用段寄存器中的段选择子,在G ......
系统 管理系统 内存

一个操作系统的设计与实现——第7章 中断

7.1 什么是中断 中断是一种能够随时打断CPU正常工作的机制。这句话看着挺别扭的,CPU工作的好好的,为什么要"随时打断"它?这是因为,CPU需要为诸多外部设备提供服务,以键盘为例,当键盘上的键被按下时,CPU需要对此做出响应和处理,如果不能及时响应,我们会说:"电脑很卡";如果一直都不能响应,我 ......
系统

一个操作系统的设计与实现——第3章 保护模式

实模式下,内存的访问是没有任何限制的,任何程序都能访问和修改任何内存地址,这就导致了实模式下的程序,甚至操作系统自己,都可能自身难保。于是,自8086的下一代产品80286起,保护模式诞生了;进一步的,自80386起,32位保护模式诞生了。 3.1 内存为什么要分段 在学习保护模式之前,需要先讨论一 ......
模式 系统

一个操作系统的设计与实现——第5章 加载内核

一直以来,我们都在使用汇编语言对MBR编程,但对于操作系统这样的复杂程序来说,使用汇编语言是比较困难的。本章将实现操作系统内核的加载与进入。 5.1 读硬盘的实现原理 操作系统存储于硬盘中,现在需要将其读出至内存。想要读硬盘,就需要依次进行以下操作: 设定读取的扇区数 设定起始扇区号 发送读硬盘命令 ......
内核 系统

一个操作系统的设计与实现——第9章 硬盘驱动

操作系统应当具备读写硬盘的能力。因此,本章将要实现的是硬盘驱动。硬盘驱动由两个函数构成:读硬盘函数与写硬盘函数。 9.1 读硬盘 想要读硬盘,就需要提供以下三个信息: 起始扇区号 读取的扇区数 数据存储的地址 需要注意的是:读取的扇区数只能是一个8字节的整数。 由于读硬盘需要使用大量的端口读写指令, ......
硬盘 系统

一个操作系统的设计与实现——第6章 显卡驱动

进入内核以后,应该做些什么呢?本章将实现一个最容易看到效果的模块:显卡驱动。 6.1 什么是驱动 驱动这个词听起来很高大上,但实际上很简单,就是硬件的接口函数。在软件工程中,可以使用接口封装和简化设计,硬件也是一样。例如:想要读硬盘,需要很多指令设定好几个端口,然后等待硬盘就绪,最后才能读硬盘。这一 ......
显卡驱动 显卡 系统

一个操作系统的设计与实现——第10章 任务(一):共享内核

一直以来,我们的操作系统在启动后,运行的都是Kernel.c中的main函数。只运行这一个函数是不够的,操作系统应当有能力加载并运行其他程序。 从本章开始,将使用四章的篇幅讨论操作系统如何加载并运行任务。这里的任务(Task)与进程(Process)是同义词,在操作系统领域中,任务这个词更为常用,请 ......
内核 任务 系统

一个操作系统的设计与实现——第13章 任务(四):任务回收

在前面的两章中,我们的操作系统均不支持任务回收,所以任务不能退出。本章将要实现的是任务回收功能。 13.1 任务回收的原理 如果一个任务位于任务队列中,其就会被运行。所以,如果一个任务的运行已经结束,它就应该从任务队列中删除。 仅仅将任务从任务队列中删除是不够的,这是因为任务还持有一些内存没有释放, ......
任务 系统

一个操作系统的设计与实现——第11章 任务(二):0特权级任务

上一章中,我们的操作系统已经支持内核共享,这为任务的加载和运行做好了准备。 本章将要实现的是0特权级任务的加载与任务切换。 11.1 任务切换的原理 11.1.1 协同式与抢占式任务切换 如果CPU上只运行着Kernel.c的main函数,那么情况非常简单,只需要不断执行下一条指令即可。然而,如果现 ......
任务 特权 系统

一个操作系统的设计与实现——第12章 任务(三):3特权级任务

特权级是保护模式的核心概念之一,但我们的操作系统一直没有引入这个概念。这是因为,特权级只有在3特权级任务存在时才有意义。本章将要实现的是3特权级任务的加载与任务切换。 12.1 特权级 12.1.1 特权级的功能 特权级(Privilege Level),是保护模式中用于限制任务权限的机制。特权级有 ......
任务 特权 系统

一个操作系统的设计与实现——第1章 什么是操作系统

1.1 引言 什么是操作系统呢? 有些读者可能会像曾经的笔者一样,认为操作系统是"一种图形界面";在学习了Linux操作系统后,认为操作系统也可以是"一种命令行"。而不同种类,不同版本的操作系统,则是"不同的图形界面",或是"不同的命令行语法"。 那么,以Linux操作系统为例,读者是否想过这些问题 ......
系统

一个操作系统的设计与实现——第2章 主引导记录

2.1 BIOS 当按下开机键的那一刻,发生了什么呢? 这是一个百废待兴的时刻,所有的硬件设备都刚启动,并没有做好准备,甚至连CPU自己都是。此时,就需要一些外力帮助CPU工作起来。具体来说,在CPU刚启动时,其CS:IP被硬件电路设定为f000:fff0。这个地址并非指向内存,而是指向主板的一个非 ......
系统

部署自己的在线管理系统

B/S架构的管理系统因其使用和维护的便利性而成为了目前管理系统的主流,但通常都是企业自研或定制开发的系统。那么,对于众多的中小企业或个人,是否能低成本地拥有自己的在线管理系统呢? 答案是可以的。目前有一些支持私有化部署的管理系统,可以由用户自行安装部署到自己的云服务器上,这样就可以随时随地登录操作了 ......
管理系统 系统

TN-rk3399使用swd调试系统.

1.通过阅读一些参数资料,他们都用过转接出micro_sd,通过连接标准的swd信号实现调试的。 https://crwulff.blogspot.com/p/rock64.html http://notes.zahoryzontnik.com/ 包括张银奎老师的GDK8和挥马枪的一些资料,我本人就 ......
系统 TN-rk 3399 swd TN

第四章 第五章 文件权限、进程管理

一、 一、基本权限UGO 文件的权限针对三类对象进行定义 owner 属主,缩写u group 属组,缩写g other 其他,缩写o 每个文件针对每类访问者定义了三种主要权限 r:Read 读 w:Write 写 x:eXecute 执行 另 X:针对目录加执行权限,文件不加执行权限(因文件具备执 ......
进程 权限 文件

2023-2024-1 20211306 密码系统设计与实现课程学习笔记9

20211306 密码系统设计与实现课程学习笔记9 任务详情 自学教材第6章,提交学习笔记 知识点归纳以及自己最有收获的内容,选择至少2个知识点利用chatgpt等工具进行苏格拉底挑战,并提交过程截图,提示过程参考下面内容 “我在学习XXX知识点,请你以苏格拉底的方式对我进行提问,一次一个问题” 核 ......
课程学习 20211306 密码 课程 笔记

(lora训练)复制文件夹结构

import os import shutil def copy_directory_structure(src, dst): """ 复制src下的所有文件夹结构到dst,但不包括文件。 """ for root, dirs, files in os.walk(src): # 遍历所有的文件夹 f ......
文件夹 结构 文件 lora

牛客[编程题] HJ66 配置文件恢复

HJ66 配置文件恢复 中等 通过率:36.66% 时间限制:1秒 空间限制:32M 描述 有6条配置命令,它们执行的结果分别是: 命 令 执 行 reset reset what reset board board fault board add where to add board delete ......
文件 160 HJ 66

MES系统扫盲

一、定义 MES是制造执行系统(Manufacturing Execution System)的缩写,是一种用于管理和监控制造过程的软件系统。它是在ERP(企业资源计划)和SCADA(监控和数据采集系统)之间的一个中间层,用于实现生产计划的执行和监控。 二、分类 MES系统可以按照不同的分类标准进行 ......
系统 MES

20211316郭佳昊 《信息安全系统设计与实现(上)》 第十周学习总结

一、任务要求 [ 1 ] 知识点归纳以及自己最有收获的内容,选择至少2个知识点利用chatgpt等工具进行苏格拉底挑战,并提交过程截图,提示过程参考下面内容 (4分) 我在学****知识点,请你以苏格拉底的方式对我进行提问,一次一个问题 核心是要求GPT:请你以苏格拉底的方式对我进行提问 然后GPT ......
20211316 系统 信息

如何在多台Linux系统主机上实现ssh免密访问——成公钥文件id_rsa.pub(数字签名RSA)

假设共有三台Linux主机,为matser,slave1,slave2,现在要实现master主机可以ssh免密访问master主机自身以及slave1、slave2。 原理: 主机 ssh-keygencat /root/.ssh/id_rsa.pub > /root/.ssh/authorize ......
公钥 数字签名 多台 主机 数字

windows操作系统中如何将apache zookeeper安装为系统服务

记录一下,网上有些资料是错的,prunsrv的参数要以--开头! 一 下载最新版的apache commons daemon http://archive.apache.org/dist/commons/daemon/binaries/windows/commons-daemon-1.3.4-bin ......
系统 zookeeper windows apache

ansible的配置文件的解析

一:/etc/ansible/ansible.cfg 这个文件默认被分为8段 [defaults]:通用配置项 [inventory]:与主机清单相关的配置项 [privilege_escalation]:特权升级相关的配置项 [ssh_connection]:使用openssh连接相关的配置项 [ ......
ansible 文件

《Unix/Linux系统编程》第六章

《Unix/Linux系统编程》第六章 第六章 信号与信号处理 本章讲述了信号和信号处理;介绍了信号和中断的统一处理,有助于从正确的角度看待信号;将信号视为进程中断, 将进程从正常执行转移到信号处理;解释了信号的来源,包括来自硬件、异常和其他进程的信号;然后举例说明了信号在Unix/Linux 中的 ......
系统 Linux Unix

如何快速纠正VCF文件中REF和ALT的位置错误?

目录需求描述尝试解决正确解决 需求描述 一个很简单的需求:一批水稻材料的芯片数据(位点少),想看看它们在3K Rice中处于何种亚群和位置。就需要将芯片位点与3K RG位点整合后进行分析。 已知3K Rice位点可从SNP-Seek中下载:https://snp-seek.irri.org/_dow ......
错误 位置 文件 VCF REF

DVWA文件上传中级渗透流程(手把手教你)

由于中级难度在前端页面进行了过滤,不允许php文件进行上传。所以我们需要在前端页面进行绕过,从而把文件上传到后端。首先在kali环境将kali用户切换到root管理员用户密码为kali打开burp抓包软件,burp软件能够在前端验证通过后,数据传到后端之前对数据包拦截,可以对数据包进行修改优化后再发 ......
流程 文件 DVWA

DVWA文件上传低级渗透流程(手把手教你)

低级的文件上传环境没有进行过滤,所以可以直接上传一个php的木马文件,然后使用工具进行连接,进而获取到目标机器的图形化界面首先创建一个php的一句话木马文件保存为php格式,确定保存进入到上传文件的页面将方框内的相对路径复制粘贴到URL后面即可获得木马文件的绝对路径进入后若为空白页面,表示文件上传成 ......
流程 文件 DVWA

python 执行脚本,并将输出打印到文件

转载请注明出处: 在使用 python 直接执行脚本时,执行的相关输出会打印到当前的控制台,如果想输出到指定的文件,可以采用以下几种方式: 1.在启动时,使用 > 操作符,该操作符会将输出写入到指定文件,并覆盖原来文件内容 如创建一个python脚本,内容如下: print("This is a t ......
脚本 文件 python

不依赖于cn.hutool.extra.servlet.ServletUtil,使用Spring其他方式实现文件下载的功能

在JDK17下,如下代码引用了cn.hutool.extra.servlet包下的 ServletUtil工具类的ServletUtil.write方法,执行时报”Cannot resolve method 'write(jakarta.servlet.http.HttpServletRespons ......

php开发之文件读取、写入

前言 续之前的系列,这里php开发的文件操作的内容读取以及文本写入的部分 文件读取代码的实现 css代码 本系列的php博客都是这个css,名字都是index.css /* css样式初始化 */ * { font-family: 'Poppins', sans-serif; margin: 0; ......
文件 php