这个用户很懒,还没有个人简介
主帖 29
回帖 16
视频 3
提问 5
回答 1
疫情过后,反全球化的情绪出现了蔓延的趋势,各国针对于信息安全的讨论热度高居不下。与此同时,美国对华的高新技术出口仍采取了较强的限制,相关产业的上下游企业以及政府的国产化需求增长迅速。操作系统行业的C端市场长期被外企产品垄断,B端的产品也较为局限,关于国产操作系统的呼声不绝于耳。本文希望通过系统的梳理,为读者系统的呈现目前国产操作系统的行业现状。 在本文,你将看到: 1.国产操作系统的历史以及挑...
1475浏览  •  
0点赞  •  
0回复
  •  0收藏
我们都知道,Linux 是一个多任务操作系统,它支持远大于 CPU 数量的任务同时运行。当然,这些任务实际上并不是真的在同时运行,而是因为系统在很短的时间内,将 CPU 轮流分配给它们,造成多任务同时运行的错觉。 而在每个任务运行前,CPU 都需要知道任务从哪里加载、又从哪里开始运行,也就是说,需要系统事先帮它设置好CPU 寄存器和程序计数器 什么是 CPU 上下文? CPU 寄存器和程序计数器就是 CPU 上下文,因...
747浏览  •  
0点赞  •  
0回复
  •  0收藏
1.调度时机在创建一个新进程之后,需要决定是运行父进程还是运行子进程。由于这两种进程都处于就绪状态,所以这是一种正常的调度决策,可以任意决定。 在一个进程退出时必须做出调度决策。一个进程不再运行,所以必须从就绪进程集中选择另外某个进程。如果没有就绪的进程,通常会运行一个系统提供的空闲进程。 当一个进程在阻塞I/O和信号量上或由于其他原因阻塞时,必须选择另一个进程运行。 在一个I/O中断发生时,必须做出...
401浏览  •  
0点赞  •  
0回复
  •  0收藏
Linux & Unix架构图: 从图上我们可以看出来通过系统调用将Linux整个体系分为用户态和内核态(或者说内核空间和用户空间)。 系统调用 为了使应用程序访问到内核管理的资源例如CPU,内存,I/O。内核必须提供一组通用的访问接口,这些接口就叫系统调用。例如:用户态想要申请一块20K大小的动态内存,就需要brk系统调用,将数据段指针向下偏移,如果用户态多处申请20K动态内存,同时又释放呢?这个内存的管理就变得非常的复...
432浏览  •  
0点赞  •  
0回复
  •  0收藏
溯源随着物联网(IoT)的周边设备——家庭、工厂、船舶、无人机、汽车等产生更多的数据,对网络和云资源提出更多要求,传统的服务器及云计算架构开始出现两个主要问题: 带宽是有限的,传输大量的数据很昂贵请求/相应时间延迟会导致对时间敏感的操作的决策速度变慢,甚至出现更糟糕的情况(如自动驾驶)。 解决方案是将一些计算能力转移到系统的边缘,也就是靠近资产设备端,将智能和处理能力移向更靠近数据来源的地方。这样就...
746浏览  •  
0点赞  •  
0回复
  •  0收藏
1.进程与线程1.1 进程 资源分配单位。创建慢,上下文切换开销大进程状态: 从上图可以看出,进程运行中只有三种状态:ready,running,waiting事实上还存在进程挂起状态,原因是为了满足CPU的某些需求,会将一些处于阻塞/就绪的进出交换出内存 1.2 线程(轻量级进程)CPU调度单位。线程间共享进程资源。 在Linux下其实本并没有线程,只是为了迎合开发者口味,搞了个轻量级进程出来就叫做了线程。轻量级进程和进程一样,都...
350浏览  •  
0点赞  •  
0回复
  •  0收藏
