登录社区云,与社区用户共同成长
邀请您加入社区
本文探讨了进程虚拟地址空间的基本概念与实现原理。通过父子进程共享变量地址但值不同的实验现象,验证了程序中的地址并非物理地址而是虚拟地址。文章详细介绍了虚拟地址空间与页表的关系,解释了页表如何通过映射实现物理内存管理,以及通过标志位控制访问权限和内存状态。同时阐述了Linux内核如何通过mm_struct和vm_area_struct结构体管理虚拟地址空间的不同区域。最后分析了虚拟地址空间的重要意义
本文介绍了VMware Workstation Pro的安装与Ubuntu 24.04虚拟机配置全过程。涵盖Win11系统下安装17.2以上版本的注意事项,包括关闭Hyper-V、开启BIOS虚拟化、以管理员身份安装等。详细演示了创建虚拟机、安装Ubuntu、配置共享文件夹(通过vmhgfs挂载)及开机自动挂载方法。同时指导用户更换阿里云软件源提升更新效率,并解决剪贴板共享失效、网络无法连接等常见
你简历中明确写了:EtherCAT 任务本地/SSH 执行。实际上就是:程序占着这个终端。你可能无法直接继续使用当前终端。但真正的工程部署通常不会简单依靠。systemd这就会进入真正的工程部署。这才是你真正应该建立的 Linux 思维。
不论 x86 还是 arm,不论在线还是离线,不论国际发行版还是国产操作系统,用 kt 加对应的离线安装包,装 k8s 和 KubeSphere 都是同一套动作。最后提醒一句:演示环境只开了基础查看权限,正式环境请务必改掉默认密码,并把 Harbor 的账号密码换成自己的。项目文档:tx1st.cn/kt。
我叫 NASM,是二进制江湖里横跨各派、冷眼看戏三十年的硬核老兵。1996年我为打破微软MASM等门阀垄断而生,凭纯粹的“中括号语法”和独创的16/32位无缝切换机制,成为早期Linux与FFmpeg等开源神作的拓荒孵化器。虽历经宏崩溃与架构断层的青年危机,但我凭 2.00版本彻底刮骨疗毒,全面重构宏引擎并制霸64位架构与现代扩展指令集。如今面对AI时代,我再度进化支持 AVX-512与AMX矩阵
本文从冯诺依曼体系结构出发,阐明数据必须通过内存流转的原理,引出操作系统作为“管理者”的核心角色。通过“描述(结构体)+组织(链表)”的管理范式,解析进程的本质:进程 = task_struct(PCB) + 代码与数据。结合系统调用与库函数分层,揭示用户程序如何通过接口访问内核资源。重点剖析 fork 的双重返回机制,实现代码共享、数据私有,最终展现进程创建与管理的底层逻辑。
Shell 是命令解释器,同时也是一种脚本编程环境。它位于用户与操作系统提供的命令、程序和系统接口之间。读取用户输入或脚本内容;按照语法把输入解析成命令、参数和操作符;展开变量、通配符和命令替换;建立重定向与管道;执行内建命令;查找并启动外部程序;等待同步命令结束并取得退出状态;提供变量、条件、循环、函数等编程能力。GNU Bash 文档将 Shell 描述为命令解释器和编程语言,它既能交互执行命
在 Linux 的世界里,主要分为两大主流派系,它们的核心区别在于软件包格式和包管理工具的不同:为了进行安全的学习与实验,我们需要借助虚拟化平台。本次实验选用 VMware 作为虚拟化平台来搭建 Linux 虚拟机。必须明确的是,业务软件无法直接调用底层硬件。所有的硬件调用都需要通过操作系统访问内核来完成。常见的四大核心硬件包括:需要厘清一个核心概念:单单的 Linux 内核并不等同于一个完整的操
这节课带大家学习了有关文件缓冲区的知识,还有理解了一切皆文件到底是怎么实现的,希望大家在看完这篇文章后能从中学到新知识。以后我会继续创作Linux方向的博客,如果觉得有帮助的话希望各位大佬能三联关注支持一下,看到后我会进行回关和回访。
本文系统梳理了Linux操作系统核心知识,涵盖目录结构、文件权限、基本命令、Vim编辑、进程管理、编译流程、GDB调试、静态/共享库、fork与进程通信、IO系统调用、信号机制、IPC、线程同步及网络编程基础等。内容涵盖从用户操作到内核机制的完整技术链条,适用于Linux系统学习与C语言开发实践。
库是写好的现有的,成熟的,的代码。现实中每个程序都要依赖很多基础的底层库,不可能 每个⼈的代码都从零开始,因此库的存在意义⾮同寻常。本质上来说库是⼀种可执⾏代码的⼆进制形式,可以被操作系统载⼊内存执⾏。
本文梳理了Linux进程控制四大核心:进程创建、进程退出、进程等待与程序替换。进程退出标记生命周期结束,wait/waitpid用于回收子进程,避免僵尸进程;exec系列系统调用实现程序替换,在保留进程资源的前提下加载新程序。理解这套机制,能看清进程从创建到消亡的完整流程,也是操作系统并发编程的重要基础。
接着完成多文件C程序的编写,分别编写主程序文件main.c与子程序文件sub1.c,在sub1.c中实现算术运算函数x2x,接收两个整型参数进行运算后返回浮点结果,主程序调用该函数并打印运算结果。实验中编写Hello World程序,使用gcc编译器完成编译与运行,熟悉C语言基础编译流程。通过本次实验,掌握了gcc多文件编译方法,理解Makefile的部分编写规则,熟悉Ubuntu下C语言开发完整
本文系统阐述进程间通信(IPC)的必要性与实现机制。进程间通信旨在实现数据传输、资源共享、事件通知与进程控制。核心在于让不同进程共享同一份由操作系统提供的资源。主要通信方式包括:匿名管道(父子进程间单向字节流通信,具同步机制)、命名管道(跨无关进程通信,基于文件路径)、System V共享内存(最快通信方式,需手动管理同步)、消息队列(双向有类型数据块传输)及信号量(实现互斥与同步,通过PV操作保
本文手把手教程带你10分钟内用虚拟机安装Linux系统,涵盖VMware/VirtualBox创建虚拟机、加载镜像、分区设置、用户配置、系统安装与重启登录全流程。附中文切换、minicom串口工具安装及常见问题解决方案,零基础也能轻松上手,适合初学者快速入门Linux。
Linux系统具有开源、稳定、安全的特点,也因此成为了开发者的重要工作平台。其中,Ubuntu作为一个对用户友好的Linux发行版,特别适合作为入门学习和开发使用的操作系统。本文主要写关于嵌入式系统的程序设计基础。主要介绍在Ubuntu系统下进行简单C语言代码的编译流程和方法。
这样就可以配置GPT分区表,启动速度也更快,而如果要安装win11,就必须勾选此选项,因为win11强制要求UEFI引导和TPM芯片。除非你要安装非常老的系统,比如win7,XP,或不支持UEFI的DOS系统,否则都建议勾选使用EFI。无人值守安装:如果你不想手动配置操作系统以及配置磁盘分区,只是想简单快速的体验目标系统,或新手菜鸟不懂配置磁盘分区,就可以选择这个,它会傻瓜式一键安装。虚拟机文件夹
在 Android(以及绝大多数现代操作系统)的图形系统中,是一个不可或缺的核心概念。简单来说,。无论是桌面、锁屏、还是开机动画,任何想要在屏幕上显示画面的进程,都必须先在自己的 Surface 上画画。以下为您深度剖析:为什么系统需要 Surface?它具体起到了什么关键作用?
PostgreSQL 是一款功能强大的开源关系型数据库。随着容器化技术的普及,使用 Docker 部署 PostgreSQL 不仅环境干净、易于维护,而且可以快速实现版本切换。本文将手把手教你如何在腾讯云服务器(操作系统为 Ubuntu Server 24.04 LTS)上,利用 Docker 快速部署 PostgreSQL 数据库,并通过本地电脑上的DBeaver数据库管理工具进行远程访问。在腾
ros包含大量搭建机器人所需要的软件和工具,是目前应用最广发的机器人操作系统,未来搭载ros的机器人将不断出现在生产和生活中。
在之前的文章中讲解到Linux操作系统[安装Node-RED]的设置教程,而Linux操作系统还有许多应用上会面临的问题,本篇就接着这个主题来继续探讨其他应用问题。NPU驱动主要用于英特尔® 酷睿™ Ultra 处理器(代号 Meteor Lake 及后续架构),其NPU模块在系统中被称为英特尔® AI Boost,旨在加速本地人工智能工作负载。
以下配置不为通用模板,需要根据服务器架构(此为x86_64),显卡,操作系统,和项目需求调整。
不同磁盘格式(文件系统 NTFS、EXT4、exFAT、APFS 等)各有优缺点。本文讲解文件系统基础原理,梳理 10 种主流文件系统特性,演示 Windows/macOS/Linux 磁盘格式化实操,同时给出硬盘、U 盘、SD 卡的选型建议,帮你避开格式化丢数据的坑。
26年操作系统设计赛已经结束,连续参加了两届比赛的我,在这其中收获良多,虽然没有拿到自己满意的比赛结果,但是我并不后悔自己付出的这两年精力。感谢老师让我用文字将自己的心得记录下来,又让未来的自己收获一笔不小的“财富”。另外,与其说是操作系统设计赛赛后心得,不如说是献给调试器的那些时光我的经历、所思、所感。以此文档纪念我这段感慨万千的本科科研之旅。
使用 VMware 在 Windows 11 中安装银河麒麟桌面操作系统 V10,是一种比较安全、方便的体验方式。Windows 11VMware银河麒麟 V10 ISO三者共同组成虚拟化环境。不需要修改 Windows 11 的硬盘分区,也不需要重新启动电脑即可使用银河麒麟。因此,如果只是为了学习和测试银河麒麟 V10,推荐优先使用这种方式。
本文是对中断与异常相关的理解
在虚拟机vmware中ubuntu操作系统里下载安装openGauss
本文基于ubuntu 22.04基础操作系统,下载linux内核,并协同busybox等工具,制作最小linux操作系统,意在适配嵌入式系统的有限资源,此过程全程亲自操刀,内容详实,愿和大家一道共同探讨linux系统裁剪之道。
Ultralytics 是一个统一的深度学习框架,支持 YOLOv5、YOLOv8、YOLO11 等多个版本的模型权重。本文将基于和双 NVIDIA RTX 3090显卡,记录从系统准备到成功运行 YOLO11 推理的全过程。每一步都配有验证命令,确保你能一次通过。环境概览操作系统:Ubuntu 22.04.5 LTS显卡:NVIDIA GeForce RTX 3090 × 2(24GB 显存/卡
本文深入浅出地讲解了操作系统虚拟地址空间的核心机制。首先介绍了Linux内核中通过PCB结构体和vm_area_struct链表管理虚拟地址空间的方式,将其划分为用户空间和内核空间。然后详细剖析了虚拟地址到物理地址的转换过程,重点说明页表机制如何通过CR3寄存器和MMU单元实现地址转换与权限检查。文章还总结了虚拟地址空间的三大优势:保护物理内存安全、将物理内存碎片有序化、实现进程间的隔离保护。最后
操作系统是个很的东西,它不相信任何人或用户,即不允许别人肆意妄为进入操作系统内部,又要为用户提供指令操作,开发操作,管理操作等服务。这时该怎么办呢?操作系统就会为用户,以实现系统调用。由于系统调用,就会有参数和返回值,用户提供参数给操作系统,操作系统提供返回值给用户,那么用户和操作系统间,就是但对于小白来说,直接去调用这些系统的接口,是有难度的,这时,就有一个类似银行大堂经理的角色——通过提供库函
Linux信号机制解析 摘要:Linux信号是一种进程间异步事件通知机制,本质是数字编号的事件通知,由操作系统内核管理。信号处理涉及三个关键数据结构:pending位图记录接收信号、block位图控制信号屏蔽、handler数组定义处理方式。信号产生方式多样,包括键盘输入(如Ctrl+C发送SIGINT)、系统调用(kill/raise/abort)、硬件异常(如除零错误触发SIGFPE)和软件条
Ubuntu 是目前最受欢迎的 Linux 发行版之一,以其易用性、强大的社区支持和丰富的软件生态著称。无论你是想学习 Linux 系统管理、搭建开发环境,还是仅仅想体验一个稳定高效的操作系统,Ubuntu 都是一个绝佳的起点。本指南将带你快速上手 Ubuntu 的基础操作,从系统安装到常用命令,助你迈出 Linux 世界的第一步。在安装任何软件前,最好先更新本地软件包索引,确保获取到最新的版本信
⚠️ 潜在隐患补充:在后续检查中发现,服务器的 /etc/fstab 挂载表中,/boot 和 /boot/efi 分区使用了 /dev/sda1 和 /dev/sda2 这种动态设备名(注:实际系统盘为 sdb,sda 为数据盘)。1. 内核引导镜像(initramfs)过时:系统在更新内核或调整磁盘后,未同步更新 initramfs,导致启动时的微系统未能正确包含识别物理硬盘和 LVM 所需的
Dify 不止是工具,更是 AI 应用的操作系统
本次安装以Ubuntu 22.04.5这个系统版本为例,在Ubuntu上安装Node-RED可通过Node.js的包管理工具npm来安装,但是在Ubuntu 22.04.5系统默认安装的是Node.js 12.x版本,而Node-RED则需要在Node.js 18.x版本才能够运行,所以需要依照下面的安装步骤来逐一输入命令安装。Node.js版本(需确认版本是否为Node.js 18.x,以本次安
本文介绍了Linux操作系统基础,重点讲解了Ubuntu 24.04的使用方法。主要内容包括:1)共享文件夹的两种访问方式(终端命令和图形界面);2)Linux终端的基本结构和常用快捷键(字体缩放、清屏等);3)基础命令操作:cd切换目录、ls查看文件、pwd显示路径、mkdir创建目录、touch创建文件、rm删除文件、cat查看内容等;4)命令提示符各部分的含义及文件权限说明。文章特别强调了终
本文介绍了Linux操作系统的基本概念及其与Windows的区别,并详细说明了在VMware上安装Ubuntu系统的步骤。Linux作为开源免费的类Unix系统,具有稳定、安全、跨平台等特点,适用于服务器、开发等领域。与Windows相比,Linux更注重命令行操作和权限管理。文章提供了VMware下载地址和Ubuntu版本选择建议,指导用户创建虚拟机并完成Ubuntu系统安装,包括语言选择、地区
本文介绍了一个用于离线部署Kubernetes v1.30.14集群的自动化脚本。该脚本包含以下主要功能: 自动检测操作系统类型(支持RPM和DEB系) 解压离线安装包并安装系统依赖 配置系统基础环境(关闭swap/SELinux/防火墙等) 安装核心组件(kubelet/kubeadm/kubectl/containerd) 配置containerd运行时 导入容器镜像 初始化K8s集群并重签证
说明本篇中Gitlab的服务器环境:基于WSL的Ubuntu Linux操作系统本篇用"<>"括起来的内容,表示这部分内容与个人电脑设置相关,需要按实际情况替换成自己的内容。
不拖延、不观望,用最快的节奏帮客户扫清应用软件信创迁移障碍,这是科信融一始终坚持的产品节奏。
Root 用户是 Linux 系统中的超级管理员(UID=0),拥有对系统的完全控制权。但不同 Linux 发行版对 root 账户的"态度"差异很大——有的锁定 root、强制你用 sudo,有的让你自己设密码,有的甚至默认就能直接 root 登录。Root 本身永远存在,但能否直接登录、密码是否设置、SSH 是否放行、管理员组叫什么名——每个发行版各有各的规矩。运维人员在不同发行版之间切换,常
Bocker是一款创新的嵌入式Linux系统容器工具,兼具轻量化和完整操作系统体验。它将Incus守护进程与LXC运行时嵌入单文件,实现零外部依赖和免sudo操作,解决了Docker在运行完整系统时的繁琐配置问题。核心特性包括:声明式Incusfile构建规范(支持多阶段构建)、自动化网络映射与本地域名绑定、CLI交互菜单和Flutter图形界面。通过bocker template install
1、单击“创建新的虚拟机”2、选择“自定义(高级)(C)”,单击“下一步(N) >”按钮继续。3、“硬件兼容性(H):”保持默认,然后单击“下一步(N) >”按钮继续。4、选择“稍后安装操作系统(S)。”,单击“下一步(N) >”按钮继续。5、单击选中“Linux(L)”,单击“版本(V)”下方的下拉列表。在弹出的下拉列表是选择“Ubuntu 64 位”。然后单击“下一步(N) >”按钮继续。6、
的时候我们都是在虚拟机中进行操作的,随着时间的推移,我们想要进行的操作越来越复杂,从最开始的建图到后面的导航再到多机协同。那时的我认为自己应该能够驾驭它了,所以我就开始了自己的第二次尝试,这一次的打法思路和上一次大体相同,同样是在移动硬盘中安装双系统。,但是虚拟机的性能也能够满足我的需求了,如果不出意外的话在我接下来的大学生活中我应该不会产生安装双系统的想法了。操作系统,最后结课的时候跟老师线下交
在之前的文章中讲解到Windows系统设置[远程控制]的教程,可参考。而在Linux操作系统中也可可以设置[远程控制],由于Linux操作系统需要透过终端输入命令的方式安装相关工具及进行设置,因此本文教程将详细说明在Ubuntu操作系统下设置[远程控制]的步骤。AMT通过独立管理通道实现设备维护,即使设备关机、操作系统崩溃或蓝屏,只要通电并联网即可远程操作。支持远程开机、重启、BIOS设置修改及
本文介绍了如何在个人电脑上安装VMware虚拟机软件以创建实验环境。主要内容包括:1)从官网或网盘获取VMware Workstation 16安装包;2)详细安装步骤:接受协议、选择安装目录、取消用户体验选项等;3)提供许可证密钥(ZF3R0-FHED2-M80TY-8QYGC-NPKYF)进行激活。安装完成后即可使用该虚拟机软件搭建各类操作系统环境,便于学习和实验操作。
RISC-V 软件移植进阶实录:从 WSL 交叉编译、qemu-user 先行验证,到 RVV 向量踩坑(SIGILL 根因)与自编译 openEuler 内核的完整流程,全部实测命令与踩坑记录
文章摘要 本文详细记录了在Windows 11 + WSL2环境下使用QEMU模拟RISC-V架构并运行openEuler系统的完整过程。主要内容包括: 环境准备:安装WSL和QEMU,验证安装有效性 下载openEuler RISC-V镜像及相关组件 解压镜像并使用QEMU启动虚拟机,详解启动命令参数 成功启动后的系统识别要点 文章特别强调了网络配置中的端口转发设置和常见问题解决方法,为初学者提
本文系统介绍了环境变量和命令行参数的概念与应用。环境变量是操作系统中用于指定运行环境的参数,具有全局特性,可被bash及其子进程继承。文章详细讲解了环境变量的存储机制(bash内部维护的环境变量表)、来源(系统配置文件如.bashrc)以及常见环境变量(PATH、HOME、USER等)的作用。同时阐述了命令行参数(argv)的实现原理,说明其用于实现程序的不同子功能。此外,文章还介绍了三种获取环境