首页 文章 精选 留言 我的

精选列表

搜索[鸿蒙开发],共10000篇文章
优秀的个人博客,低调大师

鸿蒙内核标准库与 Linux 标准库的差异

本文描述了 OpenHarmony 内核承载的标准库与 Linux 标准库之间存在的关键差异。 进程 OpenHarmony 用户态进程优先级只支持静态优先级且用户态可配置的优先级范围为10(最高优先级)-31(最低优先级)。 OpenHarmony 用户态线程优先级只支持静态优先级且用户态可配置的优先级范围为0(最高优先级)-31(最低优先级)。 OpenHarmony 调度策略支持 SCHED_RR 和 SCHED_FIFO。 sched_yield() 为进程主动放弃 CPU;thrd_yield() 为线程主动放弃 CPU。 内存 与 Linux mmap 的差异 mmap接口原型为:void *mmap (void *addr, size_t length, int prot, int flags, int fd, off_t offset)。 其中,参数fd的生命周期实现与Linux glibc存在差异。具体体现在,glibc在成功调用mmap进行映射后,可以立即释放fd句柄。在OpenHarmony内核中,不允许用户在映射成功后立即关闭相关fd,只允许在取消映射munmap后再进行fd的close操作。如果用户不进行fd的close操作,操作系统将在进程退出时对该fd进行回收。 代码举例 Linux目前支持的情况如下: int main(int argc, char *argv[]) { int fd; void *addr = NULL; ... fd = open(argv[1], O_RDONLY); if (fd == -1){ perror("open"); exit(EXIT_FAILURE); } addr = mmap(NULL, length, PROT_READ, MAP_PRIVATE, fd, offset); if (addr == MAP_FAILED) { perror("mmap"); exit(EXIT_FAILURE); } close(fd); /* close immediately, OpenHarmony do not support this way */ ... exit(EXIT_SUCCESS); } OpenHarmony支持的情况如下: int main(int argc, char *argv[]) { int fd; void *addr = NULL; ... fd = open(argv[1], O_RDONLY); if (fd == -1){ perror("open"); exit(EXIT_FAILURE); } addr = mmap(NULL, length, PROT_READ, MAP_PRIVATE, fd, offset); if (addr == MAP_FAILED) { perror("mmap"); exit(EXIT_FAILURE); } ... munmap(addr, length); close(fd); /* close after munmap */ exit(EXIT_SUCCESS); } 文件系统 **系统目录:**用户无法对其进行修改,或是设备挂载。包含/dev,/proc,/app,/bin,/data,/etc,/lib,/system,/usr目录。 用户目录:用户可以在该目录下进行文件创建、读写,但不能进行设备挂载。用户目录指/storage目录。 除系统目录与用户目录之外,用户可以自行创建文件夹进行设备的挂载。但是要注意,已挂载的文件夹及其子文件夹不允许重复或者嵌套挂载,非空文件夹不允许挂载。 信号 信号默认行为不支持STOP、CONTINUE、COREDUMP功能。 无法通过信号唤醒正在睡眠状态(举例:进程调用sleep函数进入睡眠)的进程。原因:信号机制无唤醒功能,当且仅当进程被CPU调度运行时才能处理信号内容。 进程退出后会发送SIGCHLD给父进程,发送动作无法取消。 信号仅支持1-30号信号,接收方收到多次同一信号,仅执行一次回调函数。 Time OpenHarmony当前时间精度以tick计算,系统默认10ms/tick。sleep、timeout系列函数时间误差<=20ms。 更多详情请查看:点击查看

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册