一、计算机系统的组成

  计算机系统可以大体分为两部分,由硬件系统和软件系统组成。

1.1、冯·诺依曼体系概述

  有个对计算机贡献很大的人,我们一定要记住他的名字,叫约翰.冯.诺伊曼。他是匈牙利出生的美国犹太人,他在普林斯顿大学期间,从数学意义上总结了量子力学的发展,出版了《量子力学的数学基础》,这本书算是一部著作。他在物理学,数学、计算机等领域都做出过杰出的贡献。他在计算机领域的贡献更是显著,提出来计算机内部最主要的结构原理--存储程序原理,确定计算机基本部件由五个主要部分组成,即运算器、控制器、存储器、输入和输出设备。

计算机中的五大基本部件:

  • CPU(运算器、控制器),这两大基本部件来源于CPU,其中运算器主要是对数据进程各种算术运算和逻辑运算,简单来说就是对数据进行加工处理。而控制器是对程序规定的控制信息进行解释,主要是根据要求来完成控制,程序调度,数据,地址,协调计算机各部分工作以及内存与外部设备之间的访问等等;
  • 存储器,主要是用来存储程序、数据和各种信号、命令信息;
  • 输入(设备),主要是用来完成下达指令,提供数据输入。将程序、原始数据、文字、字符、控制命令等输入到计算机;
  • 输出(设备),主要是用来对已经完成数据加工后的处理的结果进行输出。把计算机的中间结果或最后结果、机内的各种数据符号及文字或各种控制信息等内容输出并回显出来。

1.2、硬件系统简单组成

主机本身

  主机部分可以简单分CPU(主要由运算器和控制器两部分组成)、内存(ROM和RAM)等;

外部设备

  常见的外部设备有外部存储器(数据硬盘,数据软盘,数据光盘,数据磁带等)、输入设备(键盘和鼠标等)、输出设备(电脑显示器、打印机等)、其他设备;

1.3、软件系统简单组成

  软件系统可以简单划分为系统软件和应用软件,前者主要是指我们熟知的操作系统,后者主要是指现在第三方应用程序。

1.4、cpu的生产公司以及类型

cpu常见的几个生产公司

Intel,AMD,IBM这几大厂商生产的CPU比较常见;

cpu类型

常见的cpu类型,以下是一个列表:
x86
x64
ARM
m68000(俗称m68k)
Power
Powerpc
ultrasparc
Alpha
安腾

1.5、操作系统的概念

  操作系统是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在"裸机"上的最基本的系统软件。操作系统提供了用户访问计算机的接口,提供了应用程序访问计算机硬件资源的接口。它可以实现以下几个基本功能:

  • 硬件驱动
  • 进程管理
  • 内存管理
  • 网络管理
  • 安全管理
  • 文件管理
    以上每一个功能都是一个比较核心的体现,用来更好了完成计算机提供给对外的服务工作。

可以把操作系统简单分为以下几类:
服务器类的操作系统
桌面类的操作系统
移动类的操作系统

  为了实现操作系统的功能管理,把操作系统分成了两个层面,一个叫用户空间(User Space),另一个叫内核空间(Kernel Space)。

二、程序运行原理

  我们都知道计算机系统由硬件系统和软件系统构成,对外提供服务,那么为了更好的访问这些所谓的硬件资源,对上抽象出一个操作系统的模型,帮助用户屏蔽了对底层硬件访问的细节,所有的功能都集成到操作系统。这些实现,就是我们俗称的系统调用(system call).系统调用隐藏底层对硬件资源操作的底层接口,这个接口具有通用性,也比较底层。由于系统调用这一层接口对于第三方应用程序开发者来说还是具有一些难度,功能实现起来比较复杂,所以在提供系统调用的接口上又实现了一层接口,叫库(library)。库就是把系统调用组合起来的一些具有复杂功能的一个接口,用户可以自行调用这些接口(有时候也要直接做系统调用)来完成一些功能的开发。前边我们提到了用户空间和内核空间的概念,我们这里的系统调用,就需要在两个状态之间进行切换,因为应用程序通常是运行在用户空间的,由其注册使用底层资源都需要经过内核空间来分配管理,所以要从用户态切换到内核态,然后再由内核态切换到用户态。

  在程序运行原理的中,有几个核心的概念要知道。一个叫做应用程序二进制接口(ABI,Application Binary Interface),另一个叫应用程序接口(API,Application Programming Interface)。其中ABI描述了应用程序与操作系统之间的底层接口,允许编译好的目标代码在使用兼容ABI的系统中无需改动就能运行。而API定义了源代码和库之间的接口,因此同样的源代码可以在支持这个API的任何系统中编译。

