当前位置: 首页 > news >正文

杭州网站建设品牌html购物网站设计论文

杭州网站建设品牌,html购物网站设计论文,进入公众号主页,网络营销是什么专业的课往期知识点记录: 鸿蒙(HarmonyOS)应用层开发(北向)知识点汇总 鸿蒙(OpenHarmony)南向开发保姆级知识点汇总~ 子系统开发内核 轻量系统内核(LiteOS-M) 轻量系统内核&#…

往期知识点记录:

  • 鸿蒙(HarmonyOS)应用层开发(北向)知识点汇总
  • 鸿蒙(OpenHarmony)南向开发保姆级知识点汇总~
  • 子系统开发内核
  • 轻量系统内核(LiteOS-M)
  • 轻量系统内核(LiteOS-M)【中断管理】
  • 轻量系统内核(LiteOS-M)【任务管理】
  • 轻量系统内核(LiteOS-M)【内存管理】
  • 轻量系统内核(LiteOS-M)【内核通信机制】
  • 轻量系统内核(LiteOS-M)【时间管理】
  • 轻量系统内核(LiteOS-M)【扩展组件】
  • 轻量系统内核(LiteOS-M)【内存调测】
  • 轻量系统内核(LiteOS-M)【异常调测】
  • 轻量系统内核(LiteOS-M)【Trace调测】
  • 轻量系统内核(LiteOS-M)【LMS调测】
  • 轻量系统内核(LiteOS-M)【SHELL】
  • 小型系统内核(LiteOS-A)【概述】
  • 小型系统内核(LiteOS-A)【内核启动】
  • 小型系统内核(LiteOS-A)【中断及异常处理】
  • 标准系统内核(Linux)【New IP内核协议栈】
  • 标准系统内核(Linux)【内核增强特性 > 任务调度】
  • 持续更新中……

系统调用

基本概念

OpenHarmony LiteOS-A实现了用户态与内核态的区分隔离,用户态程序不能直接访问内核资源,而系统调用则为用户态程序提供了一种访问内核资源、与内核进行交互的通道。

运行机制

如图1所示,用户程序通过调用System API(系统API,通常是系统提供的POSIX接口)进行内核资源访问与交互请求,POSIX接口内部会触发SVC/SWI异常,完成系统从用户态到内核态的切换,然后对接到内核的Syscall Handler(系统调用统一处理接口)进行参数解析,最终分发至具体的内核处理函数。

图1 系统调用示意图

Syscall Handler的具体实现在kernel/liteos_a/syscall/los_syscall.c中OsArmA32SyscallHandle函数,在进入系统软中断异常时会调用此函数,并且按照kernel/liteos_a/syscall/syscall_lookup.h中的清单进行系统调用的入参解析,执行各系统调用最终对应的内核处理函数。

说明:

  • 系统调用提供基础的用户态程序与内核的交互功能,不建议开发者直接使用系统调用接口,推荐使用内核提供的对外POSIX接口,若需要新增系统调用接口,详见开发指导。

  • 内核向用户态提供的系统调用接口清单详见kernel/liteos_a/syscall/syscall_lookup.h,内核相应的系统调用对接函数清单详见kernel/liteos_a/syscall/los_syscall.h。

开发指导

开发流程

新增系统调用的典型开发流程如下:

  1. 在LibC库中确定并添加新增的系统调用号。
  2. 在LibC库中新增用户态的函数接口声明及实现。
  3. 在内核系统调用头文件中确定并添加新增的系统调用号及对应内核处理函数的声明。
  4. 在内核中新增该系统调用对应的内核处理函数。

编程实例

