码迷,mamicode.com
首页 > 系统相关 > 详细

Linux操作系统基础

时间:2015-11-01 19:42:21      阅读:447      评论:0      收藏:0      [点我收藏+]

标签:基础   操作系统   

大纲

一、计算机概念简介

二、计算机体系结构

三、计算机常见术语概念

四、操作系统相关

五、获取命令的使用帮助

六、Man文档章节

七、根文件系统

八、date命令

九、hwclock命令





一、计算机概念简介(来源于MBA智库)

计算机的全称为电子计算机,俗称电脑,是一种能够按照程序运行,自动、高速处理海量数据的现代化智能电子设备。由硬件和软件所组成,没有安装任何软件的计算机称为裸机。常见的型号有台式计算机、笔记本计算机,较先进的计算机有生物计算机、光子计算机、量子计算机等。

  电脑的学名为电子计算机,是由早期的电动计算器发展而来的。1946年,世界上出现了第一台电子数字计算机“ENIAC”,用于计算弹道。是由美国宾夕法尼亚大学莫尔电工学院制造的。1956年,晶体管电子计算机诞生了,这是第二代电子计算机。只要几个大一点的柜子就可将它容下,运算速度也大大地提高了。1959年出现的是第三代集成电路计算机。最初的计算机由约翰·冯·诺依曼发明(那时电脑的计算能力相当于现在的计算器),有三间库房那么大,后逐步发展。   

  1946年面世的“ENIAC”,它主要是用于计算弹道。是由美国宾夕法尼亚大学莫尔电气工程学院制造的,它的体积庞大,占地面积170多平方米,重量约30吨,消耗近150千瓦的电力。显然,这样的计算机成本很高,使用不便。这个说法被计算机基础教科书上普遍采用,事实上在1973年根据美国最高法院的裁定,最早的电子数字计算机,应该是美国爱荷华州立大学的物理系副教授约翰·阿坦那索夫和其研究生助手克利夫·贝瑞(Clifford E. Berry ,1918-1963)于1939年10月制造的"ABC"(Atanasoff- Berry-Computer)。之所以会有这样的误会,是因为“ENIAC”的研究小组中的一个叫莫克利的人于1941年剽窃了约翰·阿坦那索夫的研究成果,并在1946年时,申请了专利。由于种种原因直到1973年这个错误才被扭转过来。后来为了表彰和纪念约翰·阿坦那索夫在计算机领域内作出的伟大贡献,1990年美国前总统布什授予约翰·阿坦那索夫全美最高科技奖项----“国家科技奖”。

如果有兴趣可以看下wiki中对于计算机硬件历史的介绍:传送门


二、计算机体系结构

  • 运算器

  • 控制器

  • 存储器

  • 输入设备

  • 输出设备


总结:

  • 中央存储器:Central Processing Unit,简写CPU

  • 运算器:负责数学运算和逻辑运算

  • 控制器:负责运算器去存储器读取数据

  • 存储器:这里的存储器其实指的就是内存,内存是平面编址的

  • 输入计算机最主要的部件是运算器,控制器和存储器,输入输出设备只是辅助计算机运行,方便用户与计算机更好的交互



三、计算机常见术语概念

1. API(Application Programming Interface)

应用程序接口:为‘电脑操作系统(Operating system)’或‘程序库’提供给应用程序调用使用的代码,其主要目的是让应用程序开发人员得以调用一组例程功能,而无须考虑其底层的源代码为何、或理解其内部工作机制的细节。API本身是抽象的,它仅定义了一个接口,而不涉及应用程序在实际实现过程中的具体操作,简单的说就是将一个或多个系统调用的功能封装起来提供一个更高级的并且能完成特定功能的模块。


2. 系统调用(System Call)

系统调用,又称为系统呼叫,指运行在使用者空间程序操作系统内核请求需要更高权限运行的服务。系统调用提供了用户程序与操作系统之间的接口。大多数系统交互式操作需求在内核态执行。如设备IO操作或者进程间通信。简单的说就是将底层硬件的计算能力抽取出来并且向上为用户提供一个统一的接口,称之为系统调用。


