《操作系统》OS学习(一):OS相关

清华大学操作系统OS(向勇、陈渝)视频地址:http://www.xuetangx.com/courses/course-v1:TsinghuaX+30240243X+sp/about

在ucore实验中,一些基本的常用工具如下:

命令行shell: bash shell -- 有对文件和目录操作的各种命令,如ls、cd、rm、pwd...

系统维护工具:apt、git

  • apt:安装管理各种软件,主要在debian, ubuntu linux系统中
  • git:开发软件的版本维护工具

源码阅读与编辑工具:eclipse-CDT、understand、gedit、vim

  • Eclipse-CDT:基于Eclipse的C/C++集成开发环境、跨平台、丰富的分析理解代码的功能,可与qemu结合,联机源码级Debug uCore OS。
  • Understand:商业软件、跨平台、丰富的分析理解代码的功能,Windows上有类似的sourceinsight软件
  • gedit:Linux中的常用文本编辑,Windows上有类似的notepad
  • vim: Linux/unix中的传统编辑器,类似有emacs等,可通过exuberant-ctags、cscope等实现代码定位

源码比较和打补丁工具:diff、meld,用于比较不同目录或不同文件的区别, patch是打补丁工具

  • diff, patch是命令行工具,使用简单
  • meld是图形界面的工具,功能相对直观和方便,类似的工具还有 kdiff3、diffmerge、P4merge

开发编译调试工具:gcc 、gdb 、make

  • gcc:C语言编译器
  • gdb:执行程序调试器
  • ld:链接器
  • objdump:对ELF格式执行程序文件进行反编译、转换执行格式等操作的工具
  • nm:查看执行文件中的变量、函数的地址
  • readelf:分析ELF格式的执行程序文件
  • make:软件工程管理工具, make命令执行时,需要一个 makefile 文件,以告诉make命令如何去编译和链接程序
  • dd:读写数据到文件和设备中的工具

硬件模拟器:qemu -- qemu可模拟多种CPU硬件环境,本实验中,用于模拟一台 intel x86-32的计算机系统。类似的工具还有BOCHS, SkyEye等

markdown文本格式的编写和阅读工具(比如阅读ucore_docs)

编写工具 haroopad

阅读工具 gitbook

80386有四种运行模式

模式、保护模式、SMM模式和虚拟8086模式。

模式:80386加电启动后处于实模式运行状态,在这种状态下软件可访问的物理内存空间不能超过1MB,且无法发挥Intel 80386以上级别的32CPU4GB内存管理能力。

保护模式:支持内存分页机制,提供了对虚拟内存的良好支持。保护模式下80386支持多任务,还支持优先级机制,不同的程序可以运行在不同的优先级上。优先级一共分0~3 4个级别,操作系统运行在最高的优先级0上,应用程序则运行在比较低的级别上;配合良好的检查机制后,既可以在任务间实现数据的安全共享也可以很好地隔离各个任务。

物理内存地址空间是处理器提交到总线上用于访问计算机系统中的内存和外设的最终地址。一个计算机系统中只有一个物理地址空间。

线性地址空间是在操作系统的虚存管理之下每个运行的应用程序能访问的地址空间。每个运行的应用程序都认为自己独享整个计算机系统的地址空间,这样可让多个运行的应用程序之间相互隔离。

逻辑地址空间是应用程序直接使用的地址空间。

段机制启动、页机制未启动:逻辑地址->段机制处理->线性地址=物理地址

段机制和页机制都启动:逻辑地址->段机制处理->线性地址->页机制处理->物理地址

操作系统是控制软件,管理应用程序,为应用程序提供服务,杀死应用程序,分配资源,管理外设

抽象:CPU - 进程,内存 - 地址空间,磁盘 - 文件

OS位于硬件层之上,软件应用层之下,是个中间层的系统软件。

OS分为Shell(界面)和Kernel(内核)

并发(concurrent,交替运行) vs 并行(parallel,同时运行)

注意:区分并发和并行。 //并发指的是在一段时间内有多个程序可以运行。

//并行指的是在一个时间点上有多个程序可以同时执行。

操作系统管理的主要的三个资源:CPU(CPU调度,进程,线程)、内存(物理内存,虚拟内存)、磁盘(文件系统)、与硬件相关的底层(中断、IO、设备驱动)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/454183.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android4.0蓝牙使能的详细解析

毫无疑问,bluetooth的打开是在Settings中进行的操作。因此,冤有头,债有主,我们来到了Settings.java中,果然发现了相关的代码如下: mBluetoothEnabler new BluetoothEnabler(context, new Switch(context));…

第一次冲刺

本人小组分工角色:产品负责人 本组冲刺订单介绍:经过小组的成员讨论,我们大概确立了一个冲刺的订单是完成一个简易的长沙学院网站项目。 最后完成情况概述:经过大约两周的努力,我们组的编程人员运用python构建了一个简…

移动端导出excel_连载系列【4】Excel开发移动端quot;APPquot;

前三篇文章介绍了百度地图生成器、源代码编辑器、GPS经纬度批量转换工具、源代码编辑器中添加自定义功能按钮和地图控件。这些写好的Java Script代码虽然可以实现所有期望的结果,但毕竟不是一个HTML文件,不便于传播和使用,更无法变成一个类似…

《操作系统》OS学习(二):启动、中断、异常

Bootloader:加载OS。操作系统一开始是放在DISK(硬盘)中,并不是放在内存中。 BIOS:基本I/O处理系统。存放在ROMRead-Only Memory)只读存储中 BIOS(Basic Input/Output System)基本输入输出系统。…

