当前位置:首页 » 操作系统 » linux网络应用

linux网络应用

发布时间: 2022-11-28 06:17:35

‘壹’ linux系统及其在网络中应用是怎么回事

什么是Linux?
简单地说, Linux是一套免费使用和自由传播的类 Unix操作系统,它主要用于基于 Intel x86系列 CPU的计算机上。这个系统是由世界各地的成千上万的程序员设计和实现的。其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的 Unix兼容产品。 Linux的出现,最早开始于一位名叫 Linus Torvalds的计算机业余爱好者,当时他是芬兰赫尔辛基大学的学生。他的目的是想设计一个代替 Minix(是由一位名叫 Andrew Tannebaum的计算机教授编写的一个操作系统示教程序)的操作系统,这个操作系统可用于 386、 486或奔腾处理器的个人计算机上,并且具有 Unix操作系统的全部功能,因而开始了 Linux雏形的设计。 Linux以它的高效性和灵活性着称。它能够在 PC计算机上实现全部的 Unix特性,具有多任务、多用户的能力。 Linux是在 GNU公共许可权限下免费获得的,是一个符合 POSIX标准的操作系统。 Linux操作系统软件包不仅包括完整的 Linux操作系统,而且还包括了文本编辑器、高级语言编译器等应用软件。它还包括带有多个窗口管理器的 X-Windows图形用户界面,如同我们使用 Windows NT一样,允许我们使用窗口、图标和菜单对系统进行操作。
Linux与其他操作系统有什么区别:
Linux可以与 MS-DOS、 OS/2、 Windows等其他操作系统共存于同一台机器上。它们均为操作系统,具有一些共性,但是互相之间各有特色,有所区别。
目前运行在 PC机上的操作系统主要有Microsoft的 MS-DOS、 Windows、 Windows NT、 IBM的 OS/2等。早期的 PC机用户普遍使用 MS-DOS,因为这种操作系统对机器的硬件配置要求不高,而随着计算机硬件技术的飞速发展,硬件设备价格越来越低,人们可以相对容易地提高计算机的硬件配置,于是开始使用 Windows、Windows NT等具有图形界面的操作系统。 Linux是新近被人们所关注的操作系统,它正在逐渐为 PC机的用户所接受。那么, Linux与其他操作系统的主要区别是什么呢?下面从两个方面加以论述。
首先看一下Linux与 MS- DOS之间的区别。 在同一系统上运行 Linux和 MS-DOS已很普遍,就发挥处理器功能来说, MS-DOS没有完全实现 x86处理器的功能,而 Linux完全在处理器保护模式下运行,并且开发了处理器的所有特性。 Linux可以直接访问计算机内的所有可用内存,提供完整的 Unix接口。而 MS-DOS只支持部分 Unix的接口。
就使用费用而言, Linux和 MS-DOS是两种完全不同的实体。与其他商业操作系统相比, MS-DOS价格比较便宜,而且在 PC机用户中有很大的占有率,任何其他 PC机操作系统都很难达到 MS-DOS的普及程度,因为其他操作系统的费用对大多数 PC机用户来说都是一个不小的负担。 Linux是免费的,用户可以从 internet上或者其他途径获得它的版本,而且可以任意使用,不用考虑费用问题。 就操作系统的功能来说, MS-DOS是单任务的操作系统,一旦用户运行了一个 MS-DOS的应用程序,它就独占了系统的资源,用户不可能再同时运行其他应用程序。而 Linux是多任务的操作系统,用户可以同时运行多个应用程序。 再看一下 Linux与 OS/2、 Windows、 Windows NT之间的区别。
从发展的背景看, Linux与其他操作系统的区别是, Linux是从一个比较成熟的操作系统发展而来的,而其他操作系统,如 Windows NT等,都是自成体系,无对应的相依托的操作系统。这一区别使得 Linux的用户能大大地从 Unix团体贡献中获利。因为 Unix是世界上使用最普遍、发展最成熟的操作系统之一,它是七十年代中期发展起来的微机和巨型机的多任务系统,虽然有时接口比较混乱,并缺少相对集中的标准,但还是发展壮大成为了最广泛使用的操作系统之一。无论是 Unix的作者还是 Unix的用户,都认为只有 Unix才是一个真正的操作系统。

一、安装前的准备

Linux安装光盘支持由光驱启动安装,用户只要对BIOS进行相应设置,就可以由光盘直接启动进入Linux的安装界面。在正式安装Linux操作系统之前,用户应注意以下两个方面的问题:

1.硬盘空间

Linux需要在硬盘上建立自己的磁盘分区,如果用户不希望对现有系统下的硬盘进行重新分区,建议使用一些第三方工具软件,如Partition Magic等,对硬盘上已经存在的分区进行压缩,从而为安装Linux腾出足够空间。用户需要为Linux预留大约500兆硬盘空间,既可以位于已经存在的扩展分区,也可以是没有被划分分区的硬盘空间。Red Hat Linux 6.0可以在安装过程中自己创建分区,所以用户所要做的只是为Linux操作系统预留足够的硬盘空间即可。

2.记录用户机器硬件配置信息

虽然Linux的安装过程已经被尽可能的简化,但是Linux仍然有可能不能自动检测到用户系统中的所有硬件配置。用户在安装过程中可能要回答某些硬件的设置问题,为了保证安装的系统可用,好用,建议用户在安装之前记录下系统的硬件配置信息。一个最简单的方法是在Windows下用鼠标右击“我的电脑”,选中“属性”,在出现的对话框中点击“设备管理”。其中包含了用户需要知道的所有信息,用户尤其应当注意显示器、显卡和声卡的配置情况

