操作系统设备管理实验报告_从零开始自制操作系统(0):前言

d6c6550bc3d7ea13756874a40219d56c.png

1.什么是操作系统/OS(Operating System)

操作系统是管理计算机硬件与软件资源的计算机程序,同时也是计算机系统的内核与基石。操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入设备与输出设备、操作网络与管理文件系统等基本事务。操作系统也提供一个让用户与系统交互的操作界面。

以上这段话来自百度百科,说人话的话就是,操作系统是管理计算机硬件的一种软件程序,并且还可以管理用户程序的运行,比如说QQ 网易云音乐 英雄联盟等等软件都是处在操作系统的管理之下的,并且操作系统为程序的并发运行 安全保护等等都有重要的作用(这也就是为什么你可以挂着qq 边打LOL,边用网易云音乐放歌)

742e22f8acca33b0868aabf2fae31a85.png
图一:操作系统层级结构

从图中可以看出,操作系统是位于硬件之上 用户程序之下的一个软件系统。并且操作系统本身内容庞大 模块众多,操作系统有以下模块:

  • 操作系统内核(kernel):负责操作系统的核心功能,如内存管理 进程调度 磁盘管理 文件系统等。内核大小只占整个OS的很小一部分,但是内核质量关系到整个OS的性能优劣。不过近年来也出现了微内核架构,即内核部分只保留必要的核心模块,其他的模块可以自由选择,这样的优点就是,操作系统又更强的可扩展性。
  • 驱动程序:驱动程序一般指的是设备驱动程序(Device Driver),是一种可以使计算机和设备进行相互通信的特殊程序。相当于硬件的接口,操作系统只有通过这个接口,才能控制硬件设备的工作,假如某设备的驱动程序未能正确安装,便不能正常工作。因此,驱动程序被比作“ 硬件的灵魂”、“硬件的主宰”、“硬件和系统之间的桥梁”等。
  • 接口库:这个是操作系统提供的函数库,用于实现一些底层的硬件功能等,并且暴露出用户程序接口供用户程序使用,主要通过系统调用的方式实现。编程语言中一般都有sys开头的库函数,操作系统提供的接口库封装。

总而言之,操作系统是一个复杂的计算机软件。

2.为什么要自己实现一个操作系统

操作系统涉及面广,由于建立在硬件层之上,所以首先必须熟悉计算机组成原理,再者,操作系统架构设计必须要掌握操作系统原理,内核编译甚至于更高阶的玩法,比如移植gcc编译器等都要求有一定的编译原理基础,如果你有兴趣的话还可以自己编写网络通信模块,这个就要求有计算机网络的知识。所以说,写个简单的OS,相当于把cs四大专业课都实践了一遍。

并且编写OS过程中会用到inter汇编 C语言 C中的嵌入att汇编,还会用到gdb调试 ld链接器等等。所以,就算干不好java开发,以后转嵌入式还是有一点点基础的(滑稽.jpg)

当然,我认为最重要的一点:自己写一个OS是一件很cool的事情

3.专栏结构

  • part1:计算机体系结构与x86架构基础
  • part2:8086与实模式汇编
  • part3:保护模式基础
  • part4:动手实现一个32位OS
  • part5:Linux源码分析与自制OS优化
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值