Unix是真正的操作系统,实际上是所有操作系统(如Ubuntu,Solaris,POSIX等)的基础。它是由Ken Thompson,Dennis Ritchie和AT&T实验室的其他人在1970年代开发的。它最初是为程序员而不是非程序员开发软件的。
Unix和C是AT&T发现的,并已分发给政府和学术机构,这导致它们被移植到比任何其他操作系统都更广泛的机器家族中。开发人员在此操作系统中带来的主要焦点是内核。 Unix被认为是操作系统的心脏。 Unix OS的系统结构如下:
图–系统结构
- 第1层:硬件–
它包含所有与硬件相关的信息。 - 第2层:内核–
它与硬件交互,大多数任务(如内存管理,任务调度和管理)由内核完成。 - 第3层:Shell命令–
Shell是处理您的请求的实用程序。当您在终端上键入命令时,shell会解释该命令并调用所需的程序。有各种命令,例如cp,mv,cat,grep,id,wc,nroff,a.out等。
- 第4层:应用层–
它是执行给定外部应用程序的最外层。
图–内核及其框图
该图显示了三个级别:用户,内核和硬件。
- 系统调用和库接口代表用户程序和内核之间的边界。系统调用看起来像C程序中的普通函数调用。汇编语言程序可以直接调用系统调用,而无需系统调用库。这些库在编译时与程序链接。
- 系统调用集分为与文件子系统交互的系统调用和一些与过程控制子系统交互的系统调用。文件子系统管理文件,分配文件空间,管理可用空间,控制对文件的访问以及为用户检索数据。
- 进程通过一组特定的系统调用与文件子系统进行交互,例如打开(打开文件以进行读取或写入),关闭,读取,写入,stat(查询文件的属性),chown(更改记录)。拥有文件的用户)和chmod(更改文件的访问权限)。
- 文件子系统使用缓冲机制访问文件数据,该机制调节内核和辅助存储设备之间的数据流。缓冲机制与块I / O设备驱动程序进行交互,以启动与内核之间的数据传输。
- 设备驱动程序是控制外围设备运算符的内核模块。文件子系统还直接与“原始” I / O设备驱动程序进行交互,而无需缓冲机制的干预。最后,硬件控制负责处理中断并与机器通信。在执行过程时,磁盘或终端之类的设备可能会中断CPU。如果是这样,内核可以在为中断服务后恢复被中断进程的执行。
- 中断不是由特殊进程提供服务,而是由内核中的特殊功能(在当前运行的进程的上下文中调用)服务。
Unix和Linux之间的区别–
Linux本质上是Unix的克隆。但是,基本区别如下所示:
Linux | Unix |
---|---|
The source code of Linux is freely available to its users | The source code of Unix is not freely available general public |
It has graphical user interface along with command line interface | It only has command line interface |
Linux OS is portable, flexible, and can be executed in different hard drives | Unix OS is not portable |
Different versions of Linux OS are Ubuntu, Linux Mint, RedHat Enterprise Linux, Solaris, etc. | Different version of Unix are AIS, HP-UX, BSD, Iris, etc. |
The file systems supported by Linux are as follows: xfs, ramfs, vfat, cramfsm, ext3, ext4, ext2, ext1, ufs, autofs, devpts, ntfs | The file systems supported by Unix are as follows: zfs, js, hfx, gps, xfs, vxfs |