知识点积累(操作系统,黑盒算法)

190 阅读21分钟

1:黑盒算法

1.1 深度学习

深度学习是一种机器学习的分支领域,它通过模拟人脑神经网络的结构和功能,利用多层次的神经网络模型来学习和理解复杂的数据模式和表示。
传统的机器学习算法通常依赖于手工设计的特征提取和分类方法,而深度学习则通过使用多层次的神经网络模型,可以自动地从原始数据中学习到更高层次、更抽象的特征表示。这一特点使得深度学习在图像识别、语音识别、自然语言处理等领域取得了显著的突破和应用。
深度学习的核心组成部分是神经网络模型。神经网络由大量的人工神经元(或称为节点)组成,每个节点都接收一些输入信号,并通过激活函数对这些信号进行处理后输出。这些神经元按照不同的层次和连接方式组织起来,形成了多层次的神经网络模型。
在深度学习中,通常会使用反向传播(Backpropagation)算法来训练神经网络。该算法通过计算模型的预测输出与实际标签之间的误差,并根据误差进行神经网络参数的调整,以最小化误差。这个过程涉及到大量的数学运算和梯度下降等优化算法,以便找到最优的模型参数。
深度学习具有高度的
灵活性和自适应性
,它可以通过大规模数据的训练来学习到数据的内在模式和表示,从而实现识别、分类、预测等任务。同时,深度学习还可以利用分布式计算和GPU等硬件技术来加速训练过程,提高模型的性能和效率
总而言之,深度学习是一种基于多层次神经网络的机器学习方法,通过学习数据的复杂模式和表示,实现了在图像、语音、文本等领域的重要突破。它已经成为人工智能领域的重要组成部分,并在各个领域中展示了强大的能力和广泛的应用前景。

1.2 强化学习

强化学习是一种机器学习方法,旨在通过与环境的交互来训练智能系统(也称为代理)做出最优决策。在强化学习中,代理根据当前的状态执行动作,并从环境中接收反馈信号(奖励或惩罚),以便学习如何选择最佳的行动策略以最大化累积奖励
强化学习采用了
试错的方式来提高性能
,代理通过不断地尝试和观察结果来学习如何做出更好的决策。它的核心思想是基于奖励信号的反馈机制,代理根据环境的反馈调整自己的行为,以获得更高的回报。
强化学习中的关键概念包括:
1:状态(State):代理在每个时间步骤处于的环境状态,它包含了所有对于决策有影响的信息。
2:动作(Action):代理在某个状态下可以执行的操作或决策。
3:奖励(Reward):代理根据环境的反馈得到的一个信号,用来评估代理行为的好坏。
4:策略(Policy):代理根据当前状态选择动作的策略,可以是确定性的或概率性的。
5:值函数(Value Function):用来评估状态或状态-动作对的价值,表示代理在特定状态或状态-动作对上能够获得的累积奖励。
6:Q值函数(Q-value Function):衡量在给定状态下采取某个动作的价值,用于辅助代理进行决策。
强化学习的目标是通过学习最优的策略,使得代理能够在不同的状态下做出最优的动作选择,以最大化长期累积的奖励。常见的强化学习算法包括Q-learning、深度强化学习(DRL)、策略梯度等。
强化学习在许多领域中具有广泛的应用,如机器人控制、自动驾驶、游戏智能等。它通过与环境的交互和反馈机制,使得智能系统能够从经验中学习,并逐步提高自己的决策能力和性能。

1.3 黑盒算法

