软件工程2021:第2次作业—— 谈谈鸿蒙操作系统

    华为为了打破美国操作系统垄断,并且希望能够用一套系统,解决所有硬件设备装载系统问题,告别“不同硬件装不同系统”而开发了鸿蒙操作系统。基于微内核,分布式及跨终端的特性,鸿蒙操作系统能更好的适应物联网时代的需求。鸿蒙操作系统于2012年开始规划,2019年申请商标,同年,实行开源。2020年,鸿蒙系统升级为2.0版本。2021年,鸿蒙正式上线。鸿蒙操作系统的应用不光是手机,它更主要是为物联网开发的操作系统,主要用于自动驾驶,远程医疗等低时延的场景。华为之后的发展趋势会将华为的生态从手机,扩展到平板,电视,音响,眼镜,手表,车机,耳机,PC八大业务,并延伸到移动办公、智能家居、运动健康、影音娱乐及智能出行等众多业务板块,构建一个完善的5G服务生态体系。这背后,是基于鸿蒙系统的全域的物联网体系。

    欲戴王冠,必承其重。随着鸿蒙系统的出世,有一部分人认为鸿蒙系统是假创新,只是一个基于安卓系统的套壳。首先,我们要承认的是鸿蒙的部分代码的却是基于ASOP,但是鸿蒙并没有抄袭,它仍然是中国的一个创新系统。ASOP这个项目里,任何机构和企业都有义务为开源社区贡献代码,也能够使用和下载开源代码,并基于开源项目做二次开发。所以ASOP的代码并不全是谷歌写的,华为也是ASOP的重要贡献者。所以这本身就不存在所谓的抄袭问题。其次创新并不是推倒前人的一切,取其精华去其糟粕,安卓能够发展到现在,毫无疑问,有它的独特优秀之处,而鸿蒙系统的创新不应该完全摒弃安卓系统,这本身是不现实也不明智的,即使是IOS与安卓他们也有一定的相同之处。在我看来创新并不是完全创造出一个崭新的东西,而是以前人的优秀为基础,加之自己的创意,令它进步。至于很多人诟病的代码复用的问题,首先大家本身都是系统,本身就不可能完全摒弃,其次在大体上鸿蒙与安卓是不同的,对于鸿蒙来说,手机只是很小一部分,它是作为一个物联网来发展的,所以从本质来说,就不可能抄袭。

“···

int up_fbinitialize(int display)
{
    
}

void up_fbuninitialize(int display)
{
   
}

struct fb_vtable_s *up_fbgetvplane(int display, int vplane)
{
    
}

int FrameBufferFunc(void)
{
    int ret;
    int fd = -1;
    struct hifb_info info;
    char *pShowScreen = NULL;

    ret = fb_register(0, 0); 
    if (ret != 0) {
        return -1;
    }

    fd = open(file, O_RDWR, 0);  
    if (fd < 0) {
        return -1;
    }
 
    if (ioctl(fd, FBIOGET_SCREENINFO_HIFB, &info) < 0) {
        return -1;
    }
    info.vinfo.xres = 1920;
    info.vinfo.yres = 1080;
    info.oinfo.sarea.w = 1920;
    info.oinfo.sarea.h = 1080;
    info.oinfo.bpp = 16;
    info.activate = 0;
    info.vinfo.fmt = HIFB_FMT_ARGB1555;

    if (ioctl(fd, FBIOPUT_SCREENINFO_HIFB, &info) < 0) {
        return -1;
    }

    if (ioctl(fd, FBIOGET_SCREENINFO_HIFB, &info) < 0) {
        return -1;
    }

    pShowScreen = mmap(HI_NULL, info.oinfo.fblen, PROT_READ | PROT_WRITE, MAP_SHARED, pstInfo->fd, 0);
    if (pShowScreen == -1) {
        return -1;
    }

  

    munmap(pShowScreen, info.oinfo.fblen); 
  
    close(fd);

    ret = fb_unregister(0);
    if (ret != 0) {
        return -1;
    }
}

···”

好的代码风格:稳定统一的接口(可以独立维护私有驱动以及服务,不需要跟内核源码绑定。

                         内核精简,可以进行形式化验证,利用数学证明内核的安全性。

                         内核安全性提高。

坏的代码风格:对互相之间存在复杂调用关系的系统服务,难以设计通信接口。

                         使用一些频繁使用的系统服务时,比如网络收发数据,造成的进程上下文切换对操作系统来说也是一个负担;

                         由于系统服务高度模块化,系统服务之间存在大量的内存复制;

 

posted @ 2021-09-06 15:37  大数据沈一凡  阅读(195)  评论(1编辑  收藏  举报