操作系统linux复习

操作系统linux复习
操作系统linux复习

第一题:名词解释。

1、单内核:

单内核就是把它从整体上作为一个单独的大过程来实现,并同时运行在一个单独的地址空间。即所有内核服务都在一个大的内核空间中运行,内核可以直接调用函数。Linux是一个单内核,它运行在单独的内核地址空间。单内核模式具有简单和高性能的特点。

2、进程、线程、内核线程:

进程:一个进程就是处于执行期的程序以及它所包含的资源的总称。这些资源包括:打开的文件、挂起的信号、内核内部数据、处理器状态、地址空间及一个或多个执行线程等。

线程:线程是在进程中活动的对象,它为共享一个地址空间的程序提供多个执行线索,它可以共享打开的文件和其他资源。内核调度的对象是线程而不是进程,每个线程拥有一个独立的程序计数器、进程栈和一组进程寄存器。在Linux中每个线程和进程一样有唯一(唯一隶属自己)的task_struck,在内核看来与一般进程没有什么区别,当进程间选择性的共享地址空间时它可视为线程。

内核线程:独立运行在内核空间的标准进程,可以被调度,也可以被抢占,但是没有独立的地址空间,只在内核空间运行,负责完成内核在后台执行操作的任务,只能由其他内核线程创建。

3、进程上下文:

我们把系统提供给进程的处于动态变化的运行环境总和称为进程上下文,这些资源包括CPU的所有寄存器中的值、进程的状态以及堆栈中的内容,当前进程上下文均保存在进程的任务数据结构中。一般程序在用户空间运行,它执行了系统调用或者触发了某个异常,它就陷入了内核空间,此时我们称“内核代表进程执行”并处于进程上下文。

4、写时拷贝:

写时拷贝是指在需要写入的时候才进行资源复制,是一种可以推迟甚至免除拷贝数据的技术。Linux 的fork()使用写时拷贝数据实现,创建子进程时不需要立即给子进程拷贝数据,而是让父子进程以只读的方式共享没有修改的数据和空间,而当父子进程之一修改数据时则进行拷贝。

5、内核抢占/抢占:

内核抢占是指,当进程位于内核空间,若有一个更高优先级的任务出现时,可以将当前任务挂起,切换去执行优先级更高的进程,而这个强制挂起的动作叫抢占。可抢占的前提需要确保重新调度是安全的,即当前的任务没有持有锁,在这种情况下内核可以在任何时间抢占正在执行的任务。2.6版本后的Linux内核是可抢占式内核,具有上述允许内核优先执行高优先级任务的能力。

6、进程时间片:

进程时间片是指,进程在被抢占前所能持续运行的CPU时间,它是一个有系统调度策略设定的数值。Linux采用了预加载调度策略,每个进程只运行很短的时间:200毫秒;同时Linux调度程序还能根据进程的优先级动态调整分配给它的时间片,来保证高优先级的进程执行的高频率和长时间。

7、上下文切换:

从一个可执行的进程切换到另一个可执行的进程。由context_switch()函数负责完成,它完成了两项基本工作:1)把虚拟内存从上一个进程映射切换到新进程中;2)从上一个进程的处理器状态切换到新进程的处理器状态中,包括保存、恢复、栈信息和寄存器信息。

8、系统调用(※):

所有的操作系统在其内核里都有一些内建的接口函数,这些函数可以用来完成一些系统级别的功能。Linux系统使用的这样的函数叫做“系统调用”,英文是systemcall。这些函数代表了从用户空间到内核空间的一种转换,应用程序通过这些接口函数访问硬件设备和其他的操作系统资源。Linux中,系统调用是用户空间访问内核的唯一手段,除异常和陷入之外,它们是内核唯一的合法入口。

9、中断上下文:

当执行一个中断处理程序时或下半部时,内核处于中断上下文。硬件通过触发信号,导致内核调用中断处理程序,进入内核空间。这个过程中,硬件的一些变量和参数也要传递传递给内核,内核根据这些参数进行中断处理。所谓“中断上下文”,其实也可以看作就是硬件传递过来的这些参数和内核需要保存的一些其他环境。

10、中断机制:

当硬件处理I/O等操作时,内核在此期间处理其他事物而不等待硬件完成,当硬件直至完成了请求

的操作后,再通知内核回过头来处理,这就是中断机制。

11、触发软中断:

一个注册的软中断必须在被标记后才会执行,这被称作触发软中断(raising the softirq)。

12、临界区:(critical region)

访问和操作共享数据的代码段,整个临界区是一个不可分割的指令。

13、同步:

避免并发和防止竞争条件被称为同步(sysnchronization)。

14、死锁:

有一个或多个执行线程和一个或多个资源,每个线程都在等待其中的一个资源,但所有的资源都已经被占用了,所有线程都在相互等待,但它们永远不放弃已经占有的资源,于是任何线程都无法继续,这便发生了死锁。

15、竞争条件(race conditon):

多个线程或者进程在读写一个共享数据时依赖于它们执行的相对时间,这种情形叫竞争。这样的多个线程或者进程可能处于同一个临界区之中,竞争条件就发生在这多个进程或者线程在读写数据时,其最终的结果依赖于多个进程的指令执行顺序。

16、争用(lock contention)(8.4):

确切应该是锁的争用,是指当锁正在被占用时,有其他线程试图获得该锁。

17、自旋锁(9):

Linux内核最常见的锁。一个执行线程要想访问被自旋锁保护的共享资源,必须先得到锁,而自旋锁最多只能被一个可执行的线程持有。锁持有者在访问完共享资源后必须释放锁。而如果一个执行线程在获取自旋锁时,没有任何执行线程保持锁,则立即得到锁;若获取自旋锁时已经被持有,那么该线程

就会一直进行“忙循环”——“旋转”——“等待锁重新可用”的自旋锁,直到所要自旋锁的保持者释放锁,请求锁的执行线程便能立即得到它。

18、屏障:

所有可能重新排序和写的处理器提供了机器指令来确保顺序要求,同样也可以指编译器不要给定点周围的指令序列进行重新排序,这些确保顺序的指令叫屏障。

19、文件系统(p167):

文件系统是特殊的数据分层存储结构,它包括文件、目录和相关的控制信息,它负责管理和存储文件信息。文件系统的通用操作包含创建、删除和安装等等。

虚拟文件系统(VFS):作为内核子系统,为用户空间程序提供了文件系统相关的接口。系统中的所有文件系统不但依赖VFS共存,而且也依靠VFS系统协同工作。

21、软实时:

内核调度进程,尽力使进程在它的限定时间到来前运行,但内核不保证总能满足这些进程的需求。

22、延迟写:

当进程往磁盘上写数据时,先往高速缓存中写,以便随后又读它时,能从高速缓存中读取,而不必启动磁盘读取。Linux采取了“延迟写”策略,即:如果缓冲区还没有写满,则不急于把缓冲区的内容写到磁盘上,而是在缓冲管理数据结构中对该缓冲区设置延迟写标志,当高速缓存中的数据延迟到必须往磁盘上写的时候才进行写盘操作。

23、内核模块:

模块就是一个已编译但未连接的可执行文件。Linux是一个一体化内核,内核中各部件联系紧密,运行效率高;但是当因某种原因需要增加、扩充时,用户必须对内核全部编译一次,为弥补这个缺点,Linux建立了模块机制。

从内核角度看,模块是运行时可连接、可删除的,包含了至少两个函数的代码段。这个代码段一旦被连接到内核,它就是内核的一部分,所以称为内核模块。

从用户角度看,模块是内核的一个外挂的配件,需要时可将其挂接到内核,不需要时即可将其删除,

它为用户提供了扩充内核功能的??。

24、索引节点:

一个索引节点代表文件系统中(虽然索引节点仅当文件被访问时,才?创建)的一个文件,它也可以是设备或者管道这样的特殊文件。

二、问答题:

1、简述linux内核特点(1.3)。

答:Linux是单内核,但汲取了微内核的精华,其特点如下:

1)支持动态加载内核模块,可动态的卸除和加载部分内核代码;

2)支持对称多处理机制(SMP);

3)内核可抢占,允许内核执行高优先级的任务;

4)独特的线程实现,内核不区分线程和其他一般进程,一样都是task;

5)设备管理中提供具有设备类的面向对象的设备模型、热插拔事件、以及用户空间的设备文件系统;6)抛弃了Unix中拙劣的stream特性,忽略了一些实际上已经不会使用的过时标准;

