Unix操作系统设计理念先进,当前许多流行的技术和方法如微内核技术、进程通信方法、TCP/IP协议、客户/服务模式等都源自Unix,Unix几乎对近代的操作系统都产生了影响。这次,我们来学习下Unix文本的知识。
整个Unix操作系统可分为五层:***层是裸机,即硬件部分;第二层是UNIX的核心,它直接建立在裸机的上面,实现了操作系统重要的功能,如进程管理、存储管理、设备管理、文件管理、网络管理等,用户不能直接执行UNIX内核中的程序,而只能通过一种称为"系统调用"的指令,以规定的方法访问核心,以获得系统服务。
第三层系统调用构成了第四层应用程序层和第二层核心层之间的接口界面;应用层主要是Unix操作系统的核外支持程序,如文本编辑处理程序、编译程序、系统命令程序、通信软件包和窗口图形软件包、各种库函数及用户自编程序。
Unix操作系统的最外层是Shell解释程序,它作为用户与操作系统交互的接口,分析用户键入的命令和解释并执行命令,Shell中的一些内部命令可不经过应用层,直接通过系统调用访问核心层。
用utrledit打开Unix文本文件时总会提示:是否将文件转换为dos格式。以前一直不知道为什么。前段时间做项目,在windows编辑 shell,然后用ftp上传到linux主机,发现不能运行。由于没有经验,分析了半天。
不过***终于得出了结论:dos和Unix文本文件格式有区别,这也是为什么前边提到utraledit会提示的原因。具体分析,在utrledit下打开分别打开一个dos和Unix的文本文件,然后选择hex 编辑,即可看到其编码内容。
原来Unix下的回车是用0x0A表示的,而dos下的回车则是0x0D0A。如果我们用wordpad打开Unix文本文件,会发现其换行处都不能正确识别。
分析了原因,就要找到解决的办法。在windows下用utraledit编辑后,可以在文件菜单下找到转换为Unix格式,然后再上传主机。但是这时还有问题,因为有的ftp工具可以选择以文本或者二进制格式传输,这时则必须选择二进制,否则传输时又会被改为dos格式。
关于Unix文本的知识,我们就讲解到这里。其实在Unix下已经有一个工具 dos2Unix可以直接将dos格式文件转换为Unix格式。看来各个系统间的区别不仅是在大的方面,也体现在这种细微的地方。
【编辑推荐】