开始安装

注意,在启动Linux的安装过程之后,没有类似Windows系统安装中“退出安装”的功能选项。如果用户在安装过程中碰到无法解决的问题而不能继续进行安装时,可以同时按下“Ctrl+Alt+Delete”键退出安装过程,等到找到问题的解决方法之后从新进行安装。

Red Hat Linux的安装过程采用图形界面,由键盘进行控制。其中“Tab”键用于在不同的选项之间移动,空格键用于选定或取消对某一项的选择,“Enter”键用于按动屏幕中高亮度突出显示的按钮。在屏幕的底部显示可能会用到的键盘命令。

1.启动安装过程

安装过程一开始,首先出现欢迎对话框,用户按“Enter”键继续。Red Hat先后会询问用户使用何种语言、用户使用的键盘类型(默认选项为美式键盘“)以及安装软件的位置(选择”本地CD-ROM)。在随后的升级或安装系统的询问中选择“安装”,使用何种安装类型选择“自定义安装”。

Red Hat在用户对上述问题作出答复之后,检测用户系统中是否存在SCSI 设备。如果Linux自己没有找到任何的SCSI 设备,就会询问用户是否使用了SCSI 设备。大多数用户可以回答“否”,如果用户确实使用了SCSI 设备,就要在列出的SCSI 设备驱动中进行选择,并提供一些基本的配置参数以便使Linux系统能够正常使用该设备。

2.使用Disk Druid建立Linux文件系统

在第1个过程结束之后,Red Hat将会提示用户建立Linux文件系统。在被询问使用何种工具时,选择Disk Druid.

现在用户需要在预留的硬盘空间中创建两个分区。第一个分区作为Linux的根(root)分区,用于安装Linux文件。第二个分区作为交换分区,用于补充用户的物理内存。该分区相当于Windows 系统中的交换文件,但是Linux需要建立一个独立的交换分区。在硬盘预留空间添加分区的方法如下:

按“F1”键添加分区,输入“/”作为安装点(mount point),选择Linux Native(Linux本地分区)作为分区类型,然后在设定完分区大小之后按“OK”完成分区添加过程。

用户可以按照同样的步骤添加一个交换分区。注意“安装点”一项空出,选择“Linux Swap”作为分区类型,交换分区的大小不能低于用户物理内存的实际大小。例如,如果用户内存为36MB,交换分区的大小至少应当为36MB.

Disk Druid将会显示出用户添加的两个分区的信息:一个较大的根分区和一个较小的交换分区。用户选择“OK”,当Red Hat询问用户是否将所做的改动保存到分区表时回答“是”。这样就完成了整个分区的添加过程。

在添加完分区之后,用户需要对新分区进行格式化。Red Hat首先格式化交换分区,然后再格式化根分区。建议用户在格式化过程中选择“检查损坏的区块”选项。

4.配置硬件支持

在软件安装完毕之后,Red Hat进入硬件安装阶段,安装程序将会搜索系统的各种硬件,添加必要的驱动程序和库文件。虽然这一阶段的过程大多数都是由安装程序自动完成,但是用户还是需要回答一些安装程序提出的问题。

首先安装程序将检测用户是否使用鼠标,如果是,Red Hat需要用户确认检测结果是否正确。注意,如果用户使用双键鼠标,则应当选择“模拟3键鼠标”的选项。

然后,安装程序询问用户是否需要进行网络配置。如果用户在自己的系统中没有安装网卡,则可以回答“否”;否则,可以选择进行网络配置,Red Hat 将会找到用户机器中的网卡并要求用户输入一些建立网络连接所必须的信息。

接着,在设定用户所在时区之后,需要选择用户使用的打印机的类型和型号。除非用户使用网络打印机,否则在打印机连接中选择“本地打印机”。

接着,设置根用户的口令,这是安装过程中的重要一步。作为一个支持多用户的操作系统,Linux使用一个用户名为“root”的账号作为系统管理员。用户应当为“root”账号选择一个安全性强、容易记忆的口令。在随后的验证设置对话框中提供了几种Red Hat采用的口令服务,用户选择默认选项即可。

在此之后,安装程序建议用户创建一张紧急启动盘以备不时之需。

到此为止,整个安装过程已经接近尾声,最后也是最关键的一步就是配置Linux Loader(即LILO)。该程序在计算机启动时运行,支持多系统启动,用户可以选择是启动到Linux系统,还是进入到以前的Windows 系统。当Red Hat 询问用户希望将LILO安装到何处时,选择主启动记录(Master Boot Record)。在随后的LILO附加选项对话框中选择“OK”之后,将会出现一个可以通过LILO启动的分区列表。如果用户不希望将Linux 作为主操作系统,可以选定被标识为“DOS”的Windows 系统作为LILO的默认启动选项。

5.第一次启动系统

现在,用户可以设置自己的计算机使用X Window系统。Xconfigurator 程序会询问用户一些有关显卡和显示器的设置问题,然后根据用户提供的信息安装相应的驱动程序,并运行测试程序检验设置是否正确。用户可能会在这一阶段碰到许多问题。如果Xconfigurator的设置不正确,安装程序将会一直重复进行设置直到找到正确的配置。用户可以选择“Cancel”略过该过程。

如果Xconfigurator 设置正确,用户可以选择在Linux启动之后立即运行X Window.如果用户选中该选项,在每次启动Linux之后,将会直接出现一个类似于NT登录界面的用户名/口令窗口;否则,将会出现命令行式的登录界面。

在安装程序完成整个安装过程之后,Red Hat将会弹出一个对话框祝贺用户安装成功。在取出安装盘之后,按回车,计算机将重新启动。

