没那么神秘:linux下生存实录

事物的选择,不在于它能向你提供什么,而取决你需要什么。窗内的世界充其量算是舒适,窗外的天地那才是五彩斑斓。

    操作系统,大部分人只晓得windows,鲜有人知道linux,一个以稳定、安全、开放为第一准则的操作系统(严格地说应该叫内核)。汉语,全球五分之 一的人以它为母语,是使用人数最多的一门语言;英语,世界各地都有人使用,是使用范围最广的一门语言。windows与linux,就好像汉语与英 语,windows,几乎占据了整个桌面领域,是装机量最多系统;linux,从深海潜艇到空中无人侦察机、从半间屋大的工作站到比手掌还小的手机、从远 至美国南卡罗来纳州的google服务器到近到客厅的机顶盒,你都能见到linux身影。
    我无意说服你抛弃目前娴熟使用的操作系统另寻新欢,但,假如你对当前系统保守封闭早已不满,假如你崇尚自由、渴求本质、热爱折腾,不妨试试linux!

【发行套件】

linux本身还算不上操作系统,它仅是内核(一方面管理协调下层的硬件资源,一方面为上层软件提供基础服务支撑),需搭配系统软件(shell、编译器、包管理器、桌面环境等等)、应用软件(办公软件、网页浏览器、视频播放器、图片编辑器等等)才能成为一套具备日常使用功能的操作系统,即,发行套件。

一、发行套件的选择

linux发行套件数量庞大(约140种)、用途迥异(如,专供盲人使用的、专供教育培训使用的、专用于家庭影院使用的),对每个发行套件逐一评测、比对选优,完全是费神耗时、意义不大。目前,知名的发行套件包括:puppyslackwaredebianfedoraarchgentooubuntulfsopensuse等,它们各具特色、追随者众,如,slackware是目前存活时间最长的古董级发行套件(经验丰富),fedoraredhat进行新技术实验的发行套件(技术创新),ubuntu号称用户零配置开箱即用的发行套件(简单易用)、lfslinuxfrom scratch)让你从无到有构建专属于你的发行套件(配置灵活)、经验丰富+技术创新+简单易用+配置灵活=opensuse!(-_-#

opensuse最早是slackware在德国的本地化版本,后来因其加入了大量特色功能升格为单独的发行套件,其原名为suselinux10.2版本后改名opensuseopensuse是由novell公司赞助、社区推动的发行套件,它的相关源码和技术可由novell使用,作为novell企业版发行套件sles的基础。opensuse旨在:a、推进linux在全球广泛使用;b、降低linux使用门槛,成为易于上手的发行套件;c、成为技术黑客和软件开发人员的首选平台。opensuselogo是只可爱的变色龙,以此象征opensuse灵活、敏捷的特性。

没那么神秘:linux下生存实录

logo

opensuse当前正式版本为12.1,下个版本12.2预计在129月中旬发布。关于发行套件版本升级,通常我会在最新正式版放出后半年左右再考虑,原因有二:一方面经过半年的大规模外部用户测试,大部分bug已被发现并修正,一定程度上规避了使用系统的不稳定性;一方面各类应用软件开发人员有足够时间针对新版本的发行套件进行功能升级和兼容性优化,让我真真正正感受到新版本带来的各项提升。所以,今年暂时不升级了,明年3月份再考虑。

二、发行套件的安装

既然是普通用户使用的发行套件,其势必继承了某种桌面环境以便用户通过可视化界面操作计算机(linux最底层由x.org提供图形图像服务,中间由桌面环境负责统一管理各应用软件发起的图形绘制请求并协调x.org予以响应)。opensuse12.1提供gnomekde两种桌面环境供君选择(此外,还有xfcelxdeederox等等其他桌面环境可单独下载安装)。gnome是隶属gnu项目的子项目,全称为thegnu network object model environment,采用gtk(由c语言编写)作为底层开发库;kde全称kooldesktopenvironment,采用qt(由c++语言编写)作为底层开发库。gnomekdelinux中最为流行的桌面环境,从操作习惯和界面风格来看,我更喜欢gnome。因此,本文将以采用gnomeopensuse12.1为例进行后文讲解。

1、下载镜像。访问http://software.opensuse.org/121/en,选择gnome32位(或64位视情况而定)直接下载即可;

2、制作安装uu盘安装既节省光盘介质费用,又能大幅提升安装速度,逐渐成为你安装系统的首选。官网上提供了制作opensuse安装u盘的工具imagewriter,分为windows版本(https://github.com/downloads/opensuse/kiwi/imagewriter.exe)和linux版本。windows版有个小bug,下载的镜像文件扩展名为iso,而imagewriter在选择镜像文件时只能识别扩展名为raw的文件,所以需要先调整镜像文件扩展名才能正常写入u盘;

3、安装系统。整个过程一路next,除了几个关键点稍加留意外,基本零难度(注,安装过程中,部分窗口过小,无法查看窗口中完整内容,可用鼠标拖动窗口边框以调整合适大小)。

1)时区设置。如果你是冏朝公民,按下图设置,其中必须勾选“将硬件时钟设置为utc”,否则时间有问题。

没那么神秘:linux下生存实录

(时区设置)

2)创建分区。建议依次创建如下分区:/swap/home/data。说明几点,alinux的分区不同于windows,分区后没有所谓的c:d:盘,而是一个个文件系统,这些文件系统没有具体名称,必须先挂载到某个目录(称之为挂载点)下才能正常使用,每个分区对应一个目录,但多个目录可能对应在同个分区中(如,/home/yangyang_gnu

/home可能都在通过分区上);b)操作系统为扩展物理内存容量通常设有“虚拟内存”机制,将不活波内存页(如,未关闭但长时间没使用的程序)从物理内存中移至硬盘的虚拟内存中,从而释放宝贵的物理内存空间,swap分区就是所谓的虚拟内存,一般大小等同于物理内存,swap分区不用挂载目录;c)用户相关信息(如,各应用程序的配置文件)通常放在/home目录中,为避免重装系统导致各类配置文件丢失,需将/home放在独立分区上;d)所有非系统数据(如,歌曲、ebook、安装程序)都放在独立分区/data上,以便定期备份。按提示操作后,界面类似如下:

