操作系统

接着上面所讲,操作系统的设计目标和一些基本要求是什么?

首先讲这个设计目标,设计目标,即是我要干什么,很清晰,我要把硬件抽象为用户提供一个接口,另外一方面,我得管理好不多的硬件资源,所以设计目标就是提供服务和管理资源!

第二方面,作为一个操作系统,它应该要满足哪些原则?

  1. 可移植性,这是十分重要的,让操作系统适应更多的平台,而这方面也提出了posix标准。
  2. 安全性和公正性,安全自然不用说,你必须让用户的数据不被别人偷走,也不能轻易的崩溃,公正性的话,对于每个进程,你都必须维护好公平,不能让一个进程一直霸占导致其他进程过于饥饿!
  3. 强壮,类似安全
  4. 有效,两方面,一个是提高资源利用率,一个是提高吞吐量。
  5. 接口统一,类似可移植。

(另外,对上次的虚拟机做一个补充,虚拟机有一个广义的概念,就是操作系统,在裸机上加载一层软件,来管理整个计算机系统,形成一个虚拟的计算机,(另外的就是我们现在用的软件))

因为是复习,这里还要提一下一些操作系统的概念:

  1. 进程与作业,进程本质上是正在执行的一个程序,与每个进程相关的是进程的地址空间,你现在打开的wps可能就是一个进程(实际有很多进程),而你再打开wps又是一个新的进程,虽然东西都是一样的,但是进程是一个实例,而代码是一个模板,而作业是一个大的概念,可能需要好几个进程去做,而对于进程的地址空间,想一想,一个爸爸生了好多儿子,每个儿子是不是要有自己的房子,进程也一样,进程就是一个人,他有自己的特性,代码是它的外貌,而数据是它的精神,各种各样的特性封装在躯壳或者独立的空间里,(这里我倒想到一个有意思的东西,虚拟内存,和人一样,如果我们都把自己的所有财富都拿出来,街道肯定空间不够,所以我们只能看今天要干嘛带什么东西出门,看到人太多了只能窝在家里(对应窝在硬盘),而其实最开始不需要虚拟内存的概念,为什么,因为大家都穷的要死,要带的东西太少了,而现在大家富裕了,财富多(需要的内存越来愈大),所以我们不可能为你提供这么大的物理内存,只能看需求带东西)。
  2. 文件的一二三,我们说过,在很多操作系统里面,一切皆文件,硬件被抽象为文件,我们就像读书一样去操作硬件,文件可以定义为文件名下的一组信息的集合,这倒是很贴切,当然文件最后都要对应硬件,或是硬盘之类的,文件名相当于一个ID,我们知道它是什么东西,但是文件要对应到物理上去,还得有一个inode(也就是一个物理定位),我们为什么不直接操作物理定位,因为我们用户不想喝这些复杂的底层打交道,我们只需要拿到文件名就够了,我们只需要知道这个人叫某某,至于它住哪住的怎么样,我们并不是很想关注,所以,在实际的操作系统来讲,文件对应的两个必不可少的东西就是文件名和inode节点。
  3. 内核态和用户态以及所谓系统调用:

    我们说操作系统的作用是封装硬件,用户可以干嘛,用户可以使用系统给的api(就是系统调用)去做我们想做的事情,但是具体的实现我们不知道,我们也无法直接操作硬件,我们想做什么,都得向内核请求,靠内核来实现,或者说内核态和用户态处在两个不同的级别上,一个是boss,一个是小职员,我们要干嘛最后都要靠内核来做,这些系统调用是系统给我们的接口,而为了提高代码的可移植性,unix下有一个posix标准,就是对应这些系统调用,比如fork之类的。

    系统调用是操作系统很重要的一个概念,有的题目也会涉及到,事实上,系统调用是操作系统必须提供的一个功能,因为它是我们编程的接口或者说工具,没这些函数编个屁!

    系统调用有很多种,涉及到了各个方面,通过这些函数,我们可以覆盖对硬件的访问和管理,当然这里要区分系统调用和库函数还有内核调用,系统调用准确来讲是一个过程,我们使用库函数一步步陷入到内核完成我们的功能的过程,另外一个说法是库函数包装了系统调用,而内核调用和系统调用对于大内核来讲应该是没有区别的,都是直接切入到内核,而对于minix的这种微内核来讲,存在这样一个区别,系统调用一般是用户切入到内核,而内核调用往往是服务器和驱动切入内核,而且事实上minix还有任务调用的概念,服务器之间切换,这都不是很重要。

    到这里,操作系统的一些小东西差不多介绍完了,下面开始介绍一个很重要的概念,进程!

操作系统,布布扣,bubuko.com

时间: 2024-10-19 14:55:08

操作系统的相关文章

c#判断操作系统是32位还是64位

