1、02. Linux的历史和基本概念,刘西洋,前言,这是一种信仰这是一种精神这是二进制的乌托邦这里有一群人白天努力工作,晚上奉献社会。倒上一杯清茶让我们再细细品味曾经的,那段往事,1 Linux的历史,1 神话般的Unix2 MINIX是个好东西3 Linus Torvalds 这小子很牛4 GNU挺伟大5 POSIX 标准有意思,1.1 伟大的Unix,Unix,神一般的操作系统。出生地:AT&T公司贝尔实验室创造者:Ken Thompson 、Dennis Ritchie (C语言的开发者)和Douglas McIlroy精神:自由,安全,稳定,高效自由?Unix最初无偿提供给高校做研究。催
2、生了SUN公司,BSD项目,及后来的FreeBSD,OpenBSD。后来,1.2 Minux的出现,Minix 系统是由荷兰Vrije 大学Andrew S. Tanenbaum教授开发,主要用于教授操作系统原理。 Minix 小型化,因为要让学生在一个学期内就能学完。Minix局限于用途,没有接纳全世界许多人对Minix 的扩展要求。荷兰学生Linus Torvalds就不满意了,一气之下开发了linus Minix,1.3 Linux kernel,linus Minix本身是一个内核,只实现了一个基本OS的核心部分。不包含任何工具。换句话说,啥也干不了。想干什么就得自己在开发软件。和Mi
3、nix一样,它开放源代码。这就吸引了世界各地诸多的骇客为linux开发组件以实现不同的功能。,1.4 GUN项目,话说UNIX自闭源之后,世界一片黯淡这时,一颗新星出现了GNU计划和FSF ,the Free Software Foundation)Richard M. Stallman 于1984 年一手创办。旨在开发一个类似 Unix的完整自由操作系统:GNU 系统,意为GNUs Not Unix。GNU 项目有诸多高质量的自由软件:emacs 编辑系统、bash shell 、gcc 系列编译器、gdb 调试器等等。,1.5 POSIX 标准,随着时间的推移,世界上出现了太多的操作系统。
4、它们各色各样,五花八门。于是,一群闲着没事且对世界很负责的人,开始制定一系列标准。规定应用编程接口(API)目的是告诉大家长什么样是Unix,没长成这样就不是Unix。这就是POSIX 标准进一步,一些人弄出了定义API的一系列互相关联的标准。告诉大家有什么功能叫操作系统。美国叫IEEE 1003,国际上叫ISOIEC 9945,1.6 关系,Unix出现了,最初开源,大家很高兴。大家都看到Unix的潜力了,于是AT&T邪恶了。Unix闭源了,大学没得用了,于是有了Minux。Minux虽然开源,但是有点鸡肋。Linux出现了Linux只是一个内核,基本上干不了啥。这时的GNU挺火的,可它的内
5、核迟迟没弄出来。于是Linux和GNU联姻了。Linux出内核GNU除软件,于是就有了GNU/Linux。,2 Linux的基本概念,Linux的内核linux的外壳Linux的终端Linux的进程Linux的内存Linux的信号linux的文件系统Linux的用户Linux的权限Linux的链接Linux的软件Linux的网络Linux的桌面Linux的发行版,2.1 Linux的内核,内核是操作系统的核心层,处理跟硬件相关的部分。实现更抽象的系统调用。以减少程序开发人员的工作量。Linux的内核,即,Linux Kernel采用单文件块结构,共用统一的地址空间。以高效运转。最初Linux内
6、核版本号命名规则为:奇数为开发版;偶数为稳定版。现在已突破这项规定。最新的内核版本为3.x.x。内核源代码下载地址:www.kernel.org,2.2 linux的外壳,光有个内核是干不了什么的。要想使用linux就必须自己编程,然后在内核上运行。并且连最基本的作业控制都无法实现。于是,有人开发了linux的外壳SHELL。Shell提供访问内核的命令,是内核上面的逻辑层。提供基本的作业控制,支持简单逻辑语句。Shell主要有sh ,csh、 ksh、 bash几个。以开发时间从左到右依次排序,越靠后功能越强悍。各种shell都支持脚本执行。,2.3 linux的终端,Linux默认为命令行
7、界面,因为当时所有的操作系统都是命令行。Linux原生支持多用户。多用户同时使用计算机怎么办呢?终端(键盘+显示器的组合)解决。个人用个人的终端,谁也不打扰谁。当然,由linux来分辨哪个终端敲了什么命令,该返回什么结果。我想,这也可以叫虚拟化的吧?PC时代,默认12个终端。用Ctrl+Alt+F1到F12来切换。,2.4 Linux的进程,Linux进程标示方式为进程号和进程名。进程号从0开始,以linux可以表示的最大的数结束。Linux的进程管理是父子制,单性繁殖。由父生子;父要子死,子不得不死;各扫门前雪;父死前,须杀尽孩子;父死子若不死,则为僵尸进程。由上帝接管;上帝名叫init,进
8、程号为0。上帝在僵尸们不想活了的时候,成全他们。,2.5 Linux的内存,Linux的内存管理理念:有多少分多少,要多少给多少。Linux 使用的是单一整体式结构 (Monolithic),其中定义了一组原语或系统调用以实现操作系统的服务。采用页式交换内存管理模型。尽管出于兼容性考虑,依然保存段控制单元。但实际上已经很少使用这种模型了。硬盘中的SWAP分区为专用交换分区。出于安全考虑,格式化SWAP分区时,全部写0,2.6 Linux的信号,进程间通信有多种,信号是诸多之一。这里说的信号为用户级信号,与中断关系不大。主要的信号有:SIGHUP 1:用户终端连接结束。SIGINT 2:中断信号
9、。用户键入INTR字符(Ctrl+C)将产生。SIGTSTP:交互式停止信号. Ctrl+Z。 SIGKILL 9:用来立即结束程序。SIGSTOP19:进程暂停执行。SIGTSTP20 :停止进程的运行,Ctrl-Z发出,可以被处理和忽略。 http:/ linux的文件系统,一切都是文件。文件类型:普通文件、目录、字符设备文件、块设备文件、符号链接文件。原生文件系统类型:ext2 ext3 ext4。支持文件系统类型:gfs reiserfs fat xfs在Linux中,带有扩展名的文件,只能代表程序的关联,并不能说明文件的属性。http:/www.linuxsir.org/main/?
10、q=node/191,2.7.1 linux的文件类型,普通文件-rw-r-r- 1 root root 53K 03-16 08:54 install.log目录drwxr-xr-x 2 root root 4.0K 03-17 04:25 Public字符设备文件crw-rw-rw- 1 root tty 5, 0 04-19 08:29 /dev/tty块设备文件brw-r- 1 root disk 3, 1 2006-04-19 /dev/hda1套接字文件srwxrwxrwx 1 mysql mysql 0 04-19 11:12 /var/lib/mysql/mysql.sock符
11、号链接文件lrwxrwxrwx 1 root root 11 04-19 11:18 setup.log - install.log,2.8 Linux的用户和组,Linux的用户以UID和用户名标示。管理员账户,root 其UID=0。具有至高无上的权限。同时也表示拥有最高的危险度。所以极度强烈不建议使用。用root账户,人会变懒的!普通账户UID可随意划分,建议划分500之后的号码给普通用户使用。Linux原生支持多用户多任务。Windows到2000才支持单用户多任务,啥时候支持的多用户多任务不记得了。,2.9 Linux的权限,Linux具有高效可靠的权限管理机制。Linux文件属性决
12、定可执行性,与扩展名无关。普通文件的权限-rw-r-xr- 1 root root 53K 03-16 08:54 foo 拥有者读写,同组读执行,其他只读-rwxr-x- 1 root root 53K 03-16 08:54 foo 拥有者读写执行,同组读执行,其他无目录的权限Linux 文件表记录inode值,即文件句柄,目录文件记录文件名和inode的映射,可读即可列出目录下文件,可写即可在目录下增删文件。可执行即可以通过目录。drwxr-xr-x 2 root root 4.0K 03-17 04:25 Public 拥有者读写进入,同组读进入,其他无drwxr-x-w- 2 roo
13、t root 4.0K 03-17 04:25 Public 拥有者读写进入,同组读进入,其他可增删,2.9.1 文件权限的记录和更改,目录文件中,文件权限记录为二进制位。相应权限位:0:没有权限,1:有权限。例如:rwx 111 =7; rw- 110=6; r-x 101=5;r- 100 =4 -rw-r-r- = 644 drwxr-xr-x = 755 命令改变权限:644-754 chmod 754 foo 或者chmod ug+x foo a all; u user; g group; o other + 增加; 除去,2.10 Linux的链接,Linux的链接有两种:硬链接,
14、软链接。硬链接,即文件别名。链接文件和原文件是同一个文件。创建硬连接,先在文件inode的link count域加1。然后,目录文件中建立文件名与inode的映射条目。删除硬链接,系统调用先检查inode的link count值,若大于等于1,则减1。inode不会被回收。文件内容同样不会被删除。系统只是删除目录文件中相应的映射条目。硬链接不可跨文件系统。,2.10.1 软链接,软链接,创建时,产生的是一个新的文件,但这个文件的作用就是专门指向某个文件的。原文件不知道也不需要知道软链接的存在删了软链接,就是说不再需要这个链接,和原文件没有任何关系。删除原文件,则相应的软连接不可用。软连接的权限
15、和原文件的权限没有关系,对链接可写不代表对原文件可写。,2.11 Linux的软件,除了内核之外,linux所有的组件都是以软件形式存在的,可以安装可以卸载。Linux软件的安装方式有两种:源文件编译安装和二进制软件包安装。Linux的原则之一:small and simple 决定linux软件重用性强。例如,系统中已安装libc库文件。接下来的软件就不需要在安装libc库。只需要引用就可以了。所以安装时需要解决软件所有依赖的文件。,2.11.1 RPM软件家族,源文件安装虽最适合硬件,运行效率最高。但是安装繁琐,不适合普通用户使用。红帽开发了一种软件管理工具rpm,redhat packa
16、ge manager。rpm由于不能解决依赖问题。红帽又开发了yum软件管理套件。功能强大。用法简单。使用rpm/yum软件包管理工具的有redhat suse 和其他基于红帽再开发的发行版。,Suse有修改的使用rpm ,不使用yum,2.11.2 DEB软件家族,Deb软件包格式原则社区发行版debian linux软件管理工具为apt,advanced packages tools包含apt-get、apt-cache 和apt-cdrom三个管理命令 apt同样支持rpm软件格式管理。apt常用命令:apt-cache search 搜索包apt-cache show 获取相关信息ap
17、t-get install安装apt-get remove 删除apt-get update更新源apt-get upgrade 更新已安装的包sudo apt-get dist-upgrade 升级系统,2.12 Linux的网络,Linux网卡命名方式为:ethX 以太网卡brX 网桥 新版本的Linux的采用另一种命名方式:主板内置的网卡将变成 emX,外插到 PCI 卡槽上的网卡将变成 pXpX,所有的数字都从 1 开始。上述为默认的网卡命名方式,你可以任意指定网卡名字。,2.12.1 网络配置命令,ifconfig 显示网卡信息 配置网卡信息ifconfig eth0ifup 启用e
18、th网卡ifup eth0ifdown 停用eth网卡ifdown eth0编辑网卡配置文件Vi /etc/sysconfig/network-scripts/ifcfg-eth0,2.12.2 网络配置文件,/etc/sysconfig/network-scripts/ifcfg-eth0网卡配置文件/etc/sysconfig/network网关配置文件 /etc/resolv.confdns解析服务器地址配置文件/etc/hostsdns本地文件/etc/hosts.allow/etc/hosts.deny允许(阻止)访问本机的地址和要访问的服务,2.13 Linux的桌面,Linux默
19、认只有命令行。后来都有图形界面了。Linux也有图形界面了。X window linux下最基本的图形系统。Xorg现行版本X11 没有X11 server 什么图形界面都是浮云。Gnome 图形界面,简介,高效。自由。KDE图形界面。最为华丽,出身不是太干净。LXDE图形界面。轻量级,台湾同胞开发的。,2.14 Linux的发行版,Linux的自由和地球的人口众多,语言五花八门决定了发行版的五花八门。不可不说的发行版:Gentoo Slackware ArchlinuxDebian; Ubuntu; Linux Mint; Deepin linuxRedhat; Fedora;CentOSSuSE Linux OpenSuSE企业版linuxRedhat;SuSE Linux;Ubuntu ServerCentOS Debian,3 传奇字段,下面的关键词每个都有一段美丽的传奇。找找去吧!Linux骇客Unix Minux BSD FreeBSD Xorg OpenBSD X window SUSE Debian Ubuntu Deepin linux LFS Richard M. Stallman GNU FSF Richard W. Stevens 比较好的书:我买的,哈哈!,4 Linux的著名网站,www.li.org,下一讲:Linux发行版,