没那么神秘:linux下生存实录

(硬盘分区)

3)安装前确认。正式安装系统前,可对先前安装设置信息进行确认、调整。如下图所示:

没那么神秘:linux下生存实录

(安装前确认)

4)系统引导设置。opensuse为防止因异常导致系统无法正常启动,除安装“真正操作系统”之外,还附带安装了所谓的“紧急启动镜像”,个人觉得意义不大,如果不需要,可点击“booting”,可删除紧急启动镜像:

没那么神秘:linux下生存实录

(紧急启动镜像)

另外,双击opensuse12.1(真正的操作系统),参照如下设置,分别取消启动时硬盘检查和设置字符模式下的分辨率:

没那么神秘:linux下生存实录

(引导设置:取消硬盘检查、设置字符模式分辨率)

此外,进入“bootloader installation”->“boot loaderoptions”,取消引导程序等待用户选择操作系统耗时:

没那么神秘:linux下生存实录

(引导设置:取消引导等待)

三、发行套件的设置

刚装好的操作系统都是默认设置,按个人习惯适当调整才贴心。

1、升级系统linux上系统升级分两部分,一部分是内核升级,一部分是发行套件升级(即,除内核外的驱动程序、系统软件、应用软件等升级)。升级内核是为了享受新内核带来的安全增强以及更多的设备支持,由于涉及内核编译等高级主题,另文详讲;在进行发行套件升级前,先说说软件仓库。

前 面说过,发行套件是集成内核、驱动程序、系统软件、应用程序等一整套可支撑普通用户日常工作、生活需求的操作系统,可见,发行套件充当了软件筛选、软件打 包、软件依赖库测试、软件兼容性测试等多个角色,为确保发行套件的健壮性,发行套件厂商(或社区)将它筛选、打包、测试过的软件放在官方软件仓库中,这 样,不论哪个厂商开发的应用程序,用户只需到软件仓库中查找、下载、安装即可,不用(像windows)再到各个软件官网逐一下载,当然,软件仓库中没有的,你仍可到软件官网单独下载,但要注意依赖库是否正确。

软件仓库一般放在发行套件官方服务器上,用户通过更新源访问软件仓库。因此,更新源就是软件仓库的路牌。冏朝的网络是具有社会主义特色滴,要么无法访问国外、要么满如蜗牛,给我们访问国外官方的软件仓库带来很大阻碍。幸好,国内还有几家上规模又有良心的it企 业,通过它们自身带宽优势,准实时地从发行套件官网同步软件仓库到国内服务器上,冏朝用户可调整更新源,实现从这些企业的服务器上高速访问软件仓库。目前 为各大发行套件建立国内软件仓库的企业主要包括搜狐和网易(感谢张总、丁总对中国开源事业的支持,曹总、马总你们人影呢),另外,各大专院校也建有本地软 件仓库,学生朋友可参照使用。好了,了解了软件仓库、更新源等概念后,我们可以按如下步骤升级发行套件啦:

1)更改更新源。运行yast->softwarerepositories,删除所有来之官网的更新源(即,opensuse.org相关的),增加搜狐的软件仓库镜像:asohu-opensuse-12.1-osshttp://mirrors.sohu.com/opensuse/distribution/12.1/repo/oss

bsohu-opensuse-12.1-non-osshttp://mirrors.sohu.com/opensuse/distribution/12.1/repo/non-osscsohu-opensuse-12.1-updatehttp://mirrors.sohu.com/opensuse/update/12.1

2)升级系统。一旦指示系统启动升级,系统先在软件仓库(加载的所有更新源)中寻找是否有升级的可能。具体而言,命令zypperupdate,对于本地已安装程序,在软件仓库中是否有更新版本,若有则更新之,忽略系统有安装但仓库中根本不存在的软件;命令zypperdist-upgrade, 将系统与软件仓库同步一致,也就是说,本地安装的软件必须只能是仓库中有的且版本必须一致,换言之,一旦执行该命令,将存在降级(本地版本高而仓库版本 低)、升级(本地版本低而仓库版本高)、更改软件信息(发行套件官方更改应用软件某些信息)、甚至卸载(本地安装而仓库没有)等几种可能,特别是当你有通 过源码安装过软件时切勿使用该命令。两个命令差异巨大,就日常而言,建议使用前者即可。

2、安装驱动windows环境中增加了硬件,通常需要到硬件官网下载驱动,安装重启后系统才能识别新增硬件设备,linux对驱动的管理,你可以(片面地)理解为全都打包进内核中了,只要是较新版本内核(这正是前面说升级内核的主要目的之一),几乎能正常识别99%的硬件,换言之,你不用针对主板、芯片、(有/无线)网卡、显卡、声卡、甚至g3上网卡(后文将教你如何在linux下使用运营商的上网卡)单独安装驱动,因为内核已经集成了它们的驱动,当然,我指的是集成驱动能很好地管理对应硬件设备,如果管理得不是那么好呢?那就单独安装吧,比如,n卡驱动。opensuse内置了n卡驱动程序的开源版本nouveaunouveau由第三方开发,并未得到nvidia官方支持,是开发人员对n卡官方驱动逆向分析后的重新编码,实现难度巨大,虽效果不尽人意但也值得你尊重。作为普通用户,肯定希望最大程度发挥显卡特性,那就安装n卡针对opensuse发布的(闭源)官方显卡驱动吧。先增加n卡官方更新源ftp://download.nvidia.com/opensuse/12.1,再升级即可。

3、美化桌面。前面提过,我选装的是gnome桌面环境。gnome3相 较先前版本,不论从界面外观还是操作习惯都有非常大的差异,比如,窗口右上角只有关闭按钮,不再有最大化、最小化的概念,比如,托盘从任务栏中剥离出来, 默认情况下为隐藏状态,比如,要选择桌面上的某个窗口,先得调出所有窗口的列表,在点击选择需要的那个,比如,不再有桌面图标,如此这些,让很多人无法适 应、被人诟病。也许是心态问题,我倒是挺适应这种操作模式的,使用gnome3也有一年多时间了,虽谈不上驾轻就熟,但也不存在任何使用障碍,非要让我提一点意见的话,嗯~嗯~,好吧,真心希望gnome开发团队将横向布局的任务栏改为纵向布局,至于原因,你知道,如今的显示器几乎都是宽屏的,这就意味着屏幕的水平空间充裕而垂直空间紧张,现在又将任务栏水平放置在最顶部,进一步缩小了可用垂直空间,所以,强烈建议将任务栏垂直放置在屏幕左侧(效果类似ubuntuunity),希望下一版本能有所改善。另外,个人认为,对于一项新生事务(我说的是gnome3),不妨抱着“拥抱变化、迎接未来”的心态去尝试接纳,或许,你会发现,原来它才是你的最爱。

扯远了,接着说gnome的美化。桌面美化,无非就是选一套符合你审美观的主题,下载、安装、启用即可:

