设为首页 收藏本站
查看: 1036|回复: 0

[经验分享] Linux入门:Linux历史介绍

[复制链接]

尚未签到

发表于 2018-5-20 11:27:36 | 显示全部楼层 |阅读模式
通过本篇文章,读者可以了解Linux和Unix的基本概念、历史、发展情况;
首先,我们通过简单的介绍Unix和Linux,读者可以对其进行比较不同之处,了解Linux的出现为何非常好,Linux的相关背景;

前言(1):操作系统介绍


内核负责控制硬件资源分配,而如果只有内核,则只能让计算机硬件运行,而不能有任何功能,因此需要系统调用提供给开发者使用,从而开发应用程序;
内核能够控制硬件,比如:让CPU可以运算、让硬盘可以读写数据等;只有内核的话,只能让计算机运行,但是我们不能控制计算机;
而系统调用是操作系统提供给开发者的调用接口;
任何硬件都不会默认就被操作系统控制,而需要开发商根据操作系统提供的接口开发驱动程序,只有安装了驱动程序才能够控制硬件设备;
DSC0000.gif


前言(2):Unix简单介绍


Unix一开始是开源的,后来AT&T收回版权,并且不公开源代码
Unix的代码是由90%的C语言和10%的汇编组成;
Unix后来的两大分支:AT&T的System V和BSD(此处我们在下面Linux的发展史上会讲到);


一、Linux介绍

1.Linux简单介绍

Linux核心理念:万物皆目录
Linux:是一个内核,而不是一个操作系统;因此我们平常说的“操作系统用的是Windows、Mac还是Linux啊?”是错误的,Ubuntu、Fedora等才是操作系统的名字,他们都使用Linux内核;
1991年最初由Linus Torvalds针对386(个人计算机)开发;Linus Torvalds那时是芬兰的一名研究生;
Unix Like:很像Unix的操作系统;
苹果电脑为什么现在能装Windows操作系统?因为苹果使用了Intel的X86架构,而windows也是针对此架构的,因此按理论来说一般的PC上也可以安装mac操作系统;
Linux的吉祥物是企鹅(英文名:Tux),因为Torvalds在小时候被企鹅咬过,因此印象非常深刻;
DSC0001.gif

Unix和Linux的代码是由90%的C语言和10%的汇编组成,因此只需要稍加修改,就能移植到其他硬件上;


2.Linux的优缺点

Linux的优点




1.开放的学习环境;
2.漏洞快速修补;
3.因为内核只有几百k,因此适合嵌入式系统;


Linux的缺点

  


1.有些专业软件没有Linux版本;


3.Linux发展史

Unix是用90%的C语言和10%汇编语言混合编写的,因此对于硬件平台的移植时还是需要更改代码,因此各个公司都推出了针对自家机型的Unix系统;
到了AT&T System V第七版时,终于推出了针对X86的Unix,因此终于能够在个人计算机上安装Unix,但是有一条规定:“不能向学生公开源码”,因此Tanebaum教授就不看Unix源码,编写了兼容Unix的针对X86的Minix操作系统;
因为Minix只是教学使用,因此功能并不强,因此Torvalds利用GNU的bash当做开发环境,gcc当做编译工具,编写了Linux内核-v0.02,但是一开始Linux并不能兼容Unix,即Unix上跑的应用程序不能在Linux上跑,即应用程序与内核之间的接口不一致,因为Unix是遵循POSIX规范的,因此Torvalds修改了Linux,并遵循POSIX(Portable Operating System Interface,他规范了应用程序与内核的接口规范);
一开始Linux只适用于386,后来经过全世界的网友的帮助,最终能够兼容多种硬件;
DSC0002.gif




4.Linux内核版本号介绍

命令:uname -r
3.2.0-23
主版本.次版本.释放版本-修改版本
Linux的内核版本分为稳定版本和开发版本;
此版本如果是偶数,则为稳定版本,如果是奇数,则为开发版本,内核开发人员使用;
释放版本为对次版本的改动,即加入一些功能;
修改版本为编译的次数,每次加一;


二、Linux历史


