首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 操作系统开发:编写开机引导

    操作系统是用来管理与协调硬件工作的,开发一款操作系统有利于理解底层的运转逻辑,本篇内容主要用来理解操作系统是如何启动的,又是如何加载磁盘中的内核的,该系列文章参考各类底层书籍,通过自己的理解并加以叙述, 让MBR直接驱动显卡 如上代码,我们通过调用BIOS提供的int 0x10中断来实现打印字符操作,但我们在后期必须要借助显卡来输出图像,而显卡是外部设备,必须通过总线来操作。 SECTION MBR vstart=0x7c00 ; 告诉编译器加载到7c00内存处 mov ax,cs mov sp,0x7c00 mov ax 这个地址转换过程是由操作系统与处理器共同协作完成的,处理器在硬件上提供地址转换部件,操作系统提供转换过程中所需要的页表。 D/B字段 第22位是DB字段,用来指示有效地址(段内偏移地址)及操作数的大小。

    1K30编辑于 2023-02-25
  • 【鸿蒙操作系统开发指南】

    鸿蒙操作系统开发指南 系统概述 HarmonyOS是华为推出的全场景分布式操作系统,采用微内核架构设计,具备以下核心特性: 分布式能力:支持跨设备无缝协同 统一生态:适配多种终端形态 安全可靠:通过多项国际安全认证 线程模型 UI线程(主线程)禁止执行耗时操作,需使用TaskDispatcher分发任务到后台线程。推荐使用GlobalTaskDispatcher管理全局任务。 this.outerRef = ref; } } } 安全机制:AccessToken权限管理与双因素验证 采用基于角色的访问控制(RBAC)模型管理AccessToken,为不同操作划分权限等级 敏感操作需绑定动态令牌或生物特征验证,通过@RequirePermission注解强制校验。 securityManager.enableMFA({ tokenType: 'TOTP', // 时间型动态令牌 fallback: 'biometric' // 备选生物识别 }); // 敏感操作权限检查

    42310编辑于 2025-12-17
  • 操作系统开发:启用内存分页机制

    为了计算机安全,用户进程必须运行在低特权级,当用户进程需要访问硬件相关的资源时,需要向操作系统申请,由操作系统去做,之后将结果返回给用户进程,通常申请资源需要调用系统提供给我们的API接口,进程可以有无限多个 ,而操作系统只有一个,所以必须将操作系统中的API资源共享给所有用户进程使用。 如何实现操作系统接口共享? 我们可以把4GB虚拟地址空间分成两部分,将4GB内存的高3GB-4GB以上的地址空间划分给操作系统,用户进程则在0GB-3GB低位地址空间内。 为了实现共享操作系统,让所有用户进程3GB-4GB的虚拟地址空间都指向同一个操作系统,也就是所有进程的虚拟地址3GB-4GB本质上都是指向的同一片物理页地址,这片物理页上是操作系统的实体代码。 TLB 并不自动更新,处理器也不负责 TLB 的有效性,它把 TLB 的维护工作交给操作系统开发人员,由开发人员手动控制 尽管 TLB 对开发人员不可见,但依然有两种方法可以间接更新 TLB 一个是针对

    1.2K10编辑于 2023-02-25
  • 操作系统开发:BIOSMBR基础与调试

    **注释:**该系列笔记是在学习《操作系统真相还原》时通过阅读后简化并适当描述整理的学习笔记,首先,致敬作者郑刚博士,在读本书时能深刻的感觉到作者写书时一丝不苟的态度,书很厚写的,讲解细致幽默,很能让人愿意继续读下去 log:bochsout.txt mouse:enabled=0 keyboard: keymap=$BXSHARE/keymaps/x11-pc-de.map 上方屏幕会比较混乱,这里我们先来进行清屏操作 上面我们通过调用BIOS提供的int 0x10中断来实现打印字符操作,但我们在后期必须要借助显卡来输出图像,而显卡是外部设备,必须通过总线来操作。 SECTION MBR vstart=0x7c00 ; 告诉编译器加载到7c00内存处 mov ax,cs mov sp,0x7c00 mov ax <bochs:1> vbreak 0x0000:0x7c000 7c000设置断点 <bochs:1> pb 0x7c000 设置物理断点 <bochs:1>

    81520编辑于 2023-10-11
  • 操作系统开发:BIOSMBR 编写开机引导

    注释:该系列笔记是在学习《操作系统真相还原》时通过阅读后简化并适当描述整理的学习笔记,首先,致敬作者郑刚博士,在读本书时能深刻的感觉到作者写书时一丝不苟的态度,书很厚写的,讲解细致幽默,很能让人愿意继续读下去 log:bochsout.txt mouse:enabled=0 keyboard: keymap=$BXSHARE/keymaps/x11-pc-de.map 上方屏幕会比较混乱,这里我们先来进行清屏操作 上面我们通过调用BIOS提供的int 0x10中断来实现打印字符操作,但我们在后期必须要借助显卡来输出图像,而显卡是外部设备,必须通过总线来操作。 SECTION MBR vstart=0x7c00 ; 告诉编译器加载到7c00内存处 mov ax,cs mov sp,0x7c00 mov ax <bochs:1> vbreak 0x0000:0x7c000 7c000设置断点 <bochs:1> pb 0x7c000 设置物理断点 <bochs:1>

    1.8K20编辑于 2023-02-25
  • 来自专栏大数据那些事

    keepalived(7)——操作脚本

    我们可以用脚本来对keepalived进行操作: 先写vrrp_script <名字>{ } 随后在如下配置段进行操作: ? 使用方法为track_script{ } 我们可以在括号里写脚本语言,进行相关操作,比如说进行主备切换,如果出现某些不应该出现的问题,对权值进行相应修改,当master的权值低于BACKUP权值的时候 cd /data/scripts/ vim check_keepalived.sh 编辑脚本文件,当出现/tmp/scripts文件时将权重减少30,同时在(3)和(4)keepalived主机上进行操作 发现成功,这样就实现了脚本化操作

    66920发布于 2020-11-11
  • 来自专栏技术杂记

    Ruby 操作 MongoDB(7

    数据库操作 获取数据库名 2.3.0 :021 > db1 = c.database => #<Mongo::Database:0x11515220 name=post> 2.3.0 :022 >

    37030发布于 2021-10-19
  • 来自专栏技术杂记

    Solr基础操作7

    单关键字匹配 [root@h102 solr-5.3.0]# curl "http://localhost:8983/solr/gettingstarted/select?wt=json&indent

    32910编辑于 2022-06-29
  • VUE3JAVA操作系统开发日志

    内置工具,处理开发中的常见问题,如图片压缩,文件上传,文件管理等等功能预览数据【后端】自带用户管理,角色管理,权限分配,菜单管理,系统监控,代码生成,部门管理,岗位管理,参数设置,通知公告,操作日志,登录日志

    20210编辑于 2024-05-18
  • 来自专栏蘑菇先生的技术笔记

    Windows Phones 7 文件操作

    Windows Phones 文件操作,自己重新测试了一遍,通过,给大家参考使用。      MessageBox.Show("不存在"); } } } //删除文件操作 file.DeleteFile(filepath); } } //在文件里增加内容 private void button7_

    75560发布于 2018-05-21
  • 来自专栏自动化、性能测试

    MongoDB(7)- 文档插入操作

    nUpserted" : 0, "nMatched" : 0, "nModified" : 0, "nRemoved" : 0, "upserted" : [ ] }) 插入操作的重点知识 MongoDB 向集合里插入记录时,无须事先对数据存储结构进行定义,每个文档的数据结构都可以是不同的 如果待插入的集合不存在,则插入操作会默认创建集合 MongoDB 中,插入操作以单个集合为目标 MongoDB 中的所有写入操作都是单个文档级别的原子操作 插入不指定 _id 字段的文档 db.test.insert( { item : "card", qty : 15 }) MongoDB 会自动给它分配一个 db.test.find() { "_id" : ObjectId("60b4e2eeec0fd33d89e97a98"), "item" : "card", "qty" : 15 } 这些 Objectld 值与执行操作时的机器和时间有关

    1.3K20发布于 2021-06-09
  • 来自专栏Android点滴分享

    汇编学习(7), Bit 操作

    本篇介绍 本篇介绍下汇编中的bit操作。 bit操作 首先写一个包含bit各种操作的函数: ; bits1.asm extern printb extern printf section .data msgn1 db "Number byte of number 2 00000000 00000000 00000000 00000000 00000000 00000000 00000100 00001010 基本看结果就可以和对应的操作对上 最后再看一个bit操作的例子: 这儿还用到了printb,实现和前面一样,就不再重复。 and display rdi 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000001 需要注意的如下: bit操作的索引也是从

    49640编辑于 2022-12-11
  • 来自专栏青灯古酒

    Windows 7 操作系统

    2.2.1Windows7的基础知识 Windows 7 的主要特性有:  更简单  更安全  更好的连接  更低的成本 安装Windows7操作系统所需的硬件配置  Windows 7系统的软件需求只是指对硬盘系统的要求 2.2.2Windows7基本操作 1.启动 2.退出  (1)关机步骤:单机“开始”按钮,在“开始”菜单右下角单击“关机”按钮。   3.窗口  Windows7操作系统及其应用程序采用图形化界面,只要运行某个应用程序或打开某个文档,就会对应出现一个矩形区域,这个矩形区域称为窗口。 Windows 7是一个多任务操作系统,允许多个程序同时运行,但是在某一时刻,只能有一个窗口处于活动状态。   2)“开始”菜单  “开始”菜单中存放着Windows 7 的绝大多数命令和安装到系统里面的所有程序,是操作系统的中央控制区域。

    5.3K30编辑于 2023-10-16
  • 来自专栏玄魂工作室

    实时操作系统开发调试环境 Tornado 安装篇

    WRS 公司 组建于1981年,是一个专门从事实时操作系统开发与生产的软件公司,该公司在实时操作系统领域被世界公认为是最具有领导作用的公司。 从1995年以后, WRS 公司推出了一套实时操作系统开发环境-- Tornado。 Tornado 组件 Tornado是嵌入式实时领域里最新一代的开发调试环境,Tornado给嵌入式系统开发人员提供了一个不受目标机资源限制的超级开发和调试环境。 7、运行安装 ? 8、这里需要输入秘钥:cAQ8i-qP2I&-g$vT6-3&gjw-bEk9g ? 9、一路Next下图界面 ? 10、一路Next下图界面点击YES ? 11、默认即可 ? 二、安装CD2(管理员身份运行) 1、CD2的安装方式跟CD1一样装载进去,并一路Next进行安装,密钥为:A7KbB-Rd37p-hNFBE-kzgaT-b9gpC ? 2、输入密钥 ?

    3K10发布于 2019-12-10
  • 来自专栏今天有没有多懂一点工业安全

    实时操作系统开发调试环境 Tornado 安装篇

    WRS 公司 组建于1981年,是一个专门从事实时操作系统开发与生产的软件公司,该公司在实时操作系统领域被世界公认为是最具有领导作用的公司。 从1995年以后, WRS 公司推出了一套实时操作系统开发环境-- Tornado。 Tornado 组件 Tornado是嵌入式实时领域里最新一代的开发调试环境,Tornado给嵌入式系统开发人员提供了一个不受目标机资源限制的超级开发和调试环境。 FOR.PENTIUM.CD1(ED2000.COM).ISO” 5、进入我的电脑,双击风河驱动器(TDK-14621-ZC-01)图标将其打开,然后Next 6、以管理员身份运行点击“SETUP.EXE” 7、 CD2 二、安装CD2(管理员身份运行) 1、CD2的安装方式跟CD1一样装载进去,并一路Next进行安装,密钥为:A7KbB-Rd37p-hNFBE-kzgaT-b9gpC 2、输入密钥 3、

    2.2K20编辑于 2022-05-10
  • 来自专栏计算机核心基础知识

    在学习操作系统开发中选bochs还是qemu

    支持平台 Bochs可以运行在多种操作系统平台上,包括Windows、Linux、macOS等,可以模拟各种不同的操作系统。但是在有些平台上,可能需要重新编译源码才能获得可执行的程序。 QEMU也支持多种操作系统平台,包括Windows、Linux、macOS等。QEMU的特点在于它能够在多种不同的CPU架构之间进行模拟,例如在x86主机上模拟ARM架构的操作系统。 调试手段 当谈到操作系统开发时,调试是至关重要的。Bochs和QEMU都提供了各种调试手段,以帮助用户诊断和调试操作系统。 不过,从我的使用经验来说,使用qemu进行操作系统开发时,可以提供相比bochs更为丰富的调试手段。 总结 综合考虑以上因素,我最终选择的是QEMU,因为其在操作系统开发中更加适合初学者。这个软件提供了更好的易用性和灵活性,以及对于调试手段的支持。

    2K30编辑于 2023-04-07
  • 来自专栏SpringBoot

    docker centos7 基础操作

    、推送远程仓库(docker hub) 步骤 docker tag local-image:tagname new-repo:tagname docker push new-repo:tagname 操作 logout(推送完成镜像后退出) # 推送 docker push dencycheng/dnginx:v1.0 # 别的机器下载 docker pull dencycheng/dnginx:v1.0 7、 /nginx.conf:/etc/nginx/nginx.conf \ --name mynginx-02 \ nginx #把容器指定位置的东西复制出来 docker cp 5eff66eec7e1 etc/nginx/nginx.conf /data/conf/nginx.conf #把外面的内容复制到容器里面 docker cp /data/conf/nginx.conf 5eff66eec7e1

    44210发布于 2021-10-28
  • 来自专栏自动化、性能测试

    Git 系列教程(7)- 撤销操作

    撤销操作 在任何一个阶段,你都有可能想要撤销某些操作 有些撤销操作是不可逆的 --amend 修补提交 有时候我们提交完了才发现漏掉了几个文件没有添加,或者提交信息写错了。 丢弃工作区的改动) 删除: test1.txt 能看到 test1.txt 已经撤销暂存区了 reset 同时撤销所有暂存区的提交 git reset 高危操作,不加任何参数,直接把所有提交都撤销 venv polo@B-J5D1MD6R-2312 watermarker % 本来有三个提交,执行完 git reset 直接都撤销出暂存区,需要重新提交了 撤销对文件的修改 不想保留对某个文件的修改怎么操作

    1K20发布于 2021-05-18
  • 来自专栏技术杂记

    Mycat 运行与基础操作7

    包括聚合函数,操作体验和mysql单机操作几乎没有什么差异,但实际是分片处理的 mysql> explain select * from catworld4; +-----------+------- 0.00 sec) mysql> select * from catworld4; +----+------+ | id | name | +----+------+ | 3 | abc | | 7

    29020编辑于 2021-12-03
  • 来自专栏技术分享

    C语言(7)----操作

    1.操作符的定义 操作符是什么?操作符相当于标点符号之类的一系列符号。 3.操作符的分类 操作符分为 • 算术操作符: + 、- 、* 、/ 、% • 移位操作符: > • 位操作符: & | ^ ` • 赋值操作符: = 、+= 、 -= 、 *= 、 /= 、%= 、> . 、-> 接下来一一介绍各个操作符。 A.移位操作符: 用来移动操作数在存储中的位置。 不难看出,箭头指向哪个方向就是哪个方向移操作符。 我们需要注意的是: 移位操作符的操作数只能是整数。 移位操作符只移位正数位,不移负数位。 相同的: 如果某个操作符的各个操作数属于不同的类型,那么除非其中⼀个操作数的转换为另⼀个操作数的类型,否则操作就无法进行。下面的层次体系称为寻常算术转换。

    38710编辑于 2024-06-18
领券