Linux 核心知识点整理(高频考点版)

一、编译与工具链

GCC 编译流程

  • 四阶段:预处理(-E,处理头文件 / 宏)→ 编译(-S,生成汇编)→ 汇编(-c,生成目标文件)→ 链接(生成可执行程序),顺序必须严格
  • 常用选项-Wall(开启大部分警告)、-Werror(警告视为错误),-w 是关闭警告(少用)。

交叉编译

  • 必需组件:gcc(编译器)、glibc(标准库)、binutils(汇编 / 链接工具),tmake 不是必需(是 Qt 构建工具)。

二、进程与线程

进程基础

  • 核心概念:进程是程序的动态执行实例(不是静态的),是资源管理最小单位,包含 PCB(进程控制块,动态维护进程状态)。
  • 标识:PID 唯一标识进程,PPID 是父进程 ID(可为 0,如 init 进程)。
  • 状态:基本状态是运行、就绪、阻塞,僵死态是特殊状态(非基本)。
  • 创建与控制
    • fork:调用一次返回两次(父进程返回子进程 PID,子进程返回 0),用于创建子进程。
    • wait/waitpid:父进程阻塞等待子进程结束,waitpid 更灵活(可指定子进程、支持选项)。

线程(pthread 库)

  • 关键函数
    • pthread_create:创建线程,arg 传参给线程函数。
    • pthread_join:等待线程结束,获取返回值。
    • pthread_exit:主动退出当前线程
    • pthread_cancel:向目标线程发取消请求(不是退出当前线程)。
  • 同步:条件变量必须配合互斥锁使用,解决线程竞争。

三、内存管理

堆栈核心区别

特性栈(Stack)堆(Heap)
分配方式系统自动分配 / 释放(函数调用驱动)用户手动 malloc/free 管理
内存连续性连续不连续(动态分配,易产生碎片)
存储内容局部变量、返回地址、函数参数动态分配的大数据、复杂结构
增长方向向低地址增长向高地址扩展
大小限制固定(默认 8MB 左右,可调整)动态扩展(受物理内存 / 交换空间限制)

易错点

  • 栈参数入栈顺序:从右往左(如 func(a,b,c)c 先入栈)。
  • 静态变量:存储在全局 / 静态区,不入栈。
  • 堆分配:找 “足够大” 的空闲块(非严格匹配申请大小),头部用多字节(如 4/8 字节)存元数据。

四、文件与权限

文件权限(10 位格式)

  • 结构:[文件类型][所有者权限][组权限][其他用户权限],例:-rwxr-xr--
  • 第三段(5-7 位):文件所有者所在组的权限

文件操作

  • open 标志:O_RDWR(读写)、O_RDONLY(只读)、O_WRONLY(只写),操作完需 close 释放描述符。

五、系统服务与运行级别

服务管理

  • 启动脚本:传统存 /etc/rc.d/init.d/,运行级别脚本存 /etc/rc.d/rcN.dN 是级别)。
  • 脚本前缀:S(启动)、K(停止),无 C 开头
  • 命令:service 服务名 操作(如 service sshd restart)。

六、网络与通信

协议核心区别(TCP/UDP)

特性TCP(传输控制协议)UDP(用户数据报协议)
连接性面向连接(三次握手建连)无连接
可靠性可靠(确认、重传、排序)不可靠(无确认,丢包不重传)
适用场景文件传输、网页访问(需可靠)视频通话、广播(追求效率)
端口复用单连接(需 TIME_WAIT 释放端口)支持多应用同时用(如 DNS 服务)

Socket 关键

  • 类型:SOCK_STREAM(TCP)、SOCK_DGRAM(UDP)、SOCK_RAW(原始套接字),无 SOCK DTRAN
  • 函数原型:socket(int family, int type, int protocol)(创建套接字)。

七、其他高频考点

设备文件

  • 串口设备:Linux 下是 ttyS0(Windows 是 COM1)。

进程通信(IPC)

  • 常用方式:管道、消息队列、共享内存(填这三个必对)。

中断服务程序

  • 设计原则:短小、避免复杂操作,不能返回计算结果给主程序

一句话总结:记住编译流程、进程线程核心函数、堆栈区别、权限结构、TCP/UDP 差异,这些是 Linux 笔试 / 面试高频考点!

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/85374.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/85374.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