计算机重新启动之后,屏幕左上角将会显示出LILO字样,表示LILO程序正在等候用户输入将要启动的操作系统。如果用户按下回车键,将会启动默认系统,按照本文的安装情况将会启动Windows系统。用户如果希望启动linux ,可以在LILO字样后输入“linux”后回车。在显示过一连串的启动信息之后,将会出现登录界面。在用户名处输入“root”,按回车,然后在口令处输入用户在安装过程中为“root”账号设定的口令(注:用户在输入口令时屏幕上不会有任何显示),再次按回车之后,用户就将以系统管理员的身份登录到Linux系统。

“root”账号拥有对整个Linux 系统的管理权限,为了防止对系统的意外改动,建议用户建立一个新的账号。这样在日常使用过程中用户可以使用其它账号,而只有在需要对系统进行管理和设置的时候才使用“root”账号。

‘贰’ Linux主要应用在哪些方面

Linux操作系统从诞生到现在,因为具有开放、安全、稳定的优势广受用户的认可。其自由软件的低成本、安全性,也让政府纷纷对Linux采取了非常有力的支持。目前Linux应用的主要领域包含以下几种:
1、服务器系统:Linux操作系统价格低廉、灵活性好,现在被广泛的使用在服务器操作系统之中。现在以Linux为基础的LAMP技术,除了在开发者群体广泛流行之外,对于网站服务商也是比较常用的。
2、桌面系统:新发行的Linux系统版本特别在桌面应用方面给予了很大的改进,具有非常高的水平,可以作为一种结合办公应用、多媒体应用以及网络应用等多方面功能为一体的操作系统,最关键的是,这个桌面系统是可以免费使用。
3、嵌入式系统:大家都知道现在很多移动设备都是嵌入式的,而Linux在这方面具有很好的作用,采用基于Linux的嵌入式系统,由于Linux的内核是完全公开的,所以基于Linux的嵌入式系统成本大大降低,完全不受到其他因素的干扰。
4、电子政务:由于具有很好的作用,大家对于Linux系统的态度都发生了很大的转变,而且Linux也成为了与Windows系统抗衡的力量。因为它具有超高安全性,让大家更加喜欢。目前有一些国家正在将电子政务系统向Linux平台发生转变,由此也证明了对Linux系统的认可。

‘叁’ Linux主要应用在哪些方面

Linux一般可以应用在以下领域:
1、桌面应用。随着ubuntu、fedora等优秀桌面环境的兴起,Linux在个人桌面领域的份额逐渐增加。
2、嵌入式应用。Linux运行稳定,对网络支持好,成本低;广泛支持大量微处理器架构、硬件设备、图形支持和通信协议。
3、服务器应用。Linux系统可以为企业架构WWW服务器、数据库服务器、负载均衡服务器、邮件服务器、DNS服务器、代理服务器、路由器等。近年来,Linux服务器市场发展迅速,尤其是在一些高端领域。使用Linux不仅降低了企业的运营成本,而且实现了Linux系统带来的高稳定性和高可靠性,不需要考虑商业软件的版权问题。很多企业逐步转入Linux服务器的使用。
目前Linux操作系统已然得到广泛应用,并且已参透到电信、金融、政府、教育、银行、石油等行业。各大互联网企业都在使用Linux系统作为其服务器端的程序运行平台。Linux系统在服务器市场前景光明,相应的互联网也增加了Linux运维人员的需求量。

‘肆’ Linux 应用 网络配置

网络信息查看
设置网络地址:
cat /etc/sysconfig/network-scripts/ifcfg-eth0
你将会看到:

DEVICE=eth0
BOOTPROTO=statics
HWADDR=00:0C:29:13:D1:6F
ONBOOT=yes
TYPE=Ethernet
IPADDR=192.168.0.212
NETMASK=255.255.255.0

BOOTPROTO=statics :表示使用静太IP地址。

ONBOOT=yes:表示开机时,启动这个网卡。

取动态IP地址地址
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=dhcp

设置好IP地址,现在还不能生效哦,要重新启动网卡才可以。

Ifconfig <网络接口名称> network <子网掩码>
例:# ifconfig eth0 192.168.1.222 netmask 255.255.255.0
注:手工配置linux网络只限于临时使用,配置不保存。
扩展:# ifconfig eth0:1 10.0.0.1 netmask 255.0.0.0 一块网卡配置多个子ip地址。
# ifconfig eth0 hw ether MAC地址 修改网卡的mac地址,

# /etc/rc.d/init.d/network start 启动network
# /etc/rc.d/init.d/network stop 停止network
# /etc/rc.d/init.d/network restart 重启network

主机名称配置文件,修改主机名
/etc/sysconfig/network

例:# vi /etc/sysconfig/network 使用vi编辑器打开主机名配置文件。

# vi /etc/sysconfig/network

NETWORKING=yes 网络是否可用。
HOSTNAME=xxxx xxxx为新设置的主机名。
本地主机名称解析文件
/etc/hosts
Hosts 和 DNS具有类似的主机名称解析功能
域名服务器配置文件
/etc/resolv.conf
最多可以设置3行,前面的生效