7)自由,公开开发模型自由务实发展。

2、简述linux内核开发的差异(所注意的事项)(2.4)。

答:1)不能访问C库,对内核而言C库太大了,但大部分常用C库函数在内核中都有实现;

2)必须使用GNU C;

3)缺乏内存保护机制,内核中的内存都不分页;

4)浮点数很难使用,复杂繁琐,原则是不要在内核中使用浮点数;

5)只有容积很小且定长的堆栈;

6)内核支持异步中断、抢占和SMP,所以容易出现竞争条件,要求时刻注意同步和并发,设置同步机制保证不出现竞争条件,通过自旋锁和信号量解决竞争条件;

7)要注重可移植性。

3、进程创建的步骤(3.2)。

答:Linux创建进程大体上有两个步骤:

1)fork()函数通过拷贝当前进程创建一个子进程;

2)exec()函数负责读取可执行文件并将其载入到地址空间执行。

其中,Linux通过clone()系统调用实现fork(),由clone()去调用do_fork(),do_fork()调用copy_process()函数。

4、请画出进程状态转换图(3.1)。

答:

5、进程的终结(3.4)。P26

答:

6、linux2.6所实现的调度程序所实现的目标是什么(4.2)?

答:有效性:完成尽可能多的工作;交互性:尽快响应用户;公平性:不允许任何进程饥饿。

(1)充分实现O(1)调度。不管有多少进程,新调度程序采用的每个算法都能在恒定时间内完成;(2)全面实现SMP的可扩展性。每个处理器拥有自己的锁和自己的可执行队列;

(3)强化SMP的亲和力。尽量将相关一组任务分配给一个CPU进行连续执行;

(4)加强交互性能。即使在系统处于相当负载的情况下,也能保证系统的相应,并立即调度交互式进程;(5)保证公平。在合理设定的时间范围内,没有进程会处于饥饿状态,也没有进程能不公平的得到大量时间片;

(6)虽然常见的优化情况是系统中只有1-2个可运行进程,但是优化它也完全有能力扩展到具有多处理器每个处理器上运行多个进程的系统中。

7、请画出调度程序状态之间的关系(4.2)。

8、负载平衡程序的操作步骤(4.2.7)。

答:Linux为对称多处理器(SMP)系统中的每个处理器准备了单独的可执行队列和锁,而负载平衡程序则负责保证这些可执行队列之间的负载处于均衡状态。负载平衡程序由load_balance()函数实现,它

所完成的操作步骤归结如下:

(1)找最繁忙的可执行运行队列;

(2)从最繁忙的队列中选择一个优先级数组(过期的优先)以便抽取进程;

(3)选择含有进程并且优先级最高(值最小)的链表;

(4)选择一个不是正在运行的且不在高速缓冲的进程,可移动的进程抽取;

(5)重复上述步骤,直至平衡。

9、用户抢占发生在什么情况(4.3.1)?

答:在内核即将返回用户空间的时候,如果need_resched标志被设置,会导致schedule()被调用,此时就会发生用户抢占。也就是说,用户抢占在以下两种情况发生:

1)从系统调用返回用户空间;2)从中断处理程序返回用户空间。

10、内核抢占发生在什么情况(4.3.1)?

答:1)中断处理程序正在执行,且返回内核空间之前;

2)内核代码再一次具有可抢占性的时候(preemt_count重新为0);

3)内核中的任务显示的调用schedule();(处于核心态的任务直接调用schedule())

4)内核中的任务阻塞时(这同样也会导致调用schedule())。

11、请简述SCHED_FIFO与SCHED_RR实时调度的区别(4.4)。

答:SCHED_FIFO实现了一种简单的,先入先出的调度算法,它不使用时间片。SCHED_FIFO级的进程会比任何SCHED_NORMAL级的进程都先得到调度;SCHED_FIFO级进程不基于时间片,只要它处于可执行状态,就会一直执行,直到它自己受阻塞或显示的释放处理器为止。只有较高级的SCHED_FIFO或者SCHED_RR任务才能抢占SCHED_FIFO任务。

SCHED_RR与SCHED_FIFO大体相同,但是受时间片的限制。SCHED_RR级的进程在耗尽事先分配给它的时间片后就不能再接着执行了,也就是说,SCHED_RR是带有时间片的SCHED_FIFO,这是一种实时轮流调度算法。

12、系统调用作为进程与硬件之间的一个中间层所起的作用有哪些?(5)

答:系统调用在用户空间进程和硬件设备之间添加了一个中间层,该层主要有三个作用:

1)系统调用为用户空间提供了一种硬件的抽象接口;

2)系统调用保证了系统的稳定和安全;

3)系统调用是用户空间访问内核的唯一手段,除异常和陷入外,他们是内核唯一的合法入口。每个进程都运行在虚拟系统中,在用户空间和系统的其余部分提供这样一层公共接口,也是出于这种考虑。

13、中断为什么要分为上半部和下半部?解释tasklet思想。(6.2、7.3)

答:中断服务程序异步执行,可能会中断其他的重要代码,包括其他中断服务程序。因此,为了避免被中断的代码延迟太长的时间,中断服务程序需要尽快运行,而且执行的时间越短越好,所以中断程序只作必须的工作,其他工作推迟到以后处理。所以Linux把中断处理切为两个部分:上半部和下半部。上半部就是中断处理程序,它需要完成的工作越少越好,执行得越快越好,一旦接收到一个中断,它就立即开始执行。像对时间敏感、与硬件相关、要求保证不被其他中断打断的任务往往放在中断处理程序中执行;而剩下的与中断有相关性但是可以延后的任务,如对数据的操作处理,则推迟一点由下半部完成。下半部分延后执行且执行期间可以响应所有中断,这样可使系统处于中断屏蔽状态的时间尽可能的短,提高了系统的响应能力。实现了程序运行快同时完成的工作量多的目标。

中断的下半部可以通过多种机制实现,其中tasklet是常用的一种形式,而tasklet的实现基础是软中断。软中断作为下半部机制的代表随着SMP应运而生,它使得对时间不敏感的任务延后执行,而且可以在多个CPU上并行执行,它有以下特性:

(1)产生后并不马上可以执行,必须等待内核的调度才能执行。软中断不被自己打断,只能被硬件中断打断,或者唯一能抢占软中断的是上半部的中断处理程序;

(2)可以并发运行在多个CPU上(即使同一类型的也可以)。所以软中断必须设计可重入的函数(允许多个CPU操作),因此也需要使用自旋锁来保护。

那些执行频率很高、连续性要求很高并能高效完成加锁工作的应用才需要软中断,所以软中断的使用屈指可数——只有网络和SCSI直接使用软中断。而tasklet本身也是软中断,它和软中断在本质上很相似,行为表现也相近,tasklet内部对软中断进行了封装,外部接口更简单,锁保护也要求较低。它具有以下特性:

(1)一种特定类型的tasklet只能运行在一个CPU上,不能并行,只能串行;

(2)多个不同类型的tasklet可以并行在多个CPU上;

(3)软中断是静态分配的,在内核编译好后就不能改变,但tasklet就灵活许多,可在运行时改变。

Tasklet是在两种软中断类型的基础上实现的(HI_SOFTIRQ和TASKLET_SORFTIRQ),但是由于其特殊的实现机制,降低了设备驱动程序开发者的负担,因此如果不需软中断的并行性,tasklet就是最好的选

择。

14、请简述下半部机制中软中断、tasklet、工作队列的优缺点以及使用场合?(6.2 7.3 7.4)

答:软中断:

——优点:可以并发运行在多个CPU上(及时同一类型的也可以),具有可扩展性;

——缺点:必须使用可重入函数,对锁要求高,实际复杂度高,静态分配不灵活;

——适用场合:对时间要求严格、执行频率很高和连续性要求很高的情况;

Tasklet:

——优点:接口更简单,锁保护要求低,而且两个不同类型的tasklet不能同时执行,所以实现简单,动态可变灵活性好,是有效的软中断;

——缺点:只能运行在一个CPU上,不能并发;

——使用场合:在不要求扩展到多CPU的话,尽可能选择tasklet而不是软中断。不能很好线程化的代码,tasklet意义更大;

工作队列:

——优点:

——缺点:造成的开销最大,因为要牵扯到内核线程甚至是上下文切换;

——使用场合:如果中断的延期工作需要运行于进程上下文,工作队列是唯一的选择。