3. 中断(Interrupt)

中断是指处理器接收到来自硬件或软件的信号,提示发生了某个事件,应该被注意,这种情况就称为中断,中断是用以提高计算机工作效率、增强计算机功能的一项重要技术。


4. 中断向量(Interrupt vector)

早期的微机系统中将由硬件产生的中断标识码(中断源的识别标志,可用来形成相应的中断服务程序的入口地址或存放中断服务程序的首地址)称为中断向量。


5. 局部性原理(Locality of Reference)

局部性原理表现为:

  • 时间局部性:如果程序中的某条指令一旦执行,则不久之后该指令可能再次被执行;如果某数据被访问,则不久之后该数据可能再次被访问

  • 空间局部性:一旦程序访问了某个存储单元,则不久之后。其附近的存储单元也将被访问。


总结:

  • 系统调用和普通库函数调用非常相似,只是系统调用由操作系统内核提供,运行于内核核心态,而普通的库函数调用由函数库或用户自己提供,运行于用户态。

  • CPU捕获io事件方法: 轮询(poll),中断(interrupt)

  • 库没有程序的执行入口,不能独立执行,只能被调用执行,可以提供一个统一的调用接口

  • 普通应用程序是不能直接与硬件交互,要想使用硬件的功能,必须先得像内核发起系统调用,由内核负责与硬件交互,再将结果返回给应用程序。




四、操作系统相关

1. 操作系统(英语:operating system,缩写:OS)是管理计算机硬件与软件资源的计算机程序,同时也是计算机系统的内核与基石。操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入与输出设备、操作网络与管理文件系统等基本事务。操作系统也提供一个让用户与系统交互的操作界面


2. 操作系统内核功能:

  • 进程管理(Processing management)

  • 内存管理(Memory management)

  • 文件系统(File system)

  • 网络通信(Networking)

  • 安全机制(Security)

  • 用户界面(User interface)

  • 驱动程序(Device drivers)


3. 操作系统组成

技术分享



4. Linux系统架构图:


技术分享


简单架构图:


技术分享


5. 硬件架构

  • ARM -->只生产知识产权,不生产具体的硬件

  • x86 -->Intel

  • x64 -->Intel

  • 安腾 -->原先属于HP,后卖给Intel

  • alpha -->HP

  • UltraSparc -->SUN公司,性能蛮好

  • Power -->IBM公司,性能超强

  • M68000, M68K -->摩托罗拉生产

  • PowerPC -->IBM,APPLE,MOTO三家联合生产用于PC机


6. Linux的哲学思想

  • 由目的单一的小程序组成;组合小程序完成复杂任务

  • 一切皆文件

  • 尽量避免捕获用户接口

  • 配置文件保存为纯文本格式



7. 计算机史两个重要的实验室

  • Xerox PARC:个人电脑、激光打印机、鼠标、以太网,图形用户界面Smalltalk、页面描述语言Interpress(PostScript的先驱)、图标和下拉菜单、所见即所得文本编辑器、语音压缩技术

  • AT&T Bell:晶体管,激光,光通信,数据网络,数字传输与交换,蜂窝电话技术,通信卫星,数字信号处理(DSP),按键电话,Unix操作系统,C语言


8. Shell种类

  • GUI:Graphical User Interface ,Linux常见三种:Gnome,KDE,Xfce

  • CLI:command-line interface,Linux常见的有sh,bash,csh,ksh,zsh,tcsh



9. 命令的使用格式

# Command  [Options] Arguments


Options:定义命令的执行特性或执行方式

Arguments:定义命令的作用对象


Examples:

[root@soysauce ~]# ls -lh /root/
total 8.0K
-rw-r--r-- 1 root root 208 Jul  6 13:41 id_rsa_1024.pub
-rwxr-xr-x 1 root root 518 Oct 26 21:33 iptables.sh
[root@soysauce ~]#


10. AAA协议概念

  • Authentication:认证是对用户的身份进行验证,判断其是否为合法用户

  • Authorization:授权是对通过认证的用户,授权其可以使用哪些服务 

  • Accounting:审计是记录用户使用网络服务的资源情况,这些信息将作为计费的依据