示例代码

  1. 在LibC库syscall.h.in中新增系统调用号 如下所示,其中__NR_new_syscall_sample为新增系统调用号:
    .../* 当前现有的系统调用清单 *//* OHOS customized syscalls, not compatible with ARM EABI */#define __NR_OHOS_BEGIN         500#define __NR_pthread_set_detach (__NR_OHOS_BEGIN + 0)#define __NR_pthread_join       (__NR_OHOS_BEGIN + 1)#define __NR_pthread_deatch     (__NR_OHOS_BEGIN + 2)#define __NR_create_user_thread  (__NR_OHOS_BEGIN + 3)#define __NR_processcreate       (__NR_OHOS_BEGIN + 4)#define __NR_processtart        (__NR_OHOS_BEGIN + 5)#define __NR_printf             (__NR_OHOS_BEGIN + 6)#define __NR_dumpmemory         (__NR_OHOS_BEGIN + 13)#define __NR_mkfifo             (__NR_OHOS_BEGIN + 14)#define __NR_mqclose            (__NR_OHOS_BEGIN + 15)#define __NR_realpath           (__NR_OHOS_BEGIN + 16)#define __NR_format             (__NR_OHOS_BEGIN + 17)#define __NR_shellexec          (__NR_OHOS_BEGIN + 18)#define __NR_ohoscapget         (__NR_OHOS_BEGIN + 19)#define __NR_ohoscapset         (__NR_OHOS_BEGIN + 20)#define __NR_new_syscall_sample (__NR_OHOS_BEGIN + 21) /* 新增的系统调用号 __NR_new_syscall_sample:521 */#define __NR_syscallend         (__NR_OHOS_BEGIN + 22)...
  1. 在LibC库中新增用户态接口的声明与实现
    #include "stdio_impl.h"#include "syscall.h".../* 新增系统调用用户态的接口实现 */void newSyscallSample(int num){printf("user mode: num = %d\n", num);__syscall(SYS_new_syscall_sample, num);return;}
  1. 在内核系统调用头文件中新增系统调用号 如下所示,在third_party/musl/porting/liteos_a/kernel/include/bits/syscall.h文件中,__NR_new_syscall_sample为新增系统调用号。
    .../* 当前现有的系统调用清单 *//* OHOS customized syscalls, not compatible with ARM EABI */#define __NR_OHOS_BEGIN         500#define __NR_pthread_set_detach (__NR_OHOS_BEGIN + 0)#define __NR_pthread_join       (__NR_OHOS_BEGIN + 1)#define __NR_pthread_deatch     (__NR_OHOS_BEGIN + 2)#define __NR_create_user_thread  (__NR_OHOS_BEGIN + 3)#define __NR_processcreate       (__NR_OHOS_BEGIN + 4)#define __NR_processtart        (__NR_OHOS_BEGIN + 5)#define __NR_printf             (__NR_OHOS_BEGIN + 6)#define __NR_dumpmemory         (__NR_OHOS_BEGIN + 13)#define __NR_mkfifo             (__NR_OHOS_BEGIN + 14)#define __NR_mqclose            (__NR_OHOS_BEGIN + 15)#define __NR_realpath           (__NR_OHOS_BEGIN + 16)#define __NR_format             (__NR_OHOS_BEGIN + 17)#define __NR_shellexec          (__NR_OHOS_BEGIN + 18)#define __NR_ohoscapget         (__NR_OHOS_BEGIN + 19)#define __NR_ohoscapset         (__NR_OHOS_BEGIN + 20)#define __NR_new_syscall_sample (__NR_OHOS_BEGIN + 21) /* 新增的系统调用号 __NR_new_syscall_sample:521 */#define __NR_syscallend         (__NR_OHOS_BEGIN + 22)...

在kernel/liteos_a/syscall/syscall_lookup.h中,增加一行SYSCALL_HAND_DEF(__NR_new_syscall_sample, SysNewSyscallSample, void, ARG_NUM_1):

    .../* 当前现有的系统调用清单 */SYSCALL_HAND_DEF(__NR_chown, SysChown, int, ARG_NUM_3)SYSCALL_HAND_DEF(__NR_chown32, SysChown, int, ARG_NUM_3)#ifdef LOSCFG_SECURITY_CAPABILITYSYSCALL_HAND_DEF(__NR_ohoscapget, SysCapGet, UINT32, ARG_NUM_2)SYSCALL_HAND_DEF(__NR_ohoscapset, SysCapSet, UINT32, ARG_NUM_1)#endif/* 新增系统调用 */SYSCALL_HAND_DEF(__NR_new_syscall_sample, SysNewSyscallSample, void, ARG_NUM_1)...
  1. 在内核中新增内核该系统调用对应的处理函数 如下所示,在kernel/liteos_a/syscall/los_syscall.h中,SysNewSyscallSample为新增系统调用的内核处理函数声明:
    .../* 当前现有的系统调用内核处理函数声明清单 */extern int SysClockSettime64(clockid_t clockID, const struct timespec64 *tp);extern int SysClockGettime64(clockid_t clockID, struct timespec64 *tp);extern int SysClockGetres64(clockid_t clockID, struct timespec64 *tp);extern int SysClockNanoSleep64(clockid_t clk, int flags, const struct timespec64 *req, struct timespec64 *rem);extern int SysTimerGettime64(timer_t timerID, struct itimerspec64 *value);extern int SysTimerSettime64(timer_t timerID, int flags, const struct itimerspec64 *value, struct itimerspec64 *oldValue);/* 新增的系统调用内核处理函数声明 */extern void SysNewSyscallSample(int num);...