15、造成并发执行的原因有哪些?

答:1)中断——中断集合可以在任何时刻异步发生,也就是可能随时打断当前正在执行的代码;

2)软中断和tasklet——内核能在任何时刻唤醒或调度软中断和tasklet,打断当前任务;

3)内核抢占——因为内核具有抢占性,所以内核中的任务可能会被另一任务抢占;

4)睡眠及用户空间的同步——在内核执行的进程可能会睡眠,这就会唤醒调度程序,从而导致调度一个新的用户进程执行;

5)对称多处理——两个或多个处理器可以同时执行代码。

16、请简述在分配内存中,如何选择内存分配函数。(11.6、11.13 P65)

答:(alloc_page、kmalloc、vmalloc、slab)

1)需要连续的物理页,就可以使用某个低级页分配器或kmalloc(),这是内核中默认分配常用方式;

2)想从高端内存进行分配,就使用alloc_pages(),alloc_pages()函数返回一个指向struct page结构的指针,struct page结构的指针是访问相应高端内存的唯一方式;而不是一个指向某个逻辑地址的指针,因为高端内存很多没有被映射;

3)不需要物理上连续的页,而仅仅需要虚拟地址上连续的页,那就使用vmalloc()函数,vmalloc()函数分配的内存虚拟地址是连续的,但它本身并不保证物理上的连续性,相对相对kmalloc()来说,有一定的性能损失;

4)创建和销毁很多较大的数据结构,那么应考虑建立slab高速缓存,slab层为每个CPU维持一个对象高速缓存(空闲链表),极大的提高对象分配和回收的性能。

17、请简述硬连接与软连接的区别(12)。

答:Unix下每个文件都有一个与之相关联的数据结构用来描述该文件的信息,这个数据结构就是inode。创建硬连接只是创建一个指针,一个指向inode的指针,所以硬连接不占磁盘空间。多个目录项对应一个inode号;连接计数变为0时,文件被删除。硬连接的创建有两个限制:1)不能为目录创建硬连接,避免循环;2)不能跨文件系统或者跨分区创建硬连接。

软连接也叫符号连接,它本身是一个独立的较小的文件,指向新创建的inode,是文件的另一个路径的别名。软连接的创建没有限制,但是可能会造成循环。

18、请简述find_vma()与find_vma_prev()及find_vma_intersection()之间的区别。(14.3)

答:它们都是内核定义来管理内存区域的辅助函数,区别如下:

find_vma()函数在指定的地址空间中搜索第一个vm_end大于add的内存区域,即该函数寻找第一个包含addr或首地址大于addr的内存区域,如果没有发现这样的区域,该函数返回NULL,否则返回指向匹配的内存区域的vm_area_struct结构体指针;

find_vma_intersection()与find_vma()工作方式相同,但是它返回第一个vm_end小于addr的vm_end,find_vma_intersection()函数返回第一个和指定地址区间相交的VMA。

19、如何创建地址区间?(14.4)

答:在用户空间通过mmap()系统调用获取内核函数do_mmap()的功能,内核使用do_mmap()函数创建一个新的线性地址区间,如果创建的地址区间和一个已经存在的地址区间相邻,并且他们具有相同的访问权限的话,那么两个区间合并一个,如果不能合并,那么就确实需要创建一个新的VMA了,但无论

哪种情况,do_mmap()函数都会将一个地址区间加入到进程的地址空间中——无论是扩展已存在的内存区域还是创建一个性的区域。

20、如何删除地址区间?(14.5)

答:系统调用munmap()函数给用户空间程序提供了一种从自身地址空间中删除指定地址区间的方法,它是对do_munmap()函数的一个简单的封装。Do_munmap()函数从特定的进程地址空间中删除指定地址空间。

21、信号量与自旋锁的区别?

答:当一个进程试图获取一个被占用的自旋锁时,它必须不断的查看锁是否被释放,而对信号量来说,进程不必一直忙等,而是把自己登记到一个等待队列中,然后自己睡觉去了。

信号量:适用于锁会被长时间持有的情况;

自旋锁:适用于被短时间占有的锁。

22、同步的方法。

答:原子操作:是指不会被线程调度机制打断的操作,这种操作一点开始,就一直运行到结束,中间不会切换到另一个线程;

自旋锁:为了实现保护共享资源,防止多处理器并发而提出的一种锁机制。一个执行单位要想访问被自旋锁保护的共享资源必须先得到锁,否则将自旋等待获取锁;

信号量:是一种睡眠锁,没有获得信号量的任务则进入等待队列睡眠,直到信号量被释放后才被唤醒,获得信号量去执行;是在多线程环境下用来保证两个或多个关键代码段不被并发调用的一种设施。在进入一个关键代码段线程必须获取一个信号量,执行完成后释放信号量;

完成变量:若在内核中一个任务需要发出信号通知另一个任务发生了某个特定事件,则使用完成变量,完成变量唤醒在完成变量上等待的任务;

BKL(大内核锁):大内核锁基于小等待自旋锁,是一个全局自旋锁,可以使一个进程多次请求锁(递归锁),保证一个进程只能取得一次锁,在释放前任何锁定动作都不会导致实质上再次锁定,这样避免本进程多次锁定而导致死锁。

23、对进程控制块的处理,Linux和Unix有什么区别?为什么有这种区别?有什么好处?

答:1)Unix的进程控制块由基本控制块proc结构和扩充控制块user结构两部分组成。

——Proc结构中存放关于一个进程的最基本、最必须的信息,因此它常驻内存;

——User结构中存放着只有进程运行时才用到的数据和状态信息,因此为了节省主存空间,当进程暂时不在处理机上运行时,就把它放在磁盘上的对换区中。进程的user结构总和进程数据段一起换入换出主存;

2)Linux中slab分配器动态分配task_struct,对象复用和缓存。

3)造成这种却别是由于内存的限制,早期Unix时代机器内存小,分部处理节省内存空间;而随着技术进步内存有了显著提升,Linux的处理方式更加高效、快速。

24、进程与线程有什么区别?Linux线程是如何实现的?

答:进程是出于执行期的代码以及它包含的资源的总称,而线程是进程中活动的对象。进程是资源管理的最小单位,线程是程序执行的最小单位,内核调度的对象是线程而不是进程。采用线程是为了更好的支持SMP以及减小上下文切换的开销,因为线程上下文切换开销比进程小多了。一个进程至少需要一个线程作为它的指令执行体,进程管理着资源,将线程分配到某个CPU上执行,SMP中可使用多个CPU 执行各个线程,达到最大程度的并行。

Linux线程的实现:Linux实现线程的机制非常独特,内核把所有的线程都当做进程来实现,线程只被视为一个与其它进程共享某些资源的进程。每个线程拥有独立的程序计数器、进程栈和一组进程寄存器,并且和进程一样拥有唯一隶属于自己的task_struct。

25、有几种锁?按理只要设计一种锁对要访问的关键数据加锁就可以了,为什么要设计几种锁?这几种锁有什么区别?

答:有五种锁:原子操作;自旋锁;信号量;BKL;seq锁;

使用锁的上下文环境不同,加锁的时间长短不同,维护锁的开销不同,所以要设计几种锁来适应不同使用情况。

原子操作保证指令执行过程不被打断;自旋锁快速简单,加锁时间不长且代码不会休眠;而信号量则适用于加锁时间长且允许睡眠的情况;而BKL锁允许递归使用,不会出现死锁,但很少被使用且是有害的;seq锁适用读写共享数据,轻量级,对写者有利,读者循环等待。

26、举例说明Linux操作系统中,哪些地方实现了面向对象的思想?

答:面向对象的思想有三个基本特征:封装、继承、多态。

封装就是把方法和属性包装起来,实现信息隐蔽和抽象;继承是指一个对象直接使用另一个对象的属性和方法;而多态是指接口的多种不同的实现方式。

Linux内核中多种技术都体现了面向对象的设计思想,下面分别从面向对象的三个特征分别阐述:1)文件系统的file对象,file对象只定义了方法的原型而没有事项。具体方法的实现由具体的文件系统提供。内核中重要数据结构都进行封装,如文件系统中的inode对象,内存管理中的page对象、cache对象和slab对象,网络实现部分中的sochet缓冲对象、struct sk_buff等;

