首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏linux内核源码学习

    linux内核整体架构

    内核与微内核架构内核:所有的内核代码都编译成二进制文件并运行在一个大内核地址空间中,整体架构如下:图片微内核:把操作系统分成多个独立的功能模块,每个功能模块之间的访问需要通过“消息”来完成,因此效率没有宏内核架构高 ,并且支持动态的加载和卸载(例如许多设备的驱动程序),这一点上宏内核架构就做不到,宏内核类似于静态编译的结果而不支持动态取舍。 linux内核架构图片OS允许CPU运行在用户态和内核态,而 linux 使用ring0和ring3两种模式实现内核态和用户态。 体系结构Arch抽象层:linux内核支持多种架构,例如ARM,X86等,目前已经支持几十种体系结构,而Arch抽象层抹去了不同架构之间的硬件差异,做了一层统一的抽象。 在linux内核5.6.18版本的源码中,直接把不同架构做一个分目录操作,以提供对各个架构的支持。图片进程调度模块:OS使用进程调度器支持多进程并发。

    1.2K30编辑于 2022-11-12
  • 来自专栏txp玩Linux

    Linux 内核架构分析

    硬件控制层:该子系统由Linux安装中的所有可能的物理设备组成;例如,CPU,内存硬件,硬盘和网络硬件都是该子系统的成员 2.内核架构 2.1 内核之作用 Linux内核为用户进程提供了虚拟机接口。 3.各子系统架构分析 3.1 进程调度器架构 进程调度器是Linux内核中最重要的子系统。其目的是控制对计算机CPU的访问。这不仅包括用户进程的访问,还包括其他内核子系统的访问。 CPU负责中断当前正在执行的进程,并允许内核调度另一个进程。 3.2 内存管理器架构 内存管理器子系统负责控制对硬件内存资源的进程访问。 3.3 虚拟文件系统架构 虚拟文件系统旨在提供存储在硬件设备上的数据的一致视图。计算机中几乎所有的硬件设备都是使用通用设备驱动程序接口表示的。 3.4 网络接口层架构 网络子系统允许Linux系统通过网络连接到其他系统。支持许多可能的硬件设备,以及可以使用的许多网络协议。

    3.4K30编辑于 2022-03-21
  • 来自专栏日暮星辰

    centos7内核升级最新BBR内核

    CENTOS7作为常用的服务器系统,其正式版的内核都是相当保守的。 以下介绍以下升级最新版本的内核方法,目的是为了实现内核的BBR功能,改善CENTOS7的网络功能 BBR:Google 开源了其 TCP BBR 拥塞控制算法,并提交到了 Linux 内核,从 4.9 一、升级内核 1.1 查询内核版本: cat /etc/redhat-release CentOS Linux release 7.7.1908 (Core) uname -r 5.2.13-1.el7 .elrepo.x86_64 由以上可见,我使用的是CentOS 7.7版,内核为5.2.13 1.2 增加升级内核源 CentOS允许使用 ELRepo 第三方源升级内核版本。 https://www.elrepo.org/RPM-GPG-KEY-elrepo.org rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.

    4.1K30发布于 2019-12-30
  • 来自专栏人人都是极客

    Linux 内核系统架构

    这篇文章从进程调度,内存管理,设备驱动,文件系统,网络等方面讲解Linux内核系统架构。 Linux的系统架构是一个经典的设计,它优秀的分层和模块化,融合了数量繁多的设备和不同的物理架构,让世界各地的内核开发者能够高效并行工作。先来看看Linus在多年前公开Linux的邮件。 这篇文章通过对内核主要模块的介绍,希望能为大家寻找这些问题的答案起一个抛砖引玉的作用。实际上,建议每一个希望成为技术专家的人都读一遍Linux的源代码。 先来看看Linux内核一个高阶架构图: ? Linux系统架构架构非常清晰,从硬件层,硬件抽象层,内核基础模块(进程调度,内存管理,网络协议栈等)到应用层,这个基本上也是各类软硬件结合的系统架构的基础设计,例如物联网系统(从单片机,MCU等小型嵌入式系统 网络实现分层图 本文先介绍到这,对技术感兴趣的朋友可以关注 "从零开始学架构",后续也会继续推出对各类架构设计的介绍,希望和大家多多交流,也欢迎大家留言。

    5.7K72发布于 2019-09-17
  • 来自专栏各类技术文章~

    Centos 7 升级系统内核

    Centos 7 升级系统内核 我们使用 Linux 来表示整个操作系统,但严格地来说,Linux 只是个内核。 例如,当你计算机上运行的程序想要连接到无线网络时,它会将该请求提交给内核,后者又会使用正确的驱动程序连接到网络。 1、检查已安装的内核版本 让我们安装了一个发行版,它包含了一个特定版本的内核。 但是,这只会升级内核到仓库中可用的最新版本而不是在 www.kernel.org/ 中可用的最新版本。不幸的是,Red Hat 只允许使用前者升级内核。  [root@host-machine ~]# uname -r  5.14.0-1.el7.elrepo.x86_64  ​  2、查看可以使用的内核列表  [root@host-machine ~ ) 7 (Core)  ​  3、查看当前默认内核启动项  [root@host-machine ~]# grub2-editenv list  saved_entry=1  ​  4、更改默认启动内核

    1.8K00编辑于 2021-12-24
  • 来自专栏全栈程序员必看

    CentOS 7 升级 Linux 内核

    目前 Linux 内核已经发布到 4.X(可以随时在 Linux 内核官网 查看当前版本),为了使用最新版本的内核,只好在安装 CentOS 7 后对内核进行升级。 使用 uname -r 区分你用的是官方内核还是 Linux 发行版内核,横线后面有任何东西都表示这不是官方内核: # uname -r 3.10.0-514.26.2.el7.x86_64 2. 例如 CentOS 7.2 中,通过 uname -r 查看内核版本时,会看到 3.10.0-514.26.2.el7.x86_64,表示对应的 Linux 内核版本是 3.10。 3.10.0-514.26.2.el7.x86_64 -v, –kernel-version:打印内核的版本。 _64 kernel-headers-3.10.0-514.26.2.el7.x86_64 kernel-3.10.0-514.26.2.el7.x86_64 删除旧内核的 RPM 包 yum remove

    4.7K22编辑于 2022-09-15
  • 来自专栏架构进阶

    内核架构(Microkernel Architecture)

    一 背景 最近在讨论产品架构时,提到了微内核架构设计。之前对这个概念有过了解,但没有深入研究。借此机会对微内核架构做一次相对系统、全面的了解,作为架构知识储备。 但如果深入一些,能够把插件化架构阐述清楚,并能够借鉴思想,对我们在做的工作进行优化,尤其是在架构设计上并不简单。 2.2 来源 微内核设计其实就是插件体系。 我们都知道,操作系统内核诞生得比较早,所以插件化最早被用在内核设计上,于是就有了微内核设计这一称呼。—— 内容来自 阿里技术,文章:什么是微内核架构设计。 三 微内核架构设计 3.1 溯源 微内核架构设计(Microkernel Architecture Style)这个关键词,百度中可查到的基本都是转载,或阿里技术公众号发布的文章。 3.2 微内核架构风格-拓扑结构 从下图可见,微内核架构的拓扑结构由两部分组件组成:核心系统(core system)和插件模块(plug-in modules)。

    2.1K20发布于 2021-10-21
  • 来自专栏全栈程序员必看

    Linux内核的整体架构

    前言 本文是“Linux内核分析”系列文章的第一篇,会以内核的核心功能为出发点,描述Linux内核的整体架构,以及架构之下主要的软件子系统。 Linux内核的核心功能 如下图所示,Linux内核只是Linux操作系统一部分。 所以为了管理这些设备,Linux内核提出了如下的架构。 3. Linux内核的整体架构 3.1 整体架构和子系统划分 上图说明了Linux内核的整体架构。 其它非核心代码,例如库文件(因为Linux内核是一个自包含的内核,即内核不依赖其它的任何软件,自己就可以编译通过)、固件集合、KVM(虚拟机技术)等 3. 附录 5.1 参考资料 第3章各个子系统的架构图,拷贝自如下的网页: http://oss.org.cn/ossdocs/linux/kernel/a1/index.html 原创文章,转发请注明出处

    1.3K50编辑于 2022-09-15
  • 来自专栏张伟博客

    centos7 删除无用内核

    如果启动项多于2个,说明当前系统有旧内核未删除。原因是CentOS更新后不会自动删除旧内核。 默认以新内核启动,可以在启动选项中临时选择,也可以修改配置永久指定。 [root@controller ~]# uname -r     #查看当前内核 3.10.0-862.3.2.el7.x86_64 [root@controller ~]# grub2-editenv list       # 默认内核已是最新版 saved_entry=CentOS Linux (3.10.0-862.3.2.el7.x86_64) 7 (Core) [root@controller --unrestricted $menuentry_id_option 'gnulinux-3.10.0-862.el7.x86_64-advanced-2e7f2bc7-8c8f-47f7-905d- [root@controller ~]# yum remove kernel-3.10.0-862.el7.x86_64   #删除旧内核 或者rpm -e kernel-3.10.0-862.el7

    2.8K10发布于 2018-09-20
  • 来自专栏XBD

    CentOS7 升级最新内核

    import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org yum install https://www.elrepo.org/elrepo-release-7. el7.elrepo.noarch.rpm 列出可用的内核相关包 # kernel-lt:长期支持版本,用于修复旧版内核的 BUG,这些内核只会修复重大 BUG,并且不会频繁发布版本。 配置内核 make menuconfig # 老的ncurses界面,被nconfig取代 make nconfig # 新的命令行ncurses界面 编译内核 make -j 4 安装内核模块 uname -r ---- 卸载新内核 删除/lib/modules/目录下对应版本的库文件 删除/usr/src/linux/目录下的源码和压缩文件 删除/boot/启动的内核内核镜像文件 删除grub.cfg 配置文件新内核对应的条目

    2.7K10编辑于 2022-10-27
  • 来自专栏IT资讯新闻

    CentOS7修改内核版本

    对于 CentOS 5.× 和 6.× 的系统我们在更新后需要重新安装应用程序恢复数据, CentOS 7.× 不需要这么麻烦,可以直接升级。 升级 CentOS 7内核,启用 ELRepo,要在 CentOS 7.× 上启用 ELRepo 仓库,请运行: rpm --import https://www.elrepo.org/ RPM-GPG-KEY-elrepo.org rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm 图片.png 根据实际设置需要默认启动的内核,此处设置kernel-ml-4.17.4-1.el7.elrepo.x86_64为默认启动的内核,命令如下: grub2-set-default 'CentOS Linux (4.17.4-1.el7.elrepo.x86_64) 7 (Core)' 设置完成后使用下面命令查看是否设置成功: grub2-editenv list 如图:

    2.4K30发布于 2021-07-21
  • 来自专栏全栈程序员必看

    如何查看linux系统内核版本_centos7内核版本

    Linux系统版本 命令1:lsb_release -a lsb_release解析 命令2: cat /etc/issue 命令3: cat /etc/redhat-release 2.查看Linux内核版本 [root ~]# cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core) 2.查看Linux内核版本 命令1: uname -a [root ~]# uname -a Linux iZbp13nq1pxf5wki525wiuZ 3.10.0-1160.45.1.el7.x86_64 #1 SMP Wed Oct 13 17:20:51 UTC /proc/version [root@iZbp13nq1pxf5wki525wiuZ ~]# cat /proc/version Linux version 3.10.0-1160.45.1.el7. ~]# cat /proc/cpuinfo| grep "processor"| wc -l 4 [root@iZj6c7q37rfjtps4h88ieoZ ~]# lscpu Architecture

    9.1K10编辑于 2022-09-25
  • 来自专栏程序人生 阅读快乐

    PHP7内核剖析.epub

    [下载地址 ] PHP作为最流行的语言之一,自第一个版本发布至今的二十几年里经历了多次重大改进,PHP7版本最大的特色在于其性能上的突破,比PHP5快了一倍。 目前PHP7已经得到了广泛应用,越来越多的项目从PHP5迁移到了PHP7。 目前,关于PHP内核的资料非常有限,《PHP7内核剖析》以当前最为流行的PHP7版本为基础,系统性地、尽可能详细地介绍PHP语言底层的实现,旨在帮助更多的开发者进一步理解PHP,参与到PHP的实现中,为未来 《PHP7内核剖析》适用于有一定C语言基础的PHP高级工程师,或者想了解PHP7的内部实现、扩展开发的工程师。

    1.6K30发布于 2019-03-20
  • 来自专栏Linux运维技术之路

    centos7 内核如何升级

    内核升级操作步骤如下: 步骤一:载入公钥、安装elrepo rpm -import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org rpm -Uvh http kernel-ml.x86_64 kernel-ml-tools.x86_64 yum remove kernel-tools-libs.x86_64 kernel-tools.x86_64 步骤四:查看系统上的所有可用内核 elrepo.x86_64) 7 (Core) CentOS Linux (3.10.0-1160.11.1.el7.x86_64) 7 (Core) CentOS Linux (3.10.0-1160 -25 ~]# vim /etc/default/grub 步骤五:设置开机从新内核启动 方法1: grub2-set-default 0 方法2: 编辑配置文件 vim /etc/default/grub 步骤六:运行grub2-mkconfig命令来重新创建内核配置 grub2-mkconfig -o /boot/grub2/grub.cfg 步骤七、重启动、查看内核、更新 reboot uname -

    2.9K41编辑于 2022-06-07
  • 来自专栏用户8156813的专栏

    CentOS 7内核升级操作参考

    由于CentOS 7的维护终止日期在2024年6月30日,距离当前还有一段时间,所以还有少量客户在继续使用着该版本。在为客户解决现网问题的过程中,我们发现因为内核缺陷导致操作系统崩溃的情况时有发生。 测试环境总结如下:硬件环境:机型为GN7.2XLARGE32,含一张共享的NVIDIA T4 GPU卡操作系统:centos7.6.0 x64,内核版本3.10.0-1160.71.1.el7.x86_ 我们按照提示进行了升级[7],升级后相应的GPU驱动程序也升级到了525,如下图所示:通过Git下载CUDA测试程序,进入目录后运行make即可编译程序。 4.3 升级Linux内核做好上述准备工作后,下面就开始来升级Linux内核。 或者通过采用4.3节的“选择新内核”这一步,重新选择旧的内核,重启系统后生效。若确认升级成功,可以根据参考文档[11]将旧内核删除。

    6K80编辑于 2023-01-06
  • 来自专栏运维经验分享

    centos7 选定默认启动内核,及删除无用内核

    /grub.cfg |grep menuentry  查看系统可用内核 [root@bigapp-slave27 ~]# cat /boot/grub2/grub.cfg |grep menuentry [root@bigapp-slave27 ~]# uname -r 3.10.0-514.16.1.el7.x86_64   #修改开机时默认使用的内核 grub2-set-default 'CentOS Linux (3.10.0-327.el7.x86_64) 7 (Core)'   #查看内核修改结果 [root@bigapp-slave27 ~]# grub2-editenv list saved_entry =CentOS Linux (3.10.0-327.el7.x86_64) 7 (Core)   #查看系统安装了哪些内核包 [root@bigapp-slave27 ~]# rpm -qa |grep 或rpm -e 删除无用内核 yum remove kernel-3.10.0-327.el7.x86_64 (adsbygoogle = window.adsbygoogle || [])

    1.5K30发布于 2019-03-11
  • 来自专栏运维经验分享

    centos7 选定默认启动内核,及删除无用内核

    为什么80%的码农都做不了架构师?>>> ? centos7 选定默认启动内核,及删除无用内核 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 Linux (3.10.0-327.el7.x86_64) 7 (Core)'   #查看内核修改结果 [root@bigapp-slave27 ~]# grub2-editenv list saved_entry =CentOS Linux (3.10.0-327.el7.x86_64) 7 (Core)   #查看系统安装了哪些内核包 [root@bigapp-slave27 ~]# rpm -qa |grep 或rpm -e 删除无用内核 yum remove kernel-3.10.0-327.el7.x86_64 (adsbygoogle = window.adsbygoogle || [])

    1.3K40发布于 2019-05-31
  • 来自专栏韩曙亮的移动开发专栏

    【Linux 内核 内存管理】内存管理架构 ① ( 内存管理架构组成 | 用户空间 | 内核空间 | MMU 硬件 | Linux 内核架构层次 | Linux 系统调用接口 )

    文章目录 一、内存管理架构组成 ( 用户空间 | 内核空间 | MMU 硬件 ) 二、Linux 内核架构层次 三、Linux 系统调用接口 一、内存管理架构组成 ( 用户空间 | 内核空间 | MMU 硬件 ) ---- 内存管理架构 由 3 部分组成 : ① 用户空间 : 在 " 用户空间 " 中 , 使用 malloc 函数 申请 " 堆内存 " , 使用 free 函数 释放 " 堆内存 " ; ② 内核空间 : Linux 内核启动后 , 一直 驻留在内存 中 , 应用程序 不能 读写 内核空间数据 , 不能直接调用 内核源码 中的函数 ; 只能通过 " 系统调用 " 间接调用 内核函数 主要作用是 将 ” 虚拟内存地址 " 转为 " 物理内存地址 " ; " 内存管理单元 " , 英文名称是 " Memory Management Unit “ , 简称 ” MMU " ; 二、Linux 内核架构层次 ---- 整个操作系统 由 应用层 , Library Routine , 内核 , 硬件 组成 ; 层次架构如下 : Linux 内核 需要 " 管理硬件 " , 如 : CPU 处理器 , 内存

    10.3K40编辑于 2023-03-30
  • 来自专栏架构进阶

    内核架构(Microkernel Architecture)二

    一 简介 上一篇文章,我们介绍了微内核架构的概念、起源、拓扑结构,以及设计的关键问题。本篇将继续探讨微服务架构的更多细节。 常见的微内核具体实现有两种,一种是 OSGi,另一种是规则引擎,我们一一来进行分析。 从这个角度来说,我们可以理解为 OSGi 技术提供了一种面向服务的架构,它能使这些组件动态地发现对方,以达到低耦合,且耦合度可管理的效果。 三 规则引擎架构 3.1 简析 规则引擎从结构上来看,也属于微内核架构的一种具体实现,其中执行引擎可以看作是微内核,执行引擎解析配置好的业务流,执行其中的条件和规则,通过这种方式来支持业务的灵活多变。 3.3 规则引擎架构 图片来自文章:阿里架构师一文详解微内核架构,原来微内核这么简单

    1.4K30发布于 2021-10-22
  • 来自专栏韩曙亮的移动开发专栏

    【Linux 内核】宏内核与微内核架构 ( 操作系统需要满足的要素 | 宏内核 | 微内核 | Linux 内核动态加载机制 )

    文章目录 一、操作系统需要满足的要素 二、宏内核 三、微内核 四、Linux 内核动态加载机制 一、操作系统需要满足的要素 ---- 电脑上运行的 操作系统 , 是一个 软件 ; 设备管理 : 操作系统需要 ---- 宏内核 : 内核代码 编译成 二进制文件 , 内核 运行在 一个 大内核 地址空间 中 , 可以 直接 访问 , 调用 内核代码 , 这种内核优点是 效率高 , 性能强 ; 下图中 , 最上层是 " 系统调用 " , 中间是 " 宏内核 " , 最下方是 硬件层 ; 宏内核优点 : 设计简单 , 性能高 ; 三、微内核 ---- 微内核 : 将 操作系统 拆分成 多个 独立功能模块 , 这些 进行通信 , 微内核优点 : 稳定性好 , 实时性好 ; 微内核缺点 : 高度模块化 , 模块之间只能通过消息传递信息 , 效率低 ; 四、Linux 内核动态加载机制 ---- Linux 内核模块动态加载 , 必须 遵守规定的接口 , 来访问内核 , 这样 开发内核模块 , 变得 更加容易 , 方便 ; 与平台无关 : 内核模块 可以 设计成 与 平台无关的 模块 , 如 : 文件系统 ;

    5.4K30编辑于 2023-03-30
领券