1)下载主题。推荐两个gnome3相关的主题网站:gnome-look.orgdeviantart.com,慢慢选,喜欢哪个下哪个。个人非常喜欢那种扁、平、薄的风格,比如android4.0主题风格,正好又有人将其移植到gnome3上,称之为holohttp://tiheum.deviantart.com/art/holo-80076980),搭配faience系列图标(http://tiheum.deviantart.com/art/faience-icon-theme-255099649

2)安装主题。将上面两个下载后的压缩文件分别解压至~/.themes~/.icons目录。

3)选择主题。运行advancedsettings,参照下图选择窗口和图标主题:

没那么神秘:linux下生存实录

(选择主题)

4)启用主题。键入alt+f2,输入r回车,看到没,刚才选择的主题已经生效。如果存在滚动条粗大、按钮错位等情况,请检查相关主题引擎(murrinepixbufunicoadwaita)是否都已正确安装。最终效果如下:

没那么神秘:linux下生存实录

gnome3-holo

5)字体。opensuse中文显示默认采用文泉驿字体,相比之下,更喜欢微软雅黑那种方方正正的饱满字体,但微软雅黑中的英文字体又不咋地,有人发布了一款增强了英文字体的微软雅黑——yaheiconsolashybrid字体,可以下来试试,效果非常不错(本文全文采用的及时这个字体)。双击字体按提示安装,安装完后进入advancedsettings,按如下设置即可:

没那么神秘:linux下生存实录

(字体设置)

###NextPage###

【应用软件】

说了这么多,作为普通用户,我们关注的还是opensuse如何支撑我们的日常工作、生活需求。接下来看看,那些借助社区力量开发的优秀开源产品。开始之前,请增加第三方更新源packmanftp://packman.inode.at/suse/opensuse_12.1/)。packman相对于发行套件的官方软件仓库有如下“优势”:a)包含大量采用新技术的软件(发行套件追求稳定,从这个角度看,如果引入过多新技术软件,未经过严格兼容性测试,极有可能影响系统稳定性);b)包含大量私有属性的闭源软件(发行套件通常是由社区制作,如果含有闭源软件,可能引入版权、专利问题)。因此,应将packman仓库与官方仓库搭配使用,可扩大用户的软件选择范围。(注,未特别说明,以下介绍的软件均可通过软件仓库查找、下载、安装。)

一、日常办公

现在的企事业单位几乎都需借助电脑办公,医生看病开处方、营业厅办理业务、会计帐务处理等等,电脑已成为各行各业办公的主要途径和手段。下面介绍几类常见的办公需求。

1、办公文书wordexcelpowerpoint等三个软件是windows中必装的办公文书软件,以支撑我们文字处理、表格制作、汇报演示等工作需要。linux中我们对应有writercalcimpress等软件,这三个软件(外加drawmathbase)就是大名鼎鼎的libreoffice套件。libreoffice完全兼容ms-office文档,甚至还可以直接转存为pdf格式文件,

  • 软件名称:libreoffice

  • 界面截图:

没那么神秘:linux下生存实录

writer

没那么神秘:linux下生存实录

calc

没那么神秘:linux下生存实录

impress

  • 设置调整:tools->options->languagesettings->writing aids,取消options中的所有选项,以禁止拼写检查;

2、电邮收发。 很多人习惯通过邮件服务提供商官网进行邮件收发,强烈建议改用邮件客户端,避免频繁登录邮箱,同时,还能离线查阅邮件内容。好的邮件客户端除了正常

三、上网冲浪

问:宅男最怕失去啥?答:网络(谁说苍老师?@_@!)。网络在给我们带来无限乐趣的同时,也在不断地改变着人类生活方式。

1、无线上网。目前无线上网形式包括:adsl+无线路由器方式、wlan方式、3g上网卡方式。第一种是大家平时最常见的方式,找运营商开通宽度,自己买个无线路由器,将宽度帐号和密码设置进路由器,加电即用,该方式上网速度快,但受空间限制较大,一旦超过路由器信号覆盖就无法上网了;第二种方式需要先联系电信运营商开通wlan业务,联网后在运营商提供的页面输入帐号和密码即可上网,这种方式上网速度还是不错,但,费用高(按流量收费)、择区域(只有在热点附近才能使用wlan业务,通常小城市热点非常少,即便大城市也往往只有机场、星巴克等场所才有);第三种方式,3g上网卡方式,网速基本可接受(可在线观看非高清视频),包月费用约100rmb,将上网卡插入电脑,随时随地即可高速上网,这里为大家详细介绍下这种方式。3g上网卡有两个概念普及下,a)当前中移动、中电信、中联通等三家运营商均有提供各自3g上网卡,分别采用tdcdma2000wcdma等三种网络制式,网速、费用、稳定性各不相同;b)华为、中兴两家是主流的卡设备提供商。运营商、设备请按个人情况选择,我用的是华为中移动g3上网卡,下文将以此为例进行介绍。

