第一章 绪论

Linux最吸引人的一个优点是它不是商业系统,源代码在GNU公共许可证(GPL)下是开放的。Linux源代码安装在 /usr/src/linux目录下。

现有的标准仅仅指定了应用程序编程接口(application programming interface ,API): 指定了用户程序应当运行的一个已定义好的环境。

Linux优势:

  • Linux是免费的
  • Linux所有成分都可以充分定制
  • Linux可以运行在低档,便宜的硬件平台上
  • linux是强大的,效率高
  • Linux系统稳定
  • Linux内核非常小,而且紧凑
  • Linux与很多通用操作系统高度兼容
  • Linux有很好的技术支持

Linux在硬件无关的源代码与硬件相关的源代码之间保持清晰的界限。在arch和include目录下包含了23个子目录,以对应Linux所支持的不同硬件平台。

Linux版本号用三个数字描述,由圆点分隔。前两个数字用来表示版本号,第三个数字表示发布号。第一位版本号2从1996年开始就没有变过。第二位版本号表示内核的类型:如果为偶数,表示稳定的内核;否则,表示开发中的内核。

操作系统基本概念

任何计算机系统都包含一个名为操作系统基本程序集合。在这个集合里,最重要的程序称为内核(kernel)。当操作系统启动时,内核被装入到RAM中,内核中包含了系统运行所必不可少的很多核心过程(procedure)。

随机存取存储器(random access memory,RAM)又称作“随机存储器”,是与CPU直接交换数据的内部存储器,也叫主存(内存)。它可以随时读写,而且速度很快,通常作为操作系统或其他正在运行中的程序的临时数据存储媒介。

操作系统必须完成两个目标:

  • 与硬件部分交互,为包含在硬件平台上的所有低层可编程部件提供服务
  • 为运行在计算机系统上的应用程序(即所谓用户程序)提供执行环境

类unix操作系统把与计算机物理组织相关的所有低层细节都对用户运行的程序隐藏起来。当程序想要使用硬件资源时,必须向操作系统发出一个请求。内核对这个请求进行评估,如果允许使用这个资源,那么,内核代表应用程序与相关的硬件部分进行交互。

为了实现这种机制,现代操作系统依靠特殊的硬件特性来禁止用户程序直接与底层硬件部分进行交互,或者禁止直接访问任意的物理地址。特别是,硬件为CPU引入了至少两种不同的执行模式:用户程序的非特权模式和内核的特权模式。Unix把它们分别称为用户态(User Mode)和内核态(Kernel Mode)。

多用户系统

多用户系统就是一台能并发和独立地执行分别属于两个或多个用户的若干应用程序的计算机。“并发”(concurrently)意味着几个应用程序能同时处于活动状态并竞争各种资源,如CPU、内存、硬盘等等。“独立”(independently)意味着每个应用程序能执行自己的任务,而无需考虑其他用户的应用程序在干些什么。

用户和组

在多用户系统中,每个用户在机器上都有私有空间(如:用户拥有一定数量的磁盘空间来存储文件、接收私人邮件信息等等)。操作系统必须保证用户空间的私有部分仅仅对其拥有者可见。特别是必须保证,没有用户能够开发一个用于侵犯其他用户私有空间的系统应用程序。

所有的用户由一个惟一的数字来标识——用户标识符(User ID,UID)。为了和其他用户由选择的共享资料,每个用户是一个或多个用户组的一名成员,组由唯一的用户组标识符(User group ID)标识。每个文件也恰好与一个组相对应。【例如:可以设置这样的权限,拥有文件的用户具有对文件的读写权限,同组用户仅有只读权限,而系统中其他用户没有对文件的任何访问权限】

超级用户(superuser) root,系统管理员必须以root的身份认证,以便处理用户账户,完成诸如系统备份,程序升级等维护任务。root用户几乎无所不能,因为操作系统对她不使用通常的保护机制。尤其是,root用户能访问系统中的每一个文件,能干涉每一个正在执行的用户程序的活动。

进程

定义: 程序执行时的一个实例,或者一个运行程序的执行上下文。传统操作系统中,一个进程在地址空间(address space)中执行一个单独的指令序列。地址空间是允许进程引用的内存地址集合。现代操作系统允许具有多个执行流的进程,也就是说,在相同的地址空间可执行多个指令序列。

多道程序系统(multiprogramming)或多处理系统(multiprocessing):允许进程并发活动的系统。区分程序和进程是非常重要的:几个进程能并发地执行同一程序,而同一个进程能顺序地执行几个程序。

在单处理器系统上,只有一个进程能占用CPU,因此,在某一时刻只能有一个执行流。一般来说,CPU的个数总是有限的,因而只有少数几个进程能同时执行。操作系统中叫做调度程序(scheduler)的部分决定哪个进程能执行。一些操作系统只允许有非抢占式(nonpreeemptable)进程,这就意味着,只有当进程自愿放弃CPU时,调度程序才被调用。但是,多用户系统中的进程必须是抢占式的(preemptable);操作系统记录下每个进程占有的CPU时间,并周期性地激活调度程序。

Unix是具有抢占式进程的多处理操作系统。即使没有用户登录,没有程序运行,还是有几个系统进程在监视外围设备。(如:监听系统终端等待用户登录)

进程/内核模式:进程都自以为它是系统中唯一的进程,可以独占操作系统所提供的服务。只要进程发出系统调用,硬件就会把特权模式由用户态变成内核态,然后进程以非常有限的目的开始一个内核过程的执行。操作系统在进程的执行上下文中起作用,以满足进程的请求。一旦这个请求完全得到满足,内核过程将迫使硬件返回到用户态,然后进程从系统调用的下一条指令继续执行。

模块:是一个目标文件,其代码可以在运行时链接到内核或从内核接触链接。这种目标代码通常由一组函数组成,用来实现文件系统,驱动程序或其他内核上层功能。与微内核操作系统不同,模块不是作为一个特殊的进程执行的。相反,与任何其他静态链接的内核函数一样,它代表当前进程在内核态下执行。

使用模块的优点:

  • 模块化方法
  • 平台无关性
  • 节省内存使用
  • 无性能损失

Unix文件系统概述

**文件:**以字节序列组成的信息载体,内核不解释文件的内容。从用户的观点来看,文件被组织在一个树结构的命名空间中。

Unix每个进程都有一个当前工作目录,它属于进程执行上下文,标识出进程所用的当前目录。

转载于:https://my.oschina.net/u/3227348/blog/2052784

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值