Linux系统

本文介绍了Linux的基本概念,包括其优势与劣势、与UNIX的关系、安装步骤,并提供了学习路线,涵盖基础知识、高级技巧和深度研究方向。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、Linux简介

1、劣势

在PC端,可以在Linux上运行的产品数量不如Windows和Mac多,Linux界面不像Windows和Mac一样可以完全脱离命令

2、优势

(1)Linux真正的用武之地是蓬勃发展的信息接入设备市场。这些新兴的设备只有有限的内存,价格也只有几百美元,因此开发者需要新的操作系统来代替像Windows这样昂贵、臃肿的操作系统。而Linux具有的短小可定制对Internet极好的兼容性低价特性使它成为这一领域的最佳选择。正是由于这一原因,软件开发商已经推出了可以在手机、Palm装置甚至汽车上运行的Linux版本。

(2)此外,Linux还非常适合于各种专用计算机,例如收银机和其他专用终端等。在这些应用领域,Linux是一个廉价、连网性能好且能替代Windows等通用操作系统的替代品。

二、Linux和UNIX的关系及区别

UNIX 诞生于 20 世纪 60 年代末,Windows 诞生于 20 世纪 80 年代中期,Linux 诞生于 20 世纪 90 年代初,可以说 UNIX 是操作系统中的"老大哥",后来的 Windows 和 Linux 都参考了 UNIX。

有意思的是,肯•汤普森当年开发 UNIX 的初衷是运行他编写的一款计算机游戏 Space Travel,这款游戏模拟太阳系天体运动,由玩家驾驶飞船,观赏景色并尝试在各种行星和月亮上登陆。他先后在多个系统上试验,但运行效果不甚理想,于是决定自己开发操作系统,就这样,UNIX 诞生了。

自 1970 年后,UNIX 系统在贝尔实验室内部的程序员之间逐渐流行起来。1971-1972 年,肯•汤普森的同事丹尼斯•里奇发明了传说中的C语言,这是一种适合编写系统软件的高级语言,它的诞生是 UNIX 系统发展过程中的一个重要里程碑,它宣告了在操作系统的开发中,汇编语言不再是主宰。

到了 1973 年,UNIX 系统的绝大部分源代码都用C语言进行了重写,这为提高 UNIX 系统的可移植性打下了基础(之前操作系统多采用汇编语言,对硬件依赖性强),也为提高系统软件的开发效率创造了条件。可以说,UNIX 系统与C语言是一对孪生兄弟,具有密不可分的关系。

三、安装ubantu

1、VMware WorkStation中配置ubantu

(1)VMware WorkStation中新建虚拟机,选择Custom(advanced);

(2)选择I will install the operating system later;

(3)选择“Linux”,然后请在Version中弹出的下拉列表中找到并选择“Ubuntu”;

(4)在“Virtual machine name”中您可以输入“Ubuntu”;在 “Location” 中请点击“Browse”浏览您想让这个系统放置的地方,尽可能要有20GB 的剩余空间。

(5)选择 “Store virtual disk as a single file”;

(6)点击“Customize Hardware”;

(7)在左栏选择“Display”选项。然后在右栏选择“Accelerate 3D graphics”;

(8)在左栏选择“CD/DVD(IDE)”选项。然后在右栏点击“Use ISO image file”中的 “Browse”按钮,弹出对话框,现在就请你将你刚才下载下的文件找到并选择。

2、VMware WorkStation中安装ubantu

(1) 点击“Power on this virtual machine” 按钮即可开启虚拟机。注意:安装时请不要插入U盘!

(2) 在左栏中找到熟悉的“中文(简体)”,在右栏中点击“安装Ubuntu”;

(3) 点击“安装这个第三方软件”,然后点击“继续”;

(4) 点击“现在安装”;

(5) 在地图上选择您所在的地方,点击“继续”;

(6) 填写姓名及密码;

(7) 安装后重启。

四、连接网络

1、保证自己的电脑能正常连接网络;

2、计算机右键管理,打开关于VMware的所有服务(一般情况服务设置的是手动启动,需要自己打开);

3、VMware WorkStation中打开左侧栏,在ubantu右键设置选择网络适配器选项,将连接方式设置成NAT模式,并进行保存。

4、本机网络更改适配器设置中无线网络连接、本地连接右键属性,点击共享,勾选允许其他用户通过此计算机的Internet连接来连接,选择一个VMware Network Adapter;点击确定。

五、打开终端

第一种方式:在ubantu中Alt键打开搜索,输入XTerm,点击打开;

第二种方式:Ctrl+Alt+T打开。

六、Linux学习路线

1>底线和基础:

1、安装Linux发行版,熟悉Linux命令,建立Linux命令知识库;

Linux发行版:

(1)UBUNTU适合纯菜鸟,追求稳定的官方支持,对系统稳定性要求较弱,喜欢最新应用,相对来说不太喜欢折腾的开发者。

(2)Debian,相对UBUNTU难很多的发行版,突出特点是稳定与容易使用的包管理系统,缺点是企业支持不足,为社区开发驱动。

(3)Arch,追逐时尚的开发者的首选,优点是包更新相当快,无缝升级,一次安装基本可以一直运作下去,没有如UBUNTU那样的版本概念,说的专业点叫滚动升级,保持你的系统一定是最新的。缺点显然易见,不稳定。同时安装配置相对Debian再麻烦点。

(4)Gentoo,相对Arch再难点,考验使用者的综合水平,从系统安装到微调,内核编译都亲历亲为,是高手及黑客显示自己技术手段,按需配置符合自己要求的系统的首选。