华为g3上网卡官方仅发布了windows驱动,linux下咋办?前面介绍升级内核时我提过,windowslinux对驱动的管理模式差异,windows需用户针对各个硬件单独下载、安装驱动,而linux在内核中已经集成了(绝大部分)硬件设备驱动程序,包括,这里说的华为中移动g3上网卡驱动。

大致原理如下:linux能识别g3上网卡,但默认将其视为usb存储设备,我们需要告诉系统说“它是一个网络拨号moden,不是u盘”,一旦系统接受了该设备模式转换请求,后续只需用某种拨号程序执行拨号操作即可。

先准备两个命令行程序:usb_modeswitchwvdial,直接从软件仓库中安装。另外,必须先关闭系统自带的网络管理程序,在opensuse中,你可以这样:yast->networkdevices->network settings->globa options->network setupmethods->traditional method with ifup (instead of network manager)

以下操作均在命令行中执行,全流程步骤如下:

1)获取g3上网卡usb信息。执行:

lsusb| grep “huawei”

系统显示类似如下

bus002 device 003: id 12d1:1da1 huawei technologies co., ltd.

记录下你对应12d1:1da1位置的信息;

2g3上网卡模式转换。

a)指定要进行模式转换的设备。用如下信息换/etc/usb_modeswitch.conf内容:

defaultvendor=0x12d1

defaultproduct=0x1da1

targetvendor=0x12d1

targetproduct=0x1da1

huaweimode=1

b)进行模式转换操作。执行:

usb_modeswitch-c /etc/usb_modeswitch.conf

显示如下信息

lookingfor target devices …

founddevices in target mode or class (1)

scsiinquiry data (for identification)

————————-

vendorstring: huawei

modelstring: mobile cmcc cd

revisionstring: 1.25

————————-

usbdescription data (for identification)

————————-

manufacturer:huawei mobile

product:huawei mobile system solution

serialno.: 111111-11-111111

————————-

sendinghuawei control message …

ok,huawei control message sent

->run lsusb to note any changes. bye.

注,这一步执行过程可能僵死,重新插入上网卡重新执行该步骤;

c)确认转换完成。执行第一步命令显示如下信息

bus002 device 009: id 12d1:1d09 huawei technologies co., ltd.

如果先前的1da1变为1d09那么恭喜你,关键一步已经成功了;

d)查看设备信息。执行:

ls/dev/ttya*

输出信息为

ttyacm0 ttyacm1 ttyacm2

那就转换成功了;

3)拨号上网。

a)生成g3上网卡拨号配置文件。执行:

wvdialconf

输出

