
操作系统
文章平均质量分 81
师兄师兄怎么办
鱼遇雨欲与渔语。
展开
-
【操作系统】从实模式进入保护模式
从实模式进入到保护模式(不知道为什么要进入的保护模式的可以参考文章:【操作系统】CPU的保护模式与实模式的区别),我们需要进行以下几个步骤: 为什么要打开就不在此赘述了,详细可以查看之前写过的文章:【计算机组成】实模式/保护模式下地址分段(基段地址+偏移地址)的原因,总的来说是旧的CPU(8086/8088之类的)在实模式下地址线为20位(A0~A19),最大寻址空间为0xFFFFF,超出部分会被地址回卷到0重新开始。但是进入到保护模式下我们需要去访问更大的内存空间,所以需要将“地址回卷”这个功能关闭掉原创 2024-05-22 12:11:26 · 1366 阅读 · 1 评论 -
【操作系统】段描述符、全局描述符表和选择子
与实模式不同的是,保护模式下内存段不再是简单地用段寄存器加载一下段基址然后乘以16位结合偏移地址得出实际要访问的内存地址,而是通过选择子在全局描述符表中找到对应的段描述符,CPU从段描述符中提取段基址,再与偏移地址结合得出实际要访问的内存地址。原创 2024-04-09 19:00:00 · 1707 阅读 · 0 评论 -
【操作系统】调用硬盘并且实现MBR与Loader的过渡——实战篇
接下来的第2行~第32行是上一篇文章(原创 2024-01-30 19:00:00 · 1002 阅读 · 0 评论 -
【操作系统】调用硬盘并且实现MBR与Loader的过渡——原理篇
前文(【操作系统】优化MBR程序:让MBR调用显存吧)中的MBR程序仅有512字节大小,完全不能将内核成功加载到内存并且运行,所以我们需要在另一个程序中完成初始化环境以及加载内核的任务,这个程序称之为Loader加载器,本文我们就将实现MBR与Loader的交接部分,从硬盘上把loader加载到内存,并且将接力棒交付给它。再次之前,我们需要明白怎么调用硬盘。【计算机组成原理】磁盘的基本结构,不在此赘述。),硬盘控制器属于IO端口,端口是位于IO控制器上的寄存器。原创 2024-01-27 10:58:13 · 680 阅读 · 0 评论 -
【操作系统】优化MBR程序:让MBR调用显存吧
显卡用于连接CPU和显示器,我们调用显示器时,其实就是利用显卡提供的IO接口间接地对显示器进行操作,所以显卡也称之为显示适配器。【操作系统】BIOS与MBR之间的过渡实践),使我们的程序通过直接操作显卡来输出,显卡给我们的输入接口有显存和端口,而本文中主要用到显存。【操作系统】BIOS开机自检)就可以知道,内存布局中关于显存地址分布如下:显卡支持三种模式:文本模式、黑白图形模式以及彩色图形模式,本文中我们将使用文本模式,以实现类似Linux控制台风格的字符界面。原创 2024-01-11 21:00:00 · 2010 阅读 · 0 评论 -
【操作系统】BIOS与MBR之间的过渡实践
【操作系统】MBR主引导目录结构以及作用,我们了解到BIOS在检测完内存、显卡,把硬盘等一系列外设简单检测之后,下一步将和主引导程序MBR进行交接,将主控权交付给下一位嘉宾,至此BIOS的任务就完成了继续睡去,本篇文章我们来开始编写一个简单MBR程序,并且让其完成从BIOS过渡到MBR这个过程,至于MBR的本质工作(启动引导程序等)我们将在之后逐步完善其内容。原创 2024-01-09 19:00:00 · 995 阅读 · 0 评论 -
【操作系统】CPU的保护模式与实模式的区别
内存寻址空间扩展到4G之后,原来的寻址方式已经不能满足需求了,按照原来的寻址方式,段基址左移4位与段内偏移地址相加就是实际的物理地址,而在4G的地址空间里,左移4位已经不能满足了,需要左移16位(也就是2的16次方),才能访问到32位的地址空间,这显然是不切实际的。通过以上代码可以看到,第二行和第五行的机器码分别为B83412和B834120000,这两者都是通用的操作码B8,不同模式下都是同样的操作码,可见寻址方式和操作数类型都是相同的,不同的是一个是16位寄存器ax,一个是32位寄存器eax。原创 2023-12-11 21:00:00 · 2019 阅读 · 0 评论 -
【操作系统】Bochs安装和配置
Bochs是使用C++编写的高度可移植开源IA-32(X86)PC模拟器,能在大多数流行的平台上运行。它包括模拟Intel x86 CPU、常见I/O设备和自定义BIOS。Bochs可以被编译以模拟许多不同的x86 CPU,从386早期到最新的x86-64英特尔和AMD处理器甚至可能还没有进入市场。Bochs能跑仿真中的大多数操作系统(例如DOS),Linux或Windows。原创 2023-11-23 20:00:00 · 3239 阅读 · 0 评论 -
【银河麒麟系统】备份还原工具显示“备份分区空间不足,请删除过期或者不需要的备份”解决方法
两个分区重新挂载完成后,重新打开备份还原工具即可。该方法在重启后会恢复原来的挂载分区,但是文件/etc/.bootinfo里的UUID还是自己修改的那个UUID,需要手动更改回来。该问题的处理思路与之前写过的一篇文章:XXXXXX类似,故本次也参考了那篇文章的基本思路,再加上银河麒麟V10系统的一些特有性适配步骤,可以解决该问题。PS:如果打开备份还原工具打开失败,则可能是因为在安装操作系统时没有选择创建备份分区。原创 2023-10-24 07:00:00 · 5512 阅读 · 1 评论 -
【操作系统】MBR主引导目录结构以及作用
一.BIOS和MBR的交接仪式当BIOS检测完内存、显卡,把硬盘等外设加载进来后,便开始在内存0X00~0X3FF处建立起数据结构、中断向量表,并且填写中断例程。完成这一系列的操作后便开始寻找硬盘(如果硬盘不止一个的话,则会通过遍历的方式一个个地找到每个硬盘),在每个能找到的硬盘的第0盘0磁道第1扇区里面,看看此扇区最后两个字节是否为0X55和0XAA。原创 2023-10-20 16:58:14 · 946 阅读 · 0 评论 -
【操作系统】BIOS开机自检
可以看到CS:IP寄存器来到了0XFFFF0这个地址,而这个地址里面保存了一个指令,跳转到0XFE05B这个位置,而这个地方才是BIOS真正的代码开始的地方,检测内存、显卡等外设信息,初始化硬件,建立向量表等等,完成这些工作后,BIOS将控制权交给下一位嘉宾,也就是MBR。CPU可以通过地址访问到数据,是由地址总线通过映射完成的,地址总线把某个ROM存储器绑定了这个地址,或者把某个外设的内存绑定了那个地址,等到CPU要使用时就可以直接访问地址,而不需要知道究竟数据放在哪个物理存储单元。原创 2023-10-12 16:54:46 · 2035 阅读 · 0 评论 -
【操作系统】计算机硬件软件知识汇总
以下解析使用CentOS 6.1版本的操作系统进行讲解,采用Sysinit模式的进行初始化,如果你的操作系统没有类似/etc/rc.d这些目录,那么你的操作系统可能是采用Systemd模式进行初始化,虽然模式不同,但是要实现的基本功能都是差不多的。原创 2023-10-12 16:56:24 · 360 阅读 · 0 评论 -
【数据库管理】十分钟了解啥是三级封锁协议、X锁和S锁
有了这两把锁之后,新的问题又出现了:怎么知道什么情况下要用什么锁?什么时候要用锁?什么时候不用?上锁之后什么时候解锁最合适?……而神奇的“三级封锁协议”,就是为了告诉你什么情况下用什么锁可以解决什么问题,只要事务们都按照协议的规则去做,就可以避免诸如更新丢失、读取脏数据或者不可重复读取数据等问题。锁本身只限制其他事务对数据的加锁权限,而限制事务对数据的读写操作,是通过锁+封锁协议来实现的。原创 2023-06-26 16:25:58 · 7841 阅读 · 2 评论 -
【软件设计】模块设计耦合的七种类型
在结构化分析与模块设计方法中,模块化是一个很重要的概念,它是将一个待开发的软件分解成为若干个小的模块,每个模块可以独立地开发、测试。使得复杂问题的“分而治之”,令程序的结构清晰、易于测试与修改。而模块的独立性通常要求每个模块能尽可能完成一个相对独立的子功能,并且与其他模块少点联系,软件设计上用耦合(模块之间联系的紧密程度)和内聚(模块内部各元素之间联系的紧密程度)两个标准来衡量,所以设计的目标就是高内聚、低耦合。原创 2023-06-15 18:00:02 · 1553 阅读 · 0 评论 -
【计算机组成】Cache与CPU的直接映射、全相联映射与组相联映射
Cache的地址映射中,会以Cache的容量为标准将内存分成相同大小的块(页或者区),根据映射方法的不同,地址的表达方式也不同,常见的映射方式分为:直接映射、全相联映射和组相联映射。原创 2023-06-05 16:39:08 · 5055 阅读 · 5 评论 -
【Linux】不断循环重启指定次数
不断循环重启指定次数原创 2023-04-25 10:51:44 · 1003 阅读 · 0 评论 -
【操作系统】半小时写一个微型操作系统-写一个启动扇区并且导入到软盘镜像中
半小时编写一个操作系统HELLO WORLD原创 2023-04-11 11:46:12 · 1050 阅读 · 0 评论 -
【操作系统】维持进程间互斥和同步的工具——PV操作
对于系统中的每个进程来说,其工作的正确与否其实不仅仅取决于它自身的正确性,而且也在于它在执行过程中能否于其他相关进程正确地执行同步和互斥。PV操作是实现进程同步与互斥地常用方法。P操作和V操作是低级通信地原语,在执行期间不可分割,其中,P操作表示阻塞、等待、申请一个资源,V操作表示发出、释放一个资源。...原创 2022-08-10 16:13:05 · 3235 阅读 · 0 评论 -
【操作系统】数据校验码——奇偶校验和海明校验
顾名思义,海明校验码是由一个名为RichardHamming的人设计的,是一种利用奇偶性来检错和纠错的校验方法,该方法是把数据的每一个二进制位分配在几个不同的偶校验位的组合中,例子数据0001,奇校验为00010,传输过程中发生错误变成了1001,奇校验为10011,1的个数仍旧是奇数个,并不能进行校验。第二步计算校验码的位置,由上面公式可以知道,2的k次幂代表校验码的位置,所以2的4次方的意思就是。的最后一位,由前面的数字通过某种运算得出,用以检验该组数字的正确性。......原创 2022-07-30 16:29:39 · 4276 阅读 · 0 评论 -
【计算机组成原理】寄存器的本质——锁存器
逻辑门的与门知道吧逻辑门的或门听说过吧逻辑门中的非门简单吧基础知识就复习到这里(—...—)原创 2022-07-27 19:25:52 · 2966 阅读 · 2 评论 -
【操作系统】密码学基础知识:字符编码、对称/非对称加密、密钥、数字签名
例子中的私钥推算是知道公钥推算过程的前提下进行的推算,在实际应用公开密钥时,常常会将“C”中的位数扩充至1024位,要将这样的数字分解成素数,即使计算机速度再快,也得花上大概137年的时间才能得出结果。在使用密钥进行加密和解密时,需要对每个字符执行如图下所示的运算。使用公钥加密后的数据发送给私钥持有者,即使被拦截或窃取,没有私钥的黑客也无法获得加密后的信息,保证数据的安全传输。上述例子只是简单地体验一下数字签名的认证过程,而在实际应用中的数字签名,使用的是通过更加复杂的公式计算得出的、被称作。...原创 2022-07-21 21:21:22 · 1449 阅读 · 0 评论 -
【操作系统】十分钟了解关于TCP/IP网络的基础知识(二)ARP、路由器、DHCP、DNS以及TCP/IP
承接上篇文章原创 2022-07-17 23:00:38 · 1012 阅读 · 2 评论 -
【操作系统】十分钟了解关于TCP/IP网络的基础知识(一)CSMA/CD、MAC、IP以及子网掩码
架设公司内部有一个基本标准的网络环境可以如图下所示这样一个小规模的网络环境我们称之为或者局域网,我们可以与同处于一个局域网内的其他成员进行信息交互,而许许多多的LAN通过路由器和其他企业的LAN互联起来,就形成了互联网,也可以称之为或者广域网。可以看到里面包含了服务器以及客户端,服务端可以理解成一台为客户端提供服务程序的电脑。客户端顾名思义就是被服务的电脑啦,理解成服务员(服务端)和顾客(客户端)之间的关系就很好地明白意思了。集线器是负责把各台计算机的网线相互连接在一起的集线设备。.........原创 2022-07-15 16:48:26 · 1221 阅读 · 0 评论 -
【LINUX】十分钟理解硬链接和软链接
Linux操作系统下的硬连接与软连接(又称为符号连接)主要是对文件进行操作,所以对文件中的I节点(又名inode节点)的认识至关重要。 当新建一个文件时,需要一个空间来存储文件的一些基本信息,比如文件拥有者,创建时间,权限,大小等等,我们通常将这些数据称为文件元数据(metadata),而保存这些信息的区域就叫做Inode节点(又叫I节点),使用stat()或fstat()可以查看具体的文件信息,其结构如下: 使用指令可以查询到以下信息: 硬链接的作用是将一原创 2022-06-02 16:16:13 · 405 阅读 · 0 评论 -
【linux】文本重定向:2>&1、&>以及>&
一.什么是重定向一般情况下在终端上执行指令会将获取到的信息输出到控制台窗口上,如执行“ls” 指令可以将当前目录下的文件显示在控制台窗口:假如此时不想把结果输出到控制台上,而是输出到一个“test.log”日志中,就可以执行“ls > test.log”指令:把输出结果人为地改变其存放(或者显示)路径,这个过程就可以称之为重定向。二.什么是标准输入输出这个解释起来有点复杂,可以简单理解为:linux系统下万物皆...原创 2022-05-07 12:03:43 · 4713 阅读 · 0 评论 -
【linux】WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED 解决方法
一.错误描述二.解决方案输入以下指令:ssh-keygen -R XXX(ip地址)按照我的例子(ip:10.165.7.136),会返回以下信息:重新尝试连接:输入yes,按下回车,成功连接。...原创 2022-03-09 10:00:04 · 45691 阅读 · 8 评论 -
【操作系统】虚拟化内存的一些机制:交换空间和存在位
虚拟化内存的一些机制:交换空间和存在位原创 2022-01-13 15:11:04 · 1599 阅读 · 1 评论 -
【操作系统】轮转和多级反馈队列
轮转和多级反馈队列原创 2021-11-24 16:46:10 · 2249 阅读 · 0 评论 -
【操作系统】调度策略的基本思想
一.什么是调度策略 早期调度策略其实可以追溯到资源管理领域,装配线上的人员安排,何时安排何种工种在哪条装配线上进行零件的装配可以达到效率最高,操作系统的调度策略也类似,当诸多应用程序同时需要用到硬件资源时,操作系统需要想想办法怎么样在短时间内令所有的应用程序都能用上需要的硬件资源,不同的策略应对了不同的需求,下面将介绍一些调度策略的基本思想,方便各位从调度策略方面去理解操作系统是如何指挥程序有条不紊地工作的。二.前提条件(1)工作负载 操作系统的调度策略众多,方位...原创 2021-11-02 15:47:40 · 1384 阅读 · 0 评论 -
【linux】error while loading shared libraries no such file or directory错误解决方法
在使用QTCreater调用opencv库时出现了以下错误:出现该错误的原因是因为系统在搜索时没有找到该库在哪里,所以报错。没有找到的原因可能有两个:1.你的系统里面确实没有这个库,那百度下这个库装上去2.你的系统里面确实有这个库(不清楚有没有可以用local指令寻找下,记下库的路径在哪里),但还是找不到,说明库搜索文件里面没有添加这个路径,需要手动添加,执行以下指令进入库搜索路径文件:cd /etc/ld.so.conf.d/使用 ls 可以看到当前文件夹下有很多库的搜索路径:.原创 2021-08-13 15:57:50 · 2405 阅读 · 0 评论 -
【opencv】在linux下用opencv写函数并封装成.so库
在做项目的时候想要用opencv写一个处理图像的函数,并将该函数封装成linux下可以运行的.so库。 本次博客开发环境如下:1.opencv版本为3.4.152.g++编译器版本为7.5.0一.opencv环境 这是在linux系统下安装opencv时就已经配置好的一些环境,但是仍需要确认下,以免出现编译错误等异常问题。 (1).opencv.pc 在opencv的库路径中(通常为/...原创 2021-07-08 18:53:14 · 2488 阅读 · 1 评论 -
【C++】错误ELF类:ELFCLASS32
操作系统:UBUNTU 18.04.4 ARM64版本当使用dlopen调用动态库的时候,出现了打开失败的错误,调用dlerror()进行分析,发现出现了以下错误:XX.so:错误ELF类:ELFCLASS32调用以下指令查看动态库详细信息:file XX.so返回以下信息:libXXX.so: ELF 32-bit LSB shared object, ARM, EABI5 version 1 (SYSV), dynamically linked, BuildID[sha1]=原创 2021-04-12 17:10:15 · 4001 阅读 · 0 评论 -
【LINUX】开机命令行模式与图形界面互相切换
项目上有些程序涉及到了LINUX的图形界面底层库,导致我在写代码的时候无意间修改了系统图形界面的搜索路径,最终使得系统再也没有办法通过图形界面登录进去系统,为了将那段搜索路径的代码删掉以恢复原本的搜索路径,需要绕开图形界面直接进入命令模式。前提条件:系统来到了登录界面,输入密码页面闪了一下又跳回登录界面,无限循环......解决方案:按住Ctrl+Alt+F1(F2\F3\...),因为系统上的差异,所以具体按F几要实践一下才知道,一般在1~6之间我的系统是:UBUNTU 18...原创 2021-02-24 17:55:19 · 466 阅读 · 0 评论 -
[虚拟机\UBuntu]如何设置在VMPro15虚拟机上的UBuntu上使用WIFI进行网络连接
首先左上角依次点击“编辑”-“虚拟网络编辑器”:对于弹出窗口点击右下角“更改设置”:记住下面这个名字:在下面这个地方选择你的无线网卡,不知道自己网卡型号的去设备管理那里看看:最后点击确定:然后选择“设置”:最后将“网络连接”选择为“自定义”,选择刚刚配置的虚拟网络:最后点击“确定”,完成!启动系统之后就可以看到网络图标为正常,随便打开一个...原创 2020-04-28 18:37:07 · 859 阅读 · 1 评论 -
【操作系统】操作系统的启动都干了些什么
当PC的电源打开后,8086CPU将自动进入实模式,并从地址CS:IP = 0XFFFF0,不知道为什么等于的可以参照我之前写的以破案文章,开始自动执行程序代码,这个地址通常是ROM-BIOS中的地址。PC机的BIOS将执行某些系统(硬件的检测)的检测,并在物理地址0处开始初始化中断向量。此后,它将可启动设备的第一个扇区(磁盘引导扇区,512字节)读入内存绝对地址0X7C00处,并跳...原创 2020-04-19 19:07:37 · 1871 阅读 · 1 评论