关于第一篇Blog的补充与计算机概念

  今天拿到了《鸟哥的Linux私房菜》,翻开看了下第一章,想起了昨天安装Ubuntu的点滴,继续做下补充和记录吧。

  首先是关于架构,鸟哥将这个定义为一切设计的起点,事实上的确是这样子,博主目前知道的两类指令集架构:RISC与CISC,R指的Reduce,C指的是Complex,之前谢老师在课堂上讲过,CISC上的80%的指令其实是很少用到的,因此才出现了RISC这种精简的架构,这种架构的执行性能较佳,例如ARM平台,指令的长度一致,那么架构也相应简单的多,而x86架构的指令非常复杂,长度也不一,架构也相应复杂得多,那么为什么还要这样做呢?鸟哥指出RISC要做复杂的事情,就要由多个指令来完成,即使如STM32H7一样号称是单指令周期做复杂操作也是需要很多周期哒。言归正传,博主现在使用的是CISC电脑,安装的也是x86-64架构的Ubuntu,那我只要是x86-64的电脑就会一样吗?当然不是,看看某东上CPU的价格相差这么远,就知道肯定不可能一样啦。

  CISC指令集的CPU,比拼的不仅仅是整体结构,指令集也是它极大的特色之一,这里对于RISC其实也是一样哒,之前博主使用stm32f1平台运行FreeRTOS,里面查找就绪任务中优先级最高的算法依赖于ARM的指令集,而不需要向C51等普通MCU一样需要for循环查找,这样就可以大大提高CPU的响应能力啦,因此,买CPU的时候不要单看主频高就觉得它一定会更快噢(一把眼泪掉了下来,博主在今天之前一直是这么认为的)。

  那么我们为什么以前安装Windows的时候会被告知当你的内存大于4G的时候需要安装64位系统,而内存小于4G的时候只能安装32位系统呢?首先要明确一个概念,操作系统承担的是硬件与应用程序的桥梁的作用,它就像是两个口,一个面向应用程序,一个面向硬件。博主以前写单片机的时候一开始使用的就是裸机编程,就是什么都直接调用底层API(也不算太底层,ST官方把寄存器操作都封装成了标准库),但是这样就会导致一个问题,当我的应用程序更改的时候,很多函数都需要重新写,同样,当我想把代码移植到另一个平台上的时候(例如TI上的),这样硬件API都更改了,整个软件也得大改,更别说任务调度算法了,因此操作系统是必要的,就像是一个社会需要不同的群体各司其职一样,那这里博主就暂时命名操作系统是政府吧。操作系统需要访问内存进行读写控制,那么如果是32位操作系统可以这样计算2*32=4294967296,就是所谓的4GB内存,读取位宽为32位,即便所有数据都表示地址,那么也仅仅只有4GB的访问空间,因此就算你给他安装64位系统,也无法发挥它的功效,而同理,当你的内存大于4GB的时候,你的操作系统却无法寻址到超越4GB内存,这是多么令人崩溃的事情呀!

  那么操作系统究竟包含什么呢?一个是内核,另外一个则是系统调用。操作系统的内核层直接参考硬件规格写成,所以同一个操作系统程序不能够在不一样的硬件架构下运行,通常需要配置,以前博主移植FreeRTOS的时候也是要根据ARM核来进行内核裁剪哒,有很多宏定义下的代码是无法运行的!操作系统管理着整个硬件资源,包括了CPU、内存、输入输出以及文件系统等!所以昨天安装Ubuntu的时候我们就看到什么EXT4文件之流的。。。而管理CPU则是很重要很重要的一部分,FreeRTOS采用的抢占式任务优先级算法,就是为了榨干CPU的资源,你总不能一个Delay函数,CPU就什么也不干嘛,明明它还能去算别的东西呢!因此操作系统中任务的优先级以及管理也是特别重要的,那么到了Ubuntu中,博主留意到了还有一种新的,就是权限了,和Windows傻瓜式操作不一样,Ubuntu创建个目录都要sudo 再能mkdir噢,像petalinux又不可以在root权限下安装。。。

  那么安装时的SWAP交换空间又是什么东西呢?这是因为系统所有的程序代码与数据都必须存放在内存中,但是当内存不足的时候怎么办呢?内核会提供虚拟内存的功能,当内存不足的时候就可以提供交换分区的功能,这不就是我们安装Ubuntu时的Swap分区嘛!

  最后,想写写MBR与GPT的区别!旧式的MBR模式适用于机械硬盘(HDD),这是通过柱面号码进行划分的一种方式,而GPT格式,则是通过扇区号码进行划分!所以,制作U盘启动的时候一定要观察清楚!Rufus专业是专业但是一开始是很难以理解的,若你的硬盘是MBR模式,那么你制作GPT格式的Ubuntu是会崩溃的!

  今天写着写着就到10点咯,不过还是很开心,博主不是计算机院的,但是这计算机真的好好玩鸭,同样的话,如果发现我的错误,请多多指教!

原文地址:https://www.cnblogs.com/whulaolao/p/11779836.html

时间: 2024-10-03 22:40:46

关于第一篇Blog的补充与计算机概念的相关文章

第一篇blog(处女座)

