LINUX和其他操作系统的区别

0}{else}no-cache{/if}" />
一文看懂什么是Linux操作系统
一文看懂什么是Linux操作系统
马哥Linux运维 发表于
当前没有评论,快来抢沙发
一文看懂什么是Linux操作系统
马哥Linux运维 发表于
Linux操作系统概述
Q1.什么是GNU?Linux与GNU有什么关系?
1)GNU是GNU is Not Unix的递归缩写,是自由软件基金会(Free Software Foundation,FSF)的一个项目,该项目已经开发了许多高质量的编程工具,包括emacs编辑器、著名的GNU C和C++编译器(gcc和g++);2)Linux的开发使用了许多GNU工具,Linux系统上用于实现POSIX.2标准的工具几乎都是由GNU项目开发的;Linux内核、GNU工具以及其它一些自由软件组成了人们常说的Linux系统或Linux发布版。
Q2.Linux系统由哪几部分组成?Linux内核处于什么位置?
1)Linux系统由四个部分组成:用户进程,系统调用接口、Linux内核子系统和硬件;2)Linux内核处于用户进程和硬件之间,包括系统调用接口和Linux内核子系统。
Q3.Linux内核由哪几部分组成?各个子系统的主要功能是什么?
(1)Linux内核除系统调用外,由五个主要的子系统组成:进程调度、内存管理、虚拟文件系统、网络和进程间通信(IPC);(2)各个子系统的主要功能为:1)进程调度:它控制着进程对CPU的访问,当需要选择一个进程开始运行时,由调度程序选择最应该运行的进程;2)内存管理:它允许多个进程安全地共享主内存区域,支持虚拟内存;从逻辑上可以分为硬件无关的部分和硬件相关的部分;3)虚拟文件系统(VFS):它隐藏了各种不同硬件的具体细节,为所有设备提供统一的接口,支持多达数十种不同的文件系统,分为逻辑文件系统和设备驱动程序;4)网络:它提供了对各种网络标准协议的存取和各种网络硬件的支持,分为网络协议和网络驱动程序两部分;5)进程间通信:支持进程间各种通信机制,包括共享内存、消息队列和管道等。
Q1.什么是物理地址?什么是虚地址?什么是线性地址?
1)将主板上的物理内存条所提供的内存空间定义为物理内存空间,其中每个内存单元的实际地址就是物理地址;2)将应用程序员看到的内存空间定义为虚拟地址空间(或地址空间),其中的地址就叫做虚拟地址(或虚地址),一般用&段:偏移量&的形式来描述,如A815:CF2D;3)线性地址空间是指一段连续的、不分段的、范围为0~4GB的地址空间,一个线性地址就是线性地址空间的一个绝对地址。
Q2.在保护模式下,MMU如何把一个虚地址转换为物理地址?
在保护模式下,内存管理单元(MMU)由一个或一组芯片组成,其功能是指虚拟地址映射为物理地址,即进行地址转换;MMU是一种硬件电路,它包含分段部件和分页部件两个部件,分别叫做分段机制和分页机制,分段机制是把一个虚拟地址转换为线性地址,分页机制是把一个线性地址转换为物理地址。
Q3.为什么对32位线性地址空间要采用两级页表?
页表是把线性地址映射到物理地址的一种数据结构,4GB的线性空间可以被划分为1M个4KB大小的页,每个页表项占4字节,则1M个页表项的页表就需要占用4MB空间,而且还要求是连续的,于是采用两级页表来实现;两级页表就是对页表再进行分页,第一级称为页目录,其中存放关于页表的信息;4MB的页表再次分页,可以分为1K个4KB大小的页。
Q4.页面高速缓存的作用是什么?Linux为什么主要采用分页机制来实现虚拟存储管理?它为什么采用三级分页模式而不是两级?
(1)页面高速缓存自动保留处理器最近使用的32项页表项,因此可以覆盖128KB范围的内存;(2)Linux主要采用分页机制来实现虚拟存储器管理,原因为:1)Linux的分段机制使得所有的进程都使用相同的段寄存器,这使得内存管理变得简单;2)Linux的设计目标之一就是能够被移植到绝大多数流行的处理平台上,但许多RISC处理器支持的分段功能非常有限;为了保证可移植性,Linux采用三级分页模式,因为许多处理器都采用64位结构;Linux定义了三种类型的页表:页目录(PGD)、中间目录(PMD)和页表(PT)。
Q1.程序与进程的概念分别是什么?为什么要引入&进程&的概念?
1)程序是一个普通文件,是机器代码指令和数据的集合,这些指令和数据存储在磁盘上的一个可执行映像中,可执行映像(executable image)就是一个可执行文件的内容;2)进程代表程序的执行过程,它是一个动态的实体,随着程序中指令的执行而不断地变化,在某个时刻进程的内容被称为进程映像(process image);3)程序的执行过程可以说是一个执行环境的总和,这个执行环境除了包括程序中各种指令和数据外,还有一些额外数据;而执行环境的动态变化体现了程序的运行,为了对动态变化的过程进行描述,就引入了&进程&概念。
Q2.什么是进程控制块?它包含哪些基本信息?
1)Linux中把对进程的描述结构叫做task_struct,将这样的数据结构称作进程控制块(PCB);2)PCB是一个其域多达80多项的相当庞大的数据结构,按其功能将所有域划分为:状态信息,链接信息、各种标识符、进程间通信信息、时间和定时器信息、调度信息、文件系统信息、虚拟内存信息和处理器环境信息。
Q3.Linux内核的状态有哪些?
1)Linux最基本的进程状态有三种:运行态、就绪态和阻塞态(或等待态);这三种状态之间有四种可能的转换关系:运行态->阻塞态、运行态->就绪态、就绪态->运行态和阻塞态->就绪态;2)为了管理上的方便,将就绪态和运行态合并为一个状态&可运行态,再包括其它方面的一些改变,将进程状态划分为:可运行态、睡眠(或等待)态(分为深度睡眠态和浅度睡眠态)、暂停状态和僵死状态。
Q4.PCB的组织方式有哪几种?
PCB的组织方式有:进程链表、散列表、可运行队列和等待队列。
Q5.主要的调度算法包括哪些?一个好的调度算法要考虑哪些方面?
1)主要的调度算法包括:时间片轮转调度算法、优先级调度算法(非抢占式优先级算法和抢占式优先级算法)、多级反馈队列调度算法和实时调度算法;2)一个好的调度算法应该考虑五个方面:公平、高效、响应时间、周转时间和吞吐量。
Q1.为什么把进程的地址空间划分为&内核空间&和&用户空间&?
Linux的虚拟地址空间的大小为4GB,内核将这4GB的空间分为两部分,较高的1GB(虚地址0xCxFFFFFFFF)供内核使用,称为&内核空间&;而较低的3GB(虚地址0xxBFFFFFFF)供各个进程使用,称为&用户空间&;因为每个进程可以通过系统调用进入内核,因此,内核空间由系统内的所有进程共享;于是,从具体进程的角度来看,每个进程都可以拥有4GB的虚拟地址空间(也叫做虚拟内存)。&
Q2.Linux是如何实现&请求调页&的?
1)如果被访问的页不在内存,也就是说,这个页还没有被存放在任何一个物理页面中,那么,内核分配一个新的页面并将其适当地初始化,这种技术称为&请求调页&;2)&请求调页&是一种动态内存分配技术,它将页面的分配推迟到不能再推迟为止,也就是说,一直推迟到进程要访问的页不在物理内存时为止,由此引起一个缺页异常;该技术的引入主要是因为进程开始运行时并不访问其地址空间中的全部地址。
中断和异常
Q1.什么是中断?什么是异常?二者有何不同?
1)中断控制是为克服对I/O接口采用程序查询控制服务方式所带来的处理器低效率而产生的,它的主要优点是只有在I/O接口需要服务时才能得到处理器的响应,而不需要处理器不断地进行查询;因此,最初的中断全部是对外部设备而言的,称为外部中断(或硬件中断);2)异常也叫做内部中断,它是为解决机器运行时所出现的某些随机事件及编程的方便而出现的;3)中断分为外部可屏蔽中断(INTR)和外部非屏蔽中断(NMI),所有I/O设备产生的中断请求(IRQ)均引起可屏蔽中断,而紧急事件(如硬件故障)引起的故障则产生非屏蔽中断;4)异常又分为故障(fault)和陷阱(trap),它们的共同特点是既不使用中断控制器,又不能被屏蔽(异常其实是CPU发出的终端信号)。
Q2.什么是中断向量?Linux是如何分配中断向量的?
(1)为使处理器可以容易地识别每种中断源,将256种向量中断从0到255进行编号,即赋以一个中断类型码n,把这个8位的无符号整数叫做向量,即中断向量;(2)Linux对256个中断向量的分配如下:1)编号为0~31的向量对应于异常和非屏蔽中断;2)编号为32~47的向量(即由I/O设备引起的中断)分配给可屏蔽中断;3)剩余的、编号为48~255的向量用来标识软中断;Linux只用其中的一个(即128或0x80向量)来实现系统调用。
Q3.什么是中断描述符表?什么是门描述符?
1)在实地址模式下,CPU将内存中从0开始的1KB空间作为一个中断向量表,表中每个表项占4个字节;但在保护模式,由4个字节的表项构成的中断向量表满足不了要求;因此在保护模式下,中断向量表中的表项由8个字节组成,中断向量表也改称为中断描述符表(IDT);2)IDT中的每个表项叫做一个门描述符(gate descriptor)。
Q4.门描述符有哪些类型?它们有什么不同?
门描述符中类型码占3位,表示门描述符的类型,主要分为以下几类:1)中断门(interrupt gate):其类型码为110,包含了一个中断或异常处理程序所在段的选择符和段内偏移量;2)陷阱门(trap gate):其类型码为111;3)系统门(system gate):是Linux内核特别设置的,用来让用户态的进程访问陷阱门。
Q1.什么是系统调用?为什么要引入系统调用?
(1)操作系统为用户态的进程与硬件设备(如CPU、磁盘和打印机等)之间的交互提供了一组接口,这些接口使得程序更具有可移植性,因为不同的操作系统只要所提供的一组接口相同,那么在这些操作系统之上就可以正确地编译和执行相同的程序,这组接口就是所谓的&系统调用&;(2)引入系统调用的原因有:1)这使得编程更加容易;2)这极大地提高了系统的安全性;3)最重要的一点,这些接口使得操作系统更具有可移植性。
内核中的同步
Q1.什么是临界区?什么是竞争状态?什么是同步?
1)临界区(critical regions)就是访问和操作共享数据的代码段,多个内核任务并发访问同一个资源通常是不安全的;2)如果两个内核任务可能处于同一个临界区,就是一种错误现象;如果确实发生了这种情况,就称它为竞争状态;3)避免并发和防止竞争状态称为同步(synchronization)。
Q2.简要介绍一下死锁及避免死锁的方法。
死锁包括自死锁和ABBA死锁,1)产生死锁有四个原因:互斥使用、不可抢占、请求和保持,以及循环等待;2)避免死锁的方法有:破坏&不可剥夺&条件、破坏&请求和保持&条件、破坏&循环等待&条件。
Q3.内核中造成并发执行的原因是什么?
&并发&分为&伪并发&和&真并发&两种,内核中造成并发执行的原因有以下几种:1)中断:它可能随时打断当前正在执行的代码;2)内核抢占:内核中的任务可能会被另一个任务抢占;3)睡眠及其与用户空间的同步:在内核执行的进程可能会睡眠,这就会唤醒调度程序,调度一个新的用户进程执行;4)对称多处理:两个或多个处理器可以同时执行代码。
Q4.给出信号量的定义,并说明down()和up()的含义。A:
1)Linux中的信号量是一种睡眠锁,它是1968年由Dijkstra提出的,如果一个任务试图获得一个已被持有的信号量,信号量会将其推入等待队列,然后让其睡眠;当持有信号量的进程将信号量释放后,在等待队列中的一个任务将被唤醒,从而可以获得这个信号量;2)信号量支持两个原子操作P()和V(),前者叫做测试操作,后者叫做增加操作;后来的系统把这两种操作分别叫做down()和up();3)down()操作通过对信号量计数减1来请求获得一个信号量;up()操作用来释放信号量,该操作也被称作&提升&(upping)信号量,因为它会增加信号量的计数值。
Q1.Linux目录树结构是怎样的?它与Windows的目录树结构有什么区别?为什么Linux的文件系统采用固定的目录形式?
文件是一个抽象的概念,它是存放一切数据或信息的仓库;1)Linux的目录树结构为:根目录(/)在上,其它的平行在下;2)Windows操作系统也是采用树型结构,但其树型结构的根是磁盘分区的盘符,有几个分区就有几个树型结构,它们之间的关系式并列的;而在Linux中,无论操作系统管理几个磁盘分区,这样的目录树只有一个;3)这样做的原因是:Linux是一个多用户系统,制定这样一个固定的目录规划有助于对系统文件和不同的用户文件进行统一管理;4)Linux中的文件类型包括:常规文件、目录文件、设备文件、管道文件和链接文件。
Q2.什么是虚拟文件系统?什么是虚拟文件系统界面?
1)将各种不同文件系统的操作和管理纳入到一个统一的框架中,使得用户程序可以通过同一个文件系统界面,也就是同一组系统调用,对各种不同的文件系统以及文件进行操作;用户程序可以不关心不同文件系统的实现细节,而使用系统提供的统一、抽象、虚拟的文件系统界面;这种统一的框架就是所谓的虚拟文件系统转换,一般简称虚拟文件系统(VFS);2)VFS的对象类型包括:超级块(superblock)对象、索引节点(inode)对象、目录项(dentry)对象和文件(file)对象;3)虚拟文件系统界面是虚拟文件系统所提供的抽象界面,它主要由一组标准的、抽象的操作构成,这些函数(操作)以系统调用的形式供用户调用。
Q1.为什么把设备分为&块设备&和&字符设备&两大类?A:
1)Linux将设备看成文件,具有三方面的含义:第一,每个设备都对应一个文件名,在内核中也就对应一个索引节点;第二,对文件操作的系统调用大都适用于设备文件;第三,从应用程序的角度看,设备文件的逻辑空间是一个线性空间;对于同一个具体的设备而言,文件操作和设备驱动是同一个事物的不同层次,概念上可以将一个系统划分为应用、文件系统和设备驱动三个层次;2)Linux将设备分为两大类,一类是像磁盘那样的以块或扇区为单位、成块进行输入/输出的设备,称为块设备;另一类是像键盘那样以字符(字节)为单位,逐个字符进行输入/输出的设备,称为字符设备;文件系统通常都建立在块设备上。
Q2.什么是设备驱动程序?
Linux中处理和管理硬件控制器的软件就是设备驱动程序。
Q3.I/O端口一般包括哪些寄存器?各自功能是什么?
1)I/O端口包括控制寄存器、状态寄存器和数据寄存器三大类;2)根据访问外设寄存器的不同方式,将CPU分为两大类:一类是&内存映射&(memory-mapped)方式,另一类是&I/O映射&(I/O- mapped)方式。
文章来源专栏在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。
问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
nginx服务器和我们平常用的linux操作系统(centos,ubuntu)有什么区别吗?能不能打个比喻?
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
比喻:操作系统:一个平台nginx:一个应用
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
nginx是一个提供web服务或者反向代理服务的一个程序,那两个是操作系统,都不是一类
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
Debian系的Ubuntu,Redhat系的CentOS,这些都是GNU/Linux发行版.Nginx是一个跨平台的Web服务器软件,可以运行在Unix-like系统(比如Linux/*BSD/macOS等)上,也可以运行在Windows上,甚至交叉编译后可以运行在Android/iOS这些设备上.
同步到新浪微博
分享到微博?
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:
在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。Linux和ubuntu的区别-嵌入式-创客学院
Linux和ubuntu的区别
大家听别人介绍自己的Ubuntu时,会听到“我的操作系统是Linux的”。其实,这样介绍是缺乏严谨性滴。我们只要知道两点,基本上就搞清楚Linux和Ubuntu的关系:
1. 严格来说,Linux并不是操作系统,而是一个操作系统的内核,严谨一些可以说:linux 一般指 GNU 套件加上 linux 内核。
2. Ubuntu基于linux内核的桌面PC操作系统,术语上喜欢称Ubuntu是一个 linux 发行版(因为debian(其实也是一款操作系统) 是 linux 的一个发行版,而 ubuntu 是属于 debian 系列的一个分支,所以...)。
下面我们深入一下下。首先,我们看看一个具有linux内核的操作系统包含哪些部分。一般包含四大部分:内核、shell、文件系统和应用程序。内核、shell和文件系统一起形成了基本的操作系统结构,它们使得用户可以很轻松地运行应用程序、管理文件并使用整个系统。
1. Linux应用程序
一个好的操作系统会提供一套方便于用户使用系统的应用程序,如文本编辑器、办公套件、Internet工具、数据库等。
2. Linux文件系统
文件系统是文件存放在存储设备(如磁盘)上的组织方法。如EXT2、EXT3、FAT、FAT32、VFAT等。
3. Linux Shell
Shell是操作系统系统的用户界面,提供了用户与内核进行交互操作的一种接口,是一个命令解释器。它接收用户输入的命令并把它送入内核去执行。
4. Linux内核
内核是操作系统的核心。一个操作系统是需要执行一些任务,如请求内存资源、执行计算, 连接网络,等等. Linux内核就负责处理所有这样的请求,就像人的大脑一样。
Linux内核从功能上讲具有五大模块化功能:进程管理、内存管理、文件系统管理、设备控制和网络管理。
4.1 进程管理的体现:
Linux内核负责进程创建和销毁, 并完成进程之间的通信,以及进程的输入和输出.而且,进程管理控制了多个进程对Soc上的一个或者多个cpu资源的使用
4.2 内存管理
内存资源的使用策略对操作系统性能体现来说,尤为重要。 内核在有限的内存资源上,为每一个进程建立了一个虚拟地址空间。 内核的不同功能部分与内存管理子系统通过一套函数调用交互, 使得通信高效简单。
4.3 文件系统管理
Linux操作系统中,几乎任何东西都可看作为一个文件(一切皆文件). 内核中大量使用kobject等结构体,来把一堆非结构化的硬件组织成一种多层次的数据系统。另外, Linux 支持多个文件系统类型。如ext4等
4.4 设备控制&
几乎任何一个操作系统最终都运行在一个物理平台上。内核中包含访问平台上硬件设备的驱动代码。
4.5 网络功能
大部分网络操作不会关联具体的进程,因为数据包的传输是异步事件。应用程序访问数据包之前,内核完成数据包的收集、标识和分发等任务。
那Ubuntu作为操作系统,具有什么特色呢?
目前看来,Ubuntu尊崇“免费开源和个性化”,拥有很人性化的亮丽的交互界面,强大的软件源支持,主流驱动大都可以在安装包中找到;另外因为Ubuntu是基于 debian 系列的,所以有 dpkg 套件可以在线获取安装软件,拥有完善的包管理机制,兼容性好,应用非常多,可以下载很多个性化小工具,个性化体验非常棒;可以说Ubuntu是Linux发行版中最好的PC操作系统。
因为这些原因,Ubuntu常常作为linux爱好者来学习linux应用编程和linux驱动开发的平台。linux与其他操作系统的开发有什么区别
linux与其他操作系统的开发有什么区别
09-02-26 &匿名提问
S40或S60是指诺基亚手机的上层平台。S40只能够支持java语言。采用S60平台的基本都是智能手机,所用底层操作系统是Symbian。 他们最显著的区别之一就是屏幕大小,诺基亚128x128屏幕都是S40 1.0。而128x160是S40 2.0,S60屏幕大小为208x176。 诺基亚对S40平台的定义是一个为大众市场准备的Java手机平台,S40平台与S60和S80平台不同,根据市场的定位,S40是构建在诺基亚的自己的封闭操作系统平台上的软件。封闭式的操作系统是指那些用户不能装卸任何第三方软件的操作系统。用户只可以通过s40的java平台来对软件进行手机的扩展。s40的机器比如有Nokia 、、、3200。诺基亚也授权其他一些厂商使用s40系统,如索尼爱立信T610/618/628西门子CX65/C65/CV65/CFX65摩托罗拉C650/C370/C380/E375/E398等。S40中,3100支持java MIDP 1.0,所以最大支持64KB的java;6230支持java MIDP 2.0,所以最大支持128KB的java。 S60是基于Symbian 操作系统,它有一个非常健全的核心——强大的对象导向系统、企业用标准通信传输协议以及完美的Sun Java语言。同时,由于这个系统为第三方应用程序开发商提供了一个开放、标准的开发平台,支持kjava和C++的开发。NOKIA7650、NOKIA3650、NOKIA6600、NOKIA7610、N-Gage和西门子SX1都是使用s60系统。我们举个通俗的例子,s40仿佛是计算机操作系统中的Windows,它可以安装各种应用软件,但是用户却不能对他绑定的ie浏览器或核心界面进行修改。s60仿佛是Linux,他不但支持各种应用软件,还支持用户对操作系统自身进行修改,加上许多特殊有趣的功能。 S90属于手持式设备,,也是Symbian 操作系统但是功能强劲,等同于一个PDA了。 其实技术来上说,S40跟S60是区别在系统平台上,就好像WIN98跟WIN2000,但手机不像PC,屏幕大小的确是个关口,以致于平台不容易做到向下兼容,但有的游戏也同样做出不同版本来的。当然啦,S40比S60不单单是屏幕上的差距,更大的是性能上的差距,一般来说,S60开发出来的游戏质量都比S40高好多,但可惜,S60比S40的手机又贵上许多。 诺基亚40系列举例:,,,,,,,。 诺基亚60系列举例:,,N-Gage。
请登录后再发表评论!Linux操作系统主要包括UNIX 操作系统、MINIX 操作系统、GNU 计划、POSIX 标准和Internet 网络。windows操作系统包括windows2003、windows2008、XP、win7等系统。这些windows系统和linux操作系统有哪些不同区别之处?
所谓的开放性就是linux操作系统是开放源码系统,可以对其程序进行编辑修改。而微软的windows系统是手微软版权保护,就是只能微软内部进行开发及修改。
2、价格不同
对于开放源码的linux系统,之所以它是可以对其进行修改代码而导致用途方面要比windows要广泛,而且也是免费使用。而微软开发的windows系统则是需要花费金钱去购买。
3、文件格式不同
windows 操作系统内核是NT,而linux 是另外,区别还在于:windows 硬盘文件格式是fat32或NTSF,而linux 需要的文件格式是ext2或ext3,该操作系统还多一个SWAP格式的交换分区;
在这里小编建议大家,如果是需要学习的话,建议使用linux系统,因为它的特点比较开放,有助于提升能力空间。当然如果需要实用的话还是使用windows系统,毕竟windows系统在兼容性方面还是要比linux要好很多,而且支持的软件也要比linux系统要多。
相信到这里大家对Linux与windows服务器系统的区别有所了解了吧,至于你到底是用什么系统或者觉得哪个系统好的话,都是看用户需求的。一般用linux系统的都是一些服务器空间商使用的多点。

我要回帖

更多关于 linux和windows的区别 的文章

 

随机推荐