三、linux 主流发行及分支

3.1、主流的三大分支以及其他两个比较新的发行分支

  • debian系列
    Debian系列是社区维护中,最大的一个主流分支。其下发展发行版本分支不计其数。
    其下发展分支中有个比较有名的叫ubuntu的发行版本,比较受欢迎,特别是其图形界面
    做的比较漂亮。Debian采用apt-get/dpkg包管理方式。Debian有三个版本:

摘抄地址
1> 测试版本(unstable)
最新的测试版本,其中包括最新的软件包,但是也有相对较多的bug,适合桌面用户。
2> 次稳定版本(testing)
经过unstable中的测试,相对较为稳定,也支持了不少新技术。
3> 稳定版本(stable)
一般只用于服务器,上面的软件包大部分都比较过时,但是稳定和安全性都非常的高

  • slackware系列
    slackware使一个比较独特的系列,也是一个相对比较古老的系列。它坚持自己原则,很多设计遵循自己原先的思想。用户上手难度较高。它没有成熟的包管理器。它只吸收稳定版本的引用程序。基于它的有个比较有名的发行版本叫S.U.S.E。SUSE版本分为:
    SUSE企业版本:SLES(Suse Linux Enterprise Server)
    SUSE个人版本(桌面版本):openSUSE

  • redhat系列
    redhat系列早起是做桌面版的,后来发展自己企业版本之路。为了遵循GNU许可证协定。商业发展之路,卖服务。
    RHEL(Redhat Enterprise Linux,redhat企业版本,redhat收费版本);
    CentOS(RHEL的社区克隆版本,免费的,后来被redhat招安,目前依然处于社区维护以及免费开源中,也是现在各大企业非常青睐的一个发行版)
    Fedora Core(早起redhat桌面版发展而来,现在也越来越好了)
    redhat系列基于rpm包管理器。

其他两个新贵当属Gentoo系列和ArchLinux系列
Gentoo系列包管理器为Portage;
ArchLinux系列沿袭了slackware系列遵循KISS原则,也没有成型的包管理器。

关于更多介绍的,可以参考其他博友写的:
http://www.edrawsoft.cn/linux-classify-function/

这里有三张图谱,可以简单参考一下。图片来源于:
图片出处

  • 红帽系列

  • slackware系列

  • debian系列

最新图谱官网链接地址
直接在上查看的最近的所有发行版的图谱(2012年10月29号的)
http://futurist.se/gldt/wp-content/uploads/12.10/gldt1210.svg

3.2、不同发行版本之间的联系

  所有的linux的发行版本都是基于linux内核基础上衍生过来的。所有的发行版都要遵循GNU GPL(GNU General Public License,GNU通用公共许可证)。不同发行版本之前都有类似于版本号格式,其几乎
都是类似于 "主版本号.次版本号.发型号.修订号"。

3.3、不同发行版本之间的区别

  由于不同发行版本,linux内核都一样,在于其所依托于的库,程序。不同发行厂商,会根据主流
的不同,采用不同的包管理器。这些发行厂商,有些属于纯社区维护,有些属于纯商业维护,有些属于半社区,半商业维护,所以才有各种不同的差异性。

四、linux 如何获取帮助文档信息以及说明

4.1、内建命令与外部命令

内建命令是shell程序的一部分,比如cd,file

