《鸟哥的Linux私房菜-基础学习篇(第三版)》(二)

第1章 Linux是什么

       1. Linux是什么

首先谈了Linux是什么。就是一套操作系统,即内核与系统调用接口那两层。早期的Linux是针对386来开发的。

然后谈了Linux之前Unix的历史

1)1969年之前:Bell、MIT与GE的“Multics”系统。20世纪60年代初期,MIT开发了分时操作系统(CTSS),可以让大型主机通过提供多个终端机建以连接进入主机,但此时的终端机只具有输入/输出功能。

2)1969年:Ken Thompson的小型File Server System。该系统是以汇编语言编写的,就是UNIX的原型。这个文件系统有两个重要的概念:所有的程序或系统装置都是文件;不管构建编辑器还是附属文件,所写的程序只有一个目的就是有效地完成目标。

3)1973年:UNIX正式诞生,Ritchie等人用C语言写出了第一个正式的UNIX内核。这个改变也使得UNIX很容易被移植到不同的机器上。

4)1977年:重要的UNIX分支—BSD诞生。Bill Joy改进了UNIX内核,命名为Berkeley Software Distribution(BSD)。

5)1979年:重要的System V架构与版权声明。早期的UNIX只用在服务器和大型工作站上,但1979年AT&T提出的System V 第七版UNIX最重要的特点是可以支持x86架构的个人计算机系统。目前被称为纯种的UNIX指的就是System V和BSD这两套。

6)1984年之一:x86架构的Minix操作系统诞生。谭宁邦教授自己动手写了Minix这个Unix Like的内核程序。

7)1984年之二:GNU项目与FSF基金会成立。Stallman(史托曼)发起了GNU项目,目的是创建一个自由的、开放的UNIX操作系统(Free UNIX)。此外,他还开发了C语言的编译程序GNU C Complier(GCC),他还成立了自由软件基金会(Free Software Foundation),还开发了编辑器Emacs,还编写了更多可以被调用的C函数库(GUN C Library)以及可以被用来操作操作系统的基本接口bash
shell。

8)1988年:图形接口XFree86项目。其实是X Window System + Free + x86的整合名称。

9)1991年:芬兰的赫尔辛基大学的Linus Torvalds开发了Linux系统内核。

最后又谈了关于GNU项目。将源码连同软件程序释出的举动称为自由软件运动。GNU具有通用公共许可证(GPL),GNU就是GNU‘s Not UNIX的意思。自由软件的重点不是指“免费”的,而是指具有“自由度”的软件,即用户可以自由执行、复制、再发行、学习、修改与强化自由软件。自由软件是可以销售的,但应同时搭配售货服务与相关手册。自由软件工作者主要收益是来自服务费。另外,GPL也是可以从事商业行为的。

       2. Torvalds的Linux开发

首先谈了Minix。托瓦兹通过这个的源码学到了很多内核程序设计的概念。

然后谈了对386硬件的多任务测试。托瓦兹探索了386的硬件。

接着又谈了初次释出Linux 0.02。托瓦兹通过GNU项目提供的bash工作环境软件以及gcc编译程序等自由软件顺利编写了内核程序。由于他放置内核的那个FTP网站的目录为Linux,所以这个内核便被称为Linux。为了让Linux能够兼容UNIX,他修改了Linux,并参考POSIX规范(可携式操作系统接口,重点在于规范内核与应用程序之间的接口)。

还谈到了Linux开发:虚拟团队的产生。经历了“单一个人维护阶段”到“广大志愿者加入阶段”再到“内核功能细部分工开发阶段”。由于托瓦兹和他的助手都没有见过面,所以他的团队也成为虚拟团队。

又谈到了Linux的内核版本。类似于2.6.18-92.e15分别对应着主版本.次版本.释出版本-修改版本。主、次版本为奇数代表是开发中的版本;主、次版本为偶数代表是稳定的版本;释出版本是主、次版本架构不变的情况下,新增的功能累积到一定的程度后所新释出的内核版本。Linux版本指的是内核版本,常说的Linux系统则是说的distribution。

最后就谈到了Linux distribution。“Kernel + Software + Tools”的可完全安装系统称为Linux distribution。每个Linux distribution都遵循了Linux Standard Base(LSB)标准和File
system Hierarchy Standard(FHS)规范,差异并不大。如果安装在个人计算机上推荐使用团队版,如果用在服务器上推荐使用商业版,更稳定。中文Linux的翻译靠的是CLE这个套件。

       3. Linux的特色

UNIX Like是目前服务器类型的操作系统的统称。

首先谈了Linux的特色

1)自由与开放的使用与学习环境。

2)配备需求低廉。

3)内核功能强大而稳定。

4)独立作业。

随后谈到了Linux的优缺点。优点是:

1)稳定的系统。

2)免费或少许费用。

3)安全性、漏洞的快速修补。

4)多任务、多用户。

5)用户与用户组的规划。

6)相对比较不耗资源的系统。

7)适合需要小内核程序的嵌入式系统。

8)整合度佳且多样的图形用户界面(GUI)。

缺点是:

1)需要使用命令行模式操作。

2)没有特定的支持厂商。

3)游戏的支持度不足。

4)专业软件的支持度不足。

最后谈了关于授权。有几个授权模式:

1)Open Source(开放源码)。除了可执行的软件本身外,一定伴随着源码的释出。如GNU,BSD,Apache License等。

2)Close Source。仅推出可执行的二进制程序。其中Freeware是“免费软件”,不一定要公开源码;Shareware是共享软件,初期免费,试用期到了要付费。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-28 19:22:37

《鸟哥的Linux私房菜-基础学习篇(第三版)》(二)的相关文章

Jquery知识点总结(二)

JQuery遍历1 传统的for   2 通过each对象调用callback函数 callback回调函数 /*    * JQ提供的技术,实现遍历    * JQ对象函数调用 each(参数 callback) 参数:函数 回调函数    */    //JQ对象,调用函数each(遍历),传递匿名函数    //JQ自己调用,每遍历一次数组,自动调用一次匿名函数    //匿名函数中参数,i是索引,element是遍历到的元素    $options.each(function(i,ele

jquery知识点总结二

*清空元素* $('ul').empty() *复制节点* $li.clone().appendTo("ul"); 替换节点 $li.replaceWith("<li>哈哈</li>");---替换某个节点 ("<li>哈哈</li>"). replaceAll($li); ---------- *追加CSS样式* **addClass()---注意点attr("class名称"

jquery知识点梳理

jQuery知识点梳理 一.              jquery选择器 基本选择器 ID选择器 类选择器 标记选择器 分组选择器 通配符选择器 层次选择器 $(“ancestor descendent”):祖先后代选择器    空格 $(“parent > child”):父子选择器   大于 $(“prev + next”):相邻后兄弟元素选择器   加号 $(“prev ~ siblings”):所有后兄弟元素选择器  波浪线 过滤选择器:基本过滤选择器 :first.:last.:od

琐碎的知识点(二)

1.绑定设置时间格式 <%#Eval("time", "{0:yyyy-MM-dd}")%> <%#DateTime.Parse(Eval("time").ToString()).ToString("yyyy-MM-dd")%> 2.Repeater1.Items.Count 是指Repeter1的数据绑定条数 <%#this.rptnewstraining.Items.Count == 0 ?

.NET知识点总结二(笔记整合)

19.什么是类型? 用来定义某一种数据在内存里开辟空间的大小,还可以预置操作此种类型数据的相关方法 20.this关键字在方法中使用时所代表的含义 this指的是当前类的对象,或者父类的类的对象(base只能指向父类的对象) 21.里氏替换原则 子类替换父类所在的位置 22.C#中的数据类型 值类型 简单类型(数字类型(int,short,long,float,double),字符(char),逻辑值(bool)),结构体(struct),枚举(enum) 引用类型 字符串(string),数组

jQuery 入门教程(二): 基本语法

学习jQuery之前需要你有下面几个方面的基本知识 HTML CSS JavaScript jQuery 的基本语法 $(selector).action() $ 符合定义这是一个jQuery语句 (selector) 用来选择某个HTML元素,其语法和CSS的selector语法一样. action() 定义操作该HTML元素的方法. 比如: $(this).hide() – 隐藏当前元素. $("p").hide() – 隐藏所以 <p> 元素. $(".te

20150225 IMX257 设备驱动模型之sysfs文件系统知识点整合(二)

20150225 IMX257 设备驱动模型之sysfs文件系统知识点整合(二) 2012-02-25 李海沿 前天我们实现了一个简单的sysfs的kobject的驱动程序,可是有没有发现很多东西都不懂,原因就是在我们对sysfs和kobject的工作原理不懂,虽然我一直不提倡整天接触那些乏味的知识点,也一直不喜欢谈论太多的知识点,但是有的时候,理论知识是实践的基础,有些基础的知识点还是不得不提,下面进入正题. 一.sysfs介绍 在linux2.6内核以后,引入了一个新的文件系统sysfs,它

在angular中结合使用jquery的生成二维码插件

最近在开发项目中,需要在ionic框架中使用到jquery的生成二维码功能的插件,起初我直接在templates中写js代码: 发现这段代码根本就不会执行,原因是js代码必须要在该模块的作用域范围内才能生效,于是把这段代码该模块对应的controller中即可: 在学习angular中永远不要忘记作用域这件事.哈哈,看来学习编程的过程中有时需要抛开传统的思维方式才行啊.虽然只是一个小小的问题,但对于初学angular的我还是纠结了好一阵.

jquery效果(二)

jQuery animate() 方法用于创建自定义动画.语法:$(selector).animate({params},speed,callback);必需的 params 参数定义形成动画的 CSS 属性.可选的 speed 参数规定效果的时长.它可以取以下值:"slow"."fast" 或毫秒.可选的 callback 参数是动画完成后所执行的函数名称. $("button").click(function(){ $("div&q

jQuery生成QRCode二维码

<!DOCTYPE html> <html> <head>   <meta charset="utf-8">   <title>jQuery生成QRCode二维码</title> </head> <body> <!-- 存放二维码 --> <div id="qrcode-1"></div> <!-- 存放二维码 --> &l