Linux底层基础知识
一.汇编,C语言,C++,JAVA之间的关系
汇编,C语言,C++可以通过不同的编译器,编译成机器码。而java只能由Java虚拟机识别。Java虚拟机可以看成一个操作系统,Java虚拟机是由汇编,C,Linux等编写而成的一个操作系统(面向os)
不同的芯片,底层的CISC指令集不同,所以其机器码有区别,因此汇编不能跨平台。特定的CPU下只能执行特定的机器码。Java生成字节码,只有Java虚拟机识别,Java虚拟机跨平台,因此Java跨平台。
二.CPU架构,指令集,汇编,硬编码之间的关系
CPU架构
1.CISC(复杂指令集)
- Intel芯片
2.RISC(精简指令集)
1.ARM芯片
- Mac M1、M2芯片
相同的CPU架构,不同OS,汇编不一样,机器码一样
CISC的优点:
1.复杂指令:CISC允许在单条指苓执行多个低级操作,例加载值、进行算术运算和将结 果存储回内存,这在一定程度上可以减少需要的指令数量。
2.节省内存:由于单个指令可以执行多个操作,所以CISC可以减少对内存的使用。
3.易于编译:由于CISC的指令集更接近于高级语言,编译器可以更容易地将高级语言代码翻 译为机器代码。CISC的缺点:
1.硬件复杂性:由于指令集的复杂性,CISC架构的处理器在硬件实现上通常会更复杂。
2.功耗较高:由于硬件复杂性,CISC处理器可能需要更多的电力来执行指令。
3.性能:复杂的指令可能需要多个时钟周期来执行,这可能影响到性能。
三.ASM、NASM、ATT、ARM之间的关系
MASM、NASM、ATT和ARM是与汇编语言相关的术语和工具。
MASM(Microsoft Macro Assembler)是微软开发的汇编语言编译器,用于x86架构的处理器。
NASM(Netwide Assembler)是一种开源的汇编语言编译器,支持多种处理器架构,包括x86和ARM。
ATT(AT&T Syntax)是一种汇编语言的语法风格,常用于UNIX系统和GNU工具链。
ARM(Advanced RISC Machines)是一种处理器架构,广泛应用于移动设备和嵌入式系统。
总结一下,MASM和NASM是汇编语言编译器,用于编写汇编语言程序。ATT是一种汇编语言的语法风格,可以与不同的汇编语言编译器一起使用。ARM是一种处理器架构,可以使用不同的汇编语言编写程序。
Linux是一个开源操作系统内核,它可以运行在多种不同的架构上,包括但不限于:
- x86架构:包括Intel和AMD的处理器,如x86-64(64位)和x86(32位)。
- ARM架构:广泛应用于移动设备和嵌入式系统,如ARMv7和ARMv8。
- Power架构:用于IBM Power Systems服务器和一些嵌入式系统。
- MIPS架构:用于一些嵌入式系统和网络设备。
- SPARC架构:用于Oracle的SPARC服务器。
- RISC-V架构:一个开源的指令集架构,逐渐得到广泛采用。
总之,Linux是一个多架构的操作系统内核,可以在多种不同的处理器架构上运行。
四.寄存器、CPU缓存、内存之间的关系
寄存器、CPU缓存和内存是计算机系统中不同层级的存储设备,它们之间有着紧密的关系。
- 寄存器(Registers):寄存器是位于CPU内部的存储设备,用于暂存和快速访问数据和指令。寄存器是CPU执行指令所必需的组成部分。它们具有非常快速的访问速度,但容量相对较小。寄存器通常由硬件设计者定义和使用。
- CPU缓存(CPU Cache):CPU缓存是位于CPU内部的高速缓存存储器,用于提高CPU和主内存之间的数据传输效率。它通过在CPU和主内存之间建立缓存层,存储频繁访问的数据和指令,以提供更快的访问速度。常见的CPU缓存包括L1缓存、L2缓存和L3缓存等级别,容量逐级增大而访问速度逐级降低。
- 内存(Memory):内存是用于存储程序和数据的设备,它通常指的是主内存(RAM)。内存提供了比寄存器和缓存更大的存储容量,但访问速度相对较慢。CPU从内存中读取指令和数据,并将计算结果写回内存。
关系:寄存器、CPU缓存和内存都是计算机系统中不同层级的存储设备。寄存器作为最快的存储设备,存储着CPU的工作数据和指令。CPU缓存作为CPU的高速缓存存储器,存储了频繁访问的数据和指令。而内存作为存储器的最大部分,存储了程序和数据,但访问速度相对较慢。在计算过程中,CPU会尽量从寄存器和缓存中获取数据,以提高执行速度,当数据不在寄存器和缓存中时,才会从内存中读取或写入数据。因此,寄存器、CPU缓存和内存共同协作,提供了不同层级的存储器层次结构,以满足计算机系统对存储和访问的需求。
当程序执行时,CPU首先从内存中加载指令和数据到寄存器或缓存中进行操作。寄存器提供了最快速的访问速度,因为它们直接位于CPU内部。CPU会频繁地使用寄存器来执行计算、存储中间结果和控制程序的状态。然而,寄存器的数量有限,容量也比较小。当寄存器无法容纳全部数据时,CPU会使用缓存。缓存通常分为几个层级,以便根据访问频度和访问模式来优化数据的存储和访问。缓存是位于CPU和内存之间的快速存储器,其目的是减少CPU访问内存的次数,提高访问速度。
最后,内存是存储程序和数据的主要设备,它具有较大的容量,但相比寄存器和缓存,访问速度较慢。当寄存器和缓存不能满足CPU需要的数据时,CPU会从内存中读取或写入数据。
总结来说,寄存器、CPU缓存和内存之间的关系是:寄存器提供了最快速的数据存储和访问,缓存作为介于寄存器和内存之间的高速存储器,提供了更大容量的存储和快速的访问,而内存则是存储程序和数据的主要设备,容量最大但访问速度最慢。它们共同协作,以满足计算机系统的存储和访问需求。
寄存器分类
Linux底层知识涉及操作系统的基本概念、内核、文件系统以及与硬件的交互等内容。以下是一些与Linux底层知识相关的主题:
1. 操作系统基础:了解操作系统的概念、组成部分和基本功能,包括进程管理、内存管理、文件系统等。
2. 内核:Linux内核是操作系统的核心,负责管理系统资源、控制进程和提供系统调用接口。了解内核的结构、模块、调度器和驱动程序等是重要的底层知识。
3. 文件系统:Linux使用各种文件系统来管理存储设备上的数据。常见的文件系统包括EXT4、Btrfs、XFS等。了解文件系统的层次结构、文件组织方式以及文件权限和扩展性等是必要的。
4. 设备驱动程序:了解设备驱动程序是如何与硬件交互的,包括字符设备、块设备和网络设备驱动程序的编写和加载过程。
5. 系统启动过程:了解Linux系统的启动过程,包括BIOS/UEFI引导、引导加载程序(如GRUB)、内核启动和初始化过程等。
6. 内存管理:学习操作系统如何管理内存,包括虚拟内存、分页和分段机制、物理内存管理等。
7. 进程管理:了解进程的概念、进程控制块、线程和进程调度算法等,以及相关的系统调用和工具。
8. 网络管理:包括网络协议栈、网络设备驱动程序、网络配置和管理等底层网络知识。
9. 性能优化和故障排查:学习如何分析和优化系统性能,以及如何排查和解决常见的系统故障和错误。
这只是Linux底层知识的一些主要方面。要深入了解这些主题,可以通过阅读相关的操作系统教材、内核文档、技术博客和参与开源社区等途径进行学习和实践。
相关文章:
Linux底层基础知识
一.汇编,C语言,C,JAVA之间的关系 汇编,C语言,C可以通过不同的编译器,编译成机器码。而java只能由Java虚拟机识别。Java虚拟机可以看成一个操作系统,Java虚拟机是由汇编,C,…...
JUC并发编程--------线程安全篇
目录 什么是线程安全性问题? 如何实现线程安全? 1、线程封闭 2、无状态的类 3、让类不可变 4、加锁和CAS 并发环境下的线程安全问题有哪些? 1、死锁 2、活锁 3、线程饥饿 什么是线程安全性问题? 我们可以这么理解&#…...
机器视觉之Basler工业相机使用和配置方法(C++)
basler工业相机做双目视觉用,出现很多问题记录一下: 首先是多看手册:https://zh.docs.baslerweb.com/software 手册内有所有的源码和参考示例,实际上在使用过程中,大部分都是这些源码,具体项目选择对应的…...
Centos nginx配置文档
1、安装nginx: yum install nginx 2、Nginx常用命令 查看版本:nginx -v 启动:nginx -c /etc/nginx/nginx.conf 重新加载配置:nginx -s reload 停止:nginx -s stop 3、Nginx反向代理配置 nginx配置详解 1、Nginx配置图 详情可以查看:http://nginx.org/ru/docs/example…...
2023/9/14 -- C++/QT
作业: 仿照Vector实现MyVector,最主要实现二倍扩容 #include <iostream>using namespace std;template <typename T> class MyVector { private:T *data;size_t size;size_t V_capacity; public://无参构造MyVector():data(nullptr),size(…...
golang在goland编译时获取环境变量失效
在golang中, 我们通常使用os包来获取环境变量,如: os.Getenv() os.LookupEnv() 等。 但如果我们使用goland编译器,在编译是,这时操作环境变量,会发现os包读取到的环境变量值不变: 新增后&am…...
一款非常容易上手的报表工具,简单操作实现BI炫酷界面数据展示,驱动支持众多不同类型的数据库,可视化神器,免开源了
一款非常容易上手的报表工具,简单操作实现BI炫酷界面数据展示,驱动支持众多不同类型的数据库,可视化神器,免开源了。 在互联网数据大爆炸的这几年,各类数据处理、数据可视化的需求使得 GitHub 上诞生了一大批高质量的…...
蓝桥杯 题库 简单 每日十题 day3
01 约数个数 题目描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。 1200000 有多少个约数(只计算正约数)。 解题思路 枚举,从1开始一直到1200000本身都作为1200000的除数,…...
基于SSM+Vue的高校实验室管理系统的设计与实现
末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用Vue技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…...
C语言天花板——指针(初阶)
🌠🌠🌠 大家在刚刚接触C语言的时候就肯定听说过,指针的重要性以及难度等级,以至于经常“谈虎色变”,但是今天我来带大家走进指针的奇妙世界。🎇🎇🎇 一、什么是指针&…...
关于第一届全球电子纸创新应用金奖征集评选及报名指南
重要通知 |关于第一届全球电子纸创新应用金奖征集评选及报名指南https://mp.weixin.qq.com/s/RWsZtmJ20-NZXMG0k0rwPA?wxwork_useridEPIA 从2004年,Sony推出全球首款电纸书阅读器至今20载,这期间,到底诞生了多少种创新产品&#…...
idea搭建项目找不到Tomcat
idea搭建项目找不到Tomcat_idea没有tomcat配置项_ZYRL的博客-CSDN博客...
类和对象三大特性之继承
全文目录 继承的概念定义格式继承关系和访问限定符final 基类和派生类对象赋值转换继承中的作用域派生类的六个默认成员函数构造函数拷贝构造函数operator析构函数 友元和静态成员友元静态成员 各种继承形式菱形继承虚继承菱形虚拟继承对象模型 继承和组合 继承的概念 通过继承…...
Debian 12安装Docker
1.更新系统包 #apt update 2.安装依赖包 #apt install apt-transport-https ca-certificates curl gnupg lsb-release 3.添加Docker源 (1)添加Docker 官方GPG密钥 #curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /usr/s…...
小谈设计模式(4)—单一职责原则
小谈设计模式(4)—单一职责原则 专栏介绍专栏地址专栏介绍 单一职责原则核心思想职责的划分单一变化原则高内聚性低耦合性核心总结 举例图书类(Book)用户类(User)图书管理类(Library)…...
ATF(TF-A) EL3 SPMC威胁模型-安全检测与评估
安全之安全(security)博客目录导读 ATF(TF-A) 威胁模型汇总 目录 一、简介 二、评估目标 1、数据流图 三、威胁分析 1、信任边界 2、资产 3、威胁代理 4、威胁类型 5、威胁评估 5.1 端点在直接请求/响应调用中模拟发送方FF-A ID 5.2 端点在直接请求/响应调用中模拟…...
AI绘画Stable Diffusion原理之扩散模型DDPM
前言 传送门: stable diffusion:Git|论文 stable-diffusion-webui:Git Google Colab Notebook部署stable-diffusion-webui:Git kaggle Notebook部署stable-diffusion-webui:Git AI绘画,输入一段…...
NSS [西湖论剑 2022]real_ez_node
NSS [西湖论剑 2022]real_ez_node 考点:ejs原型链污染、NodeJS 中 Unicode 字符损坏导致的 HTTP 拆分攻击。 开题。 附件start.sh。flag位置在根目录下/flag.txt app.js(这个没多大用) var createError require(http-errors); var express require(express); v…...
MySQL常用函数集锦 --- 字符串|数值|日期|流程函数总结
个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【MySQL学习专栏】🎈 本专栏旨在分享学习MySQL的一点学习心得,欢迎大家在评论区讨论💌 目录 一、字符…...
GaussDB(DWS)云原生数仓技术解析:湖仓一体,体验与大数据互联互通
文章目录 前言一、关于数据仓库需求场景分类二、数据仓库线下部署场景2.1、线下部署场景介绍及优劣势说明2.2、线下部署场景对应的客户需求 三、数据仓库公有云部署场景3.1、公有云部署场景介绍及优劣势说明3.2、公有云部署场景对应的客户需求 四、为何重视数据共享(…...
RestClient
什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端,它允许HTTP与Elasticsearch 集群通信,而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级ÿ…...
SciencePlots——绘制论文中的图片
文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了:一行…...
可靠性+灵活性:电力载波技术在楼宇自控中的核心价值
可靠性灵活性:电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中,电力载波技术(PLC)凭借其独特的优势,正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据,无需额外布…...
【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)
服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...
蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练
前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1):从基础到实战的深度解析-CSDN博客,但实际面试中,企业更关注候选人对复杂场景的应对能力(如多设备并发扫描、低功耗与高发现率的平衡)和前沿技术的…...
Module Federation 和 Native Federation 的比较
前言 Module Federation 是 Webpack 5 引入的微前端架构方案,允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...
【论文阅读28】-CNN-BiLSTM-Attention-(2024)
本文把滑坡位移序列拆开、筛优质因子,再用 CNN-BiLSTM-Attention 来动态预测每个子序列,最后重构出总位移,预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵(S…...
Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)
参考官方文档:https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java(供 Kotlin 使用) 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...
OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 在 GPU 上对图像执行 均值漂移滤波(Mean Shift Filtering),用于图像分割或平滑处理。 该函数将输入图像中的…...
html-<abbr> 缩写或首字母缩略词
定义与作用 <abbr> 标签用于表示缩写或首字母缩略词,它可以帮助用户更好地理解缩写的含义,尤其是对于那些不熟悉该缩写的用户。 title 属性的内容提供了缩写的详细说明。当用户将鼠标悬停在缩写上时,会显示一个提示框。 示例&#x…...
