![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
彻底理解操作系统
文章平均质量分 91
码农的荒岛求生
微信公众号「码农的荒岛求生」,微信号escape-it。
助你逃离估计技术点的禁闭岛,实现技术进阶。
展开
-
彻底理解C语言中的指针
大家好,我是小风哥。假定给你一块非常小的内存,这块内存只有8字节,这里也没有高级语言,没有操作系统,你操作的数据单位是单个字节,你该怎样读写这块内存呢?注意这里的限定,再读一遍,没有高级语言,没有操作系统,在这样的限制之下,你必须直面内存读写的本质。这个本质是什么呢?本质是你需要意识到内存就是一个一个装有字节的小盒子,这些小盒子从0到N编好了序号。这时如果你想计算1+2,那么你必须先把1和2分别放到两个小盒子中,假设我们使用Store指令,把数字1放到第6号小盒子,那么用指令表示就是原创 2021-12-08 22:42:19 · 1151 阅读 · 0 评论 -
以发展的眼光来看待操作系统
承接上文《程序员应如何理解操作系统:下篇》操作系统和生物一样也是在不断演变进化的,操作系统也不是一下子就变成现在这种样子的。现代的操作系统是什么样子的呢? 非常靓丽易用的图形界面 普遍支持多任务,也就是操作系统上可以同时运行很多程序。 所有进程看到的内存都是4G(32位下),而且无论物理内存是多少都是这样的。 应用程序无需全部加载到内存中就可以开始运行。 一个进程崩溃后不会影响到其它进程。 等等等等 在个人计算机(PC)刚刚出现时,所谓的操原创 2020-08-04 19:58:30 · 468 阅读 · 0 评论 -
彻底理解操作系统:2,进程?程序?傻傻分不清
文章目录编程高手与普通程序员的分水岭程序是如何生成的进程是如何生成的总结到目前为止,你肯定已经见过很多次这两个词了,“程序”“进程”。那程序和进程到底有什么区别呢。程序是一个静态的概念。进程是一个动态的概念。我们用一个例子来形象的讲解一下这个区别。程序其实本质上和我们的菜谱非常类似,一个菜谱规定了完成一道菜的整个流程,一步一步每个节点执行什么样的操作,但是看一遍菜谱是不能变出一道美味可口...原创 2019-08-15 21:18:03 · 1728 阅读 · 2 评论 -
彻底理解操作系统 3.2:程序员应如何理解内存
文章目录什么是内存C/C++内存模型堆区与栈区的本质Jave、Python内存模型Jave内存模型Jave中堆与栈是如何实现的Python内存模型指针与引用进程的内存模型幻想大师——操作系统总结什么是内存0和1这两个简单的数字能做什么?在其它学科中也许什么都做不了,但是在计算机科学中这就是全部。精彩纷呈的计算机世界正是构筑在这样两个简单数字之上。内存本身其实非常简单,内存的作用就是用来装数字...原创 2019-08-17 09:15:01 · 1883 阅读 · 4 评论 -
彻底理解操作系统 3.1:程序员应如何理解内存
文章目录堆区与栈区的本质Jave、Python内存模型Jave内存模型Jave中堆与栈是如何实现的Python内存模型指针与引用进程的内存模型幻想大师——操作系统总结堆区与栈区的本质在编程语言中,堆区和栈区本质上都是内存,因此二者在本质上没有任何区别,只不过这两块内存的使用方式是不一样的。在数据结构与算法中,我们也有堆和栈的概念,但那里指的不是内存,而是两种数据结构。你可能会想,我们为什么...原创 2019-08-17 09:24:42 · 1929 阅读 · 0 评论 -
程序员应如何理解CPU:上篇
文章目录什么是机器指令你可能会想,作为程序员,我们需要理解CPU吗?是的,如果你想彻底理解操作系统的话。在后面的课程中你会发现,仅仅依赖软件是无法完成某些特定的功能的,比如,我们在《程序员如何理解内存》这一节中提到的虚拟内存,这项功能的实现需要依赖CPU的配合才能完成。因此在这一节中,将重点讲解一下作为程序员应该知道哪些CPU相关的知识。 什么是机器指令你肯定已经知道了,CP...原创 2019-10-22 19:14:03 · 1647 阅读 · 0 评论