首页 > 其他分享 >操作系统学习

操作系统学习

时间:2024-05-26 21:13:53浏览次数:31  
标签:操作系统 系统 文件系统 学习 内核 Linux 目录 设备

 Ubuntu(乌班图)、RedHat(红帽)、CentOS、Debain[蝶变]、Fedora、SuSE、OpenSUSE

3、Linux和Windows区别

 4、Linux和Unix关系

UNIX 是 Linux 的父亲"这个说法更怡当。之所以要介绍它们的关系,是因为要告诉读者,在学习的时候,其实 Linux 与 UNIX 有很多的共通之处,简单地说,如果你已经熟练掌握了 Linux,那么再上手使用 UNIX 会非常容易。

二者也有两个大的区别:

UNIX 系统大多是与硬件配套的,也就是说,大多数 UNIX 系统如 AIX、HP-UX 等是无法安装在 x86 服务器和个人计算机上的,而 Linux 则可以运行在多种硬件平台上;

UNIX 是商业软件,而 Linux 是开源软件,是免费、公开源代码的。

二、安装虚拟机以及CentOS7

学习Linux需要一个环境,我们需要创建一个虚拟机,然后在虚拟机上安装一个Centos系统来学习

点击此处获取虚拟机软件

链接:https://pan.baidu.com/s/18UMUI3UL2-P9YnaJDVB4pA

提取码:ryor

三、Linux的目录结构

linux的文件系统是采用级层式的树状目录结构,在此结构中的最上层是根目录/,然后在此目录下再创建其他的目录。深刻理解linux树状文件目录是非常重要的,对以后的开发效率有很大的提升。在Linux世界里,一切皆文件。

下面是Linux目录结构图:

 /bin (/usr/bin 、 /usr/local/bin)是Binary的缩写, 这个目录存放着最经常使用的命令

/sbin (/usr/sbin 、 /usr/local/sbin)这里存放的是系统管理员使用的系统管理程序

/home 存放普通用户的主目录,在Linux中每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。

/root 该目录为系统管理员,也称作超级权限者的用户主目录。

/lib 系统开机所需要最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。

/lost+found 这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件

/etc 所有的系统管理所需要的配置文件和子目录 my.conf

/usr 这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似与windows下的program files目录

/boot 存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件

/proc 这个目录是一个虚拟的目录,它是系统内存的映射,访问这个目录来获取系统信息

/srv service缩写,该目录存放一些服务启动之后需要提取的数据。

/sys 这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs

/tmp 这个目录是用来存放一些临时文件的。

/dev 类似于windows的设备管理器,把所有的硬件用文件的形式存储。

/media linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。

/mnt 系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将外部的存储挂载在/mnt/上,然后进入该目录就可以查看里的内容了。 d:/myshare

/opt 这是给主机额外安装软件所摆放的目录。如安装ORACLE数据库就可放到该目录下。默认为空。

/usr/local 这是另一个给主机额外安装软件所安装的目录。一般是通过编译源码方式安装的程序

/var 这个目录中存放着在不断扩充着的东西,习惯将经常被修改的目录放在这个目录下。包括各种日志文件。
————————————————

操作系统的内部的六种不同的结构设计:单体系统、层次系统、微内核、客户机-服务器系统、虚拟机和exokernels。

操作系统结构是指操作系统的构成结构。在操作系统的发展过程中,产生了多种多样的系统结构,几乎每一个操作系统在结构上都有自己的特点,从总体上看,根据出现的时间,操作系统结构依次可以分为整体式结构、模块化结构、层次式结构和微内核结构。

Linux系统结构

UNIX/Linux 系统可以粗糙地抽象为 3 个层次,底层是系统内核(Kernel);中间层是Shell层,即命令解释层;高层则是应用层。

(1)内核层

内核层是 UNIX/Linux 系统的核心和基础,它直接附着在硬件平台之上,控制和管理系统内各种资源(硬件资源和软件资源),有效地组织进程的运行,从而扩展硬件的功能,提高资源的利用效率,为用户提供方便、高效、安全、可靠的应用环境。

(2)Shell层

Shell 层是与用户直接交互的界面。用户可以在提示符下输入命令行,由 Shell 解释执行并输出相应结果或者有关信息,所以我们也把 Shell 称作命令解释器,利用系统提供的丰富命令可以快捷而简便地完成许多工作。

(3)应用层

应用层提供基于 X Window 协议的图形环境。X Window 协议定义了一个系统所必须具备的功能。

二、深入探究Linux内核

Linux系统的核心是内核。内核控制着计算机系统上的所有硬件和软件,在必要时分配硬件,并根据需要执行软件。内核主要负责以下四种功能:

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