所有的内建命令:
:,  .,  [, alias, bg, bind, break, builtin, caller, cd, command, compgen, complete, compopt, continue, declare,
dirs, disown, echo, enable, eval, exec, exit, export, false, fc, fg, getopts, hash, help, history,  jobs,  kill,  let,
local,  logout,  mapfile,  popd, printf, pushd, pwd, read, readonly, return, set, shift, shopt, source, suspend, test,
times, trap, true, type, typeset, ulimit, umask, unalias, unset, wait

以上所有内建命令都要知道含义,90%的能够轻松使用才算合格。

外部命令:
例如ls,ip,ss等

  • 如何查看一个命令属于外部命令还是属于内建命令,请看案例:

    [root@zabbix-server ~]# type ls
    ls is aliased to `ls --color=auto'
    [root@zabbix-server ~]# type ip
    ip is /usr/sbin/ip
    [root@zabbix-server ~]# type ss
    ss is /usr/sbin/ss
    [root@zabbix-server ~]# type cd
    cd is a shell builtin
    [root@zabbix-server ~]# type [
    [ is a shell builtin
    [root@zabbix-server ~]# whatis cd
    cd (1)               - bash built-in commands, see bash(1)
    [root@zabbix-server ~]# whatis ls
    ls (1)               - list directory contents
  • 如何查看内建命令与外部命令的帮助手册
    内建命令用help来查询,例如:
    help cd
    或者通过man bash然后通过检索关键字的形式来搜索到我们要了解的内建命令的
    帮助信息。
    对于外部命令,我们使用man来查询其用法。

4、关于man手册

  • 使用手册位置

    /usr/share/man
    [root@zabbix-server ~]# cd /usr/share/man/
    [root@zabbix-server man]# ls
    cs  de  fr  id  ja  man0p  man1p  man2   man3   man3x  man4x  man5x  man6x  man7x  man8x  man9x  pl  pt_BR  sk  tr     zh_TW
    da  es  hu  it  ko  man1   man1x  man2x  man3p  man4   man5   man6   man7   man8   man9   mann   pt  ru     sv  zh_CN
  • man手册的部分
            SECTION:NAME:功能性说明SYNOPSIS:语法格式DESCRIPTION:描述OPTIONS:选项EXAMPLES:使用示例AUTHOR:作者BUGS:报告程序bug的方式SEE ALSO:参考SYNOPSIS:[] : 可选内容;<> : 必须提供的内容;a|b|c : 多选一;... : 同类内容可出现多个;
  • man手册章节
章节名 章节含义介绍
man1 用户命令
man2 系统调用
man3 C库调用
man4 设备文件以及特殊文件
man5 文件格式(配置文件格式)
man6 自带益智类游戏使用帮助
man7 杂项帮助
man8 管理工具及守护进程类的帮助

如何按照章节使用man手册?
man 数字 命令

  • man手册中利用快捷键

    翻屏:
    空格键:向文件尾部翻一屏;
    b:向文件首部翻一屏;
    Ctrl+d:向文件尾部翻半屏;
    Ctrl+u:向文件首部翻半屏;
    回车键:向文件尾部翻一行;
    k:向文件首部翻一行;
    G:跳转至最后一行;
    #G:跳转至指定行,#是一个数字;
    1G:跳转至文件首部;文本搜索:/keyword : 从文件首部向文件尾部依次查找;不区分字符大小写;?keyword : 从文件尾部向文件首部依次查找;n:与查找命令方向相同;N:与查找命令方向相反;退出:q:quit

转载于:https://blog.51cto.com/9657273/2164518

linux 基础知识点杂项记相关推荐

  1. 无废话硬核分享:Linux 基础知识点总结很详细,全的很,吐血奉献

    Linux 的学习对于一个程序员的重要性是不言而喻的.前端开发相比后端开发,接触 Linux 机会相对较少,因此往往容易忽视它.但是学好它却是程序员必备修养之一. Linux 基础 操作系统 操作系统 ...

  2. linux基础命令怎么记,linux基础命令--笔记(示例代码)

    linux基础命令--笔记 一.   1  . --help 命令简单帮助 2. man 查看命令复杂帮助  (非内置命令) 3  . help (bash的内置命令)如 :help cd  .hel ...

  3. Linux基础知识点回顾与服务器部署详细解析

    Linux知识点复习 Linux简介 操作系统(Operating System)是应用程序运行的基础支撑环境 操作系统作用是管理和控制计算机系统的硬件与软件资源 lntel x86架构上常见的操作系 ...

  4. Linux基础知识点

    1. rw-rw-r-表示的权限的意思 文件(包括目录)权限分为三类别,从左至右依次是:文件所属主的权限.文件所属所在用户组的权限和其他用户的权限. 对于目录来说, 读:可以查看目录下的内容: 写:可 ...

  5. linux基础知识点总结-最实用!(环境搭建,系统分区,常用命令,vim文本)

    Linux系统介绍: Linux管理硬盘的能力非常强,所以我们看到的只有一个分区. / 根目录,所有文件都存储在它下面 /bin 存储着系统命令 /dev 设备文件(一切皆文件) /home 用户主目 ...

  6. 身家过亿的帝都王子来到1024盛宴-小码农献上linux进阶知识点一篇

    文章目录 身家过亿的帝都王子来到1024盛宴-小码农献上linux进阶知识点一篇 联动文章 [身家过亿的帝都公主来到1024盛宴-小码农弟弟献上linux基础知识点一篇](https://blog.c ...

  7. Linux基础:基础知识

    Linux 基础知识点 linux下的目录介绍(CentOS7) 挂载 输入输出错误重定向 文件描述符 管道符 VI编辑器 用户和用户组管理 文件属性和权限修改 软链接&硬链接 文件归档 安装 ...

  8. Linux基础入门,你学废了嘛?

    Linux基础知识点 linux来历 关于Linux的来历,Linux出现于1991年,大家想来也是非常熟悉了.也没有什么特别的,就是一个天才,对于Unix系统的商业化感到非常的angry,然后亲自上 ...

  9. Linux入门的基础知识点,有这篇就够了(持续更新)

    很多粉丝给一口君留言,想要学习Linux资料,其实关注一口君的公众号,后台回复 1024 ,就有很多非常不错的电子书,但是有一个问题,很多粉丝是初学者,而这一大堆电子书,估计随便一本,还没看完就基本上 ...

最新文章

  1. LeetCode 448. Find All Numbers Disappeared in an Array 442. Find All Duplicates in an Array
  2. Docker的4种网络模式
  3. LruCache缓存机制
  4. 如何利用计算机网络辅助自己,如何借助计算机网络辅助大学英语写作教学.doc...
  5. printf多行输入格式
  6. linux安装mysql出错( file /usr/share/mysql/czech/errmsg.sys from install of MySQL-server-5.5.31-2.el6.i6)
  7. mybatis-generator 详细配置及使用,爬坑记录
  8. visio2013复制到word有多余白边_Visio虚线复制到word中变为实线的解决办法
  9. 转 node.js和 android中java加密解密一致性问题;
  10. Mac的反编译工具一:otool (objdump工具的OSX对应工具)。
  11. 交叉编译 openwrt 平台上的开源 H3C iNode 客户端 njit-client
  12. 负载均衡器ribbon和LoadBalancer
  13. CSS3实现精美的纸张折角效果 -- 进阶版
  14. CV中一些常见的特征点
  15. PyTorch之填充操作
  16. 定时器、看门狗和RTC-1.9.ARM裸机第九部分-朱有鹏-专题视频课程
  17. 第06课:生活中的中介模式——找房子问中介
  18. java c 转换_由javac完成的任何类型的转换?
  19. android UVCCamera could not negotiate with camera:err=-51
  20. 安装mysql5.7.msi_windows下安装mysql-installer-community-5.7.16.msi记录

热门文章

  1. docker系列之file基本操作
  2. [UE4]把工程升级到最新版本
  3. ASP.NETMVC View页面 序列化 c# Model 为 Json字符串
  4. spring和mybatis整合进行事务管理
  5. C# 把特定数字移动到数字前面,其他顺序不变。
  6. 字符“23.00”转成int型!Input string was not in a correct format.
  7. 2011年复活节慕尼黑及其周边游之四-新天鹅堡
  8. ibatis解决sql注入问题 .
  9. DLL注入-APC注入
  10. 【开发环境】Ubuntu 中使用 VSCode 开发 C/C++ ④ ( 创建 tasks.json 编译器构建配置文件 | tasks.json 编译器构建配置文件分析 )