查看网路接口信息
1.了解linux中的网络接口设备
$/sbin/ifconfig 查看所有活动网络接口信息,其中包括一个lo环回端口。
2.查看指定网络接口的信息
$/sbin/ifconfig <网络接口名称> 查看指定接口信息。
3.查看系统中所有网络接口的信息
$/sbin/ifconfig –a 查看所有接口信息,包括非活动状态接口。
注:普通用户查看网络接口信息时,需要在命令前加“/sbin”,而管理员却不用。这是由于命令搜索路径的原因,可以通过“$echo $PATH”查看。
查看网关地址和路由信息
1、查看主机路由信息
#/route
显示当前linux主机中的路由表信息。
#/route |grep default
在route命令的显示结果中以“default”开始的行显示了,主机的默认网关地址,将route命令和grep命令组合,使用过滤route命令的显示结果只显示默认网关地址。
2.测试与其它主机的网络链接
$ping 目的主机地址
使用ping命令测试与其它主机的网络链接。ctrl+C终止。
$ping –c <测试数据包数量> <目的主机地址>
使用ping命令发送指定数量的数据包进行网络链接测试。
$使用ping命令进行网络链接测试的技巧。
注:当ping命令测试不成功时并不能判断当前主机到目标主机的连接是断开的,因为有很多因素,(如网络防火墙等)可以导致网络连接正常时主机之间无法ping通。
3、测试与其它主机的网络链接路径
$traceroute <目的主机地址>
traceroute命令显示当前主机与目的主机之间经过的所,有网络节点的地址,以及当前主机到每个中间结点的连接状态。
查看主机名称信息
1、查看当前主机名称
$Hostname 查看当前的主机名。
2、使用dns服务器查询域名
$Nslookup
交互模式:通常用于对DNS服务器进行测试
直接模式:用于查询某个域名对应的ip地址
使用网络命令进行网络设置
网络设置的方法
1、DHCP网络配置
$Dhclient 使用dhclient命令可以从DHCP服务器中申请新的网络配置应用到当前主机。
注:DHCP服务器通常提供给DHCP客户端最基本的网络配置信息,包括:接口ip地址,默认网关,DNS
服务器地址
2、手工网络配置
网络接口ip地址和子网掩码
默认网关地址
当前主机名称
DNS服务器地址
Ip地址配置命令
Ifconfig <网络接口名称> network <子网掩码>
例:# ifconfig eth0 192.168.1.222 netmask 255.255.255.0
注:手工配置linux网络只限于临时使用,配置不保存。
扩展:# ifconfig eth0:1 10.0.0.1 netmask 255.0.0.0 一块网卡配置多个子ip地址。
# ifconfig eth0 hw ether MAC地址 修改网卡的mac地址,
路由配置命令
1、删除默认网关路由
$Route del default gw <默认网关地址>
2、添加默认网关路由
$Route add default gw <默认网关地址>
例:#route add default gw 192.168.1.1
主机名称配置命令
# hostname 123
将主机暂时名称改为123。
DNS域名解析
Nslookup
>server
显示linux系统中使用的DNS服务器地址,也可临时设置生效。
修改配置文件进行网络设置
使用工具进行网络设置
# Netconfig 图形界面设置网络,重启network后生效。
界面中需要填写的内容:
主机网络接口的ip地址。
网络接口的子网掩码。
默认网关地址。
主DNS服务器的ip地址。
网络服务启动脚本
/etc/init.d/network 从新启动才能生效
扩展:# /etc/rc.d/init.d/network start 启动network
# /etc/rc.d/init.d/network stop 停止network
# /etc/rc.d/init.d/network restart 重启network
网络接口配置文件
/etc/sysconfig/network-scripts/ifconfg-*
DEVICE=eth0 网卡编号
ONBOOT=yes 开机时是否启动网卡。
BOOTPROTO=static 静态ip或者DHCP动态获取。
IPADDR=192.168.1.163 ip
NETMASK=255.255.255.0 掩码
GATEWAY=192.168.1.1 网关
以下为动态获取方式:
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=dhcp
停止和启动指定的网络接口
单个网络接口的配置进行修改后
Ifdown 网络接口名称 停止某个网络接口。
Ifup 网络接口名称 开启某个网络接口。
注:单个网络接口的配置文件进行修改后,不必每次都从新启动network服务使配置文件生效,可用以上命令。
扩展:对网络接口操作:
# ifconfig eth0 down 停止eth0接口
# ifconfig eth0 up 开启eth0接口
可以连续使用
Ifdown eth0 ; ifup eth0
主机名称配置文件
/etc/sysconfig/network
例:# vi /etc/sysconfig/network 使用vi编辑器打开主机名配置文件。
NETWORKING=yes 网络是否可用。
HOSTNAME=xxxx xxxx为新设置的主机名。
本地主机名称解析文件
/etc/hosts
Hosts 和 DNS具有类似的主机名称解析功能
域名服务器配置文件
/etc/resolv.conf
最多可以设置3行,前面的生效。

‘伍’ linux 的应用领域

a)Linux的系统、网络、服务、集群、网站、网络应用方向:
1、Web应用服务器,如sina、网络等大型网站
2、Mail应用服务器,如163或外企mail系统等
3、中间件或J2EE服务器,如为JBOSS Weblogic做平台
4、网络应用等。
b)嵌入式开发、UNIX/Linux应用系统开发,Linux内核驱动开发方向,主要有以下几类:
1、Linux下的C/C++ 系统程序开发
2、Linux平台Java体系开发和PHP开发
3、Linux下的图形界面开发
4、Linux底层内核/驱动开发
5、嵌入式Linux开发等。
c)Linux下的数据库,如Mysql、oracle和windows下的SQL Server及DB2等。

‘陆’ Linux的主要应用有哪些

长期以来,Linux在服务器领域扮演领军角色,这在很大程度上得益于它具有稳定性、安全性、总体拥有成本较低等优点。不过许多人也许没有认识到,Linux在生活的其他方面其实也变得非常地普遍。

1、Android

