通俗易懂和你聊聊寄存器那些事(精美图文)

我把自己以往的文章汇总成为了 Github ,欢迎各位大佬 star https://github.com/crisxuan/bestJavaer 下面我们就来介绍一下关于寄存器的相关内容。我们知道,寄存器是 CPU 内部的构造,它主要用于信息的存储。除此之外,CPU 内部还有运算器,负责处理数据; ... »

操作系统:x86下内存分页机制 (1)

前置知识: 分段的概念(当然手写过肯定是坠吼的 ##为什么要分页 当我们写程序的时候,总是倾向于把一个完整的程序分成最基本的数据段,代码段,栈段。并且普通的分段机制就是在进程所属的LDT中把每一个段给标识出来。但是在实际运用中,大多数进程不会无限地运行下去。当进程结束之后它占有的内存空间也会被释放。 ... »

真香!Linux 原来是这么管理内存的

Linux 内存管理模型非常直接明了,因为 Linux 的这种机制使其具有可移植性并且能够在内存管理单元相差不大的机器下实现 Linux,下面我们就来认识一下 Linux 内存管理是如何实现的。 基本概念 每个 Linux 进程都会有地址空间,这些地址空间由三个段区域组成:text 段、data 段 ... »

主宰操作系统的经典算法

此篇文章带你梳理一下操作系统中都出现过哪些算法 进程和线程管理中的算法 进程和线程在调度时候出现过很多算法,这些算法的设计背景是当一个计算机是多道程序设计系统时,会频繁的有很多进程或者线程来同时竞争 CPU 时间片。 那么如何选择合适的进程/线程运行是一项艺术。当两个或两个以上的进程/线程处于就绪状 ... »

小白如何学习操作系统?

很多读者问我如何学习操作系统?推荐几本操作系统可以看的书?操作系统都需要学什么?有哪些视频可以看吗?下面我就针对性的对这些问题做一下我自己的阐述。 学习操作系统不是为了让你设计一个操作系统,而是为了让你更好的了解其运行原理。 如果你觉得操作系统有些难度的话,强烈推荐看一下我的这本 PDF。 程序员必 ... »

5万字、97 张图总结操作系统核心知识点

文末领取大图。 这不是一篇教你如何创建一个操作系统的文章,相反,这是一篇指导性文章,教你从几个方面来理解操作系统。首先你需要知道你为什么要看这篇文章以及为什么要学习操作系统。 搞清楚几个问题 首先你要搞明白你学习操作系统的目的是什么?操作系统的重要性如何?学习操作系统会给我带来什么?下面我会从这几个 ... »

Linux 进程必知必会

上一篇文章只是简单的描述了一下 Linux 基本概念,通过几个例子来说明 Linux 基本应用程序,然后以 Linux 基本内核构造来结尾。那么本篇文章我们就深入理解一下 Linux 内核来理解 Linux 的基本概念之进程和线程。系统调用是操作系统本身的接口,它对于创建进程和线程,内存分配,共享文 ... »

选择困难症必看!云服务器如何选择操作系统,Windows和Linux哪个更好?

在购买云服务器时,会有一个必选的配置,就是操作系统的选择,如何选择操作系统?操作系统选择错了怎么办?这是不少用户会遇到的问题,今天我们就来教大家如何选择操作系统,以及操作系统选择错了,该怎么切换。 Windows操作系统和Linux操作系统有何区别? Windows操作系统:需支付版权费用,(华为云 ... »

《UNIX环境高级编程》(APUE) 笔记第十一章 - 线程

11 - 线程 Github 地址 1. 线程概念 典型的 UNIX进程 可以看成只有一个 控制线程 :一个进程在某一时刻只能做一件事情。有了 多个控制线程 ,就可以把进程设计成在某一时刻能够做不止一件事,每个线程处理各自独立的任务。 每个线程都包含有表示执行环境所必需的信息: 进程中表示线程的 线 ... »

写给大忙人看的死锁全详解

前言 计算机系统中有很多独占性的资源,在同一时刻只能每个资源只能由一个进程使用,我们之前经常提到过打印机,这就是一个独占性的资源,同一时刻不能有两个打印机同时输出结果,否则会引起文件系统的瘫痪。所以,操作系统具有授权一个进程单独访问资源的能力。 两个进程独占性的访问某个资源,从而等待另外一个资源的执 ... »

如何下载 Ubuntu 镜像文件?

Ubuntu,是一款基于 Debian Linux 的以桌面应用为主的操作系统,内容涵盖文字处理、电子邮件、软件开发工具和 Web 服务等,可供用户免费下载、使用和分享。 ... »

操作系统面试题总结

CS-LogN思维导图:记录专业基础 面试题 开源地址:https://github.com/FISHers6/CS-LogN 本章节 操作系统面试题导图如下: 操作系统面试题 操作系统引论 面试题1:什么是操作系统 控制和管理整个计算机系统的硬件和软件资源 为用户和上层软件,提供易用接口和环境的程 ... »

操作系统 I/O 全流程详解

我们之前的文章提到了操作系统的三个抽象,它们分别是进程、地址空间和文件,除此之外,操作系统还要控制所有的 I/O 设备。操作系统必须向设备发送命令,捕捉中断并处理错误。它还应该在设备和操作系统的其余部分之间提供一个简单易用的接口。操作系统如何管理 I/O 是我们接下来的重点。 不同的人对 I/O 硬 ... »

撒花,推荐一下我怒肝的 GitHub

缘起 之前一直有很多小伙伴们找我,让我聊一聊如何学习 Java ,我都直接回复了一个思维导图,后来想一想觉得回答不是很认真,我的初衷是想让小伙伴们根据思维导图中的知识点,采取各个击破 的原则,哪里不会查哪里,后来想想这种回答方式没有多少人能够直接接受。大家更想要的是从我这里获得点什么。 确实是,让小 ... »

Linux的文件系统及文件缓存知识点整理

Linux的文件系统 文件系统的特点 文件系统要有严格的组织形式,使得文件能够以块为单位进行存储。 文件系统中也要有索引区,用来方便查找一个文件分成的多个块都存放在了什么位置。 如果文件系统中有的文件是热点文件,近期经常被读取和写入,文件系统应该有缓存层。 文件应该用文件夹的形式组织起来,方便管理和 ... »

程序员需要了解的硬核知识之二进制

我们都知道,计算机的底层都是使用二进制数据进行数据流传输的,那么为什么会使用二进制表示计算机呢?或者说,什么是二进制数呢?在拓展一步,如何使用二进制进行加减乘除?二进制数如何表示负数呢?本文将一一为你揭晓。 为什么用二进制表示 我们大家知道,计算机内部是由IC电子元件组成的,其中 CPU 和 内存 ... »

说了这么多次 I/O,但你知道它的原理么

O 软件目标 设备独立性 现在让我们转向对 I/O 软件的研究,I/O 软件设计一个很重要的目标就是设备独立性(device independence)。啥意思呢?这意味着我们能够编写访问任何设备的应用程序,而不用事先指定特定的设备。比如你编写了一个能够从设备读入文件的应用程序,那么这个应用程序可以 ... »

操作系统

操作系统概述 操作系统是管理计算机硬件和软件资源的计算机程序,管理配置内存、决定资源供需顺序、控制输入输出设备等。操作系统提供让用户和系统交互的操作界面。操作系统的种类是多种多样的,不局限于计算机,从手机到超级计算机,操作系统可简单也可复杂,在不同的设备上,操作系统可向用户呈现多种操作。因为我们不可 ... »

操作系统正确的学习姿势 --- 你不可错过的宝藏资源

一般很少有人推荐操作系统的网站吧。。。。。。这几个网站来源于我平常的学习总结,也有一些是来源于网上优秀的回答,希望这几个网站能够助力你对操作系统有更深的认识。 studytonight studytonight 简直太棒了!!! studytonight 会包括 operationg system, ... »

cp: 无法创建普通文件 : 文件已存在

背景 碰到一个偶现的编译出错问题,如图 报错的信息是 cp: 无法创建普通文件"xxx": 文件已存在 排查原因 看了下 Makefile,这句非常简单,就是 cp ./xxx ../xxx 而已,本身没什么问题。 那再结合上下文出现的打印,一个异常之处就是 Makfeile 被并行重复执行了,猜测 ... »