1. 系统内存管理

操作系统内核的主要功能之一就是内存管理。内核不仅管理服务器上的可用物理内存,还可以创建和管理虚拟内存(即实际并不存在的内存)。

内核通过硬盘上的存储空间来实现虚拟内存,这块区域称为交换空间(swap space)。内核不断地在交换空间和实际的物理内存之间反复交换虚拟内存中的内容。这使得系统以为它拥有比物理内存更多的可用内存。

内存存储单元按组划分成很多块,这些块称作页面(page)。内核将每个内存页面放在物理内存或交换空间。然后,内核会维护一个内存页面表,指明哪些页面位于物理内存内,哪些页面被换到了磁盘上。

2. 软件程序管理

Linux操作系统将运行中的程序称为进程。进程可以在前台运行,将输出显示在屏幕上,也可以在后台运行,隐藏到幕后。内核控制着Linux系统如何管理运行在系统上的所有进程。

内核创建了第一个进程(称为init进程)来启动系统上所有其他进程。当内核启动时,它会
将init进程加载到虚拟内存中。内核在启动任何其他进程时,都会在虚拟内存中给新进程分配一块专有区域来存储该进程用到的数据和代码。

一些Linux发行版使用一个表来管理在系统开机时要自动启动的进程。在Linux系统上,这个表通常位于专门文件/etc/inittab中。

另外一些系统(比如现在流行的Ubuntu Linux发行版)则采用/etc/init.d目录,将开机时启动
或停止某个应用的脚本放在这个目录下。这些脚本通过/etc/rcX.d目录下的入口(entry)启动,这里的X代表运行级(run level)。

Linux操作系统的init系统采用了运行级。运行级决定了init进程运行/etc/inittab文件或/etc/rcX.d目录中定义好的某些特定类型的进程。 Linux操作系统有5个启动运行级。

  • 运行级为1时,只启动基本的系统进程以及一个控制台终端进程。我们称之为单用户模式。单用户模式通常用来在系统有问题时进行紧急的文件系统维护。显然,在这种模式下,仅有一个人(通常是系统管理员)能登录到系统上操作数据。
  • 标准的启动运行级是3。在这个运行级上,大多数应用软件,比如网络支持程序,都会启动。另一个Linux中常见的运行级是5。在这个运行级上系统会启动图形化的X Window系统,允许用户通过图形化桌面窗口登录系统。

可以使用ps命令查看当前运行在Linux系统上的进程。

3. 硬件设备管理

内核的另一职责是管理硬件设备。任何Linux系统需要与之通信的设备,都需要在内核代码
中加入其驱动程序代码。驱动程序代码相当于应用程序和硬件设备的中间人,允许内核与设备之间交换数据。在Linux内核中有两种方法用于插入设备驱动代码:

  • 编译进内核的设备驱动代码
  • 可插入内核的设备驱动模块

以前,插入设备驱动代码的唯一途径是重新编译内核。每次给系统添加新设备,都要重新编译一遍内核代码。随着Linux内核支持的硬件设备越来越多,这个过程变得越来越低效。不过好在Linux开发人员设计出了一种更好的将驱动代码插入运行中的内核的方法。

开发人员提出了内核模块的概念。它允许将驱动代码插入到运行中的内核而无需重新编译内
核。同时,当设备不再使用时也可将内核模块从内核中移走。这种方式极大地简化和扩展了硬件设备Linux上的使用。

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

  • 字符型设备文件:指处理数据时每次只能处理一个字符的设备 ,比如大多数类型的调制解调器和
    终端 。
  • 块设备文件: 指处理数据时每次能处理大块数据的设备,比如硬盘。
  • 网络设备文件:指采用数据包发送和接收数据的设备,包括各种网卡和一个特殊的回环设备。

4. 文件系统管理

不同于其他一些操作系统, Linux内核支持通过不同类型的文件系统从硬盘中读写数据。除
了自有的诸多文件系统外, Linux还支持从其他操作系统(比如Microsoft Windows)的文件
系统中读写数据。内核必须在编译时就加入对所有可能用到的文件系统的支持。下表列出了Linux系统用来读写数据的标准文件系统。

文件系统描 述
ext Linux扩展文件系统,最早的Linux文件系统
ext2 第二扩展文件系统,在ext的基础上提供了更多的功能
ext3 第三扩展文件系统,支持日志功能
ext4 第四扩展文件系统,支持高级日志功能
hpfs OS/2高性能文件系统
jfs IBM日志文件系统
iso9660 ISO 9660文件系统( CD-ROM)
nfs 网络文件系统
ntfs 支持Microsoft NT文件系统
ufs BSD文件系统
vfat Windows 95文件系统( FAT32)