黑盒算法是指其内部运行机制难以被理解和解释的算法,因此很难分析其决策过程和结果。相应地,白盒算法是指其内部运行机制易于被理解和解释的算法,可以清晰地分析其决策过程和结果。
下面是一些例子,说明哪些算法可能不是黑盒算法:
1:决策树算法:决策树算法是一种基于树形结构的分类模型,它将数据集划分为多个小的、可解释的子集,并对每个子集采用一个简单规则进行分类。由于决策树模型的简单性和可解释性,它通常被认为是白盒算法。
2:线性回归算法:线性回归算法是一种从输入到输出之间建立线性关系的模型。它可以通过最小二乘法等简单方法进行训练和优化,并且其特征权重可以直接解释。因此,线性回归算法也被认为是白盒算法。
3:朴素贝叶斯算法:朴素贝叶斯算法是一种基于贝叶斯定理的简单分类算法。其决策规则易于理解和解释,且算法中的每个特征都是独立的,因此朴素贝叶斯算法也被认为是白盒算法。
总之,黑盒算法通常是一些复杂而难以理解的模型,而白盒算法则通常易于理解和解释。然而,需要注意的是,在某些情况下,即使使用白盒算法,也可能存在不透明或令人困惑的决策过程,例如当特征数量很大或关系很复杂时。因此,在实际应用中,我们需要根据具体情况选择合适的算法,并结合领域知识和专业技能来解释和优化模型

        目标检测 (yolo , SSD, faster Rcnn)

                 图像语义分割 (  u-net  )

       图像生成( 

2 操作系统的学习

2.1 操作系统

目前存在多种类型的操作系统,涵盖了不同设备和应用领域。以下是一些常见的操作系统:

  1. Windows:由微软公司开发的操作系统,主要应用于个人电脑和服务器。最新版本包括Windows 10。
  2. macOS:由苹果公司开发的操作系统,专门用于苹果的Mac电脑和服务器。最新版本是macOS Monterey。
  3. Linux:一种开源的操作系统内核,有许多不同的Linux发行版,如Ubuntu、Debian、Fedora等。它广泛应用于服务器、嵌入式设备和个人电脑等领域。
  4. Android:由Google开发的移动设备操作系统,主要应用于智能手机、平板电脑和其他移动设备。
  5. iOS:由苹果公司开发的移动设备操作系统,专门用于iPhone、iPad和iPod Touch。
  6. Chrome OS:由Google开发的轻量级操作系统,主要应用于Chromebook笔记本电脑和Chromebox桌面设备。
  7. FreeBSD:一种开源的类Unix操作系统,用于服务器和嵌入式系统。
  8. Solaris:由甲骨文公司开发的商业操作系统,主要应用于企业级服务器。

此外,还有其他一些特定领域或特定设备的操作系统,如嵌入式系统中的RTOS(实时操作系统)、游戏主机中的PlayStation OS和Xbox OS等。
这些操作系统在不同领域和设备上都发挥着重要的作用,满足了各种不同用户和应用的需求。

ROS 

ROS(Robot Operating System)并不是传统意义上的操作系统,而是一个机器人开发平台。它是一个开源的框架,提供了一系列的工具和库,用于构建和运行机器人的软件系统。

ROS并不是像Windows、Linux或MacOS那样作为操作系统来使用,而是可以在这些操作系统的基础上运行。ROS主要用于机器人的控制、感知、导航、运动规划等方面,为机器人系统提供了统一的软件架构和通信协议。它可以快速集成各种类型的机器人硬件和软件,并提供了多种编程语言的接口。

因此,ROS不是传统意义上的操作系统,而是一个机器人开发平台,用于构建和运行机器人的软件系统。它广泛应用于机器人研究和开发领域,成为了机器人领域中非常重要的软件平台之一。

两个666

RUST:

Rust是一种现代、安全、并发的系统编程语言,由Mozilla研发。它旨在提供高效且安全可靠的软件开发工具,同时支持并发性和内存安全。Rust的设计目标包括提供高性能、低级别的控制、抽象能力和错误处理机制。
以下是一些关于Rust语言的特点:

  1. 内存安全:Rust通过使用所有权和借用系统,避免了常见的内存错误,如空指针引用、数据竞争等。它在编译时进行严格的静态检查,确保不会出现悬挂指针、空引用以及其他内存安全问题。
  2. 并发性:Rust鼓励并支持并发编程,通过使用线程和消息传递机制来实现。它提供了轻量级的线程模型和跨线程通信的机制,使得编写安全、高效的并发代码变得更加容易。
  3. 零成本抽象:Rust提供了强大的抽象能力,允许开发者创建高级别的抽象,同时保持低级别的控制。这意味着可以编写高层次的代码,同时不会有运行时开销。
  4. 异常处理:Rust使用了一种称为"Result"的错误处理机制,它鼓励开发者明确地处理可能出现的错误情况。这种机制消除了传统的异常处理带来的一些复杂性和潜在的错误。
  5. 社区支持:Rust拥有一个活跃的社区,提供了丰富的库和工具,以及大量的学习资源。这使得开发者可以更轻松地开始使用Rust,并获得支持和帮助。

总体而言,Rust语言通过其独特的安全性、并发性和抽象能力等特点,成为开发高性能、可靠和安全系统级应用程序的一种强大工具。

蓝河操作系统采用 Rust 编写「系统框架」— 从源头避免了内存使用不当引起的安全漏洞

运行要求方面,在低至 200Mhz 主频 32MB 内存,高至 4GHz 主频 24GB 内存的各种设备上,蓝河都能流畅运行。

Rust语言可以在主频为200MHz和内存为32MB的低端设备上运行,也可以在主频为4GHz和内存为24GB的高端设备上运行。这意味着Rust的运行要求适用于各种类型的计算机和嵌入式系统,并且可以在相对较低的硬件配置下提供足够的性能。因此,Rust语言可以用于开发各种应用程序,包括嵌入式系统、网络服务器、桌面应用程序等。

主频为200MHz指的是设备的处理器运行时钟的频率为200兆赫兹。这意味着处理器每秒钟运行200百万个时钟周期。主频通常与设备的性能和运行速度有关,较高的主频通常意味着更快的处理能力,但也受到其他因素的限制,如架构、内存等。

32MB是指计算机系统的内存大小,它表示系统中的随机存取存储器(RAM)容量为32兆字节。内存是计算机用来存储运行中程序和数据的地方,它直接影响着系统的运行速度和多任务处理能力。通常情况下,更大的内存容量可以支持同时运行更多的程序或处理更大规模的数据。24GB内存意味着计算机系统中的随机存取存储器(RAM)容量为24千兆字节。拥有这么大的内存容量通常意味着系统能够同时运行大量的应用程序或者处理大规模的数据,因此适用于需要处理复杂任务或者运行大型程序的场景。特别是对于专业设计、科学计算、大数据分析等领域的工作,更大的内存容量可以提供更好的性能和效率。

"内存"和"运行存储器"其实是同一个概念的不同表达方式,在计算机领域通常都指的是随机存取存储器(RAM)。
"内存"一词通常用于描述计算机系统中用来存储正在运行程序和数据的临时存储器。它是计算机的重要组成部分,对于系统的性能和运行速度有着关键的影响。
"运行存储器"是对"RAM"的直译,"运行"指的是计算机程序在执行过程中所需的存储器。在一些情况下,特别是翻译或者描述技术概念时,"运行存储器"这个词可能会被使用,但其实它和"内存"本质上是同一个概念。

蓝河操作系统是基于 Linux/RTOS 的自研架构,因此不兼容 Android 应用。不过它兼容 hapJS,以获得更好的生态支持

RTOS:

RTOS是实时操作系统(Real-Time Operating System)的缩写。它是一种专门设计用于处理实时应用程序的操作系统,具有对实时任务的快速响应和可预测性的特点。
与通用操作系统(如Windows、Linux)不同,RTOS专注于处理实时数据流和事件响应,适用于需要严格时间约束的应用领域,如航空航天、汽车电子、医疗设备、工业自动化等。RTOS在这些领域中扮演着关键角色,可以确保系统对事件的快速响应,并提供可靠的实时性能。
RTOS通常具有以下特点:

  1. 快速响应时间:RTOS能够快速响应外部事件和实时任务,满足实时性要求。
  2. 可预测性:RTOS能够提供可靠的任务调度和执行时间保证,确保任务在规定的时间内完成。
  3. 小巧高效:RTOS通常具有较小的内存占用和低延迟,适合嵌入式系统和资源受限的环境。
  4. 实时调度:RTOS提供实时调度算法,确保重要任务得到优先处理。

常见的RTOS包括FreeRTOS、VxWorks、uc/OS、QNX等,它们在不同领域和应用场景中发挥着重要作用。

微内核:

微内核是一种操作系统内核设计架构,它采用了一种模块化的设计理念,将操作系统的基本功能划分成多个独立的、相对较小的部分。这些部分包括处理器调度、内存管理、进程间通信等,每个部分称为一个微内核服务,它们运行在内核态,并通过消息传递机制进行通信。

微内核架构的设计理念是尽可能减少内核的复杂性,将大部分操作系统的功能移出内核空间,转移到用户态的服务进程中,从而提高系统的可维护性和可扩展性。由于微内核的设计使得内核足够小巧,因此它更容易被理解、验证和维护。

与传统的单体内核相比,微内核架构具有以下优点:

  1. 可靠性:微内核架构使得内核本身更加简单,从而降低了内核出现错误的可能性,提高了系统的可靠性。
  2. 灵活性:由于操作系统功能被模块化,微内核系统可以更容易地进行定制和扩展,符合不同场景和需求。
  3. 安全性:微内核的模块化设计有助于限制各个模块之间的交互,从而提高了系统的安全性。
  4. 可移植性:微内核提供了一个清晰的接口,使得其服务可以更容易地移植到其他硬件平台上。

然而,由于微内核架构中服务之间的消息传递需要额外的开销,可能导致性能损失,因此在一些对性能有较高要求的场景下,传统的单体内核仍然是一个更好的选择。

微内核是一种操作系统设计的范式,它将操作系统的核心功能分为最小的模块,其中只有最基本的功能在核心内运行,而其他功能则以独立的服务运行在用户空间。微内核的设计旨在提高系统的可扩展性、可靠性和安全性。具体来说,微内核通常包括以下几个核心模块:

内核(Kernel):微内核的核心部分,负责最基本的操作系统功能,如中断处理、进程调度、内存管理等。它是操作系统的最小可信部分,承担着与硬件交互的职责。

  1. 进程管理器(Process Manager):负责创建、终止和管理进程。它是微内核的一个重要模块,控制着进程的创建和切换,以及进程间的通信和同步。
  2. 内存管理器(Memory Manager):负责管理系统的内存资源,包括物理内存和虚拟内存。它负责分配和回收内存,以及将虚拟地址映射到物理地址。
  3. 设备驱动程序(Device Drivers):提供对硬件设备的访问和控制。设备驱动程序负责与外部设备进行通信,包括输入设备、输出设备和存储设备等。
  4. 文件系统(File System):提供对文件和目录的管理和访问。文件系统负责文件的创建、读取、写入和删除等操作,以及目录结构的管理。

此外,微内核设计还支持可选的服务模块,这些服务模块作为用户空间的独立进程运行,提供额外的功能和服务。例如:

  1. 网络服务(Network Services):提供网络通信功能,包括TCP/IP协议栈、网络连接管理和数据传输等。
  2. 图形窗口系统(Graphical Window System):提供图形界面和窗口管理功能,使用户可以通过图形界面与计算机交互。
  3. 安全服务(Security Services):提供安全性相关的功能,如身份验证、权限管理和加密解密等。
  4. 数据库服务(Database Services):提供数据库访问和管理功能,包括数据存储、查询和事务处理等。

这些服务模块根据具体需求进行选择和配置,使得操作系统可以根据应用程序的要求提供不同的功能和服务。微内核的设计理念在一定程度上提高了系统的灵活性和可扩展性,使得操作系统更加模块化和可定制。

RTOS(实时操作系统)和微内核是两个不同的概念。RTOS是一种专门设计用于处理实时应用程序的操作系统,它注重对实时任务的快速响应和可预测性。通常情况下,RTOS并不一定采用微内核架构,实际上许多RTOS都采用单体内核或混合内核的设计

微内核是一种操作系统内核的设计架构,它**将操作系统的基本功能模块化,移出到内核之外成为独立的服务进程,通过消息传递进行通信。**微内核的目标是减少内核的复杂性,提高系统的可维护性和可扩展性。

因此,虽然某些RTOS可能采用了微内核的设计理念,但并非所有RTOS都是基于微内核架构的。RTOS更关注实时性能和快速响应,它们可以采用各种不同的内核设计来满足实时需求

hapJS

**快应用它不再像小程序那样基于微信平台才能生成,而是基于手机负一屏构建的自有无需下载体系,形成了独特的应用标准,大幅提升了用户的体验。
**

用户无需下载安装,即点即用,享受原生应用的性能体验。泰迪熊移动的快应用解决方案深度集成进各厂商手机系统中,具有“免安装、免存储、一键直达、更新直接推送”四大体验优势,让用户通过手机更容易获取到自己所需的服务。可以在操作系统层面实现用户需求与应用服务间的无缝连接,提升用户的使用体验和应用服务的转化效率,同时支持生成桌面图标等留存能力。

Framework:JS 应用框架层,主要提供了基础的页面组件、页面路由管理、数据绑定以及原生接口等功能。

JS Engine:负责解释页面标签并生成相应的 DOM 树,同时将渲染操作 RenderAction 发送给 HybridBridge

HybridBridge:接收 RenderAction,调用系统原生功能进行渲染

Platform Services:接入三方服务能力,如推送、支付、微信/微博/qq 账户、统计等

渲染流程

框架首先加载 manifest.json 读取应用配置信息,然后读取 app.ux 文件读取其中的公共库信息; 接下来会加载需要展示的 page.ux,也就是我们编写的页面,通过对页面组件、样式的计算,生成相应的 DOM 树; 最后将 DOM 树映射成 Android 原生的 View 树,并在 Activity 的 ContentView 中加载,完成整个渲染流程。

在应用程序开发中,"应用的渲染流程"通常指的是应用程序中负责图形渲染的具体流程和步骤。这主要涉及到将应用程序中的图形元素、界面效果或者动画等内容以图像的形式呈现在屏幕上的过程。
具体来说,应用的渲染流程可以包括以下几个方面:

  1. 数据准备:在渲染之前,需要准备好需要呈现的图形数据,可能包括3D模型、纹理、着色器程序等。
  2. 场景构建:根据应用的需求,构建需要呈现的场景,包括摆放模型、设置光照、材质等。
  3. 几何处理和变换:对场景中的几何数据进行变换和处理,将其转换为屏幕空间的坐标,并进行投影等处理。
  4. 着色和光照:确定每个像素的颜色值,考虑光照、材质等因素,为场景中的物体赋予逼真的外观。
  5. **图像合成:**将经过着色处理后的图像进行合成,处理透明度、深度测试等,生成最终的屏幕图像。
  6. 显示:将渲染好的图像显示到屏幕上,使用户能够看到最终的视觉效果。

应用的渲染流程在不同类型的应用程序中可能有所不同,例如游戏应用会涉及到实时渲染和交互,而数据可视化应用可能更注重数据的准确性和可视化效果。因此,应用的渲染流程需要根据具体的应用需求和场景进行设计和实现,以达到良好的用户体验和视觉效果。

目前从一些媒体的现场视频演示和体验来看,系统的动画效果挺不错,流畅度也很可。

hapjs 项目是由开放原子开源基金会孵化及运营的开源项目,是快应用标准的开源实现,是基于智能硬件平台的轻型应用形态,由多智能硬件厂商组成的快应用联盟联合制定标准共同驱动。