登录社区云,与社区用户共同成长
邀请您加入社区
2、直接在/etc/passwd、/etc/shadow中把root账户所在的行删除。添加账户-修改密码,修改passwd文件abc账户的第三字段为0。进不了系统了,所有我感觉Linux系统的root应该是不能删除的。一、登录root账户,用userdel命令删除root账户。二、新建账户提权到管理员,然后使用新管理员删除root账户。结果:是报错了,显示:用户根目录当前被进程1使用。1、使用us
在AI与云计算驱动下,传统服务器面临“内存墙”与“内存滞留”难题。CXL作为突破性高速互连协议,通过缓存一致性实现CPU与外部内存、加速器的高效共享。在LPC2026会议上,Linux内核开发者聚焦三大核心挑战:硬件压缩设备的容量安全与“追熊”机制、PCIe UAOP2P访问的一致性防护、以及CXL性能监控的可观测性短板。这些问题凸显了软硬件协同演进的紧迫性。随着内核对CXL动态分配控制、安全隔离
TCP连接断开受进程终止、主机重启与网络中断影响。进程正常或强制退出(如kill-9),操作系统内核仍会清理文件描述符,关闭socket并发送FIN,实现正常关闭。正常重启类似,系统可完成资源释放。但突然断电或网线断开时,内核无法发送FIN,对端无法立即感知,需依赖后续通信超时、TCP保活机制或应用层心跳探测才能发现连接失效。核心区别在于:操作系统是否存活——只要内核仍在,资源可被清理;一旦系统崩
1.利用vmware安装Linux操作系统的详细步骤(图+文字注解)1)打开 VMware,点击【创建新的虚拟机】,选择典型 (推荐) 配置。2)选择安装程序光盘镜像文件 (iso),浏览选中下载好的 Linux 的 ISO 镜像。3)设置虚拟机名称,选择虚拟机文件存放的磁盘路径(建议不要放 C 盘)。4)指定磁盘大小,设置最大磁盘容量(一般 20G 以上即可),选择将虚拟磁盘存储为单个文件。5)
操作系统:CentOS 7.9 64 位硬件配置:8 核 16G 云主机,公网独立弹性 IP承载业务:Nginx 网站服务、Java 后端业务、MySQL5.7 数据库、Redis 3.2 缓存,对外提供企业官网、客户内部管理系统网络策略:云安全组仅放行 80、443、22、3306、6379 端口,内网网段可互相访问安全基线现状:无 EDR/HIDS 主机安全软件,系统审计日志只默认保留短期记录
vi2.txt创建2.txt文件并编辑文件内容 (如果想退出编辑并保存就先点击Esc,然后输入:wq)(:wq!:强制退出并保存,"!grep -n rdkj 1.txt查看1.txt文件内容中rdkj所在的行包括行号。grep -vn rdkj 1.txt查看1.txt文件中不包含rdkj的行。grep -n d$ 1.txt查看1.txt文件内容中以d结尾的行。grep -n k 1.txt查
Linux操作系统:一般指Linux内核 + GNU工具软件组合而成的完整操作系统。后面输入 cp lee1 haha 表示把lee1中的内容 复制在haha中放在桌面。例如进入管理员模式在里面输入su 然后输入密码。1 新建目录 在其输入mkdir testdir。后面输入y 就能把目录删除完毕。输入输入whatis --help man如图。什么是内核 shell gnu linx。在控制面版
TCP 一旦建立连接,client/server 他们的身份是对等的,可以互发消息,都有发送缓冲区和接收缓冲区,发送数据时 write/send 并没有将数据发送到网络中,只是拷贝到内核发送缓冲区,本质是拷贝函数,发送缓冲区中的数据,发多少,出错了怎么办是由内核决定的,具体比如TCP协议决定。TCP然后通过网络将数据拷贝到对方的接收缓冲区,所以实际上是双方操作系统之间进行通信。而 read/rec
吸烟者问题是一个经典的并发编程问题,通过合理使用信号量,能够有效地解决多个进程之间的同步和互斥问题。这个问题的解决方案展示了如何利用信号量实现进程间的通信与同步,确保了资源的有效分配和进程间的协调。
多消费者问题是生产者-消费者问题的扩展,涉及多个消费者并发地从共享缓冲区中取出数据进行消费。通过使用信号量机制,可以实现生产者和多个消费者之间的同步和互斥,确保数据的一致性和系统的高效运行。
在前面的章节中,我们的进程内存模型极其原始:代码段、数据段固定加载,堆通过brk/sbrk线性增长,栈从顶部向下延伸。这种模型能运行简单程序,但面对真实软件生态时立刻崩塌:动态链接器无法将.so映射到指定地址;malloc的大块分配被迫复制而非直接映射物理页;共享内存IPC需要内核拷贝;JIT编译器无法生成可执行代码;甚至vim打开大文件都要先read()到堆里再处理。mmap的本质是“将虚拟地址
在前面的章节中,我们的信号系统仅支持最原始的signal()注册和简单的投递。这在玩具系统中尚可工作,但在真实场景中却危机四伏:handler执行期间若同一信号再次到达,是重新触发还是丢弃?如何安全地在临界区屏蔽SIGCHLD以防止waitpid竞态?如何区分SIGSEGV是来自非法内存访问还是mprotect权限不足?signal()的语义在不同Unix变种间互不兼容,且无法传递任何上下文信息。
本文系统讲解操作系统安全的核心机制,涵盖身份认证、访问控制与审计三大支柱。通过“小区门禁”类比,阐明操作系统如何通过密码、多因素认证、权限管理(如DAC、MAC、RBAC)及日志记录,实现对用户身份的确认、行为的限制与操作的追踪。同时分析恶意软件、未授权访问等主要威胁,并强调最小权限原则与CIA三元组(机密性、完整性、可用性)在保障系统安全中的关键作用。
我们日常使用的 Linux 操作系统完整名称为 GNU/Linux,由Linux 内核 + GNU 工具集 + 系统库 + 各类应用软件共同组成,单独内核无法直接使用。2.Shell 是命令解释器,属于用户与内核之间的接口程序,运行在用户态。3.执行原理:Shell 读取你输入的字符串,解析命令,查找对应的程序,把请求交给内核运行程序;1.在 shell 命令提示符后,输入命令,按回车键,shel
进程是资源调度的基本单位一个程序的运行叫做进程而进程里怎么识别认识有独特的标识吗站着操作系统角度理解进程进程是怎么创建的通过结构体来表述PCB是线程的唯一标识PCB是线程的控制块 当有很多进程时 为了方便 通过数据结构组织起来 方便管理PCBpid进程的标识。
可手动指定硬件参数、磁盘控制器等,更适合 Linux 学习环境。点击【下一步 (N)】
之前谈论的都是已打开文件在操作系统的中的管理,但是还有更多的文件没有被打开,被存在磁盘中,如何管理这些磁盘中的文件,就是本篇的学习目标。
虚拟内存是OS利用物理内存 + 磁盘交换分区(swap)实现的内存抽象机制。给每个进程提供独立、连续的虚拟地址空间,程序不用关心物理内存碎片化。内存不够的时候,把暂时不用的内存页写到磁盘swap;需要的时候再换回物理内存(缺页中断)。好处:进程隔离、内存复用、让程序可用内存大于实际物理内存。
如果直接选择几十核心的服务器,不一定能够明显提升网站速度,反而可能增加不必要的成本。真正影响业务体验的,还有磁盘、网络、操作系统、程序架构以及服务器本身的资源分配方式。有些业务更依赖CPU,有些更依赖内存,还有一些业务对磁盘读写能力要求更高。很多人在选择服务器的时候,第一眼通常会看CPU有多少核心、内存有多大,然后认为配置越高,服务器性能就一定越好。这也是为什么很多专业的服务器方案,会根据实际业务
环境变量是操作系统为进程提供的键值对,用于传递系统信息(如PATH、HOME)。C语言中可通过getenv读取,或通过main函数的envp参数、全局变量environ遍历。实用场景包括获取用户目录、控制程序行为(如调试模式)、搜索可执行文件。setenv和unsetenv可修改当前进程环境变量。环境变量是程序灵活配置的关键,无需改代码即可调整行为。
荣合科算技术服务专注服务器数据恢复,覆盖硬盘损坏、RAID阵列、虚拟机、超融合及各类存储设备数据救援,支持Linux、Windows、麒麟等操作系统。提供从评估、诊断到恢复、验证的标准化流程,依托专业团队与设备,保障数据安全与高效恢复。7×24小时应急响应,助力企业快速止损。数据丢失请立即停止操作,及时联系。
本课从菜鸟驿站类比切入,深入解析Linux重定向机制:揭示>仅改变fd=1指向,而stderr(fd=2)独立存在;通过1> log.txt 2>&1实现安全合并。剖析VFS如何以struct file和函数指针实现“一切皆文件”,屏蔽硬件差异,用C语言模拟多态。最后详解用户级与内核级缓冲区作用——printf数据先存缓冲,由刷新策略决定落盘时机,解释为何输出延迟或丢失。三者串联,打通从C库到内核
通过记录型信号量(mutex)来确保临界区的互斥访问。记录型信号量只支持值0和1,可以确保同一时刻只有一个进程能够进入临界区。通过整形信号量(empty,full)来控制进程的执行顺序,确保多个进程按照特定顺序进行操作,避免资源竞争。信号量是一种非常强大的同步原语,广泛应用于操作系统和并发编程中。合理使用信号量可以有效地避免竞态条件、死锁等问题,确保多个进程在共享资源上的协调与合作。
云安全组通常作用于实例网卡外层,由云平台维护,规则简单、性能高,但可能被同 VPC 内其他实例、容器网络、IPv6、辅助网卡绕过。主机防火墙运行在操作系统内核,能看到进程、用户、接口、连接状态,但配置复杂,容易被 Docker、Kubernetes、VPN 软件插入规则而绕过。空密码账户、锁定密码账户、长期未登录账户、离职人员账户,都是常见隐患。本文从 SSH、用户权限、防火墙、日志四个维度出发,
内核溢出是一种严重的网络安全问题,通常指在操作系统内核中由于缓冲区边界检查不足,导致攻击者可以向内存区域写入超出预期的数据,从而引发系统崩溃、权限提升或执行任意代码等风险。此代码通过检查源字符串长度是否超过目标缓冲区的大小,避免了缓冲区溢出的风险。2. 常见的内核溢出漏洞。5. 示例代码(C语言)1. 内核溢出的原理。3. 内核溢出的危害。
信号量是一种重要的同步原语,用于解决多进程或多线程的资源共享和同步问题。整型信号量适用于控制多个同类资源的访问,而记录型信号量则用于实现互斥和临界区的访问控制。正确使用信号量可以有效避免竞争条件、死锁等并发问题,但也需要注意避免忙等待和设计不当带来的死锁风险。
我们在访问网络地址时,都需要通过解析服务来寻找目标,如果电脑默认使用的是本地运营商自动分配的解析地址,可能会因为节点老化或者响应超时,导致连接握手过程极其缓慢,直接拉低传输初期的建立速度。许多人在下载时习惯默认存放在系统盘,当系统盘的剩余可用空间非常低的时候,操作系统为了维持基本运行,会自动限制各类程序的缓存申请,甚至会频繁将临时数据换入换出,严重阻碍文件的连续写入。可以在路由器管理界面中查看当前
在前面的章节中,我们的程序都是静态链接的:每个可执行文件都包含了完整的libc副本。这意味着100个使用printf的程序就要在磁盘和内存中存储100份相同的printf实现。这不仅浪费空间,更致命的是无法独立更新:修复一个libc安全漏洞需要重新编译所有程序。加载时共享(多个进程映射同一物理页的只读代码段)和运行时绑定(通过PLT/GOT表延迟解析符号地址)。本章我们将实现一个最小但完整的动态链
服务器出问题,日志几乎是唯一的现场证据。但很多人的第一反应是翻半天,翻不到就放弃——不是日志没记,而是找错了地方。和,服务输出默认进前者,后者剩下的是 rsyslog 写出来的那部分。这篇讲清楚 linux服务器操作系统日志怎么看这个问题:两套体系各自的职责,journalctl 的常用过滤,/var/log 下每个文件该在什么时候打开,以及日志把磁盘撑满时该怎么处理。
接手一台新服务器,第一步往往不是装软件,而是搞清楚"这台机器上有哪些人能登录、各自能干什么"。账户和权限理不清,后面所有的安全配置、文件归属、服务启动都建立在沙子上面——最常见的翻车是应用跑在 root 下出事了影响整个系统,或者某天发现一个从没见过的账号正在跑定时任务。这篇把 linux服务器操作系统用户账户类型有哪些这个问题拆开讲:账户分哪几类、系统怎么识别它们、权限怎么给才不出事、账号从创建
本文用大白话讲清Linux/Ubuntu核心概念:操作系统像整车,内核是发动机,Ubuntu是带完整工具的发行版。系统分层清晰,出问题时按“应用→工具→内核→硬件”排查。四大资源(CPU、内存、磁盘、网络)决定性能,别只看容量或带宽。发行版分两条线(Debian/Ubuntu用DEB+APT,RHEL系用RPM+DNF),迁移需核对架构与包名。最终目标:让主机上的应用跑得更稳、更可控。
2026年9月,可达智灵织灵CodaLoom V2.0通过统信软件服务器操作系统V20、V25互认证,覆盖海光、兆芯、Intel、AMD、津逮等平台,实现功能完整、兼容稳定。该认证为私有化部署AI研发平台提供可核查依据,助力金融、芯片、制造等行业落地。目前,织灵已获30+专利软著及三体系认证,持续推进与龙芯、兆芯等国产栈适配,强化信创环境下AI研发的确定性与可靠性。
内核是操作系统的核心程序,直接运行在硬件之上,负责:管理硬件资源:CPU 调度、内存分配、磁盘与设备管理管理进程:程序的启动、运行、切换和终止提供系统调用接口:为应用程序访问硬件提供统一入口。
不同操作系统适合的应用环境并不一样。例如部分网站、开发环境和服务器程序更常使用 Linux,而一些依赖 Windows 环境的软件,则更适合 Windows Server。部署服务器之前,最好先确定需要运行什么程序,再根据软件要求选择合适的操作系统,这样后续维护也会更加方便。服务器安装系统时,经常会看到 Linux、Windows Server 等不同选择。操作系统本身也会影响软件兼容性、管理方式
昨天我们说,父子进程不能靠修改普通变量传话,因为它们各有自己的地址空间。“各有一份”究竟是什么意思?难道fork时,操作系统立刻把父进程用过的内存全部复制了一遍?先做个实验。
https://comtoslinux.sourceforge.io (或 https://sourceforge.net/projects/comtoslinux/)用于发布 Comtos Linux (朱雀) 操作系统发行版的ISO镜像文件和源代码包。用于发布 Comtos Linux (朱雀) 操作系统开发的相关源代码和文档。
在前面的章节中,我们的进程模型是纯粹线性的:要么运行,要么阻塞等待I/O,要么被父进程wait回收。但真实世界的程序需要处理大量异步事件:用户按下Ctrl+C终止程序、定时器到期触发回调、子进程退出通知父进程、非法内存访问触发SIGSEGV。如果没有信号机制,你的Shell无法被中断,后台任务无法感知子进程死亡,除零错误只会导致静默崩溃而非core dump。信号是Unix最古老也最精妙的IPC机
如果仅通过VMware部署Linux操作系统,无需勾选WHP;仅在需要WSL2、Docker Desktop或Hyper-V等功能时再启用。点击Free Software Downloads available。
本文介绍了Linux包管理器的基本概念与实践,涵盖软件安装方式、包管理器作用(如apt、yum、dnf)、操作系统生态与开源资金来源、镜像源优化网络访问,以及apt常用命令(搜索、安装、卸载、更新)和权限问题。重点讲解了软件源配置、换源流程及缓存管理,帮助用户高效、稳定地管理软件。
图 10:vim 编辑器打开 mypcb.h 头文件,已完成进程控制块相关定义:包含最大进程数、内核栈大小的宏定义,Thread 上下文结构体,PCB 进程控制块结构体,以及调度函数声明,当前处于编辑插入模式。图 16:内核根目录下完成第 9 次编译,bzImage 镜像生成成功,终端输入 QEMU 虚拟机启动命令,准备加载最新编译的内核,验证代码修改后的实际运行效果。里的入口,整个系统的"性格"
在前面的章节中,我们拥有了ELF加载器和Mini libc,用户程序可以独立运行。但此时的Shell仍是一个简陋的“单命令执行器”:不能将两个程序的输出串联,无法将结果保存到文件,更谈不上组合多个工具完成复杂任务。这距离Unix哲学中“小工具+组合=强大能力”的核心思想还差最关键的一环。管道(Pipe)与I/O重定向。这两个机制看似简单,实则是操作系统进程间通信(IPC)与文件描述符抽象的集大成者
在上一章中,我们让OS能够加载并运行GCC编译的ELF文件。但此时的用户程序仍处于“原始状态”:每次系统调用都要手写int $0x80内联汇编,没有内存分配器,没有字符串处理函数,更没有printf。这就像给了你一辆能发动的汽车,却没有方向盘、油门和仪表盘。本章我们将构建一个,它是用户程序与内核之间的“标准翻译层”。从此,你的用户程序将使用熟悉的open()malloc()printf()等C标准
配置文件错误后果根因/etc/fstabxfs 写成 ext4 盘 + RAID 后 discard 失效系统进紧急模式没用blkid核对;没确认 RAID 卡是否透传 TRIMnf_conntrack 模块未加载conntrack 参数静默失败没先modprobe端口范围含服务端口Redis 端口耗尽没避开 1-10000A-Tune(openEuler 独有)profile 定期回写默认值参数
本文结合代码 Demo 与 Linux0.11 内核源码,系统讲解 Linux 进程信号机制。信号是软件层面模拟硬件中断的异步通信方式,例如 Ctrl+C 会向前台进程发送 SIGINT 信号。文章介绍信号的三种处理动作:默认处理、忽略、自定义捕捉,梳理信号四类产生途径。同时解析内核 PCB 中 block、pending 位图原理,区分阻塞与忽略,详解信号捕捉时用户态、内核态切换流程,帮助理解操
在前面的章节中,我们的sys_exec只能加载简单的平坦二进制(flat binary):把整个文件读入内存,跳转到入口地址。这种方式要求代码、数据、BSS必须按固定顺序紧密排列,没有段保护,不支持符号调试,更无法兼容GCC/Clang的标准输出。现代操作系统与用户程序的契约是。ELF不是一坨字节流,而是一个自描述的容器:它告诉内核哪些区域是可执行代码、哪些是只读数据、哪些需要零初始化、入口点在哪