当然,首当其冲的是Android这款谷歌的基于Linux的移动操作系统。Android一心就想把苹果大获成功的iPhone挤入到小众设备领域,同时还在与大受欢迎的iPad作一番较量。Android把Linux交到了全球无数移动设备消费者的手里,大概是Linux迄今为止在主流界取得的最大成功。

之外还有Chrome操作系 统,据说这款操作系统会在华硕今年夏天推出的一款低成本笔记本电脑中扮演重要角色,当然它还出现在其他设备中。

2、WebOS

可能与Android一样大有潜力的是惠普近期的这一决定:几乎在其所有的台式机和笔记本电脑上使用WebOS,更不用说惠普的平板电脑和手机了。当然,WebOS是一款基于Linux的操作系统,最初由Palm公司开发。有了惠普的这项新战略,Linux还会出现在无数消费者的桌面系统、便携式设备和手持装置中,这有望从另一方面极大地推动Linux进入到广泛的主流领域。

3、小众个人电脑

甚至除了已经在运行Linux的所有许多消费级个人电脑外,我们还开始看到这款操作系统也在背后为小众个人电脑提供支持。就拿最近首次亮相的KiWi个人电脑来说吧。这款装有Ubuntu的电脑面向老年人使用Linux,让老年人用户可以轻松自如地操作电脑。该设备的网站这样解释:“KiWi个人电脑采用Ubuntu操作系统,从电脑启动到关闭,该操作系统可以提供简单明了的导航浏览操作。Ubuntu操作系统建立了对用户友好的桌面环境,让老年人可以立即访问电子邮件和互联网,轻松无忧。”别扯什么Linux更难使用的鬼话了。

4、机顶盒

虽然Linux对机顶盒用户来说通常是看不见的,但它常常是非常普及的机顶盒的核心;比如说,我们许多人利用机顶盒来流式传送内容。运行Ubuntu的Neuros Link网络视频播放设备就是个例子。

5、自动柜员机(ATM)

多年来许多专家一直在警告,Windows对银行业务来说其实不够安全,所以看到Linux日益应用于自动柜员机领域也就不足为奇了。比如说,巴西南里奥格兰德银行(Banrisul)的一个Linux项目就备受瞩目。

6、车载电脑

最近宣布的另一项Linux创新就是为农用和建筑施工车辆设计的一系列个人电脑。Grayhill设备就是为恶劣条件和严酷环境而设计的,它让用户可以选择Linux或Windows CE。

Linux之前还出现在了许多车辆上,包括Mavizen屡获奖项的TTX02电动摩托车。另外别忘了这一点:包括丰田和标致在内的多家汽车厂商也在使用Linux操作系统。

7、维基网络、谷歌及更多

如果你曾经用过维基网络,那么你已经从Linux得到了好处,至少间接得益。实际上,在使用了多年的红帽和Fedora后,维基网络现在又在使用Ubuntu。可扩展性如何?维基网络现在每月的页面浏览量大约是100亿人次,据说这一切离不开Ubuntu的支持。

如果我们把话题转向企业应用,谷歌、亚马逊、思科、IBM、纽约证券交易所和维珍美国公司也都是大名鼎鼎的Linux用户。

8、每个儿童一台笔记本电脑

每个儿童一台笔记本电脑(One Laptop Per Child)项目组织旨在开发出一种电脑,以便分发给全世界成千上万处于困境的孩子;它已如愿开发出了XO笔记本电脑,可充分利用Linux在自由方面的许多优势。

9、政府

单单在美国,美国邮政管理局、美国国防部和美国联邦航空局都是Linux的重要政府用户。另外世界上还有许多政府做出了使用Linux的类似决定,包括法国、西班牙、德国和瑞士。

10、IBM的沃森

最后但并非最不重要的是,最近在美国智力竞赛节目《危险边缘》中以出众性能而让世人惊叹的沃森(Watson)超级计算机就是运行在Linux操作系统上。

当然,上述这些只是Linux的许多应用领域的几个代表。不过,它们一同相当有说服力地证明了这款开源操作系统具有的功能和魅力。难怪越来越多的公司企业摈弃传闻,切切实实地改用Linux。

‘柒’ linux 在网络上的应用

linux主要就是应用于网络服务器的。功能很全面,而且免费。比如经常应用的DNS,HTTP,MAIL,FTP,SQL等等,功能很强大,系统调整好以后速度是很快的,你可以慢慢的研究。

‘捌’ Linux主要应用在哪些方面

