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

    操作系统是用来管理与协调硬件工作的,开发一款操作系统有利于理解底层的运转逻辑,本篇内容主要用来理解操作系统是如何启动的,又是如何加载磁盘中的内核的,该系列文章参考各类底层书籍,通过自己的理解并加以叙述, 让MBR直接驱动显卡 如上代码,我们通过调用BIOS提供的int 0x10中断来实现打印字符操作,但我们在后期必须要借助显卡来输出图像,而显卡是外部设备,必须通过总线来操作。 这个地址转换过程是由操作系统与处理器共同协作完成的,处理器在硬件上提供地址转换部件,操作系统提供转换过程中所需要的页表。 位,即两个四字节,GDT中最多可容纳的描述符数量是65536/8=8192个,即 GDT 中可容纳 8192 个段或门。 Type字段 第8-11位是type字段,共占用4位,用于表示内存段或调用门的子类型。

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

    鸿蒙操作系统开发指南 系统概述 HarmonyOS是华为推出的全场景分布式操作系统,采用微内核架构设计,具备以下核心特性: 分布式能力:支持跨设备无缝协同 统一生态:适配多种终端形态 安全可靠:通过多项国际安全认证 开发环境搭建 工具准备: 安装DevEco Studio IDE 配置Java开发环境(JDK 8+) 下载HarmonyOS SDK 项目创建: 选择适用的设备模板 配置项目基本信息 初始化代码仓库 兼容性适配 使用ohos.system.versionAPI检测系统版本,针对API 8+和API 6做差异化处理。 敏感操作需绑定动态令牌或生物特征验证,通过@RequirePermission注解强制校验。 true, "deliveryWithInstall": false } } 体积优化技巧: 使用Tree Shaking移除未引用代码 将非核心功能移至云端H5页面 采用QuickJS替代V8引擎

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

    ,而操作系统只有一个,所以必须将操作系统中的API资源共享给所有用户进程使用。 如何实现操作系统接口共享? 我们可以把4GB虚拟地址空间分成两部分,将4GB内存的高3GB-4GB以上的地址空间划分给操作系统,用户进程则在0GB-3GB低位地址空间内。 为了实现共享操作系统,让所有用户进程3GB-4GB的虚拟地址空间都指向同一个操作系统,也就是所有进程的虚拟地址3GB-4GB本质上都是指向的同一片物理页地址,这片物理页上是操作系统的实体代码。 C运行到入口点,单步N运行程序 程序运行到mov cx, 0x0004时,还没有加载GDT 运行到lgdt ds:0x0b03时,第一次加载GDT 运行到0008:0000000000000b8b 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中断来实现打印字符操作,但我们在后期必须要借助显卡来输出图像,而显卡是外部设备,必须通过总线来操作。 查看一个物理地址的内存 n 显示多少个字节的内存 u 单位长度; one o单位f b 字节 h 半字(2 字节) w 字 (4 字节) g 双字 (8 mov byte [gs:0x05],0xa6 mov byte [gs:0x6],'h' mov byte [gs:0x7],0xa7 mov byte[gs:0x8]

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

    注释:该系列笔记是在学习《操作系统真相还原》时通过阅读后简化并适当描述整理的学习笔记,首先,致敬作者郑刚博士,在读本书时能深刻的感觉到作者写书时一丝不苟的态度,书很厚写的,讲解细致幽默,很能让人愿意继续读下去 log:bochsout.txt mouse:enabled=0 keyboard: keymap=$BXSHARE/keymaps/x11-pc-de.map 上方屏幕会比较混乱,这里我们先来进行清屏操作 上面我们通过调用BIOS提供的int 0x10中断来实现打印字符操作,但我们在后期必须要借助显卡来输出图像,而显卡是外部设备,必须通过总线来操作。 查看一个物理地址的内存 n 显示多少个字节的内存 u 单位长度; one o单位f b 字节 h 半字(2 字节) w 字 (4 字节) g 双字 (8 mov byte [gs:0x05],0xa6 mov byte [gs:0x6],'h' mov byte [gs:0x7],0xa7 mov byte[gs:0x8]

    1.8K20编辑于 2023-02-25
  • 来自专栏技术杂记

    Ruby 操作 MongoDB(8

    创建数据库 即便一个库不存在,如果往这个库里插入数据,就会连同集合一起,自动被创建 上面的操作过程中已经将 post 数据库删除了,于是我执行下面的语句 2.3.0 :051 > db1[:abctest 57470f17f677048089c7f028"), "name" : "justfortest" } > 看来 post 库和 abctest 表外加 “name” : “justfortest” 的记录一同被创建了 ---- 索引操作

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

    Solr基础操作8

    通过 “numFound”:3608 我们知道一共有 3608 个结果,我们可以通过参数限定输出,默认情况下影响输出的参数是以下默认值

    35020编辑于 2022-06-29
  • 来自专栏科学计算

    8 Julia IO操作

    读写文件: csv JLD2 IOBuffer: IO操作 在对文件的操作中,如果我们未指定文件的路径,则默认的路径为 在使用Atom或vscode时,默认路径即为.jl文件的目录 在使用jupyter REPL时,系统默认路径为Julia的安装目录,可以执行pwd()命令可查看当前的工作路径,,如果想更换路径,使用cd(dir::String)命令,若想跟换回原始路径,使用homedir()命令 读文件操作 sdy.txt","r") line = readline(s2) eof(s2) position(s2) read(s2,Char) line = readline(s2) read(s2,Int8) \n") 但这种读写文件的方式对矩阵操作支持不太好 mat = reshape(1:9, (3,3)) write("mat.txt", mat) 最好使用DelimitedFiles包进行矩阵的读写操作 csv文件 写csv文件与操作普通文件类似,中间加个逗号就可以了。

    1.1K20发布于 2020-06-30
  • VUE3JAVA操作系统开发日志

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

    20210编辑于 2024-05-18
  • 来自专栏鸿蒙开发笔记

    OpenHarmony轻量系统开发8】其它驱动开发示例

    OpenHarmony代码中,Hi3861提供了绝大部分的驱动示例代码,文件路径:

    40720编辑于 2024-09-05
  • 来自专栏玄魂工作室

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

    WRS 公司 组建于1981年,是一个专门从事实时操作系统开发与生产的软件公司,该公司在实时操作系统领域被世界公认为是最具有领导作用的公司。 VxWorks 是一个运行在目标机上的高性能、可裁减的嵌入式实时操作系统。 从1995年以后, WRS 公司推出了一套实时操作系统开发环境-- Tornado。 Tornado 组件 Tornado是嵌入式实时领域里最新一代的开发调试环境,Tornado给嵌入式系统开发人员提供了一个不受目标机资源限制的超级开发和调试环境。 8、这里需要输入秘钥:cAQ8i-qP2I&-g$vT6-3&gjw-bEk9g ? 9、一路Next下图界面 ? 10、一路Next下图界面点击YES ? 11、默认即可 ?

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

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

    WRS 公司 组建于1981年,是一个专门从事实时操作系统开发与生产的软件公司,该公司在实时操作系统领域被世界公认为是最具有领导作用的公司。 从1995年以后, WRS 公司推出了一套实时操作系统开发环境-- Tornado。 Tornado 组件 Tornado是嵌入式实时领域里最新一代的开发调试环境,Tornado给嵌入式系统开发人员提供了一个不受目标机资源限制的超级开发和调试环境。 ED2000.COM).ISO” 5、进入我的电脑,双击风河驱动器(TDK-14621-ZC-01)图标将其打开,然后Next 6、以管理员身份运行点击“SETUP.EXE” 7、运行安装 8、 这里需要输入秘钥:cAQ8i-qP2I&-g$vT6-3&gjw-bEk9g 9、一路Next下图界面 10、一路Next下图界面点击YES 11、默认即可 12、到达此页面把 Source选上

    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
  • 来自专栏IT云清

    java8 集合操作

    IndustryInfo::getNum).reversed()).collect(Collectors.toList()); 2.排除某个特定元素 List<Map<String, Object>> list8 List<Map<String, Object>>> age = list.stream().collect(Collectors.groupingBy(map -> map.get("age"))); 8.

    66720编辑于 2022-05-07
  • 来自专栏索码理

    java 8 日期操作,真香!

    java 8 的日期类已经出来很长一段时间了,一直以来也没怎么用过,最近用到了感觉太好用了,真香。 java 8 在java.time提供了很多日期、时间相关类可以使用,这些类都是线程安全的,而且使用起来比Date日期类方便很多,常用的应该就是LocalDate和LocalDateTime,LocalDate ( localDateTime.atZone( ZoneId.systemDefault()).toInstant()); } LocalDate、LocalDateTime格式化 java 8 2021-06-30 当前日期时间:2022-01-25T18:37:57.652 当前时间:18:37:57.652 当前日期时间 格式化2022-01-25 18:37:57 下午 java 8 日期 操作还有很多api,感兴趣的可以自己多尝试一下。

    79020编辑于 2022-09-20
  • 来自专栏python3

    day 8 - 1 文件操作

    文件操作 注意: 1. r+ 最为常用 2.encoding 的编码格式一定要与文件编码格式一致 读取 r  rb #在本地创建 txt 格式的文件默认使用 gbk 格式 f = open('e:/py mode='rb') content = f.read() print(content,type(content)) f.close() 只写  w  wb #只写 w #我们写入的格式为 utf-8 那么当我们查看时也要使用 utf-8 格式 #没有该文件 w 会创建文件 f = open('e:/py/test.txt',mode='w',encoding='utf-8') f.write('正在写入 ...') f.close() #存在该文件 会覆盖写入 #即只写的逻辑为 先清空文件在写入 f = open('e:/py/test.txt',mode='w',encoding='utf-8') f.write('已写入.') f.close() #wb 写入 #默认写入 bytes 类型 需要使用 encode 转换为 str 类型 #写入与文件默认格式不同的类型 如:utf-8 会自动转换

    54830发布于 2020-01-20
  • 来自专栏JAVA

    Java 8 Stream 流操作

    《Java 8 Stream 流操作》 摘要 在这篇博文中,我们将深入探索Java 8的Stream API,这是一项革命性的特性,极大地改善了数据集合的处理方式。 引言 Java 8标志着Java历史上的一个重要进展,其中Stream API的引入无疑是亮点之一。 正文内容 一、中间操作 中间操作是Stream API的核心,它们操作流中的每个元素,并返回一个新的流,可以链接更多的中间操作。 终端操作是流操作的最后一个步骤,它会处理流并产生结果。 通过深入探索和扩展每个点,本文全面解析了Java 8的Stream API,旨在提供一个全方位的指南,帮助开发者更好地理解和应用这一强大的功能。

    31310编辑于 2024-11-20
  • 来自专栏JokerDJ

    扩展Java 8 日期操作

    Java 8 日期处理 Java 8 推出了全新的日期时间API,在教程中我们将通过一些简单的实例来学习如何使用新API。 8中获取今天的日期 Java 8 中的 LocalDate 用于表示当天日期。 System.out.println("Clock : " + defaultClock.millis()); } } 如何用Java判断日期是早于还是晚于另一个日期 另一个工作中常见的操作就是如何判断给定的一个日期是大于某天还是小于某天 Java 8不仅分离了日期和时间,也把时区分离出来了。 System.out.println("2018 is not a Leap year"); } } } 计算两个日期之间的天数和月数 有一个常见日期操作是计算两个日期之间的天数

    84410编辑于 2023-11-27
  • 来自专栏自动化、性能测试

    MongoDB(8)- 文档删除操作

    justOne:可选项,true,删除第一个满足删除条件的文档,默认 false,删除所有满足条件的文档 writeConcern:可选项,设置抛出异常的级别(比较复杂,用到再详解) collation:指定用于操作的排序规则 删除操作的重点 删除文档不会删除索引 所有操作在单个文档级别上都是原子性的 以下方法也可以从集合中删除文档 db.collection.findOneAndDelete() db.collection.findAndModify

    98510发布于 2021-06-09
  • 来自专栏橙光笔记

    Canvas系列(8):像素操作

    其中width、height就不用说了,分别是图片的宽度和高度,重点是这个data属性,他是一个Uint8ClampedArray对象,这个对象没听过?完全没问题,你就把他当做数组来处理,就可以了。

    1.1K30发布于 2020-10-17
领券