时间一分一秒的过去,转眼之间,已经是研二下学期,匆匆忙忙中,自己捡到了一些芝麻,幸好西瓜没有丢掉! 无意之中看到了一篇blog,没错,就是在这里! http://kb.cnblogs.com/page/566318/ 分享给更多的朋友们,宝宝们要好好看啊!写的真的很不错! 最起码,我是这样觉得! 所以我也就将我的处女座blog奉献出来,虽然我之前一直也在写日志,看过上面这篇blog,感觉是时候写一些东西,带分享性的,向大牛们学习! 既然是这样,不如给自己一个规划吧!一个月写一篇blog,应该不难

第一篇BLOG

新的学期开始了,我们这学期要学习的有八个版块,分别是: (1)图形用户界面 (2)异常处理 (3)输入输出和 (4)文件操作 (5)常用工具类 (6)JDBC编程基础 (7)多线程编程 (8)网络编程 上个学期对GUI界面有过初步的了解,通过两个星期的学习掌握了gui的基础知识,但是许多java基础知识有很大的欠缺,也是归咎于自己的浑浑噩噩不好学,所以这学期呢,我既要上课好好听讲,课下弥补自己所欠的知识,多问问同学,自己报考了这个专业应该对选择负责,去热爱它,也希望老师给予大的帮助. 像我这种基

jstl标签 core fmt fn函数使用参考(为第一篇的补充,更为实用)

JSTL标签 参考手册 前言 ========================================================================= JSTL标签库,是日常开发经常使用的,也是众多标签中性能最好的.把常用的内容,放在这里备份一份,随用随查.尽量做到不用查,就可以随手就可以写出来.这算是Java程序员的基本功吧,一定要扎实. JSTL全名为JavaServer Pages Standard Tag Library,目前最新的版本为1.1版.JSTL是由J

秒杀多线程第一篇 多线程笔试面试题汇总 ZZ 【多线程】

http://blog.csdn.net/morewindows/article/details/7392749 系列前言 本系列是本人参加微软亚洲研究院,腾讯研究院,迅雷面试时整理的,另外也加入一些其它IT公司如百度,阿里巴巴的笔试面试题目,因此具有很强的针对性.系列中不但会详细讲解多线程同步互斥的各种“招式”,而且会进一步的讲解多线程同步互斥的“内功心法”.有了“招式”和“内功心法”,相信你也能对多线程挥洒自如,在笔试面试中顺利的秒杀多线程试题. ----------------------

秒杀多线程第一篇 多线程笔试面试题汇总

版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 系列前言 本系列是本人参加微软亚洲研究院,腾讯研究院,迅雷面试时整理的,另外也加入一些其它IT公司如百度,阿里巴巴的笔试面试题目,因此具有很强的针对性.系列中不但会详细讲解多线程同步互斥的各种“招式”,而且会进一步的讲解多线程同步互斥的“内功心法”.有了“招式”和“内功心法”,相信你也能对多线程挥洒自如,在笔试面试中顺利的秒杀多线程试题. -------------------------------------华丽的分割线

入木三分学网络第一篇--VRRP协议详解第一篇(转)

因为keepalived使用了VRRP协议,所有有必要熟悉一下. 虚拟路由冗余协议(Virtual Router Redundancy Protocol,简称VRRP)是解决局域网中配置静态网关时,静态网关出现单点失效现象的路由协议. VRRP广泛应用在边缘网络中,它的设计目标是支持特定情况下IP数据流量失败转移不会引起混乱,允许主机使用单路由器(位于一个虚拟路由器组中, 在该组中,只有一台路由器--master路由器工作,转发数据包,其它路由器是backup路由器,不参与转发数据包),以及在实

Android开源项目第一篇——个性化控件(View)篇

本文为那些不错的Android开源项目第一篇——个性化控件(View)篇,主要介绍Android上那些不错个性化的View,包括ListView.ActionBar.Menu.ViewPager.Gallery.GridView.ImageView.ProgressBar及其他如Dialog.Toast.EditText.TableView.Activity Animation等等. Android开源项目系列汇总已完成,包括: Android开源项目第一篇——个性化控件(View)篇 Andr

Python Web框架【Django框架第一篇基础】

Django框架第一篇基础[DjangoMTV模式] 老师博客[www.cnblogs.com/yuanchenqi/articles/6811632.html] 同学博客:http://www.cnblogs.com/haiyan123/p/7701412.html Django官网:https://www.djangoproject.com/download/ 一.安装Django DjangoMTV模式 Django的MTV模式本质是各组件之间为了保持松耦合关系,Django的MTV分别代

CSS px, em, 和rem; float以及clear(第一篇学习)

px:相对长度,相对于屏幕分辨率: em:相对长度单位,相对于当前对象内文本的字体尺寸.如当前对行内文本的字体尺寸未被人为设置,则相对于浏览器的默认字体尺寸.  任意浏览器的默认字体高都是16px.所有未经调整的浏览器都符合: 1em=16px.那么12px=0.75em,10px=0.625em.为了简化font-size的换算,需要在css中的body选择器中声明Font-size=62.5%,这就使em值变为 16px*62.5%=10px, 这样 12px=1.2em, 10px=1em