当前位置:首页 » 操作系统 » linux分层

linux分层

发布时间: 2022-06-14 00:00:16

linux网络协议是什么该如何去理解

Linux网络协议栈基于分层的设计思想,总共分为四层,从下往上依次是:物理层,链路层,网络层,应用层。 Linux网络协议栈其实是源于BSD的协议栈,它向上以及向下的接口以及协议栈本身的软件分层组织的非常好。 Linux的协议栈基于分层的设计思想,总共分为四层,从下往上依次是:物理层,链路层,网络层,应用层。 物理层主要提供各种连接的物理设备,如各种网卡,串口卡等; 链路层主要指的是提供对物理层进行访问的各种接口卡的驱动程序,如网卡驱动等; 网路层的作用是负责将网络数据包传输到正确的位置,最重要的网络层协议当然就是IP协议了,其实网络层还有其他的协议如ICMP,ARP,RARP等,只不过不像IP那样被多数人所熟悉; 传输层的作用主要是提供端到端,说白一点就是提供应用程序之间的通信,传输层最着名的协议非TCP与UDP协议末属了; 应用层,顾名思义,当然就是由应用程序提供的,用来对传输数据进行语义解释的“人机界面”层了,比如HTTP,SMTP,FTP等等,其实应用层还不是人们最终所看到的那一层,最上面的一层应该是“解释层”,负责将数据以各种不同的表项形式最终呈献到人们眼前。 Linux网络核心架构Linux的网络架构从上往下可以分为三层,分别是: 用户空间的应用层。 内核空间的网络协议栈层。 物理硬件层。 其中最重要最核心的当然是内核空间的协议栈层了。 Linux网络协议栈结构Linux的整个网络协议栈都构建与Linux Kernel中,整个栈也是严格按照分层的思想来设计的,整个栈共分为五层,分别是 : 1,系统调用接口层,实质是一个面向用户空间应用程序的接口调用库,向用户空间应用程序提供使用网络服务的接口。 2,协议无关的接口层,就是SOCKET层,这一层的目的是屏蔽底层的不同协议(更准确的来说主要是TCP与UDP,当然还包括RAW IP, SCTP等),以便与系统调用层之间的接口可以简单,统一。简单的说,不管我们应用层使用什么协议,都要通过系统调用接口来建立一个SOCKET,这个SOCKET其实是一个巨大的sock结构,它和下面一层的网络协议层联系起来,屏蔽了不同的网络协议的不同,只吧数据部分呈献给应用层(通过系统调用接口来呈献)。 3,网络协议实现层,毫无疑问,这是整个协议栈的核心。这一层主要实现各种网络协议,最主要的当然是IP,ICMP,ARP,RARP,TCP,UDP等。这一层包含了很多设计的技巧与算法,相当的不错。 4,与具体设备无关的驱动接口层,这一层的目的主要是为了统一不同的接口卡的驱动程序与网络协议层的接口,它将各种不同的驱动程序的功能统一抽象为几个特殊的动作,如open,close,init等,这一层可以屏蔽底层不同的驱动程序。 5,驱动程序层,这一层的目的就很简单了,就是建立与硬件的接口层。 可以看到,Linux网络协议栈是一个严格分层的结构,其中的每一层都执行相对独立的功能,结构非常清晰。 其中的两个“无关”层的设计非常棒,通过这两个“无关”层,其协议栈可以非常轻松的进行扩展。在我们自己的软件设计中,可以吸收这种设计方法。

Ⅱ linux系统的目录结构是分层的树状结构,都是挂载在根文件系统什么下面

选B唯一的,这是数的特性

Ⅲ 一个linux系统分多少内核模块

Linux 仅仅是内核。Linux 操作系统一般指的是 Linux 内核 + 其他软件。