主要用于企业服务器端,下面详细介绍Linux有哪些岗位、主要的工作内容及职业发展,希望对你有所帮助。
1) Linux运维岗位及工作内容
互联网Linux运维工程师是一个融合多学科(网络、系统、开发、数据库、安全、存储等)的综合性技术岗位,甚至还需要沟通、为人处世、培训、销售、管理等非技术能力,这给运维工程师提供了一个广阔的发展空间。
2) Linux运维工程师岗位职责
一般从企业入门到中级Linux运维工程师的工作大致有:挑选IDC机房及带宽、购买物理服务器或云服务、购买及使用CDN服务、搭建部署程序开发及用户的访问系统环境(例如:网站运行环境)、对数据进行备份及恢复、处理网站运行中的各种故障(例如:硬件故障、软件故障、服务故障、数据损坏及丢失等)、对网站的故障进行监控、解决网站运行的潜在安全问题、开发自动化脚本程序提高工作效率、规划网站架构、程序发布流程和规范,制定运维工作制度和规范、配合开发人员部署及调试产品研发需要的测试环境、代码发布等工作需求,公司如果较小可能还会兼职网管、网络工程师、数据库管理员、安全工程师、技术支持等职责。
涉及到的Linux平台上的运维工具有:Linux系统,Linux基础命令,Nginx,Apache,MySQL,PHP,Tomcat,Lvs,Keepalived,SSH,Ansible,Rsync,NFS,Inotify,Sersync,Drbd,PPTP,OpenVPN,NTP,Kickstart/Cobbler,KVM,OpenStack,Docker,,K8S,Mongodb,Redis,Memcached,Iptables,SVN,GIT,Jenkins,网络基础,Shell/Python开发基础等,除此之外还可能涉及到交换机、路由器、存储、安全、开发等知识。
运维工程师还包括一些低端的岗位,例:网络管理员、监控运维、IDC运维,值班运维
职业发展方向:Linux运维工程师、系统架构师、数据库工程师、运维开发工程师、系统网络安全工程师、运维经理、运维总监
3) Linux中级运维工程师应用软件阶段。
Linux系统,Linux基础命令,Nginx,Apache,MySQL,PHP,Tomcat,Lvs,Keepalived,SSH,Ansible,Rsync,NFS,Inotify,Sersync,Drbd,PPTP,OpenVPN,NTP,Kickstart/Cobbler,KVM,OpenStack,Docker,Mongodb,Redis,Memcached,Iptables,SVN,GIT,Jenkins,网络基础,Shell/Python开发基础
4)Linux运维架构师岗位职责
运维架构师是运维工程师的高级阶段,并没有明确的岗位界限区分,运维架构师一般来说是除了对运维工程师应用的开源工具熟练掌握之外,更多的是用思想来运维了,即DevOps的落地,各种企业运行过程中的解决方案提出和执行,例如:根据公司的现状可以设计各类运维解决方案的能力:
1、自动化代码上线(SVN/GIT+Jenkins+MVN)解决方案;
2、云计算部署架构及Docker微服务架构方案;
3、服务自动化扩容方案(KVM/OpenStack/Docker+Ansible+Zabbix);
4、10万并发的网站架构、秒杀系统的架构及解决发你个案;
5、多IDC机房互联方案、全网数据备份解决方案、账号统一认证方案;
6、数据库、存储及各重要服务节点的集群和高可用方案。
7、各网络服务的极端优化方案、服务解耦/拆分。
8、运维流程、制度、规范等的建设和推行。
9、沟通能力、培训能力、项目管理、业务需求分析及落地执行力等。
这里仅举几个例子,实际工作中会有更多,运维架构师的工作,其实就是解决企业中的用户访问量不断增大带来的痛点,最终达到高效、优质的为客户提供网站及业务服务。
总的来说:Linux运维架构师更多的是根据企业日益增长的访问量需求,利用若干运维工具组合加上经验思想,形成解决业务需求方案的阶段,当然也不排除对运维工具进行二次开发以及可视化展示运维数据的阶段(开发软件平台),这个阶段涉及的工具会非常多,几乎市面好用的开源工具都在备选之列,在一线城市互联网公司的薪资范围15000-50000/月。
职业方向:高级数据库工程师、运维开发工程师、运维经理、运维总监、技术总监
运维架构师:将多个工具组合,加上思想经验,形成方案,用思想和经验赚钱的阶段。
技术的提升仅是量的积累,思想的提升才是质的飞跃!——老男孩
5)数据库运维工程师
众所周知,数据几乎是所有企业的生命线,所以数据库工程师的地位和薪水一般会比普通运维工程师高一些,主要工作内容就是保证数据库数据的安全以及高效地为用户提供各种服务。工作内容主要有:数据库环境搭建、数据库优化、数据库

‘玖’ 关于 Linux 网络,你必须知道这些

我们一起学习了文件系统和磁盘 I/O 的工作原理,以及相应的性能分析和优化方法。接下来,我们将进入下一个重要模块—— Linux 的网络子系统。

由于网络处理的流程最复杂,跟我们前面讲到的进程调度、中断处理、内存管理以及 I/O 等都密不可分,所以,我把网络模块作为最后一个资源模块来讲解。

同 CPU、内存以及 I/O 一样,网络也是 Linux 系统最核心的功能。网络是一种把不同计算机或网络设备连接到一起的技术,它本质上是一种进程间通信方式,特别是跨系统的进程间通信,必须要通过网络才能进行。随着高并发、分布式、云计算、微服务等技术的普及,网络的性能也变得越来越重要。

说到网络,我想你肯定经常提起七层负载均衡、四层负载均衡,或者三层设备、二层设备等等。那么,这里说的二层、三层、四层、七层又都是什么意思呢?

实际上,这些层都来自国际标准化组织制定的开放式系统互联通信参考模型(Open System Interconnection Reference Model),简称为 OSI 网络模型。

但是 OSI 模型还是太复杂了,也没能提供一个可实现的方法。所以,在 Linux 中,我们实际上使用的是另一个更实用的四层模型,即 TCP/IP 网络模型。

TCP/IP 模型,把网络互联的框架分为应用层、传输层、网络层、网络接口层等四层,其中,

为了帮你更形象理解 TCP/IP 与 OSI 模型的关系,我画了一张图,如下所示:

当然了,虽说 Linux 实际按照 TCP/IP 模型,实现了网络协议栈,但在平时的学习交流中,我们习惯上还是用 OSI 七层模型来描述。比如,说到七层和四层负载均衡,对应的分别是 OSI 模型中的应用层和传输层(而它们对应到 TCP/IP 模型中,实际上是四层和三层)。

OSI引入了服务、接口、协议、分层的概念,TCP/IP借鉴了OSI的这些概念建立TCP/IP模型。

OSI先有模型,后有协议,先有标准,后进行实践;而TCP/IP则相反,先有协议和应用再提出了模型,且是参照的OSI模型。