20世纪60年代,MIT开发分时操作系统(Compatible TIme-Sharing System),支持30台终端访问主机;

    ~主机负责运算,而终端负责输入输出;
DSC0003.gif
1965年,Bell实验室、MIT、GE(通用电气公司)准备开发Multics系统,为了同时支持300个终端访问主机,但是1969年失败了;
    ~刚开始并没有鼠标、键盘,输入设备只有卡片机,因此如果要测试某个程序,则需要将读卡纸插入卡片机,如果有错误,还需要重新来过;
    ~Multics:Multiplexed Information and Computing Service

1969年,Ken Thompson(C语言之父)利用汇编语言开发了FIle Server System(Unics,即Unix的原型)
    ~因为汇编语言对于硬件的依赖性,因此只能针对特定硬件;
    ~只是为了移植一款“太空旅游”的游戏;

1973年,Dennis Ritchie和Ken Thompson发明了C语言,而后写出了Unix的内核
    ~将B语言改成C语言,由此产生了C语言之父;
    ~90%的代码是C语言写的,10%的代码用汇编写的,因此移植时只要修改那10%的代码即可;
1977年,Berkeley大学的Bill Joy针对他的机器修改Unix源码,称为BSD(Berkeley Software Distribution)
     ~ Bill Joy是Sun公司的创始人;
1979年,Unix发布System V,用于个人计算机;
1984年,因为Unix规定:“不能对学生提供源码”,Tanenbaum老师自己编写兼容于Unix的Minix,用于教学;
1984年,Stallman开始GNU(GNU's Not Unix)项目,创办FSF(Free Software Foundation)基金会;
     ~ 产品:GCC、Emacs、Bash Shell、GLIBC;
     ~ 倡导“自由软件”;
     ~ GNU的软件缺乏一个开放的平台运行,只能在Unix上运行;
     ~ 自由软件指用户可以对软件做任何修改,甚至再发行,但是始终要挂着GPL的版权;
     ~ 自由软件是可以卖的,但是不能只卖软件,而是卖服务、手册等;
1985年,为了避免GNU开发的自由软件被其他人用作专利软件,因此创建GPL(General Public License)版权声明;
1988年,MIT为了开发GUI,成立了XFree86的组织;
1991年,芬兰赫尔辛基大学的研究生Linus Torvalds基于gcc、bash开发了针对386机器的Lniux内核;
1994年,Torvalds发布Linux-v1.0;
1996年,Torvalds发布Linux-v2.0,确定了Linux的吉祥物:企鹅;


三、Linux重要人物


1.Ken Thompson:C语言之父和Unix之父
DSC0004.png
2.Dennis Ritchie:C语言之父和Unix之父;
DSC0005.png
3.Stallman:著名黑客,GNU创始人,开发了Emacs、gcc、bash shell;
DSC0006.gif
4.Bill Joy:BSD开发者;
DSC0007.gif
5.Tanenbaum:Minix开发者;
DSC0008.png
6.Linus Torvalds:Linux之父,芬兰赫尔辛基大学;
DSC0009.png




Tips:基本术语


(1)Linux Distribution


Linux Distribution:Kernel+Softwares+Tools组成的可安装的系统;Ubuntu、Fedora、SUSE、Redhat都是Linux Distribution;
Linux Distribution按照安装软件的方式分为:RPM包和dpkg安装;
Linux Distribution按照发布版分为:团队版(适用于个人计算机)和商业版(适用于服务器);


(2)Unix Like


很像Unix的操作系统;


(3)授权模式




1.Open Source:开放源代码;
2.Close Source:没有源代码;
        Freeware:免费但不开源;
        Shareware:一开始免费试用,经过一段时间后收费;


(4)POSIX规范

POSIX是对应用程序和系统调用之间的接口的规范;
(5)SELinux
Security Enhanced Linux:美国国家安全局开发,控制Linux的系统文件的访问权限;
(6)KDump功能
当内核出现错误时,会将当时内存的消息写入文件中,以便内核开发者查看;
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-463837-1-1.html 上篇帖子: Linux学习小结20160613 下篇帖子: linux_facl
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表