做一个c#项目时,遇到要获取操作系统位数的问题,在网上找了几个小时,都没有找到比较完整的解决方案.话不多说,直接上可以运行的代码(简单.粗暴) using System.Runtime.ConstrainedExecution; using System.Runtime.InteropServices; internal static class Win32Native { [ReliabilityContract(Consistency.WillNotCorruptState, Cer.May

使用Cobbler批量安装操作系统

个人博客地址:http://www.pojun.tech/ 欢迎访问 前言 在实际生产中,我们常常会遇到这样一种情况,就是我们需要同时安装几十甚至上百台服务器,如果我们使用U盘或者光盘的方式的话,或许老板直接就将我们辞退了.这里我们介绍一种能够实现自动化安装操作系统的方式. 我们搭建Cobbler的实验环境是基于CentOS 7.3 -1611 的基础的. 同时这个实验可以帮助你一步步的完成所有的操作,不过,如果你想自定义安装的内容的话,建议你先看本文 自定义kickstart文件 部分,以便有

China Operating System 电脑操作系统 2016全球互联网排名

韩梦飞沙  韩亚飞  [email protected]  yue31313  han_meng_fei_sha 电脑操作系统 China Operating System 2016全球互联网排名 ========

Linux操作系统文件系统基础知识详解(引用内容)

一 .Linux文件结构  文件结构是文件存放在磁盘等存贮设备上的组织方法.主要体现在对文件和目录的组织上. 目录提供了管理文件的一个方便而有效的途径. Linux使用标准的目录结构,在安装的时候,安装程序就已经为用户创建了文件系统和完整而固定的目录组成形式,并指定了每个目录的作用和其中的文件类型.                     /根目录                              ┃┏━━┳━━━┳━━━┳━━━╋━━━┳━━━┳━━━┳━━━┓┃   ┃      ┃

Linux服务器操作系统

Linux服务器操作系统 今日大纲 ●    服务器操作系统的系列.Linux的主流产品.虚拟机软件 ●    安装linux ●    linux基本命令 ●    用户管理及权限(多用户) ●    实战(搭建环境及部署web项目) ***************************************************************************************************** 1.    服务器操作系统简介 1.1    服务器操作系

IBM x3850M2 x3650M2 安装windows操作系统出错排查

最近安装服务器操作系统不顺,反复多次,不能完全确定原因,先记录下来,总有可取之处吧. 1.用引导盘安装2012.2008到最后一步出现下图,\source\setup.exe is not valid win32 application,狗屁百度都说是引导盘86.64的区别,胡扯,64位的都是这样的名称ibm_utl_sguide_9.63-win2k08_anyos_x86-64.iso,换新老版本都不行,2008r2.2012没有32之说了好像,没有想要的结果. 2.直接用windows系统

虚拟机上安装Linux操作系统

很久之前就知道虚拟机这个东西,也都在虚拟机上安装过Windows的操作系统和Linux的操作系统,但是一直都没有去做笔记. 最近还是比较有时间,就移除了前两天刚刚安装的Linux系统,重新安装一次,做一个记录. 至于虚拟机的安装就没有做详细的记录,这个跟安装其他的什么软件没什么区别. 好了.接下来就开始图文并茂的去记录一下安装Linux的操作系统的过程. 1.那么第一步肯定是要下载Linux的镜像文件,至于下载也早就下载好了.是rhel-server-6.6的,一个ISO的压缩包. 2.打开虚拟

操作系统基础知识

操作系统的分类: 批处理操作系统.分时操作系统.实时操作系统.网络操作系统.分布式操作系统.个人计算机操作系统. 批处理操作系统: 优:资源共享,自动调度,提高了资源利用率和系统分吞吐量. 劣:无交互,周转时间较长. 多道批处理程序要处理的问题:同步互斥,内存大小,使用效率,内存保护 分时系统:联机多用户交互式操作系统,中断技术,时间片轮转 优:人机交互性好,共享主机 ,用户独立性 实时操作系统:联机系统,对外部请求能够在规定的时间内完成. 特点:有限等待 有限响应 用户控制 可靠性高 出错处理

Linux体系结构-初级(查看内核,操作系统)

目录 一.Linux系统架构... 1 二.内核和操作系统的关系... 2 三.查看Linux内核... 2 1. cat /proc/version. 2 2. uname  -a. 3 四.查看Linux系统版本... 3 1. cat /etc/issue. 3 2. lsb_release -a. 3 五.查看操作系统32位 or 64位... 3 1.uname  -a. 3 2. arch. 3 3. file /sbin/init. 4 4. getconf LONG_BIT. 4

CentOS 6.5下PXE+Kickstart无人值守安装操作系统

CentOS 6.5下PXE+Kickstart无人值守安装操作系统 一.简介 1.1 什么是PXE PXE(Pre-boot Execution Environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicasttrivia