一、计算机基础知识
一个完整的计算机系统是由硬件与软件两大部分组成的。
1. 硬件
硬件是计算机物理装置本身,它是计算机系统的物质基础。主要硬件资源如下:
1) 中央处理器(CPU)
2) 内存
3) 存储设备
4) 输入/输出(I/O)设备
硬件的基本构成
2. 软件
软件主要包括三大类:系统软件、应用软件和支撑软件。其中系统软件与应用软件在我们日常的计算机使用中经常用到。比如系统软件:Windows、UNIX、Linux和OS等,应用软件如制图、数据统计、文档等,而支撑软件主要是辅助软件技术人员从事软件开发和项目管理等。
二、操作系统的功能
操作系统是用户和计算机硬件之间的界面,它是控制、管理计算机系统内各种硬件和软件资源,有效地组织多道程序运行的系统软件或程序集合。
主要功能如下
1. 硬件控制
2. 资源管理
Linux系统支持多用户共享计算机系统的资源。
3. 用户接口
1) 命令行接口
Linux系统中,通常将命令解释程序成为shell。最常用的shell有Bourneshell(sh)、C shell(csh)、Bourne Againshell(bash)和Korn shell(kah)。
2) 菜单
3) 图形用户接口
4) 程序接口(系统调用接口)
4. 输入和输出处理
5. 系统监控
6. 通信
三、Linux操作系统
1. Linux的历史
20世纪60年代,MIT开发分时操作系统(Compatible TIme-Sharing System),支持30台终端访问主机;
~主机负责运算,而终端负责输入输出;
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的吉祥物:企鹅;
说明:此部分转载自http://blog.csdn.net/xiazdong/article/details/7835219
2. Linux特点
1) 与UNIX相容
现有Linux已具有全部UNIX特征,遵从IEEEPOSIX标准的操作系统。
2) 自由软件和源码公开
Linux项目一开始就与GNU项目紧密结合起来,它的许多重要组成部分直接来自GNU项目。任何人只要遵守GPL条款(General Public License,GNU通用公共许可证),就可以自由使用Linux源程序。
3) 性能高和安全性强
小型服务器工作平台、先进的网络支持、系统管理软件、网络分析软件、网络安全软件等,其Linux源码公开。
4) 便于定制和在开发
5) 互操作性高
i)客户-服务器(C/S)网络 ii)工作站 iii)仿真
6) 全面的多任务和真正的32位操作系统
3. Linux版本
见下一篇博文