OSI是一种理论下的模型,而TCP/IP已被广泛使用,成为网络互联事实上的标准。

有了 TCP/IP 模型后,在进行网络传输时,数据包就会按照协议栈,对上一层发来的数据进行逐层处理;然后封装上该层的协议头,再发送给下一层。

当然,网络包在每一层的处理逻辑,都取决于各层采用的网络协议。比如在应用层,一个提供 REST API 的应用,可以使用 HTTP 协议,把它需要传输的 JSON 数据封装到 HTTP 协议中,然后向下传递给 TCP 层。

而封装做的事情就很简单了,只是在原来的负载前后,增加固定格式的元数据,原始的负载数据并不会被修改。

比如,以通过 TCP 协议通信的网络包为例,通过下面这张图,我们可以看到,应用程序数据在每个层的封装格式。

这些新增的头部和尾部,增加了网络包的大小,但我们都知道,物理链路中并不能传输任意大小的数据包。网络接口配置的最大传输单元(MTU),就规定了最大的 IP 包大小。在我们最常用的以太网中,MTU 默认值是 1500(这也是 Linux 的默认值)。

一旦网络包超过 MTU 的大小,就会在网络层分片,以保证分片后的 IP 包不大于 MTU 值。显然,MTU 越大,需要的分包也就越少,自然,网络吞吐能力就越好。

理解了 TCP/IP 网络模型和网络包的封装原理后,你很容易能想到,Linux 内核中的网络栈,其实也类似于 TCP/IP 的四层结构。如下图所示,就是 Linux 通用 IP 网络栈的示意图:

我们从上到下来看这个网络栈,你可以发现,

这里我简单说一下网卡。网卡是发送和接收网络包的基本设备。在系统启动过程中,网卡通过内核中的网卡驱动程序注册到系统中。而在网络收发过程中,内核通过中断跟网卡进行交互。

再结合前面提到的 Linux 网络栈,可以看出,网络包的处理非常复杂。所以,网卡硬中断只处理最核心的网卡数据读取或发送,而协议栈中的大部分逻辑,都会放到软中断中处理。

我们先来看网络包的接收流程。

当一个网络帧到达网卡后,网卡会通过 DMA 方式,把这个网络包放到收包队列中;然后通过硬中断,告诉中断处理程序已经收到了网络包。

接着,网卡中断处理程序会为网络帧分配内核数据结构(sk_buff),并将其拷贝到 sk_buff 缓冲区中;然后再通过软中断,通知内核收到了新的网络帧。

接下来,内核协议栈从缓冲区中取出网络帧,并通过网络协议栈,从下到上逐层处理这个网络帧。比如,

最后,应用程序就可以使用 Socket 接口,读取到新接收到的数据了。

为了更清晰表示这个流程,我画了一张图,这张图的左半部分表示接收流程,而图中的粉色箭头则表示网络包的处理路径。

了解网络包的接收流程后,就很容易理解网络包的发送流程。网络包的发送流程就是上图的右半部分,很容易发现,网络包的发送方向,正好跟接收方向相反。

首先,应用程序调用 Socket API(比如 sendmsg)发送网络包。

由于这是一个系统调用,所以会陷入到内核态的套接字层中。套接字层会把数据包放到 Socket 发送缓冲区中。

接下来,网络协议栈从 Socket 发送缓冲区中,取出数据包;再按照 TCP/IP 栈,从上到下逐层处理。比如,传输层和网络层,分别为其增加 TCP 头和 IP 头,执行路由查找确认下一跳的 IP,并按照 MTU 大小进行分片。

分片后的网络包,再送到网络接口层,进行物理地址寻址,以找到下一跳的 MAC 地址。然后添加帧头和帧尾,放到发包队列中。这一切完成后,会有软中断通知驱动程序:发包队列中有新的网络帧需要发送。

最后,驱动程序通过 DMA ,从发包队列中读出网络帧,并通过物理网卡把它发送出去。

多台服务器通过网卡、交换机、路由器等网络设备连接到一起,构成了相互连接的网络。由于网络设备的异构性和网络协议的复杂性,国际标准化组织定义了一个七层的 OSI 网络模型,但是这个模型过于复杂,实际工作中的事实标准,是更为实用的 TCP/IP 模型。

TCP/IP 模型,把网络互联的框架,分为应用层、传输层、网络层、网络接口层等四层,这也是 Linux 网络栈最核心的构成部分。

我结合网络上查阅的资料和文章中的内容,总结了下网卡收发报文的过程,不知道是否正确:

当发送数据包时,与上述相反。链路层将数据包封装完毕后,放入网卡的DMA缓冲区,并调用系统硬中断,通知网卡从缓冲区读取并发送数据。

了解 Linux 网络的基本原理和收发流程后,你肯定迫不及待想知道,如何去观察网络的性能情况。具体而言,哪些指标可以用来衡量 Linux 的网络性能呢?

实际上,我们通常用带宽、吞吐量、延时、PPS(Packet Per Second)等指标衡量网络的性能。

除了这些指标,网络的可用性(网络能否正常通信)、并发连接数(TCP 连接数量)、丢包率(丢包百分比)、重传率(重新传输的网络包比例)等也是常用的性能指标。

分析网络问题的第一步,通常是查看网络接口的配置和状态。你可以使用 ifconfig 或者 ip 命令,来查看网络的配置。我个人更推荐使用 ip 工具,因为它提供了更丰富的功能和更易用的接口。

以网络接口 eth0 为例,你可以运行下面的两个命令,查看它的配置和状态:

你可以看到,ifconfig 和 ip 命令输出的指标基本相同,只是显示格式略微不同。比如,它们都包括了网络接口的状态标志、MTU 大小、IP、子网、MAC 地址以及网络包收发的统计信息。

第一,网络接口的状态标志。ifconfig 输出中的 RUNNING ,或 ip 输出中的 LOWER_UP ,都表示物理网络是连通的,即网卡已经连接到了交换机或者路由器中。如果你看不到它们,通常表示网线被拔掉了。

第二,MTU 的大小。MTU 默认大小是 1500,根据网络架构的不同(比如是否使用了 VXLAN 等叠加网络),你可能需要调大或者调小 MTU 的数值。

第三,网络接口的 IP 地址、子网以及 MAC 地址。这些都是保障网络功能正常工作所必需的,你需要确保配置正确。

第四,网络收发的字节数、包数、错误数以及丢包情况,特别是 TX 和 RX 部分的 errors、dropped、overruns、carrier 以及 collisions 等指标不为 0 时,通常表示出现了网络 I/O 问题。其中:

ifconfig 和 ip 只显示了网络接口收发数据包的统计信息,但在实际的性能问题中,网络协议栈中的统计信息,我们也必须关注。你可以用 netstat 或者 ss ,来查看套接字、网络栈、网络接口以及路由表的信息。

我个人更推荐,使用 ss 来查询网络的连接信息,因为它比 netstat 提供了更好的性能(速度更快)。

比如,你可以执行下面的命令,查询套接字信息:

netstat 和 ss 的输出也是类似的,都展示了套接字的状态、接收队列、发送队列、本地地址、远端地址、进程 PID 和进程名称等。

其中,接收队列(Recv-Q)和发送队列(Send-Q)需要你特别关注,它们通常应该是 0。当你发现它们不是 0 时,说明有网络包的堆积发生。当然还要注意,在不同套接字状态下,它们的含义不同。

当套接字处于连接状态(Established)时,

当套接字处于监听状态(Listening)时,

所谓全连接,是指服务器收到了客户端的 ACK,完成了 TCP 三次握手,然后就会把这个连接挪到全连接队列中。这些全连接中的套接字,还需要被 accept() 系统调用取走,服务器才可以开始真正处理客户端的请求。

与全连接队列相对应的,还有一个半连接队列。所谓半连接是指还没有完成 TCP 三次握手的连接,连接只进行了一半。服务器收到了客户端的 SYN 包后,就会把这个连接放到半连接队列中,然后再向客户端发送 SYN+ACK 包。

类似的,使用 netstat 或 ss ,也可以查看协议栈的信息:

这些协议栈的统计信息都很直观。ss 只显示已经连接、关闭、孤儿套接字等简要统计,而 netstat 则提供的是更详细的网络协议栈信息。

比如,上面 netstat 的输出示例,就展示了 TCP 协议的主动连接、被动连接、失败重试、发送和接收的分段数量等各种信息。

接下来,我们再来看看,如何查看系统当前的网络吞吐量和 PPS。在这里,我推荐使用我们的老朋友 sar,在前面的 CPU、内存和 I/O 模块中,我们已经多次用到它。

给 sar 增加 -n 参数就可以查看网络的统计信息,比如网络接口(DEV)、网络接口错误(EDEV)、TCP、UDP、ICMP 等等。执行下面的命令,你就可以得到网络接口统计信息:

这儿输出的指标比较多,我来简单解释下它们的含义。

其中,Bandwidth 可以用 ethtool 来查询,它的单位通常是 Gb/s 或者 Mb/s,不过注意这里小写字母 b ,表示比特而不是字节。我们通常提到的千兆网卡、万兆网卡等,单位也都是比特。如下你可以看到,我的 eth0 网卡就是一个千兆网卡:

其中,Bandwidth 可以用 ethtool 来查询,它的单位通常是 Gb/s 或者 Mb/s,不过注意这里小写字母 b ,表示比特而不是字节。我们通常提到的千兆网卡、万兆网卡等,单位也都是比特。如下你可以看到,我的 eth0 网卡就是一个千兆网卡:

我们通常使用带宽、吞吐量、延时等指标,来衡量网络的性能;相应的,你可以用 ifconfig、netstat、ss、sar、ping 等工具,来查看这些网络的性能指标。

小狗同学问到: 老师,您好 ss —lntp 这个 当session处于listening中 rec-q 确定是 syn的backlog吗?
A: Recv-Q为全连接队列当前使用了多少。 中文资料里这个问题讲得最明白的文章: https://mp.weixin.qq.com/s/yH3PzGEFopbpA-jw4MythQ

看了源码发现,这个地方讲的有问题.关于ss输出中listen状态套接字的Recv-Q表示全连接队列当前使用了多少,也就是全连接队列的当前长度,而Send-Q表示全连接队列的最大长度

热点内容
python算法书 发布:2024-05-03 14:14:25 浏览:736
方舟怎么加入服务器闪退 发布:2024-05-03 14:05:27 浏览:491
安卓心跳怎么打出来 发布:2024-05-03 13:59:23 浏览:100
存储标准性 发布:2024-05-03 13:37:07 浏览:416
液碱存储 发布:2024-05-03 13:21:13 浏览:156
linux如何改配置文件 发布:2024-05-03 13:00:54 浏览:31
哪个安卓模拟器老爷机带得动 发布:2024-05-03 13:00:49 浏览:576
编程与实战 发布:2024-05-03 12:54:30 浏览:38
电脑开机有密码rpc服务器不可用 发布:2024-05-03 12:40:54 浏览:471
硬件的算法 发布:2024-05-03 12:34:28 浏览:388