前言
操作系统主要参考了王道教程,蒋炎岩 老师操作系统(Yanyan's Wiki)课程,和顺平的课程,用做记录备忘。
1. 操作系统基本目标:
基本命令学习, vim使用,用户管理
系统配置 (环境变量,网络配置,服务)
Linux搭建各种环境(JavaEE 大数据 Python等)
基本shell脚本
能进行安全设置 ,系统调优(系统优化,日常监控,日志分析,故障处理,数据备份与恢复)
理解Linux内核,可以尝试写一些简单的OS
2.学习方法
先整体后细节;
善用搜索引擎和各种手册等 ;
先做后学,实践(dirty hand)很重要;
常用常实际操作优化系统
3.基本概述
基本概念 :
操作系统就是合理地控制和管理计算机系统上的硬件和软件资源,并提供给用户和其他软件方便的接口和环境,它是计算机系统中最基本的系统软件。
主要功能: 文件管理,存储器管理,处理机(CPU)管理,设备管理(摄像头等)
目标: 安全,高效。
OS对上级提供 图形化界面(GUI),联机命令,脱机命令接口 ,对程序员提供 程序接口。
一般 将覆盖了OS的裸机 称为 扩充机器,或者虚拟机。
基本特征:(并发,共享,虚拟,异步)
并发:多个事件在同一时间间隔内发生,在宏观上同时发生,微观上交替发生。有别于并行,指多个事件同一时刻发生。OS就是伴随着并发一起诞生的。现代CPU有多核,一般都是并行的。
共享: 就是资源共享,指OS中的资源可供多个并发的进程共同使用。
共享可分为互斥共享(一个时间段内仅允许一个进程访问e.g.QQ和微信使用摄像头)和同时共享(一个时间段内 允许多个进程同时访问(宏观同时,微观交替,即分时共享)e.g.QQ和微信分别同时发送文件A&B)。
虚拟:把物理上的实体变为若干个逻辑上的对应物。
e.g. 电脑运行多个应用时实际需要的内存容量远大于当前硬件的内存,就需要 在硬盘上进行 空分复用技术实现虚拟内存。
单核CPU可以同时让微信,网易音乐,游戏 工作,就运用了 时分复用技术 模拟CPU有多个核心。
综上,没有并发性,虚拟性也没有了意义。
异步性:多道程序并发执行时由于资源有限,进程执行启停会以不可预知的方式前进