2)内核中的通用链表结构可看作一个基类。对它的基本操作是链表节点插入、删除、初始化和移动,而其他数据结构可视为它的子类。若它们要组织成双向链表,可以在链表节点中包含这个通用链表对象,而使用通用链表的数据结构遍及内核的各个部分:进程调度、存储器管理、文件系统、网络协议栈等。

3)虚拟文件系统(VFS)典型的体现了多态性。VFS可看作抽象基类,而具体的文件系统如ext2、VFAT可看作它的子类,VFS提供的操作函数集是一个纯虚函数概念,具体实现由实现文件系统提供。

27、中断上下文和进程上下文的区别?中断是否一定要在中断上下文中?

答:用户空间的应用程序通过系统调用进入内核空间,此时进程要传递很多变量,参数的值给内核,内核态运行时也要保存用户进程的一些寄存器值、变量号。所谓“进程上下文”,可以看作是用户进程传递给内核的这些参数以及内核要保存的那些变量和寄存器的值和当时的环境。

硬件通过触发信号,导致内核调用中断处理程序,进入内核空间,这个过程硬件的一些变量也要传递给内核,内核根据这些参数进行中断处理。所谓“中断上下文”可以看作是硬件传递的参数和内核需要保存的一些其他环境。

当某进程在执行时被内核切换去执行另一个进程,则它要保存当前的进程上下文一保证再次执行进程时能够获得切换时的状态并执行下去。

发生中断时,内核就在被中断进程上下文中,在内核态下执行中断服务例程,但同时保留所需要的资源,以便中断服务结束后能恢复被中断进程的执行。

当执行一个中断处理程序或下半部时,内核处于中断上下文。进程上下文可以睡眠,而中断上下文不可睡眠,两者之间没有瓜葛。

28、task_struct的作用,10个以上成员及其作用?

答:在Linux中每个进程都由task_struct数据结构来定义。进程的所有操作都要依赖task_struct,task_struct是进程存在的唯一标志,创建进程时,系统会为我们产生一个task_struct结构,然后从父进程那里继承一些数据,并把新进程插入到进程树中,以待进行进程管理。

下面列举一些task_struct结构中的成员以及它们的作用:

1)stae——标识进程的当前状态;

2)flags——进程标识;

3)addr_limit——线程地址空间;

4)has_cpu——获取的处理器;

5)priority——进程优先级;

6)lock_depth——锁深度;

7)pid_t pid——进程标识号;

8)pid_t pgrp——进程组号;

9)struct mm_struct *mm——内存管理信息;

10)struct fs_struct *fs——系统跟踪进程所打开的文件;

11)struct files_struct *files——用户打开的文件表;

linux操作系统考试试卷(含答案)B

试卷编号02 拟题教研室(或教师)签名教研室主任签名 长沙理工大学考试试卷……………………………………………………………………………………………………………… 课程名称(含档次)linux操作系统课程代号 专业层次(本、专)考试方式(开、闭卷)开 一、单项选择题(每题2分,共40分) 1获取命令find的用法帮助,可以使用() A.help find B.whichi find C.find help D.man find 2.检查硬盘上每个目录所占用的硬盘块数目,使用的命令是() A.blocks B.df C.free D.du 3.Cat命令不能实现以下()项功能。 A.建立文件B.连接文件 C.编辑文件内容D.浏览文件内容 4.如果要把一个文件移动或者拷贝到其他位置,希望在不小心覆盖已经存在的文件的时候受到警告,则在使用cp或mv命令的时候应该加上什么选项?()A.-w B.-i C.-r D.-F 5.为了重新命名一个文件,应该使用哪个命令?() A.mv B.chdir C.ren D.md 6.改变文件的属主,可使用命令() A.chmod B.chgrp C.chown D.umask 7.一般可以使用()命令来结束一个进程。 A.ps B.kill C.nohup D.nice 8. 6. /dev/sdc6分区表示( ) A. 第2块IDE硬盘的第6个分区,是逻辑分区 B.第3块IDE硬盘的第6个分区,是逻辑分区 C. 第3块SCSI硬盘的第6个分区,是逻辑分区

D.第3块SCSI硬盘的第2个分区,是逻辑分区 9.下列文件存取权限中,()权限不属于Linux系统。 A.读权限B.写权限C.复制权限D.执行权限 10.查看当前shell中进程的详细信息,可以使用命令() A.ps -ef B.ps -f C.ps –e D.ps -u 11.权限字串-rwxr-xr--所对用的八进制权限串是() A.754 B.761 C.366 D.531 12.root文件系统一旦安装完毕,内核将启动名为()的程序,这也是指导过程完成后,内核运行的第一个程序。 A.login B.rc.d C.init D.startup 13.在下列操作符号中,()是管道操作符。 A.|B.》 C.< D.> 14.Linux系统中不存在下列哪种基本文件类型?() A.普通文件B.系统文件C.目录文件D.连接文件 15.Linux系统能够直接读取的分区类型是() A.NTFS B.FAT16 C.FAT32 D.ext3 16.建立一个新文件可以使用的命令为() A.chmod B.more C.cp D.touch 17.下面哪个文件包含了主机名到ip地址的映射关系?() A./etc/hostname B./etc/hosts C./etc/resolv.conf D./etc/networks 18.使用匿名登录ftp时,用户名为?() A.users B.anonymous C.root D.guest 19.在下列命令中,不能显示文本文件内容的命令是?() A.more B.less C.tail D.join 20.使用$cd~命令后,进入的目录是?() A.用户的家目录B./ C.~ D./tmp

linux网络操作系统和实训课后习题答案解析(1)

练习题 一、选择题 1. Linux 最早是由计算机爱好者 B 开发的。 A. Richard Petersen B. Linus Torvalds C. Rob Pick D. Linux Sarwar 2. 下列 C 是自由软件。 A. Windows XP B. UNIX C. Linux D. Windows 2000 3. 下列 B 不是Linux 的特点。 A. 多任务 B. 单用户 C. 设备独立性 D. 开放性 4. Linux 的内核版本2.3.20 是 A 的版本。 A. 不稳定 B. 稳定的 C. 第三次修订 D. 第二次修订 二、填空题 1. GUN 的含义是:GNU's Not UNIX。 2. Linux 一般有 3 个主要部分:内核(kernel)、命令解释层(Shell 或其他操作环境)、 实用工具。 三、简答题(略) 1. 简述Red Hat Linux 系统的特点。 2. 简述一些较为知名的Linux 发行版本。 练习题 一、选择题 1. Linux 安装过程中的硬盘分区工具是 D 。 A. PQmagic B. FDISK C. FIPS D. Disk Druid 2. Linux 的根分区系统类型是 C 。 A. FATl6 B. FAT32 C. ext3 D. NTFS 二、填空题 1. 安装Linux 最少需要两个分区,分别是 swap 交换分区和/(根)分区。 2. Linux 默认的系统管理员账号是 root 。 3. X-Window System 由三部分构成:X Server、X Client 和通信通道。 三、简答题(略) 1. Linux 有哪些安装方式 2. 安装Red Hat Linux 系统要做哪些准备工作 3. 安装Red Hat Linux 系统的基本磁盘分区有哪些 4. Red Hat Linux 系统支持的文件类型有哪些 练习题 一、选择题 1. C 命令能用来查找在文件TESTFILE 中包含四个字符的行 A. grep’’TESTFILE B. grep’….’TESTFILE C. grep’^$’TESTFILE D. grep’^….$’TESTFILE 2. B 命令用来显示/home 及其子目录下的文件名。 A. ls -a /home B. ls -R /home C. ls -l /home D. ls -d /home 3. 如果忘记了ls 命令的用法,可以采用 C 命令获得帮助 A. ls B. help ls C. man ls D. get ls 4. 查看系统当中所有进程的命令是 D 。 A. ps all B. ps aix C. ps auf D. ps aux

献给初学者:谈谈如何学习Linux操作系统

