计算机需要操作系统(OS)来分配内存,调度程序和控制设备。unxi系统还提供了大量应用程序,供程序员和用户使用。
一:分工kernel和shell
unix系统的所有工作都由内核和shell分担。内核(kernel)与计算机硬件交互,shell与用户交互。shell和应用程序使用系统调用与内核通信,系统调用是内置在内核中的特殊例程。 1、内核是操作系统的核心。系统的引导程序(一小段程序代码)在启动时将内核加载到内存中。内核由一组主要用C语言编写的例程组成,这些例程直接与硬件通信。需要访问硬件(如硬盘或终端)的用户程序(应用程序)使用一组称为系统调用(system call)的功能与内核通信。除了向用户程序提供支持外,内核还有很多杂事要做。它管理系统的内存、调度进程、决定它们的优先级、执行我们不愿意为之操心的其他任务。即使没有用户程序运行时,内核也有事可做。它经常被称为操作系统----程序通向计算机资源的入口。 2、shell:计算机本身没有任何可以将用户命令转换为操作的能力。这就需要有解释起,UNIX中的这一工作由操作系统的“外层部分”(也就是shell)来完成的。shell实际上是用户与内核之间的接口。即使只有一个内核正在系统上运行,也可能有多个shell正在工作,每个登陆用户都有一个。通过键盘输入一条命令时,shell会彻底查看键盘输入中是否有特殊字符。如果找到,就会重新生成一个简化的命令行,最终与内核通信,以执行该命令。
内核用文件、/boot/vmlinuz表示。shell在/bin和/usr/bin中。
二、文件和进程
有两个简单的实体支撑着UNIX系统---文件和进程。文件拥有位置,进程拥有生命。
unxi把一切都看做文件。进程代表着正在执行的程序(也是文件)。
1、文件:文件是存储静态信息的容器。甚至目录和设备也被认为是文件。文件与文件形成层次结构,称为文件系统。此外,利用cd和pwd命令,可以把自己放在该层次结构中的一个特定位置。
2、进程:它代表正在执行的程序。和文本一样,进程构成一种层次结构,如果把一个进程看做另一个进程的孩子,就非常容易理解了。
与文件不同的是,进程像是有生有死的生命体,而文件则是静态的。有一些工具,可以用来控制进程,在前台和后面之间移动进程,甚至还可以杀死(终止)进程。
三、unxi是多用户、多任务系统。几位用户可以一起使用该系统,一位用户也可以同时执行多项作业。
四、unix在其一些工具的设计中使用了构建基块方法,通过连接这些工具来开发复杂的命令例程。
五、unix的man命令时可供使用的主要联机帮助实用工具。
输入用户ID和密码后可以进入UNIX系统。使用exit或logout命令或者按下[Ctrl-d]可以终止会话。unix命令通常是小写的。date显示系统日期和时间,who显示当前登陆到系统的用户列表。ps列出在终端上运行的所有进程,它总是显示正在运行的shell进程。可以用cat显示文件,用cp复制文件,用mv重命名文件,用rm删除文件。mkdir创建目录,pwd显示当前目录的路径名,cd改变当前目录,rmdir删除空目录。
man:
echo:
在一条命令之前加上一个#,这条命令将不会被执行