内存分页不就够了?为什么还要分段?还有段页式?

你好,我是 yes。 关于内存访问你可能听过分段,分页,还有段页式。 但是为什么要分段?又为什么要分页? 有了分页为什么还要分段? 这就需要看一看历史的发展,知晓历史之后就知道这一切其实都是自然而然的。 这些概念也不是硬塞出来的。 正文 1971 年 11 月 15 日,Intel 推出世界第一块个 ... »

什么是程序?什么是进程?他们之间的区别是什么?

本篇文章详细讲解以下问题:什么是程序?什么是进程?他们之间的区别是什么? 灵魂拷问:程序与进程的区别? 程序是包含一系列信息的文件,描述如何在运行时创建一个进程,如我们写的源代码文件,编译好的可执行文件 .out 文件等。所以在操作系统角度,程序是创建进程的描述。程序文件可以包含以下描述信息: 二进 ... »

Windows Terminal 新手入门

翻译自 Kayla Cinnamon 2020年12月17日的文章《Getting Started with Windows Terminal》 1 安装 Windows Terminal(Windows 终端)有两个不同的版本:Windows Terminal2 和 Windows Termina ... »

操作系统微内核和Dubbo微内核,有何不同?

你好,我是 yes。 在之前的文章已经提到了 RPC 的核心,想必一个 RPC 通信大致的流程和基本原理已经清晰了。 这篇文章借着 Dubbo 来说说微内核这种设计思想,不会扯到 Dubbo 某个具体细节实现上,和 Dubbo 强相关的内容会在之后的文章写到。 所以今天的重点在微内核,而这个概念我最 ... »

面试官让你讲讲Linux内核的竞争与并发,你该如何回答?

@ 内核中的并发和竞争简介 在早期的 Linux内核中,并发的来源相对较少。早期内核不支持对称多处理( symmetric multi processing,SMP),因此,导致并发执行的唯一原因是对硬件中断的服务。这种情况处理起来较为简单,但并不适用于为获得更好的性能而使用更多处理器且强调快速响应 ... »

同学你会hello world吗? 给我讲清楚点

少点代码,多点头发 本文已经收录至我的GitHub,欢迎大家踊跃star 和 issues。 https://github.com/midou-tech/articles 面试官超级喜欢问hello world问题 特别是校招,我校招碰到过3次 其实很多看起来顺其自然简单的东西,背后是一套复杂的学问 ... »

NO.001- 简说 Java 并发编程史

这篇文章是Java并发编程思想系列的第一篇,主要从理解Java并发编程历史的原因和Java并发演进过程两部分,以极简地回溯并发编程的历史,帮助大家从历史这个角度去了解一门语言一个特性的演进。对历史理解的越多,思考的越多,未来的方向就会更加坚定。 ... »

2020年秋招联发科小米等20家公司面经总结

秋招投递公司23家,简历被刷1家。笔试/测评挂掉3家。至今无消息的8家。获得Offer的公司有小米,兆易创新,全志科技,浙江大华,海格通信,京信通信,景嘉微电子,广州朗国电子,北京华大电子,中国长科技集团。已签约浙江大华。 @ 友情提示:公司名字后面的日期代表投递日期,面试批次后面的时间代表面试时长 ... »

WinForm引用ActiveX组件,对Com组件的学习

#1、WinForm引用Adobe PDF Reader 工作中写WinForm程序经常会引用第三方的组件,包括引用Com组件,做了一个桌面程序需要展示PDF,看了些其它的开源组件对PDF的兼容性都不是很好,有些看着PDF是正常的但是复制出来的字有很多乱码。然后就直接引用了adboe pdf rea ... »

一个普通硕士生的2020秋招总结(文末送福利)

秋招是每个在校学生都要经历的一个阶段。本篇文章记录了自己的秋招历程。秋招投递公司23家,简历被刷1家。笔试/测评挂掉3家。至今无消息的8家。获得Offer的公司有小米,兆易创新,全志科技,浙江大华,海格通信,京信通信,景嘉微电子,广州朗国电子,北京华大电子,中国长城科技集团。已签约浙江大华。最后收获 ... »

Linux内核中container_of宏的详细解释

上一节拒绝造轮子!如何移植并使用Linux内核的通用链表(附完整代码实现)我们在分析Linux内核链表的时候注意到内核在求解结构体偏移的时候巧妙的使用了container_of宏定义,今天我们来详细剖析下内核到底是如何求解结构体成员变量的地址的。 @ 结构体在内存中是如何存储的 int main() ... »

拒绝造轮子!如何移植并使用Linux内核的通用链表(附完整代码实现)

在实际的工作中,我们可能会经常使用链表结构来存储数据,特别是嵌入式开发,经常会使用linux内核最经典的双向链表 list_head。本篇文章详细介绍了Linux内核的通用链表是如何实现的,对于经常使用的函数都给出了详细的说明和测试用例,并且移植了Linux内核的链表结构,在任意平台都可以方便的调用 ... »

自制 os 极简教程1:写一个操作系统有多难

不知道正在阅读本文的你,是否是因为想自己动手写一个操作系统。我觉得可能每个程序员都有个操作系统梦,或许是想亲自动手写出来一个,或许是想彻底吃透操作系统的知识。不论是为了满足程序员们自带的成就感,还是为了面试找工作时能更深入地和面试官探讨(装逼)。 那写一个操作系统究竟有多难呢?我结合自己的经历给大家 ... »

自制 os 极简教程1:写一个操作系统有多难

为什么叫极简教程呢?听我慢慢说 不知道正在阅读本文的你,是否是因为想自己动手写一个操作系统。我觉得可能每个程序员都有个操作系统梦,或许是想亲自动手写出来一个,或许是想彻底吃透操作系统的知识。不论是为了满足程序员们自带的成就感,还是为了面试找工作时能更深入地和面试官探讨(装逼)。 写一个操作系统有多难 ... »

进程、线程和协程的区别

在面试中,经常会有面试官问题“进程、线程和协程的区别”这个问题,这也是大学课程操作系统中最基本的知识。我们通常对此都说上几句,但细节又不是特别深入明了。我整理了一下相关的内容,加上自己的理解,与君共享。 ... »

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

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