献给初学者:谈谈如何学习Linux操作系统 一、选择适合自己的linux发行版 谈到linux的发行版本,太多了,可能谁也不能给出一个准确的数字,但是 有一点是可以肯定的,linux正在变得越来越流行,面对这么多的Linux发行版,打算从其他系统转到linux系统来的初学者可能会感到困惑,即便是忠实的 Linux用户也没有时间和精力去挨个尝试,因此初学者在学习linux的之前,需 要有一个明确的方向,选择一个适合自己的系统开始学习linux至关重要!下面 我们就分类介绍。 1.1初学者入门首选-redhat系列 在学习redhat系列linux之前,首先要了解以下redhatlinux各个发行版本之 间的关系。 1.RedHatLinux RedHatLinux是redhat最早发行的个人版本的linux,其1.0版本于1994年11月3日发行。虽然其历史不及其它linux发行版本悠久,但比起很多的Linux 发行套件,RedHat的历史悠久得多。自从RedHat9.0版本发布后,RedHat公司就不再开发桌面版的Linux发行套件,RedHatLinux停止了开发,而将全部 力量集中在服务器版的开发上,也就是RedHatEnterpriseLinux版。2004年4 月30日,RedHat公司正式停止对RedHat9.0版本的支持,标志著RedHatLinux的正式完结。原本的桌面版RedHatLinux发行套件则与来自开源 社区的Fedora进行合并,成为FedoraCore发行版本。 目前RedHat分为两个系列:由RedHat公司提供收费技术支持和更新的RedHatEnterpriseLinux,以及由社区开发的免费的FedoraCore。 2.FedoraCore FedoraCore(缩写为FC)被红帽公司定位为新技术的实验场地,许多新的技 术都会在FC中检验,如果稳定的话红帽公司则会考虑加入RedHatEnterpriseLinux中。 FedoraCore1发布于2003年年末,而FC的定位便是桌面用户。FC提供了 最新的软件包,同时,它的版本更新周期也非常短,仅6个月。由于版本更新 频繁,性能和稳定性得不到保证,因此,一般在服务器上不推荐采用FedoraCore。 其实可以这么认为,Fedora就是RedHat发行RedHat企业版linux的一个 实验版本,以用户做测试,为RedHat企业版发布奠定基础。 3.RedHatEnterpriseLinux RedHatEnterpriseLinux(缩写为RHEL,RedHat的企业版)。RedHat现在主要做服务器版的linux开发,在版本上注重了性能和稳定性以及对硬件的支持。由于企业版操作系统的开发周期较长,注重性能、稳定性和服务端软件支持, 因此版本更新相对较缓慢。

Linux期末考试试题8套(含答案)

Linux 期末考试试题(一) 一、选择题 (每小题2分,共50分) 1.在创建Linux分区时,一定要创建(D )两个分区 A. FAT/NTFS B. FAT/SWAP C. NTFS/SWAP D.SW AP/根分区 2.在Red Hat Linux 9中,系统默认的(A)用户对整个系统拥有完全的控制权。 A. root B. guest C. administrator D.supervistor. 3. 当登录Linux时,一个具有唯一进程ID号的shell将被调用,这个ID是什么( B ) A. NID B. PID C. UID D. CID 4. 下面哪个命令是用来定义shell的全局变量( D ) A. exportfs B. alias C. exports D. export 5. 哪个目录存放用户密码信息( B ) A. /boot B. /etc C. /var D. /dev 6. 默认情况下管理员创建了一个用户,就会在( B )目录下创建一个用户主目录。 A. /usr B. /home C. /root D. /etc 7. . 当使用mount进行设备或者文件系统挂载的时候,需要用到的设备名称位于( D )目录。 A. /home B. /bin C. /etc D. /dev 8. 如果要列出一个目录下的所有文件需要使用命令行( C )。 A. ls –l B. ls C. ls –a(所有) D. ls –d 9. 哪个命令可以将普通用户转换成超级用户(D ) A. super B. passwd C. tar D. su 10. 除非特别指定,cp假定要拷贝的文件在下面哪个目录下( D ) A. 用户目录 B. home目录 C. root目录 D. 当前目录 11. 在vi编辑器里,命令"dd"用来删除当前的( A ) A. 行 B. 变量 C. 字 D. 字符 12. 当运行在多用户模式下时,用Ctrl+ALT+F*可以切换多少虚拟用户终端( B ) A. 3 B. 6 C. 1 D. 12 13. Linux启动的第一个进程init启动的第一个脚本程序是( B )。 A./etc/rc.d/init.d B./etc/rc.d/rc.sysinit C./etc/rc.d/rc5.d D./etc/rc.d/rc3.d 14. 按下(A )键能终止当前运行的命令 A. Ctrl-C B. Ctrl-F C. Ctrl-B D. Ctrl-D 15. 下面哪个命令用来启动X Window ( C ) A. runx B. Startx C. startX D. xwin 16. 用来分离目录名和文件名的字符是( B ) A. dash (-) B. slash (/) C. period (.) D. asterisk(*) 17. 用"rm -i",系统会提示什么来让你确认( B ) A. 命令行的每个选项 B. 是否真的删除 C. 是否有写的权限 D. 文件的位置 18. 以下哪个命令可以终止一个用户的所有进程( D ) A. skillall B. skill C. kill D. killall 19.在Red Hat Linux 9中,一般用(D )命令来查看网络接口的状态 A. ping B. ipconfig C. winipcfg D ifconfig 20. vi中哪条命令是不保存强制退出( C )(第五章) A. :wq B. :wq! C. :q! D. :quit

Linux操作系统部分复习题答案

第一章 Linux系统简介 一、思考题 1.UNIX的大部分代码是用一种流行的程序设计语言编写的,该语言是什么? C语言 2.UNIX系统的特点有哪些? ·多任务 ·多用户 ·并行处理能力 ·设备无关性 ·工具 ·错误处理 ·强大的网络功能 ·开放性 3.什么是Linux?其创始人是谁? Linux是一个功能强大的操作系统,同时它也是一个自由软件,是免费的、源代码开放的、可以自由使用的UNIX兼容产品。其创始人是Linus 4.Linux操作系统的诞生、发展和成长过程始终依赖者的重要支柱都有哪些? ·UNIX操作系统 ·MINIX操作系统 ·GNU计划 ·POSIX标准 ·Internet 5.简述Linux系统的特点。 ·自由软件 ·良好的兼容性 ·多用户、多任务 ·良好的界面 ·丰富的网络功能 ·可靠地安全性、稳定性 ·支持多种平台 6.常见的Linux的发行版本有哪些? ·Red Hat Linux ·Caldera OpenLinux ·SuSE Linux ·TurboLinux ·红旗Linux ·中软Linux 二、选择题 1.Linux最初是以MINIX 操作系统为模板而开发出来的。 2.关于Linux核版本的说法,下列选项中错误的是(C)。 A.表示为主版本号.次版本号.修正号B.1.2.3表示稳定的发行版 C.1.3.3表示稳定的发行版D.2.2.5表示对核2.2的第5次修正 (补充:次版本号为偶数的是稳定版本;为奇数的则是测试版本。)

3.Linux属于自由软件。 4.自由软件的含义是软件可以自由修改和发布。 5.一下不具有多任务性的操作系统是DOS 第二章 Linux系统入门 一、思考题 1.Linux系统有哪些运行级别?其含义是什么? 可用级别为0~6,其中0:关闭系统;6:重新启动,其他略。 2.Linux系统下经常使用的两种桌面环境是什么? GNOME和KDE 3.什么是X-Window系统?它有什么特点? 图形界面(X-Window)是在Linux操作系统中提供的图形化用户界面(GUI),其支持的视窗系统也称为X,它的特点有:它采用了“客户端-服务器”模式;它是一个跨平台的操作环境。 7.默认情况下,超级用户和普通用户的登录提示符分别是什么? # 和 $ 二、选择题 1.系统引导的过程一般包括如下的几步:①MBR中的引导装载程序启动。②用户登录。③Linux核运行。④BIOS自检。正确的顺序是④①③②。 2.Linux中使用Ctrl+Alt+BackSpace 组合键可以关闭X-Window图形用户界面。 3.字符界面下使用init命令关机所用的参数是0 。(参数6是重新启动) 4.字符界面下使用shutdown命令重启计算机时所用的参数是–r 。 5.使用man命令调阅相关的帮助信息时,用于逐页地下翻的功能键是Space 。 第三章 shell与shell命令 一、思考题 1.shell的基本功能有哪些? 命令解释执行、文件名替换、输入/输出重定向、连同管道建立、系统环境设置和shell编程。 2.Linux系统中的主要目录有哪些? /:系统的根目录 /dev:系统的设备目录 /home:用户主目录 /root:root用户主目录 /boot:Linux的启动目录 /usr:用户级目录 3.工作目录及其父目录课分别用什么表示? . 和 .. 5.常用的shell环境变量有哪些? ·HOME:用户家目录的完全路径名 ·LOGNAME:登录用户名 ·IFS:命令行部域分割符 ·PATH:由冒号分隔的目录路径名

