一,基本概念和观点
Linux的基本思想有两点:第一,一切都是文件;第二,每个软件都有确定的用途。其中第一条详细来讲就是系统中的所有都归结为一个文件,包括命令、硬件和软件设备、操作系统、进程等等对于操作系统内核而言,都被视为拥有各自特性或类型的文件。至于说Linux是基于Unix的,很大程度上也是因为这两者的基本思想十分相近。
Linux和UNIX的最大的区别是,前者是开发源代码的自由软件,而后者是对源代码实行知识产权保护的传统商业软件。这应该是他们最大的不同,这种不同体现在用户对前者有很高的自主权,而对后者却只能去被动的适应;这种不同还表现在前者的开发是处在一个完全开放的环境之中,而后者的开发完全是处在一个黑箱之中只有相关的开发人员才能够接触的产品的原型
基于Linux的系统是一个模块化的类Unix操作系统。Linux操作系统的大部分设计思想来源于20世纪70年代到80年代的Unix操作系统所创建的基本设计思想。Linux系统使用单内核,由Linux内核负责处理进程控制、网络,以及外围设备和文件系统的访问。在系统运行的时候,设备驱动程序要么与内核直接集成,要么以加载模块形式添加。
Linux具有设备独立性,它内核具有高度适应能力,从而给系统提供了更高级的功能。GNU用户界面组件是大多数Linux操作系统的重要组成部分,提供常用的C函数库,shell,还有许多常见的Unix实用工具,可以完成许多基本的操作系统任务。大多数Linux系统使用的图形用户界面创建在X窗口系统之上,由X窗口系统通过软件工具及架构协议来创建操作系统所用的图形用户界面。
看了这些描述后脑海里对于linux的概念还是挺模糊,等以后亲自接触到linux系统后应该会好些。感觉基于linux的系统是一个高度自由的系统,可以根据喜好或者功能添加或删除程序。
启动流程
1、读取
MBR的信息,启动
Boot Manager ,Windows使用
NTLDR作为Boot Manager,如果您的系统中安装多个版本的Windows,您就需要在NTLDR中选择您要进入的系统。Linux通常使用功能强大,配置灵活的
GRUB作为Boot Manager,将在启动管理章节中向您介绍它的使用方式。
2、加载系统内核,启动init进程 ,init进程是Linux的根进程,所有的系统进程都是它的子进程。
3、init进程读取“/etc/inittab”文件中的信息,并进入预设的运行级别,按顺序运行该运行级别对应文件夹下的脚本。脚本通常以“start”参数启动,并指向一个系统中的程序。 通常情况下,“/etc/rcS.d/”目录下的启动脚本首先被执行,然后是“/etc/rcN.d/”目录。例如您设定的运行级别为3,那么它对应的启动目录为“/etc/rc3.d/”。
4、根据“/etc/rcS.d/”文件夹中对应的脚本启动Xwindow服务器“xorg”,Xwindow为Linux下的图形用户界面系统。
5、启动登录管理器,等待用户登录 ,
Ubuntu系统默认使用GDM作为登录管理器,您在登录管理器界面中输入用户名和密码后,便可以登录系统。
二、目的和意义
Linux主要被用作服务器的操作系统,因为它的
廉价、灵活性及Unix背景。传统上,以Linux为基础的“
LAMP(Linux,Apache,MySQL,Perl/PHP/Python的组合)”技术,除了已在开发者群体中广泛流行,它提供网站服务供应商最常使用的平台。
基于其低廉成本与高度可设置性,Linux常常被应用于
嵌入式系统,例如机顶盒、移动电话及移动装置等。在移动电话上,Linux已经成为Symbian OS的主要竞争者;而在移动装置上,则成为Windows CE与Palm OS外之另一个选择。TiVo数码摄影机使用了经过客制化后的Linux。此外,有不少硬件式的网络防火墙及路由器,例如部份LinkSys的产品,其内部都是使用Linux来驱动、并采用了
操作系统提供的防火墙及路由功能。
采用Linux的超级电脑亦愈来愈多,根据2008年11月的TOP500超级电脑列表,现时世上最快速的超级电脑使用Linux作为其操作系统。而在表列的500套系统里,采用Linux为操作系统的,占了439组(即87.8%)。
2006年开始发售的SONY PlayStation 3亦可使用Linux的操作系统,它有一个能使其成为一个桌面系统的Yellow Dog Linux。之前,Sony亦曾为他们的PlayStation 2推出过一套名为PS2 Linux的DIY组件。Ubuntu自9.04版本,恢复了PPC支持(包括PlayStation 3)。
而随着OLPC的XO-1,华硕的Eee PC等低价电脑的推行,许多人乐观的认为在低端PC市场,linux的市场占有率正在快速的增长。但在Windows进入此一市场后,Linux的市占率快速下滑。
主要用途:
虚拟化,数据库服务器,Web服务器,应用服务器,跳转盒(Jump box),日志服务器,开发平台,Google搜索设备,入侵检测系统。
[18]
三、基本内容
1.文件类型
普通文件(regular file):就是一般存取的文件,
由ls -al显示出来的属性中,第一个属性为 [-],例如 [-rwxrwxrwx]。另外,依照文件的内容,又大致可以分为
1、纯文本文件(
ASCII):这是Unix系统中最多的一种文件类型,
之所以称为纯文本文件,是因为内容可以直接读到的数据,例如数字、字母等等。设置文件几乎都属于这种文件类型。举例来说,使用命令“cat ~/.bashrc”就可以看到该文件的内容(cat是将文件内容读出来)。
2、二进制文件(binary):
系统其实仅认识且可以执行二进制文件(binary file)。Linux中的可执行文件(脚本,文本方式的批处理文件不算)就是这种格式的。举例来说,命令cat就是一个二进制文件。
3、数据格式的文件(data):
有些程序在运行过程中,会读取某些特定格式的文件,那些特定格式的文件可以称为数据文件(data file)。举例来说,Linux在用户登入时,都会将登录数据记录在 /var/log/wtmp文件内,该文件是一个数据文件,它能通过last命令读出来。但使用cat时,会读出乱码。因为它是属于一种特殊格式的文件。
目录文件(directory):
就是目录,第一个属性为 [d],例如 [drwxrwxrwx]。
连接文件(
link):
类似Windows下面的快捷方式。第一个属性为 [l],例如 [lrwxrwxrwx]。
设备与设备文件(
device):
与系统外设及存储等相关的一些文件,通常都集中在 /dev目录。通常又分为两种:
块设备文件:
就是存储数据以供系统存取的接口设备,简单而言就是硬盘。例如一号硬盘的代码是 /dev/hda1等文件。
第一个属性为 [b]。
字符设备文件:
即串行端口的接口设备,例如键盘、鼠标等等。第一个属性为 [c]。
套接字(
sockets):
这类文件通常用在网络数据连接。可以启动一个程序来监听客户端的要求,客户端就可以通过套接字来进行数据通信。第一个属性为 [s],最常在 /var/run目录中看到这种文件类型。
管道(FIFO,pipe):
FIFO也是一种特殊的文件类型,它主要的目的是,解决多个程序同时存取一个文件所造成的错误。
FIFO是first-in-first-out(先进先出)的缩写。
第一个属性为 [p]。
2.文件结构
/:根目录,
所有的目录、文件、设备都在/之下,/就是Linux文件系统的组织者,也是最上级的领导者。
/bin:bin 就是二进制(
binary)英文缩写。
在一般的系统当中,都可以在这个目录下找到linux常用的命令。系统所需要的那些命令位于此目录。
/boot:
Linux的内核及引导系统程序所需要的文件目录,比如 vmlinuz initrd.img 文件都位于这个目录中。在一般情况下,
GRUB或
LILO系统引导管理器也位于这个目录。
/cdrom:这个目录在刚刚安装系统的时候是空的。
可以将光驱文件系统挂在这个目录下。例如:mount /dev/cdrom /cdrom
/dev:dev 是设备(
device)的英文缩写。
这个目录对所有的用户都十分重要。因为在这个目录中包含了所有linux系统中使用的外部设备。但是这里并不是放的外部设备的驱动程序。这一点和常用的windows,dos操作系统不一样。它实际上是一个访问这些外部设备的端口。可以非常方便地去访问这些外部设备,和访问一个文件,一个目录没有任何区别。
/etc:
etc这个目录是linux系统中最重要的目录之一。在这个目录下存放了系统管理时要用到的各种配置文件和子目录。要用到的网络配置文件,文件系统,x系统配置文件,设备配置信息,设置用户信息等都在这个目录下。
/home:
如果建立一个用户,用户名是"xx",那么在/home目录下就有一个对应的/home/xx路径,用来存放用户的主目录。
/lib:
lib是库(library)英文缩写。这个目录是用来存放系统动态连接共享库的。几乎所有的应用程序都会用到这个目录下的共享库。因此,
千万不要轻易对这个目录进行什么操作,一旦发生问题,系统就不能工作了。
/lost+found:在ext2或ext3文件系统中,
当系统意外崩溃或机器意外关机,而产生一些文件碎片放在这里。当系统启动的过程中fsck工具会检查这里,并修复已经损坏的文件系统。有时系统发生问题,有很多的文件被移到这个目录中,可能会用手工的方式来修复,或移到文件到原来的位置上。
/mnt:
这个目录一般是用于存放挂载储存设备的挂载目录的,比如有
cdrom等目录。可以参看/etc/fstab的定义。
/media:有些linux的发行版使用这个目录来
挂载那些usb接口的移动硬盘(包括U盘)、CD/DVD驱动器等等。
/opt:
这里主要存放那些可选的程序。
/proc:可以在这个目录下获取系统信息。
这些信息是在内存中,由系统自己产生的。
/root:
Linux超级权限用户root的家目录。
/sbin:
这个目录是用来存放系统管理员的系统管理程序。大多是涉及系统管理的命令的存放,是
超级权限用户root的可执行命令存放地,普通用户无权限执行这个目录下的命令,这个目录和/usr/sbin; /usr/X11R6/sbin或/usr/local/sbin目录是相似的,凡是目录sbin中包含的都是root权限才能执行的。
/selinux :
对SElinux的一些配置文件目录,
SElinux可以让linux更加安全。
/srv
服务启动后,所需访问的数据目录,举个例子来说,www服务启动读取的网页数据就可以放在/srv/www中
/tmp:
临时文件目录,用来存放不同程序执行时产生的临时文件。有时用户运行程序的时候,会产生临时文件。/tmp就用来存放临时文件的。/var/tmp目录和这个目录相似。
/usr
这是
linux系统中占用硬盘空间最大的目录。
用户的很多应用程序和文件都存放在这个目录下。在这个目录下,可以找到那些不适合放在/bin或/etc目录下的额外的工具
/usr/local:这里主要存放那些
手动安装的软件,即不是通过“新立得”或apt-get安装的软件。它和/usr目录具有相类似的目录结构。让软件包管理器来管理/usr目录,而把自定义的脚本(scripts)放到/usr/local目录下面、。
/usr/share :
系统共用的东西存放地,比如 /usr/share/fonts 是字体目录,/usr/share/doc和/usr/share/man帮助文件。
/var:
这个目录的内容是经常变动的,看名字就知道,可以理解为vary的缩写,/var下有/var/log 这是用来存放系统日志的目录。/var/ www目录是定义
Apache服务器站点存放目录;/var/lib 用来存放一些库文件,比如MySQL的,以及
MySQL数据库的的存放地。
四。应用与延伸
学习嵌入式就必须学习功能强大的linux。linux强大之处在于它的自由度,如何把自由度发挥得好是用好linux的关键。但是对于linux的系统开发现在还是一窍不通..现在只是稍微的了解了一下,等一段时间后安装了虚拟机安装了linux系统后,才能对linux有更好的认识。