1.子线程 1 去等待子线程 2 执行完成之后才能执行,如何去实现?答:这里考察的就是 Thread.join 方法,我们可以这么做:@Testpublic void testJoin2() throws Exception { // 线程2 Thread thread2 = new Thread(new Runnable() { public void run() {...} }); // 线程1 Thread thread1 = new Thread(new Runnable() { public void run() { // j...
592浏览  •  
0点赞  •  
0回复
  •  0收藏
1.创建线程任务方案一:Runnablerunnable无返回值,run实现线程逻辑public interface Runnable { public abstract void run();}2.创建线程任务方案二:Callable2.1 Callable callable有返回值(V),call实现线程逻辑public interface Callable<V> { V call() throws Exception;}2.2 FutureCallabe 不能单独使用,需要 Future 用来控制Callable执行,获取Callable执行结果。public interface...
331浏览  •  
0点赞  •  
0回复
  •  0收藏
1.线程介绍 1.1 线程状态 NEW(创建):线程刚被创建,但未启动,还未调用startRUNNABLE(可运行):调用了 strat 方法;可能在CPU执行,也有可能没有TIMED_WAITING(计时等待):让出CPU,计时休眠;sleep(持锁)WAITINIT(等待):让出CPU,休眠;无锁park->unpark,有锁wait->notify(会释放锁)BLOCKED(阻塞):等待获得 monitor lock 锁,是对于 synchronized 而言TERMINATED(终止):运行结束;子线程运行完...
433浏览  •  
0点赞  •  
0回复
  •  0收藏
2020-09-17 15:24:35
物联网从架构上面可以分为感知层、网络层和应用层,如下图 所示。(1)感知层:负责信息采集和物物之间的信息传输,信息采集的技术包括传感器、条码和二维码、 RFID射频技术、音视频等多媒体信息,信息传输包括远近距离数据传输技术、自组织组网技术、协同信息处理技术、信息采集中间件技术等传感器网络。感知层是实现物联网全面感知的核心能力,是物联网中包括关键技术、标准化方面、产业化方面亟待突破的部分,关键在于具备...
512浏览  •  
0点赞  •  
0回复
  •  0收藏
DevEco Studio 2.0 Beta1 已下载Previewer,但在View>Tool Windows>中找不到Previewer,有人可以解答一下下吗?
1503浏览  •  
0点赞  •  
3回复
  •  0收藏
等了好久终于等到今天,盼了好久二哈又与大家会面。今天我们以声汇友,揭开华为快服务智慧平台又一个流量入口——智慧语音的“神秘面纱”。 随着智慧化能力深入人们的生活,与语音设备的互动也成为智慧生活的一种表现,通过AI音箱、智慧屏、手机等为用户提供的智慧语音服务,能释放双手,释放双手的意义是什么?每个人可能做的事情都不一样,比如……是吧,那对于二哈来说,二哈用智慧语音解放双手的同时就给大家反手比个心。...
548浏览  •  
0点赞  •  
0回复
  •  0收藏
摘要:基于嵌入式系统的概念,阐述嵌入式系统的关键技术、嵌入式开发以及广泛的应用。首先,分析嵌入式系统的技术特点,分别从嵌入式处理器和嵌入式操作系统两方面介绍,着重说明它不同于其它操作系统的一些处理方法和过程;在此基础上阐述嵌入式软件的开发过程,并结合作者嵌入式软件开发的实践,着重阐述嵌入式软件的一些开发技巧。接着,介绍目前嵌入式系统一些流行的应用,以及南京东大移动互联技术有限公司自行研制的基于...
355浏览  •  
0点赞  •  
0回复
  •  0收藏
2020-09-16 13:44:51
文章整理自朱老师HarmonyOS工作原理解析课程,结合本人理解并丰富。希望观看视频版可以点击:【51cto学院对应课程链接】 了解鸿蒙系统之前,我们应该了解一下操作系统的演进以及向关概念,以此来对比鸿蒙有哪些技术特性以帮助自己更好的了解鸿蒙操作系统。 操作系统 操作系统这个词语对于一般的人来说立刻浮现在脑海的就是windows操作系统,但其实操作系统的种类还有很多,例如工业界使用最多的linux操作系统,以及单片机领...
543浏览  •  
0点赞  •  
0回复
  •  0收藏
鸿蒙终于发布了,开发者们也终于“沸腾”了。 源码托管在国内知名开源平台码云上,https://gitee.com/openharmony 我也第一时间下载了源码,研究了一个晚上,顺带写了一个 hello world 程序,还顺手给鸿蒙文档提了 2 个 PR。 当然我最感兴趣的就是鸿蒙的 JS 框架 ace_lite_jsfwk,从名字中可以看出来这是一个非常轻量级的框架,官方介绍说是“轻量级 JS 核心开发框架”。 当我看完源码后发现它确实轻。其核心代...
757浏览  •  
0点赞  •  
0回复
  •  0收藏
new和delete操作符我们应该都用过,它们是对堆中的内存进行申请和释放,而这两个都是不能被重载的。要实现不同的内存分配行为,需要重载operator new,而不是new和delete。 看如下代码: class MyClass {…};MyClass * p=new MyClass; 这里的new实际上是执行如下3个过程: 1调用operator new分配内存;2调用构造函数生成类对象;3返回相应指针。 operator new就像operator+一样,是可以重载的,但是不能在全局对原...
247浏览  •  
0点赞  •  
0回复
  •  0收藏
树莓派是一个很棒的游戏平台。在我们的系列文章的第九篇中学习如何开始使用树莓派。回到我们关于树莓派入门系列文章的第五篇,我提到 Minecraft 是一种教孩子们使用游戏平台进行编程的方法。作为一个不错的游戏平台,今天我们将讨论在树莓派上使用或者不使用模拟器来玩游戏的方式。使用模拟器玩游戏模拟器是一种能让你在树莓派上玩不同系统、不同年代游戏的软件。在如今众多的模拟器中,RetroPi 是树莓派中最受欢迎的。你可...
535浏览  •  
0点赞  •  
0回复
  •  0收藏
到目前为止,本系列文章主要专注于树莓派的软件方面,而今天我们将学习硬件。在树莓派最初发布时,最让我感兴趣的主要特性之一就是它的 通用输入输出(GPIO)针脚。GPIO 可以让你的树莓派程序与连接到它上面的传感器、继电器、和其它类型的电子元件与物理世界来交互。树莓派上的每个 GPIO 针脚要么有一个预定义的功能,要么被设计为通用的。另外,不同的树莓派型号要么 26 个,要么有 40 个 GPIO 针脚,你可以根据情...
347浏览  •  
0点赞  •  
0回复
  •  0收藏
树莓派是学习计算机安全的一个好方法。在我们这个系列的第十一篇文章中会进行学习。在技术方面是否有比保护你的计算机更热门的话题?一些专家会告诉你,没有绝对安全的系统。他们开玩笑说,如果你想要你的服务器或者应用程序真正的安全,就关掉你的服务器,从网络上断线,然后把它放在一个安全的地方。但问题是显而易见的:没人能用的应用程序或者服务器有什么用?这是围绕安全的一个难题,我们如何才能在保证安全性的同时,让...
240浏览  •  
0点赞  •  
0回复
  •  0收藏
不知道你的 IP 地址是什么?以下是在 Ubuntu 和其他 Linux 发行版中检查 IP 地址的几种方法。什么是 IP 地址?互联网协议地址(通常称为 IP 地址)是分配给连接到计算机网络的每个设备(使用互联网协议)的数字标签。IP 地址用于识别和定位机器。IP 地址在网络中是唯一的,使得所有连接设备能够通信。你还应该知道有两种类型的 IP 地址:公有和私有。公有 IP 地址是用于互联网通信的地址,这与你用于邮件的物...
408浏览  •  
0点赞  •  
0回复
  •  0收藏