浅谈操作系统(操作系统论文)

浅谈操作系统 摘要 随着科学技术的不断发展与创新,计算机得到了广泛的普及和应用,同时计算机的操作系统也在不断的发展和完善当中。21世纪是信息的时代,最重要的体现就是计算机技术的广泛应用及发展,操作系统作为计算机系统的基础是管理计算机软硬件资源、控制程序运行、改善人机界面和为应用软件提供支持的一种系统,本文主要是通过对操作系统及其发展情况来进行分析,了解计算机操作系统发展的基本情况,阐述未来操作系统的发展趋势,从而促进计算机技术的不断的进步。 关键词:计算机;操作系统;发展; 一、计算机操作系统的发展史 操作系统是管理计算机硬件资源,控制其他程序运行并为用户提供交互操作界面的系统软件的集合。操作系统是计算机系统的关键组成部分,负责管理与配置内存、决定系统资源供需的优先次序、控制输入与输出设备、操作网络与管理文件系统等基本任务。操作系统所处位置作系统是用户和计算机的接口,同时也是计算机硬件和其他软件的接口。 原始的操作系统主要是从批次模式开始,然后逐渐的发展到分时机制的模式,后来由于多处理器时代的到来,整个操作系统也逐渐有多处理器的协调功能,继而出现了分布式的系统。操作系统主要发展可分为四个阶段:纯手工操作阶段、批次处理阶段、多道程序系统阶

段及现代操作系统阶段。整个系统的发展主要面临着技术上的难题,主要体现的是计算机硬件技术的发展限制了软件的发展和操作系统的不稳定性。 二、计算机中常用的操作系统 计算机操作系统作为计算机系统的基础是管理电脑软硬件系统的程序。计算机系统的种类多,经常是通过应用领域来划分的,其中应用程序主要是包括桌面、服务器、主机以及嵌入几个应用领域的操作系统。常用的操作系统分类如下。 1.Windows系统 Windows系统作为计算机内较为常见的操作系统,在人们的日常生活和学习中都应用的较为普遍,Windows系统作为现代最为流行的操作系统,其在技术方面也是非常成熟的。目前最新版本的Windows 操作系统为Windows10。 2.UNIX系统 UNIX系统有自身较为统一的实施标准和认证规范,并且利用该规范,还可以对UNXI系统进行程序的移植,并且促进了UNIX的发展及应用程序的开发,UNXI已经开始作为大型机器、网络服务器及工作中的主流操作系统,并且其自身的发展还在一定的程度上推动了Linux等开源UNIX类操作系统的发展。 3.Linux系统 Linux系统是在UNIX的基础上进行发展的,其开源模式的软件环境极其价值越来越受到社会,并且其软件的运行环境及其价值越来

LInux嵌入式操作系统期末试题

简答题:请简单概括什么是嵌入式系统、并举出嵌入式系统的特点;(6分) 答: 嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可剪裁,适用于应用系统,对功能、可靠性、成本、体积、功耗等方面有特殊要求的专用计算机系统; 其特点如下: (1)嵌入式系统是面向特定系统应用的。 (2)嵌入式系统涉及计算机技术、微电子技术、电子技术、通信和软件等各个行业; 是一个技术密集、资金密集、高度分散、不断创新的知识集成系统; (3)嵌入式系统的硬件和软件都必须具有高度可定制性;只有这样才能适应嵌入式系统应用的需要,在产 品价格和性能方面具备竞争力; (4)嵌入式系统的生命周期相当长。 (5)嵌入式系统不具备本地系统开发能力,通常需要有一套专门的开发工具和环境。 嵌入式操作系统的优势:1.低成本开发系统 2.可应用多种硬件平台 3.可定制内核 4.性能优异 5.良好的网络支持 linux文件类型:1.普通文件2.目录文件3.链接文件4.设备文件a.块设备文件(硬盘:/dev/hda1)b.字符设备(串行端口接口设备) linux文件属性:访问权限:r:可读w:可写x:可执行用户级别:u:文件拥有者g:所属用户组o:其他用户第一个字符显示文件类型:- 普通 d 目录 l 链接… 简答题:(6分) linux目录结构:/bin 存放linux常用操作命令的执行文件(二进制文件) /boot 操作系统启动时所需要的程序 /dev Linux系统中使用的外部设备 /etc 系统管理时所需要的各种配置文件和子目录 /etc/rc.d Linux启动和关闭时要用到的脚本 /etc/rc.d/init Linux默认服务的启动脚本 /home 系统中默认用户工作根目录 /lib 存放系统动态链接共享库 /mnt软驱、光驱、硬盘的挂载点 /proc存放系统核心与执行程序所需信息、 /root超级用户登陆时的主目录 /sbin 存放管理员常用系统管理程序 /usr存放用户应用程序和文件 /var存放日志信息(答六点即可) 编写一个shell文件:创建studen01 –student30这30个用户,用户组为class1,之后编写shell文件,删除所有用户 操作步骤:1.打开Terminal(终端): 2.输入vi shell 3.输入i 进入编辑模式 4.输入 #!/bin/bash groupadd class1 for((i=1;i<10;i++)) do username=student0$i

Linux操作系统期末复习题(含答案)

Linux 期末复习题(一) 一、选择题 (每小题2分,共50分) 2.在Ubuntu Linux中,系统默认的(A)用户对整个系统拥有完全的控制权。 A. root B. guest C. administrator D.supervistor. 3. 当登录Linux时,一个具有唯一进程ID号的shell将被调用,这个ID是什么( B ) A. NID B. PID C. UID D. CID 4. 下面哪个命令是用来定义shell的全局变量( D ) A. exportfs B. alias C. exports D. export 5. 哪个目录存放用户密码信息( B ) A. /boot B. /etc C. /var D. /dev 6. 默认情况下管理员创建了一个用户,就会在( B )目录下创建一个用户主目录。 A. /usr B. /home C. /root D. /etc 7. . 当使用mount进行设备或者文件系统挂载的时候,需要用到的设备名称位于( D )目录。 A. /home B. /bin C. /etc D. /dev 8. 如果要列出一个目录下的所有文件需要使用命令行( C )。 A. ls –l B. ls C. ls –a(所有) D. ls –d 9. 哪个命令可以将普通用户转换成超级用户(D ) A. super B. passwd C. tar D. su 10. 除非特别指定,cp假定要拷贝的文件在下面哪个目录下( D ) A. 用户目录 B. home目录 C. root目录 D. 当前目录 11. 在vi编辑器里,命令"dd"用来删除当前的( A ) A. 行 B. 变量 C. 字 D. 字符 14. 按下(A )键能终止当前运行的命令 A. Ctrl-C B. Ctrl-F C. Ctrl-B D. Ctrl-D 17. 用"rm -i",系统会提示什么来让你确认( B ) A. 命令行的每个选项 B. 是否真的删除 C. 是否有写的权限 D. 文件的位置 18. 以下哪个命令可以终止一个用户的所有进程( D ) A. skillall B. skill C. kill D. killall 19.在Ubuntu Linux中,一般用(D )命令来查看网络接口的状态 A. ping B. ipconfig C. winipcfg D ifconfig 20. vi中哪条命令是不保存强制退出( C )(第五章) A. :wq B. :wq! C. :q! D. :quit 22.在下列分区中,Linux默认的分区是(B ) A. FAT32 B. EXT3 C FAT .D NTFS 24.如果用户想对某一命令详细的了解,可用(C) A. ls B. help (内部) C. man(列举的信息多) D dir 二、填空题 (每空1分,共10分) 26. 在Linux系统中,以_文件的_方式访问设备。 29. 某文件的权限为:d-rw-_r--_r--,用数值形式表示该权限644,该文件属性是目录。 30. 静态路由设定后,若网络拓扑结构发生变化,需由__系统管理员___修改路由的设置。 33. 编写的Shell程序运行前必须赋予该脚本文件__执行___权限。

linux操作系统

以下哪些是Linux操作系统的特点? A. 广泛性 B. 低廉性 C. 灵活性 D. 健壮性 回答正确 解析: 略 2 单选以下哪个不属于操作系统? A. Windows B. Linux C. Oracle D. MacOS 回答正确 解析: 略 3 单选以下描述正确的是? A. 批处理系统出现早于分时系统 B. Linux就是批处理系统 C. 批处理系统可以同时执行多个任务 D. Windows是批处理操作系统 回答正确 解析: 略 4 单选以下哪个是移动操作系统? A. Linux B. Android C. WindowsXP D. Windows2003 回答正确 解析: 略 5 单选Linux最早发布于哪一年? A. 1990 B. 1991 C. 1992 D. 1993 回答正确 解析: 略 6 单选第一个企业版的Linux是哪一个? A. CentOS B. Ubuntu C. Debian D. RedHat 回答正确 解析: 略 7 单选以下哪个不是内核的组成部分? A. 系统调用接口

