从头开发一个RISC-V的操作系统(一)计算机系统漫游

这篇具有很好参考价值的文章主要介绍了从头开发一个RISC-V的操作系统(一)计算机系统漫游。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目标:通过这一个系列课程的学习,开发出一个简易的在RISC-V指令集架构上运行的操作系统。

前提

这个系列的大部分文章和知识来自于:[完结] 循序渐进,学习开发一个RISC-V上的操作系统 - 汪辰 - 2021春,以及相关的github地址。

在这个过程中,这个系列相当于是我的学习笔记,做个记录。

计算机的硬件组成

从头开发一个RISC-V的操作系统(一)计算机系统漫游,操作系统,risc-v
计算机通过总线连接不同的设备,CPU(Central Processing Unit) 和 内存(Memory)之间通过IO桥进行连接。程序保存在硬盘(Disk)中。一个简易的CPU主要有算数逻辑单元(Arithmetic Logical Unit)、控制单元(Control Unit)、寄存器(Register)三部分,其中ALU用来做计算,CU用来取指令、译码等,寄存器用来存储数据。

计算机有两种架构:冯诺依曼架构和哈佛架构,它们之间的区别是:冯诺依曼架构会将指令和数据存储在一个memory里,而哈佛架构会将指令和数据分别存储在两个memory里。

程序的存储与执行

当我们有一个.c程序,通过编译器进行编译链接后就会输出一个可执行文件(也就是二进制文件,包括了指令和数据),当我们运行这个可执行文件时,首先它会被加载到内存中,然后CU会在内存读取这些指令(取指),然后对每一条指令进行解析(译码),最终执行每一条指令。CU里有一个指令寄存器和一个程序计数器,它们的作用分别是对指令进行译码和记录指令在内存中的地址(我们知道,指令是保存在内存中的,所以我们必须知道某一条指令在内存中的地址,才可以获取它)。

操作系统

CPU根据不同的指令集架构(ISA)进行设计,应用程序在计算机中是最顶层的,硬件是最底层,它们的中间是操作系统。应用程序和操作系统之间有一个接口,称为系统调用。操作系统和底层硬件之间也有一个接口,称为指令集架构。
从头开发一个RISC-V的操作系统(一)计算机系统漫游,操作系统,risc-v文章来源地址https://www.toymoban.com/news/detail-845329.html

到了这里,关于从头开发一个RISC-V的操作系统(一)计算机系统漫游的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 开发一个RISC-V上的操作系统(六)—— 中断(interrupt)和异常(exception)

    目录 往期文章传送门 一、控制流 (Control Flow)和 Trap 二、Exceptions, Traps, and Interrupts  Contained Trap Requested Trap Invisible Trap Fatal Trap 异常和中断的异同 三、RISC-V的异常处理 mtvec(Machine Trap-Vector Base-Address) mepc(Machine Exception Program Counter)  mcause(Machine Cause)  mstatus(Machine S

    2024年02月13日
    浏览(96)
  • 开发一个RISC-V上的操作系统(七)—— 硬件定时器(Hardware Timer)

    目录 往期文章传送门 一、硬件定时器 硬件实现 软件实现 二、上板测试 开发一个RISC-V上的操作系统(一)—— 环境搭建_riscv开发环境_Patarw_Li的博客-CSDN博客 开发一个RISC-V上的操作系统(二)—— 系统引导程序(Bootloader)_Patarw_Li的博客-CSDN博客 开发一个RISC-V上的操作系统

    2024年02月12日
    浏览(43)
  • 开发一个RISC-V上的操作系统(八)—— 抢占式多任务(Preemptive Multitasking)

    目录 一、抢占式多任务 二、代码实现 三、上板测试 本节的代码在仓库的  06_Preemptive_Muti_Task  目录下,仓库链接:riscv_os: 一个RISC-V上的简易操作系统 本文代码的运行调试会在前面开发的RISC-V处理器上进行 ,仓库链接:cpu_prj: 一个基于RISC-V指令集的CPU实现 在第五节的内容中

    2024年02月13日
    浏览(35)
  • xv6(RISC-V)操作系统源码分析第二节——操作系统组织

    一个操作系统至少需要满足以下三个要求: 多路复用 进程隔离 进程通信 硬件CPU的数量有限,且往往少于同时存在的进程数量。而操作系统需要支持进程的并发执行,所以操作系统应该能使多个进程分时共享计算机的资源。 一个进程的运行,应当具有一定的独立性,这个独

    2024年02月03日
    浏览(44)
  • 在FPGA上运行轻量级Linux系统的RISC-V内核 FPGA开发

    随着嵌入式系统的发展,FPGA(现场可编程门阵列)在实现高性能和灵活性方面发挥着重要作用。RISC-V是一种基于开放指令集架构(ISA)的处理器架构,它在嵌入式系统中越来越受欢迎。本文将介绍如何在FPGA上实现一个轻量级Linux系统,其中包括RISC-V内核的开发。 为了在FPGA上

    2024年02月04日
    浏览(45)
  • RISC-V公测平台发布 · 第一个WEB Server “Hello RISC-V world!”

    RISC-V公测平台Web Server地址:http://175.8.161.253:8081 Web Server是互联网应用的基础设施,无论是用户访问网站,还是后端服务提供商和开发者构建各种应用程序,Web Server都在其中扮演着至关重要的角色。 显而易见,对于RISC-V生态来说, Web Server也是不可缺少的一部分 。 接下来我们

    2024年02月14日
    浏览(52)
  • 浅谈 RISC-V 软件开发生态之 IDE

    软件开发者是芯片公司非常重要的资产,CPU做出来是不够的,要让更多的软件开发者用这颗芯片才是成功。国际大厂们都有一只较大的软件团队,在做面向开发者的软件工具和SDK等。--张先轶博士:为什么RISC-V需要共建软件生态? 目前RISC-V架构在全球发展迅猛,RISC-V花了差不多

    2024年02月10日
    浏览(45)
  • 博流RISC-V芯片BL616开发环境搭建

    本文分别介绍博流RISC-V芯片 BL616 在 Windows和Linux 下开发环境搭建,本文同时适用BL618,BL602,BL702,BL808系列芯片。 Windows 我们在日常工作中会经常使用到 git,windows 环境下载 git 安装包安装后即可使用。下载地址:https://git-scm.com/download/win。 当前 64bit 操作系统下最新版本为

    2024年02月11日
    浏览(48)
  • RISC-V Linux系统rootfs制作

    buildroot 是一个构建嵌入式Linux系统的框架。整个 buildroot 是由Makefile(*.mk) 脚本和 Kconfig(Config.in) 配置文件构成的,因此可以像配置 Linux 内核一样执行 make menuconfig 进行配置,编译出一个完整的、可以直接烧写到机器上运行的 Linux 系统文件(包含 bootloader、kernel、rootfs 以及 rootf

    2024年02月11日
    浏览(40)
  • RISC-V Linux系统kernel制作

    Linux 官网地址:https://www.kernel.org 安装依赖 配置完成后相应的配置项会保存在 .config 文件中。下一次执行 make menuconfig 时可以 load 这份配置文件,在此基础上进行修改。 编译完成后,在arch/riscv/boot下生成Image,该文件用于 qemu -kernel 参数。

    2024年02月11日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包