Linux服务器所访问的所有硬盘都必须格式化成上表所列文件系统类型中的一种。

 


参考:https://blog.csdn.net/m0_54206457/article/details/138452315

https://blog.csdn.net/m0_63006478/article/details/131293084

https://www.cnblogs.com/yifanrensheng/p/13863319.html

https://blog.csdn.net/m0_48073095/article/details/134548415

 

标签:操作系统,系统,文件系统,学习,内核,Linux,目录,设备
From: https://www.cnblogs.com/klb561/p/18214278

相关文章

  • python学习(三)
    1字典字典是一个可变的、无序的容器,是python中唯一内置的映射类型的数据结构字典中的元素都是键值对(item项),每一个值(value)都对应一个键(key),标准性符合是{}和;注意字典的键不可以出现重复,值是可以重复的必须是不可变的数据类型才可以做字典的键1.1字典......
  • HarmonyOS NEXT星河版ArkTS 语法 学习笔记
    基础练习:console.log("你好,","11111")//let变量名:类型=值lettitle:string='奥利奥水果'letprice:number=21.8letisSelect:Boolean=trueconsole.log(title,price,isSelect)//变量的改变值title='燕麦水果捞'console.log('......
  • 深度学习导论及案例分析 (李玉鑑 张婷)
    链接:pan.baidu.com/s/1tIHXj9HmIYojAHqje09DTA?pwd=jqso提取码:jqso深度学习起源与发展:介绍深度学习如何从神经网络演变而来,并强调其历史发展脉络和重要性。深度学习基本概念:阐述深度学习的基本定义、特点和优势,为后续内容打下理论基础。判别模型与生成模型:解释判别模型和生成......
  • 深度学习:Caffe之经典模型详解与实战 (乐毅 王斌)
    链接:pan.baidu.com/s/1tIHXj9HmIYojAHqje09DTA?pwd=jqso提取码:jqsoCaffe框架介绍:简要介绍Caffe框架的起源、发展及其在深度学习领域的重要地位,阐述其模块化、可扩展性和易用性的设计原则。深度学习与Caffe基础:概述深度学习的基本概念、原理以及Caffe框架的核心组件,包括网络层......
  • 线段树分裂 学习笔记
    过程线段树分裂是线段树合并的逆操作,即将一个区间信息分裂到新的树中,新的树一般需要新建。注意当分裂和合并都存在时,我们在合并的时候必须回收节点,以避免分裂时会可能出现节点重复占用的问题。时间复杂度显然\(\mathcal{O}(\logn)\)。实现//将x分裂出[p,q]到now上v......
  • 线段树合并 学习笔记
    过程合并并不困难,对于两棵线段树,合并无疑就是就两棵线段树维护的区间信息进行合并。就比如,有两棵线段树如下图:将第二棵树合并到第一棵树,就是把除了维护\([2,2]\)的全部对应加,而\([2,2]\)则新开节点维护。时间复杂度显然\(\mathcal{O}(n\logn)\)。实现intMerge(i......
  • 2024-05-26 英语学习纪要
    今天在bilibili上面看到一个视频链接/slash*asterisk-hypen_underscore:colon';'semicolon&ampersandi.e.e.g.这些似乎都是拉丁语翻译来的。i.e.inotherwords换句话说ATMautomatedtellermachine不认识teller,我猜是出纳员之类的意思,猜对了PDFporta......
  • Python学习(二)
    python内置函数abs(x):返回x的绝对值pow(x,n):返回x的n次方max(n1,n2,n3,...)返回最大值min(n1,n2,n3,...)返回最小值round(x[,n])默认返回浮点数四舍五入的值,遇到0.5取偶数sum(iterable,start=0),返回start值(默认值为0)加上可迭代数字的总和例如,输入In:......
  • git学习
    gitee在gitee上新建仓库dxshdpt全局配置邮箱配置gitconfig--globaluser.email"[email protected]"gitconfig--globaluser.name"羊卡车"进入对应目录命令行输入gitinit把这个目录变成一个git仓库本地仓库跟远程的仓库建立连接gitremoteaddoriginhtt......
  • (已校对)《白话机器学习的数学》 (立石贤吾)
    链接:pan.baidu.com/s/1tIHXj9HmIYojAHqje09DTA?pwd=jqso提取码:jqso我的阅读笔记机器学习概述:介绍机器学习的基本概念、应用领域以及它的重要性,为读者提供一个整体的框架和视角。数学基础概念:回顾数学基础知识,如线性代数、微积分、概率论等,为后续机器学习的数学原理打下基础......