轻量化社交管理方案:Skout与云手机的巧妙搭配

在移动社交时代,许多用户开始尝试通过多账号管理来拓展社交圈层。近期测试了Skout社交平台与亚矩阵云手机的搭配使用,发现这个组合为轻量级社交账号管理提供了一个值得关注的解决方案。 基础功能介绍 这套组合的核心优势在于: 通过云手机实…

ETL连接器好用吗?如何实现ETL连接?

目录 一、ETL连接器的功能和优势 1. 数据抽取能力 2. 数据转换功能 3. 数据加载功能 4. 优势总结 二、实现ETL连接的步骤 1. 需求分析 2. 选择合适的ETL连接器 3. 配置数据源和目标系统 4. 设计ETL流程 5. 开发和测试ETL任务 6. 部署和监控ETL任务 三、ETL连接器在…

uniapp实现聊天中的接发消息自动滚动、消息定位和回到底部

前言 前言无需多言&#xff0c;想必大家对聊天软件的功能已经很熟悉&#xff0c; 这里不做过多赘述&#xff0c;笔者通过uniapp实现聊天中的接发消息自动滚动、消息定位和回到底部。 代码实现 <template><view class"chat-container"><!-- 消息列表…

MyBatisMyBatis plus

整合 MyBatis 到 Spring 或 Spring Boot 项目中&#xff0c;可以极大地简化开发流程&#xff0c;尤其是当使用 Spring Boot 时&#xff0c;它提供了自动配置功能&#xff0c;使得集成更加简便。 在 Spring Boot 中整合 MyBatis 1. 添加依赖 首先&#xff0c;在 pom.xml 文件中…

Stable Diffusion 实战-手机壁纸制作 第二篇:优化那些“崩脸”和“马赛克”问题,让图像更加完美!

欢迎回来!在《StableDiffusion实战-手机壁纸制作》系列的第一篇中,我们成功完成了基础操作,制作出了令人炫目的手机壁纸。 今天,我们将进入一个更高阶的领域——优化处理。因为谁不想让生成的艺术品更完美呢?尤其是避免“崩脸”和“马赛克”这种让人抓狂的问题! 创作的路…

408第一季 - 数据结构 - B树与B+树

B树 性质 可以看见一个节点可以有多个数字了 然后也满足左小右大的特征 然后所有的叶子节点都在同一层&#xff0c;然后2个数字的节点就可以有3个分支 然后呢&#xff0c;每个节点里面到底有几个数字是有规定的公式的 就这个公式&#xff0c;m是5阶的&#xff0c;算出来是2和…

SSRF5 Gopher 协议对内网 Web 服务进行 sql 注入 GET 类型和POST类型

实验环境&#xff1b; Centos7.6上同时安装sqli-lib和pikachu 一.Gopher 协议对内网 Web 服务进行 sql 注入 GET 类型 我们先访问sqli-lib第1关 然后我们构造URL&#xff1a; http://192.168.112.12/pikachu-master/vul/ssrf/ssrf_curl.php?urlhttp://192.168.112.12/sql…

Python打卡DAY31

DAY31&#xff1a;文件的规范拆分和写法 恩师浙大疏锦行 知识点&#xff1a; 规范的文件命名规范的文件夹管理机器学习项目的拆分编码格式和类型注解 一、机器学习项目流程&#xff1a; 1、数据加载&#xff1a;从文件、数据库、API 等获取原始数据。 - 命名参考&#xff1a;…

字符串大数 -减法

描述 以字符串的形式读入两个数字&#xff0c;编写一个函数计算它们的和&#xff0c;以字符串形式返回。 代码实现 大小判断&#xff1a;a - b 与 b - a 的绝对值相等将大的数放前面&#xff0c;抽离出结果的符号 import random s, t str(random.randint(1000, 9999)), s…

android google tts如何不联网内部预置多国语音包

在内置Google GMS服务的设备中&#xff0c;可以正常使用TTS&#xff0c;并且可以联网下载多国的语音包。然而&#xff0c;对于未通过GMS认证&#xff0c;只能使用基础的TTS英语播报&#xff0c;而且联网后是无法下载语音包的&#xff0c;会提示需要google service。本文基于以上…