所以内核模块,不用说了,就是 Linux 内核的可重载模块。模块化设计什么意思不用说了。
Linux 源代码要特指,一般说 Linux 源代码应该是说 Linux 内核源代码。也就是内核的最核心代码+外围模块的源代码。(注意模块是可以独立开发,独立存在的。但内核模块必须被内核载入后才能工作。)

所以一个 Linux 系统是没办法分多少内核模块的,内核模块是可以变的。
内核模块既可以随时用随载入,不用了就卸载,也可以直接就放到内核中(也就是直接编译到内核里面)。可以说内核模块主要就是驱动,驱动是运行在内核层面的程序。不同的计算机需要不同的驱动,不同的 Linux 内核版本,自带的驱动也是有很大区别的。

Linux 系统是由各种各样的“软件包”(或者叫组件)组成的,而不是内核模块组成的。因为 Linux 系统是 Linux 内核 + 其他软件。内核模块只是 Linux 内核部分的东西。其他软件包括各种函数库,各种应用程序,还有用户界面接口等等。

如果《操作系统原理》明白了,Linux 还是很好理解的。
如果只用 Windows ,是不能理解系统分层的,因为你用 Windows ,只见过他的 GUI ,而没见过其他的部分。比如 Windows 的 NT 内核是什么东东,DirectX 11 算什么,IE 是什么层级。

Ⅳ linux下用vi编程怎么能看着分层明显

养成好的写代码习惯,使用空格代替tab(不同编辑器tab键代表的空格数不同)

Ⅳ 有谁可以提供一些Linux系统概述的资料,要快,非常感谢。

Linux概述

1.1 什么是linux?
最节俭地说,linux是一个操作系统。它使得计算机上的软件和硬件之间协调工作,就好像Microsoft Windows(MS windows,微软的windows系统)系列操作系统(MS Windows和linux之间又有着巨大的差别。不仅差别巨大,甚至互相对立,互相攻击。缘何对立?缘何攻击?尽在本章中。)。至于linux具体特性,很难用一句或者一段话来表述清楚。但可以有一个大概了解:linux是一个多任务的多用户的多平台的在保护模式下的遵守POSIX标准的遵守SYSV和BSD扩展的遵守GPL许可的32位(也有64位)的类UNIX的开放源代码的免费操作系统。这句话基本上涵概了当今linux最流行最重要最主要的特性。可能读者对以上的一些名词云里雾里,不知所云,简单介绍:

1.多任务
计算机在同一时刻运行多个应用程序的能力。

2.多用户
计算机在同一时刻被多个用户访问的能力。如网络上的服务器必须是多用户的。因为网络上的服务器需要能够同时接受多个用户的同时访问。除了linux系统,比较熟悉的Win2000也是多用户的操作系统。多用户操作系统最主要的特点是:同一时刻不同的用户访问。例:一台windows98机器,虽然可以有好几个不同的帐号,但不能同时访问,所以它并不是多用户的。

3.多平台
可以在不同种类的CPU下工作。不要以为世界上就只有intel ,AMD这样的兼容CPU,还有很多种类的CPU。如:Alpha、Sparc。

4.保护模式
在linux下应用软件无法访问系统分配的内存以外的内存区域。如此,一个软件的错误不会造成整个系统的瘫痪。有些人没事在那里叫嚣:linux理论上永远也不会死机,就是这个原因。(但事实上还是会死的)

5.POSIX
POSIX表示可移植操作系统接口(Portable Operating System Interface ,缩写为 POSIX 是为了读音更像UNIX)。电气和电子工程师协会(Institute of Electrical and Electronics Engineers,IEEE) 最初开发 POSIX 标准,是为了提高 UNIX 环境下应用程序的可移植性。然而,POSIX 并不局限于 UNIX。 许多其它的操作系统,例如 WinNT,都支持 POSIX 标准,尤其是 POSIX.1。POSIX.1 提供了源代码级别的C 语言应用编程接口(API)给操作系统的服务程序,例如读写文件。POSIX.1 已经被国际标准化组织(International Standards Organization,ISO)所接受,被命名为 ISO/IEC 9945-1:1990 标准。

