(笔记)学习Linux第一天

首先,什么是Linux,Linux大可划分为以下四部分:

■ Linux内核
■ GNU工具组件
■ 图形化桌面环境
■ 应用软件

在Linux系统中,这四部分中的每一部分都扮演着一个特别的角色,如果把他们分开,每一部分都没有太大的作用。


Linux内核

Linux系统的核心是内核。内核控制着计算机系统上的所有硬件和软件:必要时分配硬件,有需要时执行软件。
而内核基本负责四个主要功能,分别是:

■ 系统内存管理
■ 软件程序管理
■ 硬件设备管理
■ 文件系统管理

1.系统内存管理
内核通过硬盘上的存储空间来实现虚拟内存,这快区域称为交换空间。内核不断地在交换空间和实际的物理内存之间反复交换虚拟内存存储单元中的内容。这使得系统以为它拥有比物理内存更多的可用内存。
内存存储单元会被按组分成很多块,这些块称作页面。内核会将每个页面放在物理内存或交换空间。然后,内核会维护一个内存页面表,来指明哪些页面位于物理内存内,哪些页面被换到磁盘上。
内核会记录哪些内存页面正在使用中,并自动把一段时间未访问的内存页面复制到交换空间区域(也称之为换出)——即使还有可用内存。当程序要访问一个已被换出的内存页面时,内核必须从物理内存换出另外一个内存页面来给它让出空间,然后从交换空间换入请求的内存页面。显然,这个过程要花费时间,并使得运行中的进程变慢。只要Linux系统在运行,为运行中的程序换出内存页面的过程就不会停歇。

    学习两个命令:
    查看Linux系统上虚拟内存的当前状态:cat /proc/meminfo 
    查看系统上的当前共享内存页面:ipcs 

2.软件程序管理
Linux操作系统称运行的程序为进程。进程可以运行在前台,也可以运行在后台。内核控制着Linux系统如何管理运行在系统上的所有进程。
内核创建了第一个进程(称之为init进程)来启动系统上所有其它进程。当内核启动时,它会将init进程加载到虚拟内存中。内核在启动任何其它进程时,都会在虚拟内存中给新进程分配一块专有区域来存储该进程用到的数据和代码。
Linux操作系统的init系统采用了运行级。运行级决定了init进程运程定义好的某些特定类型的进程。
Linux操作系统有7个启动运行级:

运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
运行级别1:只有基本的系统进程启动,同时会启动唯一一个控制台终端进程。我们称为单用户模式。单用户模式通常用来在系统有问题时进行紧急的文件系统维护。通常是系统管理员能登录到系统上操作数据。
运行级别2:多用户状态(没有NFS)
运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式,标准启动运行级。在这个运行级上,大多数应用软件都会启动。
运行级别4:系统未使用,保留
运行级别5:系统会启动图形化的X window系统,同是允许用户通过图形化桌面窗口登录系统。
运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动

查看当前运行在Linux系统上的进程:ps  
常用参数:ps ax

3.硬件设备管理
任何Linux系统需要与之通信的设备,都需要在内核代码中加入其驱动程序代码。驱动程序代码想到于应该程序和硬件设备的中间人,允许内核同设备之间交换数据。
在Linux内核中有两种方法用来插入设备驱动代码:

■ 编译进内核的设备驱动代码
■ 可插入内核的设备驱动模块(方便、简单、易用)

Linux系统将硬件设备当成特殊的文件,称为设备文件。设备文件有3种不同的分类:

■ 字符型设备文件
■ 块设备文件
■ 网络设备文件

字符型设备文件是指处理数据时每次只能处理一个字符的设备。大多数类型的调制解调器和终端都是作为字符型设备文件创建的。
块设备文件是指处理数据时每次能处理大块数据的设备,比如硬盘。
网络设备文件是指采用数据包发生和接收数据的设备,包括各种网卡和一个特殊的回环设备。这个回环设备允许Linux系统使用通用的网络编程协议同自己通信。


4.文件系统管理
不同于其它一些操作系统,Linux内核支持多种不同类型的文件系统来从硬盘中读取或写入数据。除了自有的诸多文件系统外,Linux还支持从其他操作系统所采用的文件系统中读取或写入数据。内核必须在编译时就加入对所有可能用到的文件系统的支持。
Linux内核采用虚拟文件系统作为和每个文件系统交互的接口,这为Linux内核同任何类型文件系统通信提供了一个标准接口。当每个文件系统被挂载和使用时,虚拟文件系统将信息都缓存在内存中。


GNU工具组件
除了由内核来控制硬件设备外,操作系统还需要工具链来执行一些标准功能,比如控制文件和程序。在创建Linux系统内核时,是没有系统工具链运行其上的。而这个GNU组织开发了一套完整的Unix工具链,但是没有可以运行他们的内核系统。一拍即合,就睡在一起了。
1.核心GNU工具链
GNU项目一开始主要是为Unix系统管理员设计的,用以提供一个类Unix环境。这个目标导致这个项目移植了很多Unix系统通用的命令行工具。为Linux系统提供的一组核心工具被称为coreutils软件包。
GNUcoreutils软件包由3部分构成:

■ 用以处理文件的工具
■ 用以操作文本的工具
■ 用以管理进程的工具

2.shell
shell是一个交互工具。它为用户提供了启动程序、管理文件系统上的文件以及管理运行在Linux系统上的进程的途径。shell的核心是命令行提示符。命令行提示符是shell的交互部分。它允许你输入文本命令,之后将解释命令并在内核中执行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值