Java 全栈开发学习:从后端基石到前端灵动的成长之路

目录 一、开篇&#xff1a;与 Java 全栈的初遇 二、后端学习&#xff1a;SpringBoot 构建稳健基石 &#xff08;一&#xff09;SpringBoot3 入门&#xff1a;简约而不简单的启程 &#xff08;二&#xff09;Spring Boot Web 应用开发&#xff1a;构建交互桥梁 &#xff08;…

AquaCrop模型源代码分析、模型优化与敏感性分析、未来气候变化影响分析

AquaCrop是由世界粮食及农业组织&#xff08;FAO&#xff09;开发的一个先进模型&#xff0c;旨在研究和优化农作物的水分生产效率。这个模型在全球范围内被广泛应用于农业水管理&#xff0c;特别是在制定农作物灌溉计划和应对水资源限制方面显示出其强大的实用性。AquaCrop 不…

开源模型应用落地-让AI更懂你的每一次交互-mem0-QDrant-Streamlit(一)

一、前言 在人工智能迅猛发展的今天,大型语言模型(LLM)已经成为各行各业的重要工具。然而,尽管这些模型在生成文本、理解语义等方面表现出色,但它们仍然面临一个关键挑战——缺乏持久的记忆能力。传统的对话系统往往只能基于当前对话轮次进行回应,无法有效保留和利用历史…

RPC - Response模块

Requestor 类是一个请求-响应管理器&#xff0c;负责发送请求并处理响应&#xff0c;支持三种交互模式&#xff1a;同步、异步和回调。它跟踪所有发出的请求&#xff0c;当响应到达时将其匹配到对应的请求并进行处理。 newDescribe 函数解析 newDescribe 函数负责创建和注册一…

超高速10G采集卡

超高速10G采集卡是一款高端14位数据采集平台&#xff0c;旨在满足最具挑战性的测量环境。 特性: 单通道和双通道操作 单通道10GSPS或双通道5GSPS 7 GByte/s持续数据传输速率开放式FPGA支持实时DSP 脉冲检测固件选项波形平均固件选项 特征 单通道和双通道工作模式双通道5G…

One-Hot、BOW、TF-IDF、N-Gram区别

1. One-Hot Encoding (独热编码) 核心思想&#xff1a; 为语料库&#xff08;所有文档的集合&#xff09;中的每个唯一单词创建一个维度。对于一个特定的单词&#xff0c;在其对应的维度上标记为1&#xff0c;在所有其他维度上标记为0。 表示&#xff1a; 一个非常长的二进制向…

产品经理如何做用户调研和访谈

用户调研和访谈是产品经理挖掘用户需求、优化产品设计的核心环节。在一个完整的产品流程里面&#xff0c;用户调研和访谈是非常重要的。 当年史玉柱推出脑白金时&#xff0c;就曾带领团队在江苏很多城市进行了大量的走访&#xff08;用户调研&#xff09;&#xff0c;和一帮老…

【python 读取抖音/小红书/微博今日头条/百度热点等平台的热点新闻】

轻松获取全网热点&#xff0c;Python助你掌握实时舆情 在信息爆炸的时代&#xff0c;抖音、小红书、微博、今日头条和百度热点等平台每天都会产生海量热门内容。无论是品牌营销、竞品分析还是舆情监控&#xff0c;掌握这些热点新闻至关重要。利用Python的强大爬虫技术&#xff…

【1.3 MySQL知识库 - 轻松理解版】

&#x1f680; MySQL知识库 - 轻松理解版 一、MySQL核心知识顺口溜 &#x1f3b5; &#x1f3a4; 经典记忆口诀 MySQL数据库&#xff0c;InnoDB引擎强 ACID事务特性&#xff0c;隔离级别四档 索引加速查询&#xff0c;B树是主梁 主从复制备份&#xff0c;读写分离扛 锁机制防…

计算机网络期末速成 网络层 判断及单选题

判断题 路由器和链路层交换机都被称为分组交换机。路由器与链路层交换机间的根本区别是:路由器在网络层存储转发IP数据报&#xff0c;链路层交换机在链路层存储转发帧。 A. 对 B. 错 答案: 对 解析: 路由器和链路层交换机确实都是分组交换机&#xff0c;但工作层次不同。路由器…