(5)Slackware与Gentoo类似。

(6)CentOS,社区维护的RedHat的复刻版本,完全使用RedHat的源码重新编译生成,与RedHat的兼容性在理论上来说是最好的。如果你专注于Linux服务器,如网络管理,架站,那么CentOS是你的选择。

(7)LFS,终极黑客显摆工具,完全从源代码安装,编译系统。安装前你得到的只有一份文档,你要做的就是照文档你的说明,一步步,一条条命令,一个个软件包的去构建你的Linux,完全由你自己控制,想要什么就是什么。如果你做出了LFS,证明你的Linux功底已经相当不错,如果你能拿LFS文档活学活用,再将Linux从源代码开始移植到嵌入式系统,我敢说中国的企业你可以混的很好。

2、在vim下学习Linux平台的C、C++、Bash、JAVA开发;

(1)推荐书籍:C语言程序设计,C语言白皮书,C++ Primer Plus,VIM的官方手册,GCC中文文档,GDB中文文档,GNU开源软件开发指导(电子书),汇编语言程序设计(让你对库,链接,内嵌汇编,编译器优化选项有初步了解,不必深度)。

2>高级:

3、Linux系统编程;

(1)推荐书籍:APUE,UNIX环境高级编程

(2)Linux与Windows平台间开发的差异及它们的优缺点:

做Windows平台开发,很苦,微软的系统API总在扩容,想使用最新潮,最高效的功能,最适合当前流行系统的功能你必须时刻学习。Linux不是,Linux系统的核心API就100来个,记忆力好完全可以背下来。而且经久不变,为什么不变,因为要同UNIX兼容,符合POSIX标准。所以Linux平台的开发大多是专注于底层的或服务器编程。这是其优点,当然图形是Linux的软肋,但我站在一个开发者的角度,我无所谓,因为命令行我也可以适应,如果有更好的图形界面我就当作恩赐吧。另外,Windows闭源,系统做了什么你更本不知道,永远被微软牵着鼻子跑,想想如果微软说Win8不支持QQ,那腾讯不得哭死。而Linux完全开源,你不喜欢,可以自己改,只要你技术够。另外,Windows虽然使用的人多,但使用场合单一,专注与桌面。而Linux在各个方面都有发展,尤其在云计算,服务器软件,嵌入式领域,企业级应用上有广大前景,而且兼容性一流,由于支持POSIX可以无缝的运行在UNIX系统之上,不管是苹果的Mac还是IBM的AS400系列,都是完全支持的。另外,Linux的开发环境支持也绝对是一流的,不管是C/C++,Java,Bash,Python,PHP,Javascript等,就连C#也支持。而微软除Visual Stdio套件以外,都不怎么友好。

3>深度:

4、大体上分为四个方向:网络,图形,嵌入式,设备驱动;

(1)网络方向:

如:服务器软件编写及高性能的并发程序编写;

学习路线:

APUE再深读 – 尤其是进程,线程,IPC,套接字

多核程序设计 - Pthread一定得吃透了,你很NB

UNIX网络编程 – 卷一,卷二

TCP/IP网络详解 – 卷一 再看上面两本书时就该看了

TCP/IP 网络详解 – 卷二 我觉得看到卷二就差不多了,当然卷三看了更好,努力,争取看了

Lighttpd源代码- 这个服务器也很有名了

Nginx源代码 – 相较于Apache,Nginx的源码较少,如果能看个大致,很NB。看源代码主要是要学习里面的套接字编程及并发控制,想想都激动。如果你有这些本事,可以试着往暴雪投简历,为他们写服务器后台,想一想全球的魔兽都运行在你的服务器软件上。

Linux内核TCP/IP协议栈 – 深入了解TCP/IP的实现

如果你还喜欢驱动程序设计,可以看看更底层的协议,如链路层的,写什么路由器,网卡,网络设备的驱动及嵌入式系统软件应该也不成问题了。

(2)图形方向:

图形方向也是很有前途的,以下几个方面。

Opengl的工业及游戏开发,国外较成熟。

影视动画特效,如皮克斯,也是国外较成熟。

GPU计算技术,可以应用在浏览器网页渲染上,GPU计算资源利用上,由于开源的原因,有很多的文档程序可以参考。如果能进火狐开发,或google做浏览器开发,应该会很好。

(3)嵌入式方向:

掌握多个架构,不仅X86的,ARM的,单片机什么的也必须得懂。硬件不懂我预见你会死在半路上,。奉劝大家,一定得懂硬件再去做,如果走到嵌入式应用开发,只能祝你好运,不要碰上像Nokia,Hp这样的公司,否则你会很惨的。

(4)设备驱动方向:

软件开发周期是很长的,硬件不同,很快。每个月诞生那么多的新硬件,如何让他们在Linux上工作起来,这是你的工作。由于Linux的兼容性很好,如果不是太低层的驱动,基本C语言就可以搞定,系统架构的影响不大,因为有系统支持,你可能做些许更改就可以在ARM上使用PC的硬件了,所以做硬件驱动开发不像嵌入式,对硬件知识的要求很高。可以从事的方向也很多,如家电啊,特别是如索尼,日立,希捷,富士康这样的厂子,很稀缺的。

学习路线:

LDD – Linux驱动程序设计与内核编程的基础读物

深入理解Linux内核 – 进阶的

Linux源代码 – 永无止境的

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风铃峰顶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值