一个新手对linux的认识

Linux是什么?Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统(专业解释)。简单点说,就是一个比windows吊的操作系统,如果你不服,请憋着。也许有人会问什么是操作系统,这个如果解释清楚估计还是很费时间的,显然我是没有这点本事的。简单点说,新手认为就是一个接口,一个连接计算机硬件,软件和用户的程序。举个例子,凭什么双击就能打开word,保存就能把文件放到硬盘里。

Linux为啥这么厉害,不好意思今天不谈这个,新手只说说Linux的由来。很多人都知道Linux来源于unix,那么unix又怎么来的呢?那么新手就随便扯扯了,最老的家伙是批处理系统,然而它缺点很多,谁叫它是最老的呢。于是,1964年,由贝尔实验室和美国的麻省理工以及电气公司共同研制了一个多人多任务的操作系统,叫multics,多人嘛,然而这个系统比较超前,难度大,资金缺。贝尔实验室首先退出了该项目,其中一个叫ken Thompson 的人自己设计了一个叫space travel的游戏在multics上运行,然而退出了显然不能再使用multics,也就不能玩游戏了,让他非常恼火,而且multics当时很贵,一般人根本用不起,更不用说为了玩一个游戏了。我们都知道玩游戏的人都很疯狂,ken爷爷搜刮了整个贝尔,搜到了一台闲置的PDP-7机器(DEC公司的产品,已被康柏收购),他在这台机子上重写了它的游戏, 并向公司的人炫耀,然而公司人却不在意它的游戏而更在乎它的系统,他们笑称其为UNICS,与multics相反嘛。后来,大家就取其谐音叫unix了。1971年,ken爷爷终于申请到了一台先进的PDP-11,在上面重新写了unix,第一版就这么诞生了。之后,Ken Thompson 与它的好友Dennis Ritchie发现用汇编语言做移植过于恼火,于是想用高级一点的语言来编写,牛人就是牛人,他们用一款bcpl的语言开发,并整合为B语言,还是恼火,于是升级一下,c语言就出来了。他们用c语言成功重写了unix内核,显然大获成功。

后来,肯爷爷就退出了贝尔,去加州伯克利分校教书育人了,不过这个学校有个叫 Bill Joy的人,不用说这是个大牛,他组织了一个研究unix的社,研究了一个BSD的操作系统,这个就吊了,苹果系统就是基于它做的。他还贡献了TCP/IP,VI等吊的的飞起的东西,创建了SUN公司,就不吹了。既然这个BSD这么厉害,肯定也是大卖特卖了,这样贝尔就不爽了,于是他两就打起了官司,一打就是十多年。unix的发展就停滞了,然而就是这十多年,微软,苹果就发展了起来,尤其是微软做出了windows nt一下了成为了一个大头,这里比尔盖茨和乔布斯的故事也很多就不扯了。严重威胁到了unix的发展,然而当BSD和贝尔发现的时候,和解并合作已经为时已晚了。

自从贝尔加入AT&T,unix商业化,贵的吓人,一般人无法用得起,大学也是一样。尤其是对Andrew一个荷兰大学教授,本来就是一个固执的老头,显然十分恼火,于是他根据自己的教学经验和对unix的了解,仿照unix设计了一个minix操作系统,用来讲课用,这个系统很简单,很多大牛都对它进行了改进,然而Andrew老教授就是不肯把这些加入到它的源代码中,minux有个有名的学生叫Linus Torvalds,和很多大牛一样,他对该系统也不感冒,于是在minix的基础上,自己编写了一个新的操作系统内核,成为Linux。

说道Linux,就必须谈到GNU,由于unix,微软各种软件商业化,让很多程序员非常不爽,于是一个叫stallman的人发起了一场GNU计划,GNU IS NOT UNIX的简称,他认为一切软件都应该是自由的,GPL是他的宣言,一切软件都要以源代码的形式发布,任何人都可以使用,但无论你如何修改了它,你都要提供源代码,虽然有缺点,后来又推出了LGPL来改进,这是后话了。但是这种开源的做法收到了世界上许许多多的程序员的支持,并无偿为其奉献自己的力量,然而虽然软件是开源了,然而操作系统却是一大毒瘤,没有免费的可用。于是,stallman决定自己研发一套操作系统,然而不幸的是,没有研究出来。想必大家结果也猜到了,Linux和GNU冥冥之中相遇了,并完美结合,这就是大名鼎鼎的GNU/Linux了,GNU负责软件,linux负责内核,而向redhat,Debian等则是将两者结合起来发行,只是都有自己的特色。

时间: 2024-08-26 15:10:42

一个新手对linux的认识的相关文章

新手关于Linux虚拟机的配置

新手关于Linux虚拟机的配置 对于学习linux的新手来说,虚拟机的配置以及与主机之间的网络连接是非常重要的.在课堂上,也许这些配置老师都已经做好了,自己安心使用即可.但是回到家,如果不配置好的话,就无法自己练习.因为自己也是新手,深有体会,所以把自己配置虚机的方法总结出来,希望对大家有所帮助. 我自己使用的主机是redhat7.0的,因为学习的需要安装的虚拟机是redhat6.5的. 虚拟机使用的镜像:rhel-server-6.5-x86_64-dvd.iso 镜像一定要保证完整性,不然会

Ceph:一个开源的 Linux PB 级分布式文件系统

探索 Ceph 文件系统和生态系统 M. Tim Jones , 自由作家 简介:  Linux®持续不断进军可扩展计算空间,特别是可扩展存储空间.Ceph 最近才加入到 Linux 中令人印象深刻的文件系统备选行列,它是一个分布式文件系统,能够在维护 POSIX 兼容性的同时加入了复制和容错功能.探索 Ceph 的架构,学习它如何提供容错功能,简化海量数据管理. 标记本文! 发布日期:  2010 年 6 月 12 日 级别:  中级 其他语言版本:  英文 访问情况  5726 次浏览 建议

一个新手对RHCE的酸甜苦辣【啊!多么励志的领悟~】

一个新手RHCE的酸甜苦辣,很多人都想考一个RHCE认证吧,大家不妨看看我是怎么变成一个RHCE的. 1 爱之出体验 我2003年11月第一次接触linux,那个时候觉得这个东西挺神秘的,因为听说它是和unix是一个级别的系统,然后学习了一个月的基础知识.那时候才知道她和unix内心完全不同而外表又出奇的相似,反正我是那么人为的,因为我那个时候根本就没有用过UNIX呵呵.那个时候学习一些关于网络服务的课程时晕头转像没有一点头绪.那个时候觉得这个东西太难了.但是由于我深深的linux的开源精神所吸

linux内核分析 第三周 构造一个简单的Linux系统MenuOS

一.计算机的三个法宝 存储程序计算机,函数调用堆栈,中断二.操作系统的两把剑:1.中断上下文的切换,保存现场和恢复现场2.进程上下文的切换. 三.linux内核源代码的分析: ·arch/目录保存支持多种CPU类型的源代码,重点是x86·init目录:含有main.c,内核启动相关的代码基本都在init目录下·ipc目录:进程间的通信·kernel目录:有Linux内核的核心代码.四.构造一个简单的Linux系统 使用实验楼的虚拟机打开shell 1.cd LinuxKernel/2.qemu

作业3:构造一个简单的Linux系统MenuOS 20135115臧文君

构造一个简单的Linux系统MenuOS 注:作者:臧文君,原创作品转载请注明出处,<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.Linux内核源代码介绍 1.根目录 arch/x86目录下的代码是我们重点关注的,arch中包括支持不同CPU的源代码. init目录下包含内核启动相关的代码,如main.c(start_kernel函数相当于普通C程序的main函数,是Linux内核初始化的起点). ipc

Linux内核设计第三周——构造一个简单的Linux系统

Linux内核设计第三周 ——构造一个简单的Linux系统 一.知识点总结 计算机三个法宝: 存储程序计算机 函数调用堆栈 中断 操作系统两把宝剑: 中断上下文的切换 进程上下文的切换 linux内核源代码分析 arch/目录保存支持多种CPU类型的源代码 其中的关键目录包括:Documentation.drivers.firewall.fs(文件系统).include init目录:含有main.c,内核启动相关的代码基本都在init目录下 start_kernal()函数为启动函数,初始化内

20135327郭皓--Linux内核分析第三周 构造一个简单的Linux系统MenuOS

Linux内核分析第三周  构造一个简单的Linux系统MenuOS 前提回顾 1.计算机是如何工作的三个法宝 1.存储程序计算机 2.函数调用堆栈 3.中断 2.操作系统的两把宝剑 中断上下文的切换 进程上下文的切换 第一讲  Linux内核源代码介绍 arch目录包括了所有和体系结构相关的核心代码.它下面的每一个子目录都代表一种Linux支持的体系结构,例如i386就是Intel CPU及与之相兼容体系结构的子目录.PC机一般都基于此目录. init目录包含核心的初始化代码(不是系统的引导代

《Linux内核分析》第三周笔记 构造一个简单的Linux系统MenuOS

构造一个简单的Linux系统MenuOS 一.linux内核源代码简介 三大法宝(存储程序计算机.函数调用堆栈.中断)和两把宝剑(中断上下文的切换:保存现场和恢复现场.进程上下文的切换) 1.在linux内核源码里面arch占有的代码量相当庞大.arch/x86目录下的代码是我们重点关注的. 2.内核启动相关的代码基本都在init目录下(main.c). start_kernel是初始化linux内核的起点. start_kernel相当于c程序中的main函数 3.linux内核的核心代码在k

《Linux内核分析》第三周 构建一个简单的Linux系统MenuOS

[刘蔚然 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000] WEEK THREE(2.29——3.6)构造一个简单的Linux系统MenuOS SECTION 1 Linux内核源代码简介 1.操作系统的两把宝剑(回顾上一讲) 中断上下文的切换——保存现场&恢复现场 进程上下文的切换 2.Linux内核源代码简介 打开内核源代码页面 arch/目录:支持不同CPU的源代码:其中的