linux操作系统的基本概念

1,用户和组。

         操作系统按用户数量可以分为单用户系统和多用户系统。比如Windows就是典型的单用户系统,Linux就是典型的多用户系统。多用户系统就是一台能并发和独立地执行分别属于两个和多个用户的若干应用程序的计算机。

2,进程。     

狭义定义:进程是正在运行的程序的实例(an instance of a computer program that is being executed)。

广义定义:进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元。

进程的概念主要有两点:第一,进程是一个实体。每一个进程都有它自己的地址空间,一般情况下,包括文本区域(text region)、数据区域(data region)和堆栈(stack region)。文本区域存储处理器执行的代码;数据区域存储变量和进程执行期间使用的动态分配的内存;堆栈区域存储着活动过程调用的指令和本地变量。第二,进程是一个“执行中的程序”。程序是一个没有生命的实体,只有处理器赋予程序生命时(操作系统执行之),它才能成为一个活动的实体,我们称其为进程。 [3] 

进程是操作系统中最基本、重要的概念。是多道程序系统出现后,为了刻画系统内部出现的动态情况,描述系统内部各道程序的活动规律引进的一个概念,所有多道程序设计操作系统都建立在进程的基础上。

3,线程。

线程(英语:thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。在Unix System V及SunOS中也被称为轻量进程(lightweight processes),但轻量进程更多指内核线程(kernel thread),而把用户线程(user thread)称为线程。

线程是独立调度和分派的基本单位。线程可以为操作系统内核调度的内核线程,如Win32线程;由用户进程自行调度的用户线程,如Linux平台的POSIX Thread;或者由内核与用户进程,如Windows 7的线程,进行混合调度。

同一进程中的多条线程将共享该进程中的全部系统资源,如虚拟地址空间,文件描述符信号处理等等。但同一进程中的多个线程有各自的调用栈(call stack),自己的寄存器环境(register context),自己的线程本地存储(thread-local storage)。

一个进程可以有很多线程,每条线程并行执行不同的任务。

在多核或多CPU,或支持Hyper-threading的CPU上使用多线程程序设计的好处是显而易见,即提高了程序的执行吞吐率。在单CPU单核的计算机上,使用多线程技术,也可以把进程中负责I/O处理、人机交互而常被阻塞的部分与密集计算的部分分开来执行,编写专门的workhorse线程执行密集计算,从而提高了程序的执行效率。

4,内核的体系结构。   

宏内核和微内核的区别可以形象地理解为*集权制和分封制。

宏内核简单地说就是把很多的东西都集成进内核里,各种进程和内核高度紧密,它的优点是效率高,缺点是稳定性差,如果开发进程出现一个bug经常会导致整个操作系统挂掉。

微内核的内核只能进行最基本的调度、内存管理,它的优点是非常稳定,做驱动开发时,发现错误,只需要相应地修正再重启进程就行了,原则上来说效率较差。它的一大特点是可以进行模块化设计。

5,Unix文件系统概述。

根文件目录。

绝对路径。

相对路径。

linux操作系统的基本概念

6,

虚拟地址:虚拟地址是由段选择符和段内偏移地址组成的地址,该地址并没有直接访问物理内存。

逻辑地址:逻辑地址是由程序产生的段内偏移地址,

线性地址:线性地址是虚拟地址到物理地址变换的中间层。

物理地址:物理内存上的地址信号。