11. 密码复杂性规则

  • 使用四种(大写,小写,数字,特殊字符)类别字符中的至少三种

  • 足够长,大于7位

  • 使用随机字符串

  • 定期更换

  • 循环周期足够大


12. 魔数(Magic Number)

很多类型的文件,其起始的几个字节的内容是固定的(或是有意填充,或是本就如此)。根据这几个字节的内容就可以确定文件类型,因此这几个字节的内容被称为魔数 (magic number)。此外在一些程序代码中,程序员常常将在代码中出现但没有解释的数字常量或字符串称为魔数 (magic number)或魔字符串。


五、获取命令的使用帮助

1. Linux命令基本分为两类

  • 内部命令,查看帮助文档办法:help Command

  • 外部命令:查看帮助文档方法:①Command --help ②man Command ③info Command


2. 查看命令为内部命令还是外部命令的方法:type

[root@soysauce ~]# type cd
cd is a shell builtin            # 说明此命令为内部命令
[root@soysauce ~]# type find
find is /usr/bin/find            # 说明此命令为外部命令



六、Man文档章节

1. Man文档各章节

  • 1:用户命令(/bin, /usr/bin, /usr/local/bin)

  • 2:系统调用

  • 3:库用户

  • 4:特殊文件(设备文件)

  • 5:文件格式(配置文件的语法)

  • 6:游戏

  • 7:杂项(Miscellaneous)

  • 8: 管理命令(/sbin, /usr/sbin, /usr/local/sbin)


2. 命令使用格式中的符号含义

  • <>:必选

  • []:可选

  • ...:可以出现多次

  • |:多选一

  • {}:分组


3. Man文档使用帮助各字段含义:

  • NAME:命令名称及功能简要说明

  • SYNOPSIS:用法说明,包括可用的选项

  • DESCRIPTION:命令功能的详尽说明,可能包括每一个选项的意义

  • OPTIONS:说明每一个选项的意义

  • FILES:此命令相关的配置文件

  • BUGS:

  • EXAMPLES:使用示例

  • SEE ALSO:另外参照


4. 翻屏方法

  • 向后翻一屏:SPACE

  • 向前翻一屏:b

  • 向后翻一行:ENTER

  • 向前翻一行:k


5. 查找方法:

  • /KEYWORD: 向后

        n: 下一个

       N:前一个 


  • ?KEYWORD:向前

       n: 下一个

       N:前一个 


6. 退出Man文档方法: q退出



七、根文件系统

  • /bin: 存放可执行的二进制程序,管理员和普通用户都可以使用

  • /sbin:管理员才能执行的命令

  • /boot:存放系统引导文件:内核、ramfs文件、bootloader(grub)

  • /dev:设备文件存放目录

  • /etc:配置文件的集中存放目录

      /etc/sysconfig:系统级别的应用

      /etc/init.d:系统服务脚本

  • /home :普通用户,默认在/home下有一个与其名称同名目录,作为用户的家目录

  • /root:管理员的家目录

  • /lib,/lib64:库文件

  • /media:专用挂载位置,通常用来挂载便携式设备,例如光盘,u盘

  • /mnt:专用挂载位置,挂载额外的存储设备,例如另外的硬盘

  • /misc:杂项,备用目录

  • /opt:可选目录,但通常用来安装第三方软件

  • /proc:所显示的文件都不是文件,伪文件系统,运行中的内核参数的映射

  • /sys:伪文件系统,系统级别的用于配置硬件设备相关的参数

  • /srv:为服务提供数据存放位置的

  • /tmp:临时文件系统:默认存放30天

  • /usr:universal shared read-only 所有遵循协议的系统都可以使用,readonly 只读

      /usr/include:头文件存放位置

  • /var:经常发生变化的文件


总结:

  • 操作系统自身运行使用的

      /bin: 存放可执行的二进制程序,管理员和普通用户都可以使用

      /sbin:管理员才能执行的命令

  • 运行正常功能的程序存放位置

      /usr/bin

      /usr/sbin

  • 用来存放第三方软件的程序

       /usr/local/bin

      /usr/local/sbin