新增的系统调用的内核处理函数实现如下:

    include "los_printf.h".../* 新增系统调用内核处理函数的实现 */void SysNewSyscallSample(int num){PRINTK("kernel mode: num = %d\n", num);return;}

结果验证:

用户态程序调用newSyscallSample(10)接口,得到输出结果如下:

/* 用户态接口与内核态接口均有输出,证明系统调用已使能 */
user mode: num = 10
kernel mode: num = 10

经常有很多小伙伴抱怨说:不知道学习鸿蒙开发哪些技术?不知道需要重点掌握哪些鸿蒙应用开发知识点?

为了能够帮助到大家能够有规划的学习,这里特别整理了一套纯血版鸿蒙(HarmonyOS Next)全栈开发技术的学习路线,包含了鸿蒙开发必掌握的核心知识要点,内容有(ArkTS、ArkUI开发组件、Stage模型、多端部署、分布式应用开发、WebGL、元服务、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、OpenHarmony驱动开发、系统定制移植等等)鸿蒙(HarmonyOS NEXT)技术知识点。

在这里插入图片描述

《鸿蒙 (Harmony OS)开发学习手册》(共计892页):https://gitcode.com/HarmonyOS_MN/733GH/overview

如何快速入门?

1.基本概念
2.构建第一个ArkTS应用
3.……

鸿蒙开发面试真题(含参考答案):https://gitcode.com/HarmonyOS_MN/733GH/overview

在这里插入图片描述

《OpenHarmony源码解析》:

  • 搭建开发环境
  • Windows 开发环境的搭建
  • Ubuntu 开发环境搭建
  • Linux 与 Windows 之间的文件共享
  • ……
  • 系统架构分析
  • 构建子系统
  • 启动流程
  • 子系统
  • 分布式任务调度子系统
  • 分布式通信子系统
  • 驱动子系统
  • ……

图片

OpenHarmony 设备开发学习手册:https://gitcode.com/HarmonyOS_MN/733GH/overview

图片
在这里插入图片描述

http://www.yayakq.cn/news/948155/

相关文章:

  • 一键制作单页网站常德网站公司
  • 汕头市潮南区紧急提醒网站优化排名软件哪些最好
  • 杭州制造业企业做网站网站建设为风险分析
  • 现在最流行的网站推广方式有哪些wordpress图册主题
  • 北京网站设计公司jx成都柚米科技15网站被黑能黑多长时间
  • 做网站会什么WordPress moe acg
  • 套模板的网站为什么排名做不上去wordpress 动作
  • 专业做网站和小程序微信公众号第三方平台有哪些
  • 网站主页不收录网站开发工程师的要求
  • 做电影网站怎么降低内存制作网站需要哪些知识
  • 化纤公司网站建设成品视频直播软件推荐哪个好一点非周马加
  • 咸阳做网站的公司有哪些长沙建设网站企业
  • 长春网站制作最新招聘信息如何建立营销网络
  • 如何让百度搜到自己的网站找客源用哪个软件好
  • 网站管理办法制度网站怎么做构成
  • 昆山网站建设详细方案免费wordpress主题分享
  • 贵阳网站建设方案维护在实际工作中最常用的网页制作工具
  • 找家里做的工作上哪个网站建设银行官方网网址
  • 友汇网网站建设管理后台网站嵌入式软件开发工程师是做什么的
  • 网站建设外包工作采集1024图片到wordpress
  • 苏州网站开发公司有哪些id注册网站
  • 做旅游网站毕业设计做服装哪个网站图片多
  • 河西做网站在网上做广告怎么做
  • 天津做app和网站的公司成品网站seo
  • 做公司网站的公司有哪些广州网站制作实力乐云seo
  • 手机自适应网站建设六安论坛六安杂谈
  • 北京企业网站seo平台wordpress文章不能分段
  • 网站开发有没有前途郑州代理记账
  • 成都分类信息网站开发佛山做seo推广公司
  • 400电话申请网站源码程序深圳注册公司条件