6.SYSV和BSD扩展
可以理解为和SYSV和BSD源代码级的兼容。简单一点,就是Linux下的应用程序同时也能在这两个系统上运行。SYSV和BSD也是两个操作系统,不知道这两个系统是什么?那就往下看。

7.GPL(General Public License)
公用许可证,下文会有详解。

1.2发音问题
1.2.1 linux的发音
linux发音是五花八门版本颇多,就笔者见到和听到的不下10种。对这种情况,据说,linux的创始人Linus(Linus Torvalds)针对读音分歧较多的情况,特意录了一段他对Linux的发音。这段录音的内容是这样的:“Hello,this is Linus Torvalds and I pronounce Linux as Linux”。我听出来的是/'li:nэks/,综合网上和linus自己的读音,概括出几个自认为最合适也最通用的读法:/Li'nQks/(“里那克斯”)或/'li:nэks/(“里呢克斯”)或/Li'nu:ks?/(“里纽克斯”)。这几个应该是谁都听得懂的。至于哪个比较正宗,当然是linus的原音。但事实上似乎使用linus那种读发的人并不在多数。

提示:上面的这段录音可以在RedHat中调试声卡的时候可以听到,如果你的声卡调试成功,系统会播放上面一段声音以示成功。

1.2.2 Linus Torvalds的发音
我们还应该了解一下其作者名子的发音。毕竟是一个人的名子,没人敢随便念。基本上比较统一。在英语中,Linus Torvalds(/li'nus 'tRwR:z/)中文就是“李纽斯·托沃兹”,也有翻成“李纳斯·托沃兹”的。但是你有机会听上面提到的那段录音,可以发现他念的是“李纽斯·托沃兹”。一般我们称他为linus先生,也就是“李牛死”。
2、体系结构概述

按照Garlan和Shaw提出的Linux操作系统分层方法:Linux操作系统分为4层次,即四个子系统,分别是用户进程、系统调用接口、Linux内核、硬件控制器。下面简单介绍一下这四个组成部分。

用户进程:用户应用程序是运行在Linux操作系统最高层的一个庞大的软件及核。当一个用户程序在操作系统之上运行时,它就是操作系统的一个进程。计算机不同,程序的集合大小会有所变化。
系统调用接口:为了在应用程序中实现特定的任务,可以通过系统调用来调用操作系统内核中特定的过程,以实现特定的服务。一般认为,这些调用和服务业时操作系统的一部分,内和编程接口也属于这一部分。系统调用本身也是由若干条指令组成的,但与一般过程不同的是:系统调用运行在内核模式,而一般的进程运行在用户模式。
Linux内核:内核式操作系统的灵魂,包括内核抽象核对硬件资源(如cpu)的间接访问,它负责管理磁盘上的文件、内存,负责启动系统并运行程序,负责从网络上接收和发送数据包等等
硬件:这个子系统包括了Linux安装时需要的所有可能的物理设备。
3、Linux内核

从程序员的角度来讲,操作系统的内核提供了一个虚拟的机器接口。它抽象了许多硬件细节,程序可以以某种统一的方式来进行数据管理,而内核将所有的硬件抽象成统一的虚拟借口。

Linux以统一的方式支持多任务,而这种方式对用户进程是透明的,每一个进程运行起来就好像只有它一个进程在计算机上运行一样,独占内存和其他的硬件资源。实际上内核在并发的运行几个进程。并且能够让几个进程公平合理地使用硬件资源,也能使各个进程之间互不干扰安全的运行。读到这里你就明白了为什么linux不会象windows那样常死机、蓝屏。linux如果使用图形界面可能会发现计算机好像死机了,其实没有死,而是某个进程死了,可能就是你的kde,gnome.杀死这个进程就可以了不必reset.

Linux内核也要完成一般操作系统必须完成的任务:

对文件系统的读写进行管理,把对文件系统的操作映射成对磁盘或者其他块设备的操作,Linux系统把所有的设备对定义为文件了,哈哈,这可与windows不同。
管理程序的运行,为程序分配资源,并且处理程序之间的通讯。
管理存储器,为程序分配内存,并且管理虚拟内存
管理输入输出,将设备映射成文件。
管理网络:有“网络之子”之称的Linux,对网络的管理可是她的强项。使用Linux你就会感受到它的网络功能的强大,可以使用Linux模拟强大的Csico高级路由器,那种感觉真实太棒了,只要几百块钱买一台486的计算机哦,就可以在上面自己构造强大功能的路由器,是不是动心了,哈哈,不过软件实现的路由器性能肯定比不上硬件路由器。
内核必须包含虚拟文件系统(VFS)管理程序以及各种具体文件系统映射成VFS的程序。这可是Linux较有特设的一部分,这就是为什么Linux支持的文件系统(minix文件系统、ext2/ext3文件系统、msdos/vfat/ntfs文件系统、iso9600CD-ROM的标准文件系统、hpfs OS/2用的文件系统、ufs/sysv 文件系统)很多的原因。对于内存的管理,Linux使用虚拟存储管理方式,利用现代处理器的页面映射能力,在x86处理器上,Linux使用4GB的地址空间,操作系统处理利用物理存储器外还支持将硬盘空间映射成虚拟内存。所有的存储器(物理内存和虚拟内存)被分成大小相等的页面,系统通过给出页号和页面内偏移量对某个内存地址进行访问。物理内存紧张的时候,操作系统把某些没有使用的页面从内存移动到硬盘上以便腾出空闲的页面供程序使用,这个过程叫做交换(SWAP).Linux使用交换分区来处理交换需要的虚拟存储空间,在硬盘上开设一个独立的分区专门用于映射虚拟内存,交换分区可以有多个,之所以这样是因为早期的Linux核心要求每一个交换分区不能超过128MB.对于较重负荷的服务器,交换内存用到256MB甚至更多都是很正常的事情,因此那时的系统经常有多个交换分区。目前这个限制已经去除。

内核的另外一个任务是执行用户程序,为此核心必须支持可执行格式。Linux使用多种可执行文件个时,诸如elf、aout等等,这可与windows不同,没有办法从名字上区分一个文件到底是什么格式,核心只关心二进制文件的具体形式。

linux内核由五个主要的子系统组成:进程调度(SCHED)、内存管理(MM)、虚拟文件系统(VFS)、网络接口(NET)、进程间通信(IPC)。进程调度处于核心位置,所有的子系统都依赖于它,因为每一个子系统都需要挂起或者恢复进程。一般情况下,当一个进程等待硬件操作完成时,它会被挂起;当操作真正完成时,进程恢复执行。各个子系统之间的依赖关系如下:

进程调度与内存管理之间的关系:这两个子系统互相依赖。在多道程序环境下,程序运行必须为之创建进程,而创建进程的第一件事就是要将程序和数据装入内存。
进程间通信与内存管理的关系:进程间通信子系统要依赖内存管理支持共享内存通信机制。这种机制尤许两个进程除了拥有自己的私有内存外,还可存取共同的内存区域。
虚拟文件系统与网络接口之间的关系:虚拟文件系统利用网络接口支持网络文件系统(NFS),也利用内存管理支持RAMDISK设备
内存管理与虚拟文件系统之间的关系:内存管理利用虚拟文件系统支持交换,交换进程定期地由调度程序调度。

也可参照以下网址:http://ew.gqjy.net/kcgg/zczn/Win2000/200608/22649.html

Ⅵ linux如何挂载通用分层系统

硬盘已经正常安装并启动系统后,使用mount 挂载到想要挂载的目录即可,例如:
mount /dev/sda2 /opt/disk
其中dev/sda2 是你的硬盘,/opt/disk是你想要挂载的目录
挂载完成后进入/opt/disk,就可以打开你的硬盘了
去除挂载的话,使用命令 umount /opt/disk 即可,在去除挂载时,注意你当前的目录不要在/opt/disk 目录下,否则无法去除挂载。