八、date命令

date - print or set the system date and time
SYNOPSIS
       date [OPTION]... [+FORMAT]
       date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]

    %H 小时,24小时制(00~23) 
    %I 小时,12小时制(01~12) 
    %k 小时,24小时制(0~23)
    %l 小时,12小时制(1~12) 
    %M 分钟(00~59) 
    %p 显示出AM或PM 
    %r 显示时间,12小时制(hh:mm:ss %p) 
    %s 从1970年1月1日00:00:00到目前经历的秒数 
    %S 显示秒(00~59) 
    %T 显示时间,24小时制(hh:mm:ss) 
    %X 显示时间的格式(%H:%M:%S) 
    %Z 显示时区,日期域(CST) 
    %a 星期的简称(Sun~Sat) 
    %A 星期的全称(Sunday~Saturday) 
    %h,%b 月的简称(Jan~Dec) 
    %B 月的全称(January~December) 
    %c 日期和时间(Tue Nov 20 14:12:58 2012) 
    %d 一个月的第几天(01~31) 
    %x,%D 日期(mm/dd/yy) 
    %j 一年的第几天(001~366) 
    %m 月份(01~12) 
    %w 一个星期的第几天(0代表星期天) 
    %W 一年的第几个星期(00~53,星期一为第一天) 
    %y 年的最后两个数字(1999则是99)

(1).输出当前日期时间,输出格式为年-月-日 时:分:秒

[root@soysauce ~]# date  +"%Y-%m-%d %H:%M:%S"
2015-11-01 14:19:14

(2).修改当前日期时间

[root@soysauce ~]# date 102412342015.30
Sat Oct 24 12:34:30 CST 2015

(3).只输出当前日期,输出格式为年-月-日

[root@soysauce ~]# date +%F
2015-10-24

(4).显示"今天是年-月-日"

[root@soysauce ~]# date +"This is %Y%nToday is %d"
This is 2015
Today is 01

(5).获取从1970年1月1日到今天所走过的秒数

[root@soysauce ~]# date +%s
1446360306


ps:以上各参数含义来源于http://man.linuxde.net/


九、hwclock命令

 hwclock - query and set the hardware clock (RTC)

 SYNOPSIS
       hwclock -r or hwclock --show
       hwclock -w or hwclock --systohc
       hwclock -s or hwclock --hctosys
       hwclock -a or hwclock --adjust
       hwclock -v or hwclock --version
       hwclock --set --date=newdate
       hwclock --getepoch
       hwclock --setepoch --epoch=year
       
       
    -w:以系统时间为准,将系统时间同步到硬件时间,即改变的是硬件时间
	-s: 以硬件时间为准,将硬件时间同步到系统时间,即改变的是系统时间


(1).硬件时钟不准,以系统时钟为准,将系统时钟同步到硬件时间  

[root@soysauce ~]# hwclock 
Sat 24 Oct 2015 12:37:00 PM CST  -0.196319 seconds
[root@soysauce ~]# date
Sun Nov  1 14:36:21 CST 2015
[root@soysauce ~]# hwclock -w
[root@soysauce ~]# hwclock 
Sun 01 Nov 2015 02:36:39 PM CST  -0.869126 seconds


(2).系统时钟不准,以硬件时钟为准,将硬件时钟同步到系统时间

[root@soysauce ~]# hwclock 
Sun 01 Nov 2015 02:32:26 PM CST  -0.825691 seconds
[root@soysauce ~]# date
Sat Oct 24 12:45:31 CST 2015
[root@soysauce ~]# hwclock -s
[root@soysauce ~]# date
Sun Nov  1 14:32:50 CST 2015







操作系统历史(英文版):http://www.osdata.com/kind/history.htm

Unix发展史:http://www.path8.net/tn/archives/726



本文出自 “Hello,Linux” 博客,请务必保留此出处http://soysauce93.blog.51cto.com/7589461/1708414

Linux操作系统基础

标签:基础   操作系统   

原文地址:http://soysauce93.blog.51cto.com/7589461/1708414

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!