chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

OpenHarmony內核標準庫與Linux標準庫有何區(qū)別

鴻蒙系統HarmonyOS ? 來源:oschina ? 作者:恰飯君 ? 2020-10-21 14:41 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本文描述了 OpenHarmony 內核承載的標準庫與 Linux 標準庫之間存在的關鍵差異。

進程

OpenHarmony 用戶態(tài)進程優(yōu)先級只支持靜態(tài)優(yōu)先級且用戶態(tài)可配置的優(yōu)先級范圍為10(最高優(yōu)先級)-31(最低優(yōu)先級)。

OpenHarmony 用戶態(tài)線程優(yōu)先級只支持靜態(tài)優(yōu)先級且用戶態(tài)可配置的優(yōu)先級范圍為0(最高優(yōu)先級)-31(最低優(yōu)先級)。

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目錄。

用戶目錄:用戶可以在該目錄下進行文件創(chuàng)建、讀寫,但不能進行設備掛載。用戶目錄指/storage目錄。

除系統目錄與用戶目錄之外,用戶可以自行創(chuàng)建文件夾進行設備的掛載。但是要注意,已掛載的文件夾及其子文件夾不允許重復或者嵌套掛載,非空文件夾不允許掛載。

信號

信號默認行為不支持STOP、CONTINUE、COREDUMP功能。

無法通過信號喚醒正在睡眠狀態(tài)(舉例:進程調用sleep函數進入睡眠)的進程。原因:信號機制無喚醒功能,當且僅當進程被CPU調度運行時才能處理信號內容。

進程退出后會發(fā)送SIGCHLD給父進程,發(fā)送動作無法取消。

信號僅支持1-30號信號,接收方收到多次同一信號,僅執(zhí)行一次回調函數。

Time

OpenHarmony當前時間精度以tick計算,系統默認10ms/tick。sleep、timeout系列函數時間誤差<=20ms。
編輯:hfy

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯系本站處理。 舉報投訴
  • cpu
    cpu
    +關注

    關注

    68

    文章

    11080

    瀏覽量

    217114
  • Linux
    +關注

    關注

    87

    文章

    11511

    瀏覽量

    213836
  • OpenHarmony
    +關注

    關注

    29

    文章

    3854

    瀏覽量

    18626
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    stm32用hal標準什么區(qū)別

    stm32用hal標準什么區(qū)別
    發(fā)表于 07-20 08:20

    HAL標準的原理區(qū)別

    HAL的學習HAL標準的原理區(qū)別串口通信實驗包含的文件區(qū)別具體代碼
    發(fā)表于 07-29 08:48

    標準和HAL區(qū)別

    ,程序癱瘓了,所以今天咱們來看看標準和HAL區(qū)別,各個他的優(yōu)點在哪里。
    發(fā)表于 08-04 08:22

    CMSIS標準層次關系

    1、CMSIS標準層次關系基于Context系列芯片采用的內核都是相同的,區(qū)別主要為核外的片上外設的差異,而這些差異卻導致軟件在同內核
    發(fā)表于 08-13 06:37

    STM32標準和HAL哪些不同

    STM32標準和HAL哪些不同?標準和HAL
    發(fā)表于 10-21 07:44

    STM32 HAL標準區(qū)別有哪些

    STM32的開發(fā)方式哪幾種?怎樣去安裝HAL固件呢?STM32 HAL標準
    發(fā)表于 10-25 07:49

    HAL標準哪些區(qū)別

    什么是HAL?標準又是什么?HAL標準
    發(fā)表于 10-26 06:54

    請問STM32 HAL標準區(qū)別是什么?

    請問STM32 HAL標準區(qū)別是什么?
    發(fā)表于 11-25 08:43

    STM32F103C8T6標準的USART2是怎樣發(fā)送程序的

    STM32F103C8T6標準和STM32F4標準區(qū)
    發(fā)表于 12-13 06:12

    OpenHarmony內核學習[1]--單獨編譯OpenHarmony標準系統內核

    OpenHarmony標準系統類設備(參考內存≥128MiB),OpenHarmony選擇Linux內核作為
    發(fā)表于 02-03 10:46

    請問標準外設和HAL區(qū)別是什么?

    標準外設和HAL區(qū)別是什么?
    發(fā)表于 10-23 08:01

    STM32 HAL標準區(qū)別

    ??相比較早幾年使用標準開發(fā)來講,最近幾年HAL的使用是越來越多,那么我們開發(fā)應當使用哪一種呢,本文著重介紹常用的幾種開發(fā)方式及相互之間的區(qū)別,白貓也好、黑貓也好,抓到耗子就是好貓
    的頭像 發(fā)表于 03-22 09:13 ?1.6w次閱讀

    總結移植三方OpenHarmony的經驗

    三方主要是基于標準 Linux 系統的 c/c++ 開源,所以三方的移植工作,首先是在標準
    的頭像 發(fā)表于 05-07 15:52 ?7108次閱讀

    STM32 HAL的功能和使用方法 STM32 HAL標準區(qū)別

    和可維護性,從而節(jié)省開發(fā)成本和時間。STM32 HAL是STM32系列芯片的HAL,由ST公司提供和維護。下面將介紹STM32 HAL的功能、使用方法以及與標準
    發(fā)表于 08-08 18:21 ?6365次閱讀

    HAL標準區(qū)別 HAL與CMSIS的關系

    在嵌入式系統開發(fā)中,HAL(硬件抽象層)標準是兩種常用的軟件,它們在功能和使用場景上有所不同。 1. 標準
    的頭像 發(fā)表于 12-02 14:02 ?3267次閱讀