B. 进程管理 C. C语言编译器 D. 驱动程序 回答正确 解析: 略 8 单选Linux下常用文本编辑工具是? A. Notepad B. EditPlus C. DreamWeaver D. VIM 回答正确 解析: 略 9 单选Linux的终端软件英文名称是什么? A. background B. terminal C. console D. cmd 回答正确 解析: 略 10 单选下载安装软件的命令是什么? A. apt-getinstall B. vim-version C. sudo D. setup 回答正确 修改密码的命令是? A. change B. passwd C. password D. update 回答正确 解析: 略 2 单选进入某一文件夹的命令是? A. ls B. cd C. ll D. help 回答正确 解析: 略 3 单选列表显示所有文件的命令是? A. ls B. cd C. pwd

linux操作系统发展现状

Linux 操作系统发展现状 Linux操作系统发展迅速,全球Top500超级计算发布数据显示89.2%的超级计算机运行在Linux操作系统之上;桌面操作系统市场份额虽然不高,但也在逐年扩大;国际大公司Intel、Google、IBM等都在Linux操作系统上加大研发投入,为Linux 操作系统长远发展带来充足后劲。国内操作系统研发组织机构、厂商也都相应加大投入,以缩小与国际Linux 厂商技术之间的差距。 但是Linux 的发展仍然面临着兼容性差,软件缺乏,以及面临版本众多导致Linux 操作系统分裂等问题。掌握核心技术,解决Linux 当前面临的关键发展问题是当务之急。 一国内Linux 操作系统发展现状 国内目前涉足Linux操作系统研发除学校、研发机构外,主要Linux 发行版包括红旗、中标、共创、新华、拓林思等,均有桌面和服务器两个版本; 国内各发行版均基于国际社区版本发展而来,基于国际社区成果,在界面定制上做了一些工作,并没有掌握核心技术,且与国际Linux 操作系统发行版之间存在一定的技术差距,缺少技术积累,面临Linux发展后劲不足等问题。 二国外Linux 操作系统发展现状 国外主要发行版包括redhat、ubuntu、Suse 等,均提供桌面

和服务器两个不同版本。服务器领域Linux 操作系统发展比较成熟,桌面发展比较缓慢,嵌入式领域发展较快。 Redhat RHEL是目前Linux服务器产品的标杆,在国内和国际上都占据着主要的Linux 服务器市场份额。RHEL 产品功能全面,产品认证齐全,用户的接受度比较高。RHEL 主要依靠技术服务和产品维护获取盈利。Redhat自9.0以后,不再发布桌面版,而是把这个项目与开源社区合作,于是就有了Fedora这个Linux发行版。目前Fedora对于Redhat的作用主要是为RHEL提供开发的基础。Fedora 的界面与操作系统与RHEL 非常相似、用户会感觉非常熟悉;另外对于新技术,fedora一直快速引入;并且fedora 一直坚持绝对开源的原则。而因为Redhat 在Linux的地位和影响力,拥有很多坚定的爱好者使用。 Suse SLES被Novell收购以后,产品的竞争力获得了很大的提升。SLES最大的优势在于应用解决方案比较丰富。SLES同样依靠技术服务和产品维护获取盈利。SUSE的yast2配置工具一直是业内公认的非常完善的安装及系统工具,能够进行系统大多数的配置功能;另外,SUSE 与 67 微软的合作,也使得SUSE在与Windows的互操作性方面具

Linux操作系统期末复习资料

电信2012级《Linux操作系统》期末复习提纲第1章概述 操作系统的概念与功能 操作系統的概念: 1.操作系统是计算机系统的一种基本软件,它直接管理和控制计算机的硬件和软件资源,合理地调度资源,使之得到充分的利用;并为用户使用这些资源提供一个便当的操作环境和优良的用户界面。 2.从资源角度看,操作系统是管理和控制计算机资源的软件。 3.从用户角度看,操作系统是用户与计算机的接口。 操作系統的功能: 1.处理器管理:在多道程序间分配和调度CPU,协调各程序的运行。 2.存储器管理:对内存储器进行分配、保护和扩充。 3.设备管理:对设备进行有用地管理和分配,并控制设备完成I/O操作。 4.文件管理:管理文件的存储和检索操作,并对文件实施共享、保密和保护措施。 5.用户接口:提供使用界面,便当用户使用系统功能。 Linux系统的特点 1.继承UNIX优秀品质,具有出色的性能和稳定性; 2.遵照GPL许可,自由软件; 3.符合POSIX标准,兼容性好; 4.适用于各种硬件平台,可移植性好; 5.网络功能强大;