[GCC for C]编译选项---IDE掩盖下的天空

编译选项 ---------IDE掩盖下的天空 /*************************************** * gcc for c language ***************************************/ Single Source to Executable $ gcc helloworld.c [-o howdy] 默认生成的名字a.exe ______________________________________ …

2016级算法第二次上机-F.ModricWang's Number Theory II

891 ModricWangs Number Theory II 思路 使得序列的最大公约数不为1,就是大于等于2,就是找到一个大于等于2的数,它能够整除序列中的所有数。 考虑使得一个数d整除数组中所有数的代价: 如果一个数不能被b整除,那么可以花…

常用css属性集(持续更新…)

禁止换行,超出部分显示…:a. 代码:.hide_word{ max-width: 100px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; } b. 效果: 本文转自 bilinyee博客,原文链接: http://blog.51cto.co…

parallels网络初始化失败_33 个神经网络「炼丹」技巧

自然语言处理Andrej Karpathy 是深度学习计算机视觉领域、与领域的研究员。博士期间师从李飞飞。在读博期间,两次在谷歌实习,研究在 Youtube 视频上的大规模特征学习,2015 年在 DeepMind 实习,研究深度强化学习。毕业后&#xff0…

《操作系统》OS学习(三):系统调用

例子 首先看一个标准C库的例子:当我们程序中使用了C库中的printf()函数,实际在底层是在内核态中调用了write()函数。图中右侧则是将程序代码与C库都算到应用程序中,内核提供了一个系统调用接口。 从这个例子我们可以得到以下几点&#xff1a…

cygwin/gcc与MinGW

cygwin/gcc和MinGW都是gcc在windows下的编译环境,但是它们有什么区别?在实际工作中如何选择这两种编译器呢?cygwin/gcc完全可以和在linux下的gcc划等号,这个从boost库的划分中就可以看出来端倪,cygwin下的gcc和linux下的gcc使用的是相同的T…

JavaScript服务器端开发技术(对象属性的枚举与查询)

既然对象是属性的集合,那么检测与枚举集合中的属性就是一项重要任务。对此,我们来分别看一下ES3和ES5提供的解决方案。 1) ES3枚举方案 示例代码: var contacts{ ID:[0,1,2,3,4,5], names:["Zero","One","Two&q…

treelistview 所有节点失去焦点_垃圾询盘过滤,焦点科技的 Milvus 实践

文章作者:黎阳,焦点科技软件开发工程师李成龙,Zilliz 数据工程师Milvus (https://milvus.io/) 向量搜索引擎开源半年以来,全球已经有数百家企业或组织用户。焦点科技是一家以 B2B 外贸交易为主营业务的科技公司,也是 M…

《操作系统》OS学习(四):计算机体系结构、内存层次和地址生成

计算机除了计算能力之外还有存储能力,存储能力即计算机拥有一系列的存储介质,我们可以在存储介质上存储我们的代码和数据。计算机体系结构中约定了哪些地方可以用来存储数据:CPU内的寄存器、内存和外存。不同的存储介质,容量、速度…

GCC中SIMD指令的应用方法

X86架构上的多媒体应用开发,如果能够使用SIMD指令进行优化, 性能将大大提高。目前,IA-32的SIMD指令包括MMX,SSE,SSE2等几级。 在GCC的开发环境中,有几种使用SIMD指令的方式,本文逐一介绍。X86的…

使用angular4和asp.net core 2 web api做个练习项目(二), 这部分都是angular

上一篇: http://www.cnblogs.com/cgzl/p/7755801.html 完成client.service.ts: import { Injectable } from angular/core; import { Http, Headers } from angular/http; import { Observable } from rxjs/Observable; import { ErrorHandler } from angular/core; import rxj…

leelen可视对讲怎么接线_楼宇对讲系统怎么布线 楼宇对讲系统布线方式【介绍】...

随着智能小区规模不断增加,楼宇可视对讲系统应用越来越广泛,因而视频信号的传输方式与布线设计显得越来越重要。视频信号与数据和音频信号不同,可行的一种传输方式为视频信号基带传输,下面小编就简要介绍一下这种传输方式和布线方…

路由汇总实例

5.2.2.2 路由汇总策略 之前提到过,在网络管理员计划好子网选择并进行预期地路由汇总时,手动路由汇总工作能取得最佳效果。例如,之前的例子设定好了一个考虑周全的计划,管理员只使用远离Yosemite路由器并以10.2开头的子网。这个规定…

《操作系统》OS学习(五):连续内存分配 内存碎片、动态分配、碎片整理、伙伴系统

内存碎片 在没有其他方式辅助的情况下,我们分配给一个进程的内存是连续的。在分配时候我们需要有动态分配与碎片处理。如何理解呢?就是每个进程需要一块内存,我们要选取合适的位置的内存分配给它。当有的进程先结束了内存还给操作系统&#…

GCC 中文手册 - 摘自纯C论坛

GCC Section: GNU Tools (1) Updated: 2003/12/05 Index Return to Main Contents NAME gcc,g-GNU工程的C和C编译器(egcs-1.1.2) 总览(SYNOPSIS) gcc[option|filename ]... g[option|filename ]... 警告(WARNING) 本手册页内容摘自GNU C编译器的完整文档,仅限于解释选项的含义…

python如何实现支持中文

#codingutf-8print("我要python支持中文") 默认情况下,python是不支持中文的。 如果要实现python支持中文(我是从python3.6开始学习的),只要在python文档的开头加入:“#codingutf-8"就可以了。转载于:h…