Ⅶ linux 下 合成后的PDF文件是可分层编辑的,可否在加密或只读方面做一些工作

加密文件推荐使用深度文件夹锁。软件操作简单以,安全方便,永久免费!文件加密,U盘加密,移动硬盘加密。
加密文件防删,防移,防复制等。对windows各系统有兼容性

Ⅷ linux是什么系统

Linux 也是众多操作系统之一,要想知道 Linux 是什么,首先得说一说什么是操作系统。

计算机是一台机器,它按照用户的要求接收信息、存储数据、处理数据,然后再将处理结果输出(文字、图片、音频、视频等)。计算机由硬件和软件组成:

  • 硬件是计算机赖以工作的实体,包括显示器、键盘、鼠标、硬盘、CPU、主板等;

  • 软件会按照用户的要求协调整台计算机的工作,比如 Windows、Linux、Mac OS、Android等操作系统,以及 Office、QQ、迅雷、微信等应用程序。


  • 操作系统(Operating System,OS)是软件的一部分,它是硬件基础上的第一层软件,是硬件和其它软件沟通的桥梁(或者说接口、中间人、中介等)。


  • 操作系统会控制其他程序运行,管理系统资源,提供最基本的计算功能,如管理及配置内存、决定系统资源供需的优先次序等,同时还提供一些基本的服务程序,例如:
  • 1) 文件系统

  • 提供计算机存储信息的结构,信息存储在文件中,文件主要存储在计算机的内部硬盘里,在目录的分层结构中组织文件。文件系统为操作系统提供了组织管理数据的方式。
  • 2) 设备驱动程序

  • 提供连接计算机的每个硬件设备的接口,设备驱动器使程序能够写入设备,而不需要了解执行每个硬件的细节。简单来说,就是让你能吃到鸡蛋,但不用养一只鸡。
  • 3) 用户接口

  • 操作系统需要为用户提供一种运行程序和访问文件系统的方法。如常用的 Windows 图形界面,可以理解为一种用户与操作系统交互的方式;智能手机的 Android 或 iOS 系统,也是一种操作系统的交互方式。
  • 4) 系统服务程序

  • 当计算机启动时,会自启动许多系统服务程序,执行安装文件系统、启动网络服务、运行预定任务等操作。可查看Linux书籍《Linux就该这么学》了解Linux详细知识。

Ⅸ Linux系统中设备驱动分层结构是怎样的如何实现与设备无关性

特定的设备驱动程序注册调用系统驱动框架提供的一些系统函数将驱动注册进系统,同时填充一些函数指针,还是到网上去搜搜吧,不是一两句话能说清楚的

Ⅹ 嵌入式linux中,kernel,vfs,文件系统是什么关系从分层的角度看,文件系统是属于内核吗

vfs,文件系统都是属于内核
根文件系统是根分区的文件系统

热点内容
安卓设计app哪个好 发布:2024-11-05 13:18:34 浏览:177
数据库pd 发布:2024-11-05 13:02:45 浏览:654
安卓手机什么情况才要换电池 发布:2024-11-05 13:01:49 浏览:710
手机上的账号密码自动保存在哪里 发布:2024-11-05 12:28:52 浏览:724
虚拟机的内网服务器是什么 发布:2024-11-05 12:23:35 浏览:59
安卓怎么查今天去了哪里 发布:2024-11-05 12:14:28 浏览:710
安卓短信app哪个好 发布:2024-11-05 12:11:28 浏览:548
正版解压工具 发布:2024-11-05 12:09:00 浏览:138
爱奇艺会员密码在哪里设置 发布:2024-11-05 12:08:49 浏览:788
mysql打包数据库 发布:2024-11-05 11:55:29 浏览:947