Linux 简介
程序员文章站
2023-10-17 09:10:48
. linux Linux是一套免费使用和*传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户 ......
.
linux
linux是一套免费使用和*传播的类unix操作系统,是一个基于posix和unix的多用户、多任务、支持多线程和多cpu的操作系统。它能运行主要的unix工具软件、应用程序和网络协议。它支持32位和64位硬件。linux继承了unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
linux操作系统诞生于1991 年10 月5 日(这是第一次正式向外公布时间)。linux存在着许多不同的linux版本,但它们都使用了linux内核。linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。
严格来讲,linux这个词本身只表示linux内核,但实际上人们已经习惯了用linux来形容整个基于linux内核,并且使用gnu工程各种工具和数据库的操作系统。
linux简史
1981 年ibm公司推出微型计算机ibm pc。
1991年,gnu计划已经开发出了许多工具软件,最受期盼的gnu c编译器已经出现,gnu的操作系统核心hurd一直处于实验阶段,没有任何可用性,实质上也没能开发出完整的gnu操作系统,但是gnu奠定了linux用户基础和开发环境。
1991年初,林纳斯·托瓦兹开始在一台386sx兼容微机上学习minix操作系统。1991年4月,林纳斯·托瓦兹开始酝酿并着手编制自己的操作系统。
1991 年4 月13 日在comp.os.minix 上发布说自己已经成功地将bash 移植到了minix 上,而且已经爱不释手、不能离开这个软件了。
1991年7月3日,第一个与linux有关的消息是在comp.os.minix上发布的(当然此时还不存在linux这个名称,当时林纳斯·托瓦兹的脑子里想的可能是freax,freax的英文含义是怪诞的、怪物、异想天开等)。
1991年的10月5日,林纳斯·托瓦兹在comp.os.minix新闻组上发布消息,正式向外宣布linux内核的诞生(freeminix-likekernel sources for 386-at)。
1993年,大约有100余名程序员参与了linux内核代码编写/修改工作,其中核心组由5人组成,此时linux 0.99的代码大约有十万行,用户大约有10万左右。
1994年3月,linux1.0发布,代码量17万行,当时是按照完全*免费的协议发布,随后正式采用gpl协议。
1995年1月,bob young创办了redhat(小红帽),以gnu/linux为核心,集成了400多个源代码开放的程序模块,搞出了一种冠以品牌的linux,即redhat linux,称为linux"发行版",在市场上出售。这在经营模式上是一种创举。
1996年6月,linux 2.0内核发布,此内核有大约40万行代码,并可以支持多个处理器。此时的linux 已经进入了实用阶段,全球大约有350万人使用。
1998年2月,以eric raymond为首的一批年轻的"老牛羚骨干分子"终于认识到gnu/linux体系的产业化道路的本质,并非是什么*哲学,而是市场竞争的驱动,创办了"open source intiative"(开放源代码促进会)"复兴"的大旗,在互联网世界里展开了一场历史性的linux产业化运动。
2001年1月,linux 2.4发布,它进一步地提升了smp系统的扩展性,同时它也集成了很多用于支持桌面系统的特性:usb,pc卡(pcmcia)的支持,内置的即插即用,等等功能。
2003年12月,linux 2.6版内核发布,相对于2.4版内核2.6在对系统的支持都有很大的变化。
2004年的第1月,suse嫁到了novell,sco继续顶着骂名四处强行“化缘”, asianux, mandrakesoft也在五年中首次宣布季度赢利。3月,sgi宣布成功实现了linux操作系统支持256个itanium 2处理器
主要特性
基本思想
linux的基本思想有两点:第一,一切都是文件;第二,每个软件都有确定的用途。其中第一条详细来讲就是系统中的所有都归结为一个文件,包括命令、硬件和软件设备、操作系统、进程等等对于操作系统内核而言,都被视为拥有各自特性或类型的文件。至于说linux是基于unix的,很大程度上也是因为这两者的基本思想十分相近。
完全免费
linux是一款免费的操作系统,用户可以通过网络或其他途径免费获得,并可以任意修改其源代码。这是其他的操作系统所做不到的。正是由于这一点,来自全世界的无数程序员参与了linux的修改、编写工作,程序员可以根据自己的兴趣和灵感对其进行改变,这让linux吸收了无数程序员的精华,不断壮大。
完全兼容posix1.0标准
这使得可以在linux下通过相应的模拟器运行常见的dos、windows的程序。这为用户从windows转到linux奠定了基础。许多用户在考虑使用linux时,就想到以前在windows下常见的程序是否能正常运行,这一点就消除了他们的疑虑。
多用户、多任务
良好的界面
linux同时具有字符界面和图形界面。在字符界面用户可以通过键盘输入相应的指令来进行操作。它同时也提供了类似windows图形界面的x-window系统,用户可以使用鼠标对其进行操作。在x-window环境中就和在windows中相似,可以说是一个linux版的windows。
支持多种平台
linux可以运行在多种硬件平台上,如具有、680x0、sparc、alpha等处理器的平台。此外linux还是一种嵌入式操作系统,可以运行在掌上电脑、机顶盒或游戏机上。2001年1月份发布的linux 2.4版内核已经能够完全支持intel 64位芯片架构。同时linux也支持多处理器技术。多个处理器同时工作,使系统性能大大提高。
桌面环境
介绍
在图形计算中,一个桌面环境(desktop environment,有时称为桌面管理器)为计算机提供一个图形用户界面(gui)。但严格来说窗口管理器和桌面环境是有区别的。桌面环境就是桌面图形环境,它的主要目标是为linux/unix操作系统提供一个更加完备 的界面以及大量各类整合工具和使用 程序,其基本 易用性吸引着大量的新用户。桌面环境名称来自桌面比拟,对应于早期的文字命令行界面(cli)。一个典型的桌面环境提供图标,视窗,工具栏,文件夹,壁纸以及像拖放这样的能力。整体而言,桌面环境在设计和功能上的特性,赋予了它与众不同的外观和感觉。
种类
gnome
即gnu网络对象模型环境 (the gnu network object model environment),gnu计划的一部分,开放源码运动的一个重要组成部分。是一种让使用者容易操作和设定电脑环境的工具。
目标是基于*软件,为unix或者类unix操作系统构造一个功能完善、操作简单以及界面友好的桌面环境,他是gnu计划的正式桌面。
xfce
即xforms common environment,创建于2007年7月,类似于商业图形环境cde,是一个运行在各类unix下的轻量级桌面环境。原作者olivier fourdan最先设计xfce是基于xforms三维图形库。xfce设计目的是用来提高系统的效率,在节省系统资源的同时,能够快速加载和执行应用程序。
fluxbox
是一个基于gnu/linux的轻量级图形操作界面,它虽然没有gnome和kde那样精致 ,但由于它的运行对系统资源和配置要求极低,所以它被安装到很多较旧的或是对性能要求较高的机器上,其菜单和有关 配置被保存于用户根目录下的.fluxbox目录里,这样使得它的配置极为便利。
enlightenment
是一个功能强大的窗口管理器,它的目标是运用 户轻而易举地配置所见即所得的桌面图形界面。现在enlightenment的界面已经相当豪华,它拥有像afterstep一样的可视化时钟以及其它浮华的界面效果,用户不仅可以任意选择边框和动感的声音效果,最有吸引力的是由于它开放的设计思想,每一个用户可以根据自己的爱好,任意地配置窗口的边框、菜单以及屏幕上其它各个部分,而不须要 接触源代码,也不须要 编译任何程序。
文件系统
文件类型
普通文件(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]。
连接文件():类似windows下面的快捷方式。第一个属性为 [l],例如 [lrwxrwxrwx]。
设备与设备文件():与系统外设及存储等相关的一些文件,通常都集中在 /dev目录。通常又分为两种:
块设备文件:就是存储数据以供系统存取的接口设备,简单而言就是硬盘。例如一号硬盘的代码是 /dev/hda1等文件。第一个属性为 [b]。
字符设备文件:即串行端口的接口设备,例如键盘、鼠标等等。第一个属性为 [c]。
套接字():这类文件通常用在网络数据连接。可以启动一个程序来监听客户端的要求,客户端就可以通过套接字来进行数据通信。第一个属性为 [s],最常在 /var/run目录中看到这种文件类型。
管道(fifo,pipe):fifo也是一种特殊的文件类型,它主要的目的是,解决多个程序同时存取一个文件所造成的错误。fifo是first-in-first-out(先进先出)的缩写。第一个属性为 [p]。 [5]
文件结构
/:根目录,所有的目录、文件、设备都在/之下,/就是linux文件系统的组织者,也是最上级的领导者。
/bin:bin 就是二进制()英文缩写。在一般的系统当中,都可以在这个目录下找到linux常用的命令。系统所需要的那些命令位于此目录。
/cdrom:这个目录在刚刚安装系统的时候是空的。可以将光驱文件系统挂在这个目录下。例如:mount /dev/cdrom /cdrom
/dev:dev 是设备()的英文缩写。这个目录对所有的用户都十分重要。因为在这个目录中包含了所有linux系统中使用的外部设备。但是这里并不是放的外部设备的驱动程序。这一点和常用的windows,dos操作系统不一样。它实际上是一个访问这些外部设备的端口。可以非常方便地去访问这些外部设备,和访问一个文件,一个目录没有任何区别。
/etc:etc这个目录是linux系统中最重要的目录之一。在这个目录下存放了系统管理时要用到的各种配置文件和子目录。要用到的网络配置文件,文件系统,x系统配置文件,设备配置信息,设置用户信息等都在这个目录下。
/home:如果建立一个用户,用户名是"xx",那么在/home目录下就有一个对应的/home/xx路径,用来存放用户的主目录。
/lib:lib是库()英文缩写。这个目录是用来存放系统动态连接共享库的。几乎所有的应用程序都会用到这个目录下的共享库。因此,千万不要轻易对这个目录进行什么操作,一旦发生问题,系统就不能工作了。
/lost+found:在ext2或ext3文件系统中,当系统意外崩溃或机器意外关机,而产生一些文件碎片放在这里。当系统启动的过程中fsck工具会检查这里,并修复已经损坏的文件系统。有时系统发生问题,有很多的文件被移到这个目录中,可能会用手工的方式来修复,或移到文件到原来的位置上。
/mnt:这个目录一般是用于存放挂载储存设备的挂载目录的,比如有等目录。可以参看/etc/fstab的定义。
/media:有些linux的发行版使用这个目录来挂载那些接口的移动硬盘(包括u盘)、cd/dvd驱动器等等。
/opt:这里主要存放那些可选的程序。
/proc:可以在这个目录下获取系统信息。这些信息是在内存中,由系统自己产生的。
/root:linux超级权限用户的家目录。
/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数据库的的存放地。
安装操作系统手动分区、常用的有 /、/etc、/usr、/var、/opt、/tmp、/boot、swap.
本文摘自:
上一篇: PHP操作MySQL事务实例