
操作系统
文章平均质量分 94
理解操作系统需要学习者具备一定的C/C++、Python、Java、Go等后端语言的编码经验;具有数据结构和算法的基础。主体分为五个章节:1.操作系统概述;2.进程管理;3.内存管理;4.文件管理;5.输入输出(I/O)管理。
猫猫的小茶馆
用心做开发。专注于嵌入式技术,熟悉linux驱动开发,Linux系统搭建与移植,fpga,dsp,arm开发,pcb工艺,汇集了工作多年遇到的问题,与一些总结,有些是linux内核的源码级别的讲解,同时整个博客构建成了嵌入式的知识体系,专注于服务从事嵌入式软件开发的朋友。
展开
-
【Linux系统】 Linux内核与UNIX设计哲学的结合
Linux 内核虽然不是 UNIX 的直接衍生物,但它深受 UNIX 设计哲学的影响。Linux 的开发者,尤其是 Linus Torvalds,在设计和实现 Linux 时,借鉴了 UNIX 的核心思想,使 Linux 成为一个类 UNIX 系统。原创 2024-12-05 15:44:48 · 1305 阅读 · 0 评论 -
【Linux系统】Linux内核框架(详细版本)
Linux 是一个开源的类 UNIX 操作系统,由多个组件组成,具有模块化和层次化的体系结构。它的设计实现了内核、用户空间和硬件的高效协作,支持多用户、多任务操作,广泛应用于服务器、嵌入式设备和超级计算机中。1. 硬件层CPU:执行指令。内存:存储运行中的程序和数据。I/O 设备:如键盘、鼠标、显示器、硬盘、网络设备等。作用:Linux 操作系统通过内核中的设备驱动程序与硬件层交互,屏蔽硬件差异,为上层提供统一的接口。2. 内核层内核是 Linux 操作系统的核心部分,原创 2024-12-04 22:22:57 · 1952 阅读 · 0 评论 -
【Linux系统】Linux系统的历史
这需要从贝尔实验室的UNIX说起:1969年,AT&T公司的贝尔实验室与MIT合作开发的Unix,旨在于创建一个用于大型、并行、多用户的操作系统。至今为止,Linux系统已经发展得十分强大,Linux 的发展体现了开源社区的力量。从一个学生的个人项目到全球最重要的操作系统之一,Linux 已成为技术创新的基石。于 1991 年创建。经历了三十多年的发展,Linux 已从一个个人项目成长为广泛应用于服务器、嵌入式系统、超级计算机、移动设备(如 Android 系统)等领域的操作系统。原创 2024-12-04 19:15:40 · 1749 阅读 · 0 评论 -
【Linux系统】Unix系统的历史
Unix诞生于贝尔实验室,在1969年,AT&T公司的贝尔实验室与MIT合作开发的Unix,旨在于创建一个用于大型、并行、多用户的操作系统。是现代操作系统的奠基者,几乎所有主流操作系统(Linux、macOS、BSD 等)都可以追溯到 Unix 的发展历史。以下将从 Unix 的起源开始,详细解析 Unix 家庭树的分支及其对现代计算的影响。之后,Ken Thompson 和 Dennis Ritchie 决定开发一个简化的、功能强大的操作系统,这就是 Unix 的起点。它主要是贝尔实验室内部的研究项目。原创 2024-12-04 19:07:25 · 1041 阅读 · 0 评论 -
【Linux系统】Android系统是如何基于Linux内核构建出来的
Android 是一个基于 Linux 内核的定制化操作系统,虽然继承了 Linux 的核心功能,但针对移动设备的需求进行了大量优化和扩展。虽然 Android 基于 Linux 内核,但它并不是一个传统意义上的 Linux 操作系统,而是对 Linux 内核和用户空间层进行了大量定制,以满足移动设备的特殊需求。虽然 Android 使用 Linux 内核,但它对原生内核进行了大量修改和扩展,以适应移动设备的要求。Android 在 Linux 内核的基础上做了大量修改,以满足移动设备的需求。原创 2024-12-04 18:57:25 · 1227 阅读 · 0 评论 -
【操作系统】栈的使用空间
栈空间的大小是十分有限的。因此,在实际开发中必须合理管理栈空间,使用合适的方法有效避免栈溢出问题,同时提高程序的稳定性和效率。如果栈空间不足(例如递归深度太深或分配了太多局部变量),程序会发生。在 x64 架构中,栈通常位于进程的虚拟地址空间的高地址区域。栈从高地址向低地址增长。每次函数调用或局部变量分配时,在 Windows 上,可以通过编译器(如。(栈指针寄存器)会向低地址移动。原创 2024-11-26 11:46:00 · 988 阅读 · 0 评论 -
【操作系统】操作系统的分页机制和野指针之间的关系详解
分页是一种存储机制,它允许操作系统以页面的形式将进程从辅助存储器检索到主存储器中。在分页方法中,主内存被划分为小的固定大小的物理内存块,称为帧。帧的大小应与页的大小保持相同,以最大限度地利用主存并避免外部碎片。分页用于更快地访问数据,它是一个逻辑概念。原创 2024-11-23 16:01:53 · 815 阅读 · 0 评论 -
【操作系统】堆栈寄存器sp详解以及栈帧
在x86架构中,函数调用的栈帧(Stack Frame)是函数调用过程中用于保存函数局部变量、返回地址、参数等的一块内存空间。堆栈寄存器是现代处理器的重要组成部分,在嵌入式开发之中,要对此区域的使用十分敏感,因为堆栈寄存器是处理器的重要组成部分,其高效管理对程序运行的稳定性和安全性起着关键作用。, SP)是处理器中一个专门用于管理栈(Stack)的寄存器,它保存了当前栈的顶部地址。接下来,为了进一步的理解堆栈中发生的事,我们使用x86汇编语言说明函数调用栈帧的创建和销毁的过程详情。原创 2024-11-24 03:58:25 · 2874 阅读 · 0 评论 -
【操作系统】堆空间中的 malloc、calloc、realloc、free
这是因为栈中的空间占用和释放不是由人来决定的,它是由系统来决定的,并不是人为控制的,并非想控制和释放就能做到的。而在堆空间中,我们完全由自己独立自主去占用、分配、管理内存以及释放。中分配和管理内存的标准库函数。它的主要作用是将错误码转换为可读的错误描述字符串,便于调试和错误处理。calloc用于在堆空间中分配指定数量的内存块,并将所有内存块初始化为0。既然已经有栈(stack)的空间了,为什么还要使用堆(heap)的空间呢?以下是对这四个函数的详细介绍,包括用法、工作原理、优缺点以及代码示例。原创 2024-11-26 02:38:17 · 773 阅读 · 0 评论