editing`/etc/wvdial.conf’.

scanningyour serial ports for a modem.

modemport scan<*1>: s0 s1 s2 s3

wvmodem<*1>:cannot get information for serial port.

ttyacm0<*1>:atq0 v1 e1 — ok

ttyacm0<*1>:atq0 v1 e1 z — ok

ttyacm0<*1>:atq0 v1 e1 s0=0 — ok

ttyacm0<*1>:atq0 v1 e1 s0=0 &c1 — ok

ttyacm0<*1>:atq0 v1 e1 s0=0 &c1 &d2 — ok

ttyacm0<*1>:atq0 v1 e1 s0=0 &c1 &d2 +fclass=0 — ok

ttyacm0<*1>:modem identifier: ati — manufacturer: huawei

ttyacm0<*1>:speed 4800: at — ok

ttyacm0<*1>:speed 9600: at — ok

ttyacm0<*1>:speed 230400: at — ok

ttyacm0<*1>:speed 460800: at — ok

ttyacm0<*1>:max speed is 460800; that should be safe.

ttyacm0<*1>:atq0 v1 e1 s0=0 &c1 &d2 +fclass=0 — ok

wvmodem<*1>:cannot get information for serial port.

ttyacm1<*1>:atq0 v1 e1 — ok

ttyacm1<*1>:atq0 v1 e1 z — ok

ttyacm1<*1>:atq0 v1 e1 s0=0 — ok

ttyacm1<*1>:atq0 v1 e1 s0=0 &c1 — ok

ttyacm1<*1>:atq0 v1 e1 s0=0 &c1 &d2 — ok

ttyacm1<*1>:atq0 v1 e1 s0=0 &c1 &d2 +fclass=0 — ok

ttyacm1<*1>:modem identifier: ati — manufacturer: huawei

ttyacm1<*1>:speed 4800: at — ok

ttyacm1<*1>:speed 9600: at — ok

ttyacm1<*1>:speed 19200: at — ok

ttyacm1<*1>:speed 38400: at — ok

ttyacm1<*1>:speed 57600: at — ok

ttyacm1<*1>:speed 115200: at — ok

ttyacm1<*1>:speed 230400: at — ok

ttyacm1<*1>:speed 460800: at — ok

ttyacm1<*1>:max speed is 460800; that should be safe.

ttyacm1<*1>:atq0 v1 e1 s0=0 &c1 &d2 +fclass=0 — ok

wvmodem<*1>:cannot get information for serial port.

ttyacm2<*1>:atq0 v1 e1 — ok

ttyacm2<*1>:atq0 v1 e1 z — ok

ttyacm2<*1>:atq0 v1 e1 s0=0 — ok

ttyacm2<*1>:atq0 v1 e1 s0=0 &c1 — ok

ttyacm2<*1>:atq0 v1 e1 s0=0 &c1 &d2 — ok

ttyacm2<*1>:atq0 v1 e1 s0=0 &c1 &d2 +fclass=0 — ok

ttyacm2<*1>:modem identifier: ati — manufacturer: huawei

ttyacm2<*1>:speed 4800: at — ok

ttyacm2<*1>:speed 460800: at — ok

ttyacm2<*1>:max speed is 460800; that should be safe.

ttyacm2<*1>:atq0 v1 e1 s0=0 &c1 &d2 +fclass=0 — ok

foundan usb modem _disibledevent=0 &c1 &d2 +fclass=0″

ttyacm1:speed 460800; init “atq0 v1 e1 s0=0 &c1 &d2 +fclass=0”

ttyacm2:speed 460800; init “atq0 v1 e1 s0=0 &c1 &d2 +fclass=0”

b)修改拨号配置文件。将/etc/wvdial.conf文件内容替换为

[dialerdefaults]

init1= atz

init2= atq0 v1 e1 s0=0 &c1 &d2 +fclass=0

password= any

phone= *99***1#

modemtype = usb modem

stupidmode = 1

baud= 460800

newpppd = yes

modem= /dev/ttyacm0

isdn= 0

username= any

c)执行拨号联网。执行:

wvdial

输出

–>wvdial: internet dialer version 1.60

–>cannot get information for serial port.

–>initializing modem.

–>sending: atz

atz

ok

–>sending: atq0 v1 e1 s0=0 &c1 &d2 +fclass=0

atq0v1 e1 s0=0 &c1 &d2 +fclass=0

ok

–>modem initialized.

–>sending: atdt*99***1#

–>waiting for carrier.

atdt*99***1#

connect2800000

–>carrier detected. starting ppp immediately.

–>starting pppd at mon jun 22 11:11:50 2009

–>pid of pppd: 4134

–>using interface ppp0

–>local ip address 10.140.162.111

–>remote ip address 192.200.1.21

–>primary dns address 221.130.33.60

–>secondary dns address 221.130.33.52

–>connected… press ctrl-c to disconnect

4)其他说明。

a)如果是第一次使用3G上网卡,那么需要依次执行以上每步,后续只需执行wvdial命令即可拨号联网(有时3G信号不稳定,需要重复多次执行wvdial命令);

b)系统自带的网络管理程序NetworkManagerwvdial命令有冲突,如果通过无线路由器上网,请手工运行NetworkManager命令,如果使用g3上网卡,需要先杀掉NetworkManager相关进程(包括NetworkManagerdhclientdhcpcd),再执行wvdial拨号。下图演示了如何杀NetworkManager相关进程:

没那么神秘:linux下生存实录

(杀NetworkManager

2、网页浏览。浏览器是互联网入口,各大互联网公司必争之地。firefox,源至linux下的著名浏览器,凭借其高安全性和可扩充性赢得大量忠实用户。

  • 软件名称:firefox

  • 界面截图:

没那么神秘:linux下生存实录

firefox

  • 设置调整:你对firefox的任何需求,几乎都可以通过其丰富的插件资源得到满足(另一个有如此庞大插件资源的软件当数vim了,后面有介绍)。进入tools->add-ons即可在线查找需要的插件,找到后点击在线安装即可,安装完成需重启浏览器以让新装插件生效。下面介绍多款我觉得非常有用的插件:

a)下载管理—downloadstatusbar

b)链接拖拽—quickdrag

c)鼠标手势—all-in-onegestures

d)双击关闭tab—closetab by double click

e)侧边显示—all-in-onesidebar

f)网页代理—phzilla

gvi模式—pentadactyl

3、资源下载。作为一个linux狂热用户,也不得不承认,要让电脑完全满足我日常需求,或多或少还是要借助windows。有些linuxer认为引入windows程序会玷污linux的纯洁性,宁愿放弃某些应用,也不愿和windows沾边。个人认为,任何事情不要走极端,我们玩linux,是为了享受它带来的开放、自由、创新,但同时,也不要人为丢弃windows提供的特有服务,毕竟,我们使用电脑是为了解决实际问题,而不是向谁证明“我是一名纯正的linuxer”,否则只会顾此失彼。当然,如果有功能类似的软件,肯定会优先选用linux版本,这点无须质疑。

我们需要借助windows,这倒不是linux系统本身不够完善,而是某些应用软件开发商只发布了windows版本,且那些软件又掌握着其所在领域的垄断权(两个特征:采用私有协议、用户规模大),以至于第三方即便有心也无力在linux下开发类似软件。对我而言,有几类应用让我离不开windows:网上购物和资源下载。先说说下载,网购后文有提及。

在冏朝,说起下载,一定会想到迅雷,离线下载、高速通道、多协议支持等等特性是其他任何下载软件无法提供的,特别是对冷门资源的下载非常有效。遗憾的是,迅雷仅提供windows版本,在linux下你是无法(直接)使用迅雷的。

有什么办法能解决“linux下如何使用windows程序”的问题?目前有两类解决方式:转换层方式和虚拟机方式。在介绍这两类方式前,先了解下为什么会存在这样的移植性问题。之所以windows程序不能在linux下运行,主要因为操作系统api不同所致,类似迅雷这类应用程序,由于对性能要求高、功能要求严,导致开发时必须与操作系统非常紧密联系,采用了大量系统提供的独有api,最终成为windows上的“原生应用程序”,一旦“原生应用程序”找不对应的操作系统就找不到api,当然也就无法正常运行了。好了,根结就在api上。

我们说的第一类解决方式,是在linux中部署一套为windowsapi转换层,我们让应用程序在转换层中运行,应用程序继续调用windows提供的api,转换层接收到api请求后将具体执行操作传递给linux系统,linux执行完后返回的转换层,转换层将请求执行结果反馈给windows应用程序,完成一次api请求,这样重复往返多次不同api调用,最终模拟完成整个应用程序执行过程。这种方式虽然可行,但也不完美:a)操作系统本身几乎就是由大量api组合而成,如果实现了所有windowsapi那就实现了windows系统,从工作量和复杂度上来说,这不是哪个开源社区能够负担得起的,所以,目前做得最好的转换层(wine,收费版本CrossOver)也仅实现了部分api,这意味着,不是所有windows程序都可以在转换层中运行,这是一个问题;b)既然是模拟api,那么从执行效率(实时性)、执行结果(正确性)上看,肯定与直接在windows中执行存在明显差距,时常会出现程序异常退出、运行缓慢等等问题,这对实时性要求较高的应用(在线3d游戏)来说,是用户无法接受的。正因为此,不推荐该方式。

第二类解决方式是安装虚拟机,在虚拟机中安装一个windows操作系统,这就像和你直接安装的windows一样,这样就有了一整套完整的windowsapi,所有应用程序均可正常运行。virtualbox就是一款著名的虚拟机。

  • 软件名称:virtualbox

  • 界面截图:

没那么神秘:linux下生存实录

virtualbox中运行迅雷)

  • 下载安装:切勿从软件仓库中安装,仓库中的版本无法识别usb设备,官网提供了完整版(https://www.virtualbox.org/wiki/linux_downloads);

  • 设置调整:要像使用真正windows那样使用装在virtualbox中的windows,必须注意以下几点:

    a)内核管理。virtualbox对内核版本非常敏感,一旦有内核升级,必须对virtualbox核心模块进行重新编译。别担心,不需要你具备程序员的能力,virtualbox会自动执行,你,负责为它准备相关编译工具——gccmake

    kernel-dev。第一个是编译器,第二个是代码管理工具,第三个是编译内核需要的头文件,这三个工具均可通过软件仓库安装。一旦准备好相关工具,用root权限执行“/etc/init.d/vboxdrvsetup”命令即可;

    b)显卡与usb管理。要让virtualbox中的windows支持3d显卡加速、识别usb等等增强功能,必须安装在windows中安装virtualbox自带的增强包。增强包只能在windows的安全模式下才能安装完整,windows虚拟机启动时按f8进入安全模式,进入virtualbox菜单devices->installguest additions进行增强包的安装;

    c)网卡管理。通常主操作系统(linux)配有无线网卡、有线网卡、3g上网卡,必须先映射到客操作系统(windows)后,在windows系统中才能正常上网。进入setting->network,将adapter1采用nat方式映射,将adapter2采用bridgedadapter方式映射到eth0(有线网卡设备编号)、将adapter3采用bridgedadapter方式映射到wlan0(无线网卡设备编号),进入windows,在“更改适配器设置”中将看到这三个网卡映射,依次将adapter1命名为“3g直连”、adapter2为“有线桥接”、adapter3为“无线桥接”,这样,启停不同网卡实现不同上网方式的切换。在windows虚拟机中看到的三张网卡如下(是的,下图反映了我正在用3G上网):

没那么神秘:linux下生存实录

(映射到windows虚拟机中的网卡)

  • 使用问题:高版本迅雷(v7)在虚拟机中运行会报c++运行时库溢出的错误,暂时只能安装低版本迅雷(V5)才可正常运行。网上找迅雷5,下载安装。这时先别急着下载资源,迅雷有自动升级机制,一旦联网,将强制升级,若取消升级则程序会退出,若升级则又变成高版而导致报错,唯一的方式是暴力破坏迅雷5的自动升级程序thunderliveud.exe,在迅雷所在的安装盘搜索在程序,找到后全量删除之;

  • 其他说明:这部分内容是以迅雷为例介绍了在linux下“运行”windows应用程序的通用方法,其他应用,可以此参考。

4、网上购物。网上购物涉及两类操作,网银支付和在线交流,前者就是各大银行的在线支付程序,后者指的是淘宝旺旺软件,典型的两类windows原生应用,请参考上例在windows虚拟机中安装对应软件即可。唯一需要注意的u盾的识别,插入u盾后,先到virtualboxsetting->usb,勾选enableusb controller,再到windows虚拟机中devices->usbdevices列表中选中对应u盾,这样,windows就能正确识别u盾了。其他usb设备的识别与之类似;

罗嗦两句网银支付。目前看来,朝内绝大部分银行仅支持win+ie平台在线支付,完全忽视非windows用户的存在,强烈谴责“为保障您的资金安全,我行建议您在windows操作系统中完成交易”,举着安全大旗招摇过市(windows安全?你银行服务器莫非装的是windowsserver2K3?),相反,国外各大银行遵循标准化,支持在各类操作系统、各自浏览器上进行网上交易,如,美国花旗、汇丰,更有甚者(德国的银行业),银行外对开放API,允许用户自行开发交易程序,怎么没见这些银行发生安全事故!当然,不是所有朝内银行都是“如此重视安全”,浦发银行是少数几家支持跨平台交易的银行,大家风范,值得推荐(不过营业网点有限,二三线城市较少)。http://www.openbanks.info/是一个专注于探讨网银跨平台主题的网站,有兴趣可以逛逛。

5、即时通讯。常用的im工具包括飞信、qqmsn,这三个im都有对应的linux版本,但,不论是官方发布的还是第三方通过逆向工程实现的,从功能完整性、运行稳定性、界面友好性来看,均与windows原生版本存在巨大差距,实际使用效果并不理想。如果的确要用,建议参照上例,在windows虚拟机中安装运行。

或许是冏朝的linux用户量过少(linux在全球桌面领域占有率仅为2%,且主要分布在万恶的欧美等资本主义国家),国内软件开发商基本采用忽略态度,即便发布了linux版的程序,要么长年不更新(qqfor linux##########NextPage##########<

没那么神秘:linux下生存实录

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/linux/39618.html

(0)
上一篇 2021年8月4日 18:41
下一篇 2021年8月4日 18:42

相关推荐

发表回复

登录后才能评论