6.安全性好。第2章Linux操作基础 命令的格式; 命令名[选项1] [选项2] ... [参数1] [参数2] ... 简单命令的功能与用法:echo、who、date、cal 文件系统概念: 文件命名与通配符 1.文件的命名:Linux文件名的最大长度是255个字符,通常由字母、数字、‘.’、‘_’和‘-’组成。以‘.’开头的文件是隐含文件。 2.文件名中不能含有‘/ ’字符和空字符‘\0’,因为它们对Linux内核具有分外含义。如‘/ ’表示根目录或路径分隔符。 3.文件名中不应含有以下字符,因为它们对Shell具有分外含义:; | < > ` “ “$ ! % & * ? \ ( ) [ ] 文件类型及表示法 1.普通文件(-):包括文本文件、数据文件、可执行的二进制程序等。 2.目录文件(d):一种分外的文件,用于构成文件系统的分层树型结构。 每个目录文件中至少包括两个文件,“..”表示上一级目录,“.”表示该目录本身。 3.设备文件:一种分外文件,Linux系统利用它们来标识各个设备驱动器,核心使用它们与硬件设备通信。有两类特别的设备文件:字符设备(c)和块设备(b)。 文件(包括目录)权限的含义及表示法(字符和数字表示法)

浅谈我对计算机操作系统的认识

浅谈我对计算机操作系统的认识 朱雪松 L11214018 信息管理与信息系统 计算机的发展将趋向超高速、超小型、并行处理和智能化。自从1944年世界上第一台电子计算机诞生以来,计算机技术迅猛发展,传统计算机的性能受到挑战,开始从基本原理上寻找计算机发展的突破口,新型计算机的研发应运而生。未来量子、光子和分子计算机将具有感知、思考、判断、学习以及一定的自然语言能力,使计算机进人人工智能时代。这种新型计算机将推动新一轮计算技术革命,对人类社会的发展产生深远的影响。 一.什么是操作系统 操作系统(英语:Operating System,简称OS)是一管理电脑硬件与电脑软件资源的程序,同时也是计算机系统的核心与基石。操作系统身负诸如管理与配置内存、决定系统资源供需的优先次序、控制输入与输出设备、操作网上与管理文件系统等基本事务。操作系统也提供一个让用户与系统交互的操作接口。 操作系统的型态非常多样,不同机器安装的操作系统可从简单到复杂,可从手机的嵌入式系统到超级电脑的大型操作系统。许多操作系统制造者对它涵盖范畴的定义也不尽一致,例如有些操作系统集成了图形化用户界面,而有些仅使用文字接口,而将图形接口视为一种非必要的应用程序. 二.操作系统的历史 (一)无操作系统的计算机系统 1.人工操作方式 从第一台计算机诞生(1945年)到20世纪50年代中期的计算机,属于第一代计算机,这一时期的计算机操作采用人工操作的方式直接使用计算机硬件系统,这种方式的主要特征是用户独占主机,CPU等待人工操作。可见这种方式严重降低了计算机资源的利用率,造成了人机矛盾。 2.脱机输入/输出方式 为了解决人机矛盾及CPU和I/O设备之间速度不匹配的矛盾,20世纪50年代末出现了这种技术。该技术是事先将装有用户程序和数据的纸带装入纸带输入机,在一台外围机的控制下,把纸带上的数据输入磁带上。当CPU需要这些程序和数据时,再从磁带上将其高速的调入内存。 (二)单道批处理系统和多道批处理系统 1.单道批处理系统的处理过程及特征 上个世纪50年代中期发明了晶体管,为了充分利用晶体管,减少空闲时间,于是就出现了单道批处理,其自动处理过程是:首先,由监督程序将磁带上的第一个作业装入内存,并把运行控制权交给该作业。当该作业处理完时,把控制权还给监督程序,再由监督程序把磁盘上的第二个作业调入内存。其主要特征为自动,顺序,单道。其主要矛盾为主机和外设的矛盾。

Linux操作系统概述

第1章Linux操作系统概述 Linux操作系统是目前发展最快的操作系统,从1991年诞生到现在的二十多年间,Linux逐步完善和发展。Linux操作系统在服务器、嵌入式等方面获得了长足的发展,并在个人操作系统方面有着大范围的应用,这主要得益于其开放性。本章对Linux的发展进行介绍,主要包括如下内容: ?Linux发展的历史,以时间为主线对Linux的诞生进行介绍; ?分析Linux和UNIX操作系统的异同; ?介绍常用的几种Linux发行版本的特点; ?对Linux操作系统的系统架构进行简单的介绍; ?介绍GNU通用公共许可证及其特点。 通过本章的阅读,读者可以对Linux的发展历史和Linux操作系统的基本特点有一个简单的认识。 1.1 Linux发展历史 Linux操作系统于1991年诞生,目前已经成为主流的操作系统之一。其版本从开始的0.01版本到目前的2.6.28.4版本经历了二十多年的发展,从最初的蹒跚学步的“婴儿”成长为目前在服务器、嵌入式系统和个人计算机等多个方面得到广泛应用的操作系统。 1.1.1 Linux的诞生和发展 Linux的诞生和发展与个人计算机的发展历程是紧密相关的,特别是随着Intel的i386个人计算机的发展而逐步成熟。在1981年之前没有个人计算机,计算机是大型企业和政府部门才能使用的昂贵设备。IBM公司在1981年推出了个人计算机IBM PC,从而造成个人计算机的发展和普及。刚开始的时候,微软帮助IBM公司开发的MS-DOS操作系统在个人计算机中占有统治地位。随着IT行业的发展,个人计算机的硬件价格虽然逐年在下降,但是软件特别是操作系统的价格一直居高不下。 与个人计算机对应,在大型机上的主流操作系统是UNIX,而UNIX操作系统对操作系统的发展有诸多障碍:

LINUX期末试卷

1、下面不是对Linux操作系统特点描述的是() A、良好的可移植性 B、单用户 C、多用户 D、设备独立性 2、查看创建目录命令mkdir的帮助文档可以使用() A、mkdir -h B、man mkdir C、help mkdir D、info mkdir 3、用标准的输出重定向(>)像”>file01”能使文件file01的数据() A、被复制 B、被移动 C、被覆盖 D、被打印 4、你想显示文件“longfile”的最后10行,下面那个命令是正确的?() A、tail logfile B、head -10 longfile C、taid –d 10longfile D、head longfile 5、下面哪个命令允许对文件重命名() A、rn B、rnamw C、replace D、mv 6、在vi编辑器里,命令“dd”用来删除当前( )。 A、字符 B、行 C、变量 D、字 7、比较重要的系统配置资料,一般来说大部分位于( )目录下。 A、 /etc B、 /boot C、 /home D、 /usr 8、欲把当前目录下的 file1.txt 复制为 file2.txt,正确的命令是() A、copy file1.txt file2.txt B、cat file1.txt > file2.txt C、cat file2.txt file1.txt D、cp file1.txt| file2.txt 9、如何删除一个非空子目录 /tmp。() A、del /tmp/* B、rm -rf /tmp C、rm -Ra /tmp/* D、rm –rf /tmp/* 10、下面哪个命令不能用来显示文本的内容() A、more B、less C、find D、cat 11、一个文件名字为file.gz,可以用哪个命令来解压缩。() A、tar B、gzip C、compress D、bzip2 12、删除文件命令为() A、mkdir B、move C、mv D、rm 13、在给定文件中查找与设定条件相符字符串的命令为() A、grep B、gzip C、find D、sort 14、Linux有三个查看文件的命令,若希望在查看文件内容过程中可以用光标上下移动来查看文件内容,应使用命令() A、cat B、more C、less D、menu 15、在使用mkdir命令创建新的目录时,在其父目录不存在时先创建父目录的选项() A、-m B、-p C、-f D、-d 16、关闭linux系统(不重新启动)可使用-命令() A、ctrl+alt+del B、shutdown -r C、halt D、reboot 17、对文件进行归档的命令为() A、gzip B、tar C、dump D、dd 18、下列那一个指令可以设定使用者的密码() A、pwd B、newpwd C、passwd D、password 19、cron 后台常驻程序 (daemon) 用于: a. 负责文件在网络中的共享 b. 管理打印子系统manages the printing subsystem c. 跟踪管理系统信息和错误 d. 管理系统日常任务的调度 (scheduling) 20、下面哪个linux命令可以一次显示一页内容? a. pause b. cat c. more d. grep 21、Linux文件系统的文件都按其作用分门别类地放在相关的目录中,对于外部设备文件,

《Linux操作系统》复习题

《Linux操作系统》复习题 4、在Linux中,可以使用(Samba服务器配置工具)配置网络。 5、将当前目录下的归档文件myftp.tgz解压缩到/tmp目录下,用命令(tar xvzf myftp.tgz -C /tmp)。 6、下列Shell预定义的变量中,包含用户在命令中指定的变元数目的是( $# ) 。 7、默认情况下,Linux的大多数日志位于(/var/log/) 。 8、如果用户的网络中有DHCP服务器,则在(配置网络接口)时,用户必须单击Dynamic Addresses with DHCP。 9、如果需要新建一个用户rose,但其密码由该客户第一次登录进系统后修改,可使用哪个命令 ( #useradd -p "" rose)。 10、网络中的Windows系统用户,希望通过网上邻居/共享文件夹的方式,访问Linux系统上的文件,这需要(在Linux系统上建立Samba服务器)。 12、所有用户登陆的缺省配置文件是(/etc/login.defs)。 13、在rpm命令中,安装新的RPM包软件使用的参数是(–i )。 16、linux系统中存放加密用户帐号信息的文件是(/etc/shadow)。 18、在Linux中,当root密码丢失后,应该:(进入单用户模式后修改root密码)。 20、普通用户的ID一般是(>500 )。 21、不能够作为Linux 根分区的分区类型有(ntfs)。 22、我们一般使用(mkfs)工具来建立分区上的文件系统。 23、linux可以设置(2)个DNS。 24、Linux系统习惯上将许多设备驱动程序存储在(/dev)目录中。 25、init启动进程需要读取( /etc/inittab)配置文件。 26、我们可以修改默认的启动级别为(5),使得系统重启后自动采用 XWindow方式登录。 27、为了将归档文件./myftp.tgz解压缩到当前目录下,我们可以使用(tar xvzf ./myftp.tgz )。 28、命令 fdisk /mbr的作用是:(删除安装在主分区的Lilo)。 29 、Tomcat的主配置文件是(server.xml)。 30、能够使用Tomcat Manager 管理程序的用户角色是(manager)。 31、现欲在60秒后关闭系统,可以用命令(shutdown –t 60 )来实现。 32、如果需要新建一个用户blue,其所属用户组的gid为505,可使用( # adduser blue -g 505 )命令。 34、系统管理常用的二进制文件,一般放置在(/usr/sbin)目录下。 35、以下Linux命令中,(ifconfig )用来显示和设置网络接口的配置信息。 36、如果以Apache为WWW服务器,最重要的是(httpd.conf)该配置文件: 37、如果我们先用mount命令加载光驱设备到/mnt/cdrom下,接着我们cd 进入该目录,但用ls命令列出光盘内容后,我们需要换一张CD,这时我们需要先执行(使用umount卸载该设备)操作。 38、dns服务的进程是(named)。 39、用FTP一次下载多个文件可以用命令:(mget)。 40、linux系统中,程序运行有若干优先级,最低的优先级是(19)。 二、填空题 1、安装Linux时最少需要两个分区,分别是__”/”_____和__”swap”______。 2、有一个文件,其权限为-rwx--xrw-,第1位说明是文件还是目录,后9位说明文件或目录的权限。 3、将系统的运行级别1切换到运行级别3使用 init 3 命令。

相关文档
最新文档