tasks.md 56.2 KB
Newer Older
E
Eli Ma 已提交
1
### openEuler 社区任务列表
E
Eli Ma 已提交
2

E
Eli Ma 已提交
3
#### [No.1 - 为 openEuler 添加 Xfce 桌面环境并能够运行在树莓派 4B 上](https://gitee.com/openeuler/marketing/issues/I1H8G3)
E
Eli Ma 已提交
4

E
Eli Ma 已提交
5
_描述_ 树莓派(英语:Raspberry Pi)是基于 Linux 的单片机电脑,目的是以低价硬件及自由软件促进学校的基本计算机科学教育。openEuler 树莓派版本目前没有桌面环境。本项目的目标是为树莓派添加桌面支持,即适配桌面环境 Xfce 到 openEuler 树莓派 4B。
E
Eli Ma 已提交
6

E
Eli Ma 已提交
7
_难度_
E
Eli Ma 已提交
8

E
Eli Ma 已提交
9
_导师_  @woqidaideshi
E
Eli Ma 已提交
10

E
Eli Ma 已提交
11
_联系方式_  yafen@iscas.ac.cn
E
Eli Ma 已提交
12

E
Eli Ma 已提交
13
_任务链接_ https://gitee.com/openeuler/marketing/issues/I1H8G3
E
Eli Ma 已提交
14

E
Eli Ma 已提交
15
#### [No.2 - 精简 openEuler 的树莓派 4B 镜像体积小于 500 MiB](https://gitee.com/openeuler/marketing/issues/I1H8H9)
E
Eli Ma 已提交
16

E
Eli Ma 已提交
17
_描述_ 树莓派(英语:Raspberry Pi)是基于 Linux 的单片机电脑,目的是以低价硬件及自由软件促进学校的基本计算机科学教育。树莓派需要刷写文件系统镜像来实现启动,镜像文件常常都较大,不利于快速分发和安装。本项目目标是为制作压缩前小于 500 MiB 的 openEuler 树莓派 4B 镜像,并能够通过 DNF 或 YUM等安装软件源中更多的软件进来。镜像尽可能小。
E
Eli Ma 已提交
18

E
Eli Ma 已提交
19
_难度_
E
Eli Ma 已提交
20

E
Eli Ma 已提交
21
_导师_ @woqidaideshi
E
Eli Ma 已提交
22

E
Eli Ma 已提交
23
_联系方式_ yafen@iscas.ac.cn
E
Eli Ma 已提交
24

E
Eli Ma 已提交
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598
_任务链接_ https://gitee.com/openeuler/marketing/issues/I1H8H9

#### [No.3 - 为 openEuler 树莓派 4B 镜像提供 UEFI 启动支持](https://gitee.com/openeuler/marketing/issues/I1H8HV)

_描述_ 树莓派(英语:Raspberry Pi)是基于 Linux 的单片机电脑,目的是以低价硬件及自由软件促进学校的基本计算机科学教育。为了降低成本,树莓派省去了传统计算机用来存储引导加载程序的板载存储器(BIOS), 直接把引导程序放在了SD卡中。目前树莓派 Pi 4 引入了 UEFI,不过目前处于 EXPERIMENTAL 状态。本项目目标是为树莓派引入 UEFI Firmware 来支持 UEFI 启动 openEuler 树莓派 4B。

_难度_

_导师_ @woqidaideshi

_联系方式_ yafen@iscas.ac.cn

_任务链接_ https://gitee.com/openeuler/marketing/issues/I1H8HV

#### [No.4 - 在 openEuler aarch64 架构上完成 Tensorflow 基于公开数据集完成 mnist 训练过程](https://gitee.com/openeuler/marketing/issues/I1HR7W)

_描述_ 没有软件工程师不知道 Hello world,也没有 AI 工程师不知道 mnist 。OpenEuler 上对 AI 的支持也正如火如荼进行,为了让大家熟悉在 openEuler 上 AI 的软件栈和开发流程,请从源代码出发构建 Tensorflow 的 aarch64 架构安装包(包括 pip 和 yum ),用这些安装包基于公开的数据集完成 mnist 的训练过程。

_难度_

_导师_ @sinever

_联系方式_ sinever@126.com

#### [No.5 - 在 openEuler aarch64 架构上完成 PyTorch 基于公开数据集完成 mnist 训练过程](https://gitee.com/openeuler/marketing/issues/I1HR9C)

_描述_ 没有软件工程师不知道 Hello world,也没有 AI 工程师不知道 mnist 。OpenEuler 上对 AI 的支持也正如火如荼进行,为了让大家熟悉在 openEuler 上 AI 的软件栈和开发流程,请从源代码出发构建 PyTorch 的 aarch64 架构安装包(包括 pip 和 yum ),用这些安装包基于公开的数据集完成 mnist 的训练过程。

_难度_

_导师_ @sinever

_联系方式_ sinever@126.com

_任务链接_ https://gitee.com/openeuler/marketing/issues/I1HR9C

#### [No.6 - 虚拟化场景下的类似 top 点调测工具 virttop](https://gitee.com/openeuler/marketing/issues/I1HVM7)

_描述_ 云场景,性能类问题无法快速定位定界,缺少定位手段。例如CPU性能不足,网络性能抖动等常见问题定位周期长,定位手段少。CPU超分场景经常出现虚拟机的 vcpu争抢,需要提供vcpu使用监控手段,期望能够提供一套类似top的实时监测工具。

_难度_

_导师_ 

- @zhanghailiang_lucky
- @yorifang

_联系方式_

- zhang.zhanghaliang@huawei.com
- fangying1@huawei.com

_任务链接_ https://gitee.com/openeuler/marketing/issues/I1HVM7

#### [No.7 - 构建可运行 iSulad 点容器镜像,并推送到 Docker Hub 镜像仓库](https://gitee.com/openeuler/marketing/issues/I1HVZF)

_描述_ 当前 Docker Hub 等镜像仓库中无 iSulad 镜像,要求制作能够运行 iSulad 的容器镜像,并推送到 Docker Hub 上,能够使用 Docker、iSulad 下载该镜像,并能够启动 iSulad 。

_难度_

_导师_ @lifeng2221dd1

_联系方式_ lifeng68@huawei.com

_任务链接_ https://gitee.com/openeuler/marketing/issues/I1HVZF

#### [No.8 - C 语言 JSON 解析转换代码生成框架](https://gitee.com/openeuler/marketing/issues/I1HWB3)

_描述_  当前 iSulad 项目中,存在大量的json相关的操作(C结构体转换为JSON字符串,JSON字符串转换为C结构体)。由于C语言没有反射机制,导致无法动态解析JSON字符串。因此,需要一个生成解析和转换代码的框架。而且该框架可以支持多种json解析库,例如c-json,yajl等等。

_难度_

_导师_  @haozi007

_联系方式_  liuhao27@huawei.com

_任务链接_ https://gitee.com/openeuler/marketing/issues/I1HWB3

#### [No.9 - iSula 相关项目支持编译 Debian 包](https://gitee.com/openeuler/marketing/issues/I1HWDZ)

_描述_  当前 iSula 相关项目,只支持 rpm 编译方式(提供了spec文件)。但是 Debian 相关的系统上面需要源码编译,所以存在编译不方便的问题。因此,需要提供 Debian 打包的支持。

_难度_ 简单

_导师_ @haozi007

_联系方式_ liuhao27@huawei.com

_任务链接_ https://gitee.com/openeuler/marketing/issues/I1HWDZ

#### [No.10 - iSula 项目内存池设计与实现](https://gitee.com/openeuler/marketing/issues/I1HX3G)

_描述_ 当前 iSula 相关项目无内存池设计,程序在堆上频繁分配和释放内存,容易造成系统出现大量内存碎片,同时也降低了内存的利用率,也造成了 iSulad 性能的损失,因此,iSulad 需要设计一个高效高性能且可应对高并发的内存池设计。

_难度_

_导师_ @jingwoo

_联系方式_ wujing50@huawei.com

_任务链接_ https://gitee.com/openeuler/marketing/issues/I1HX3G

#### [No.11 - iSula 项目线程池设计与实现](https://gitee.com/openeuler/marketing/issues/I1HX5Y)

_描述_ 当前 iSula 相关项目无线程池设计,程序存在频繁创建和销毁线程的场景,CPU 资源开销大, 效率也相对低下,因此,iSulad 需要设计一个高性能的线程池,能支持自动扩容与收缩的动态资源分配。

_难度_

_导师_  @jingwoo

_联系方式_ wujing50@huawei.com

_任务链接_ https://gitee.com/openeuler/marketing/issues/I1HX5Y

#### [No.12 - iSula-kits 支持在多个 OS 发型版上运行](https://gitee.com/openeuler/marketing/issues/I1HXE7)
 
_描述_ iSula-kits 为 iSula 容器全栈的工具集,包括镜像构建工具、容器升级工具等。当前 iSula-kits 只支持在 openEuler OS 上运行,我们需要将 iSula-kits 工具集稳定可靠运行在其他主流的发行版OS上。推荐优先完成:CentOS,Ubuntu,openSuse,Fedora,Debian 的最新版本。
 
_难度_
 
_导师_ 

- [@zklei](https://gitee.com/leizhongkai)  
- [@zhangsong234](https://gitee.com/zhangsong234)
 
_联系方式_ 

- leizhongkai@huawei.com
- zhangsong34@huawei.com

_任务链接_ https://gitee.com/openeuler/marketing/issues/I1HXE7

#### [No. 13 - iSula 容器镜像构建工具支持多存储驱动](https://gitee.com/openeuler/marketing/issues/I1HXS9)
 
_描述_ iSula-kits 项目中的容器镜像构建工具 isula-build 目前底层驱动只支持 Overlay2。在一些特性场景下块设备具有独特的性能优势,例如:大文件读写等场景。我们需要增加一种后端的存储驱动:devicemapper,并且可以通过配置来选择驱动。
 
_难度_
 
_导师_ [@jingxiaolu](https://gitee.com/jingxiaolu)
 
_联系方式_ jingxiaolu@huawei.com

_任务链接_ https://gitee.com/openeuler/marketing/issues/I1HXS9

#### [No. 14 - openEuler 集成 Harbor 项目](https://gitee.com/openeuler/marketing/issues/I1HXBE)

_描述_ Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,可以用来构建企业内部的Docker镜像仓库。容器镜像仓库是云原生中的重要组成部分,因此我们希望参与者能够提供harbor在openEuler上的标准发布软件包,并在社区的基础上能够便捷、快速的让使用者使用harbor组件

_难度_

_导师_ @caihaomin

_联系方式_ caihaomin@huawei.com

_任务链接_ https://gitee.com/openeuler/marketing/issues/I1HXBE

#### [No.15 - 改进 openEuler-Advisor 来支持 openEuler 快速滚动升级](https://gitee.com/openeuler/marketing/issues/I1HXMV)

_描述_ 绝大多数开源软件被集成到 openEuler 中以后,并不需要做额外的修改。比如当前 openEuler 中有 1276 个软件可以直接基于上游社区源码构建。 我们希望改进 openEuler-Advisor,在识别到这类软件有升级以后,可以自动化的完成软件版本更新,并提交 PR。

_难度_

_导师_ @Shinwell_Hu 

_联系方式_ huxinwei@huawei.com

_任务链接_ https://gitee.com/openeuler/marketing/issues/I1HXMV

#### [No.16 - 为 ARM 平台优化开源软件的 CRC 实现](https://gitee.com/openeuler/marketing/issues/I1HYCD)

_描述_ CRC 可以用来检测数据的完整性,在存储、压缩解压缩、通信等领域是被广泛使用的算法,openEuler中就有大量软件使用。鲲鹏平台(兼容ARM v8.1)中全面支持了CRC加速指令,相对软件查表实现,性能有30倍的差异。但是加速指令并没有在软件实现中得到普及。

_难度_

_导师_ @Shinwell_Hu 

_联系方式_ huxinwei@huawei.com

_任务链接_ https://gitee.com/openeuler/marketing/issues/I1HYCD

#### [No.17 - 库函数行为收集器](https://gitee.com/openeuler/marketing/issues/I1I06J)

_描述_

访问控制针对的是应用、被访问的对象以及访问模式。但是,为了做好访问控制,对于一个程序(无论是二进制的还是有源码的),让开发者去逐个搜罗所有可能的访问对象也是很头疼的事,尤其是隐含在所使用的库函数中的访问对象,甚至是隐藏在深层嵌套的函数中的访问对象。【这里不提strace、ltrace类工具,因为那是需要把应用运行起来才能去收集访问对象的。这里关注的是静态获取访问对象。】

比如,Linux系统中有很多本地的小数据库文件(多是纯文本格式的),C库都提供了相应的函数去使用这些数据库。下面简单列出几组:
| 文件  | C函数  | 访问模式  |
|---|---|---|
|/etc/passwd|getpwent()|r/w|
|/etc/group|getgrent()|r/w|
|/etc/shadow|getspnam()|r/w|
|/etc/services|getservent()|r/w|
|/etc/fstab|getmntent()|r/w|
|/etc/hosts|gethostent()|r/w|

如果应用调用了以上函数,就可以确定此应用会操作对应的文件对象。当然,C库中也有并非针对类似数据库对象的函数。

对C库的所有函数构造一个{func, file, access_mode}的映射表(可称为 _函数级访问映射表_ ),就可以帮助开发者挖掘出隐含的访问对象。C库的历史很久了,其中所含函数的行为也基本稳定,相应地,这个函数级访问映射表也应该是稳定的。

很多其它库与C库类似,可以把这种方法推广到其它库上。为这些库建立一个映射表后,可以自动获取应用中隐含的访问对象(至少是部分的),其余的部分可以让开发者自己去补充(开发者对此应该非常了解)。

进一步说,对于一个C源程序,找出其中所含的函数(可能是深层调用的),再借助上述映射表,就可以构建出{app, file, access_mode}这样的 _应用级访问映射表_ ,作为为此应用制定访问控制策略的输入。

本任务的目的就是完成一个工具,实现对这种应用级映射表的自动构建。

具体步骤包括:
1,收集【先只针对C库】  : 收集C库中的所有函数,找出它们要访问或者引用的文件(具有磁盘文件inode的各类对象),形成一个{func, file, access_mode}的映射表;
2,扫描:扫描给定app的源码(C),找出步骤1中可以识别的函数;
3,汇总:基于扫描结果,形成该app的访问映射表{app, file, access_mode}集合。 这个集合不是app的所有访问范围,只是隐含在库函数中的访问范围。【其它明确通过open类函数使用的文件对象可由开发者单独列出】

后续工作:
扩展所考察的库范围,构造一个具有此功能的“专家库”。

_难度_

_导师_ mailofzxf

_联系方式_ mailofzxf@aliyun.com

_任务链接_ https://gitee.com/openeuler/marketing/issues/I1I06J

#### [No. 18 - SVA (Share Virtual Address)引擎](https://gitee.com/openeuler/marketing/issues/I1I1D1)

_标题_ No. 18 - SVA (Share Virtual Address)引擎

_任务描述_ 

现代的 Linux 操作系统中的用户态程序均基于 Virtual Address。不用用户态程序的 Virtual Address 相互独立,即用户态程序独占各自的 Virtual Address Space。当两个或者多个进程进行进程间通信时,通过基于 share memory 的 IPC 机制可以将不同 Virtual Address Space 中的 Virtual Address 指向相同的 physical memory。但 App1 中 “共享内存” 所占用的 Virtual Address 和 App2 中 “共享内存” 所占用 的 Virtual Address 可能并不相同。试想有一个 ‘SVA engine’,通过 ‘SVA engine’ 提供的操作接口,将多个 APP 挂载到 ‘SVA engine’ 上。挂载到 ‘SVA engine’ 上同一个 ‘channel’ 的 APP 将共享 Virtual Address Space 中的一段或者多段虚拟地址。

_难度_

_导师_ [@liliang_euler](https://gitee.com/liliang_euler)

_联系方式_ liliang6@me.com

_任务链接_ https://gitee.com/openeuler/marketing/issues/I1I1D1

#### [No. 19 - LSCA - Linux 系统调用代理](https://gitee.com/openeuler/marketing/issues/I1I1JR)

_任务描述_ Linux 内核提供了系统调用给用户态程序调用。Linux APP 通过系统调用获取 Linux 内核提供的各项服务。对 APP 而言,使用到的系统调用可能只是 Linux 内核提供的全部系统调用集合的一个子集。

基于如下考虑:
> 对一个标准 APP 而言,其一般通过 glibc 提供的对系统调用的封装进行系统调用。那么 LSCA(Linux System Call Agent)
> 期望取代 glibc 完成的功能,针对系统调用,进行自定义的封装。

LSCA 首先接管 APP 的系统调用请求,然后根据配置,完成:

- log 到日志(依据配置,可选)
- 完成真正的 System Call(真正的系统调用**不能够** 通过和 Linux 内核进行交互来完成,特征是,由 Linux 内核提供的系统调用服务需要切换处理器运行模式,而此处提供系统调用服务的是 LSCA daemon 服务,不需要切换处理器运行模式)。

_难度_

_导师_ [@liliang_euler](https://gitee.com/liliang_euler)

_联系方式_ liliang6@me.com

_任务链接_ https://gitee.com/openeuler/marketing/issues/I1I1JR

#### [No. 20 - LUTF - Linux Userspace Task Framework](https://gitee.com/openeuler/marketing/issues/I1I1RK)

_任务描述_ 标准的 Linux 的用户态任务(基本粒度为 Thread)通常由 Linux 内核进行管理和调度。LUTF 是一套**非标准**的任务框架。

LUTF要完成:

- 任务的定义与抽象,典型的,一个任务可以是一个**C语言函数**
- 提供任务的管理接口,提供任务的创建,管理等功能;
- 进行任务的调度;

约束:
> 纯 Linux 用户态实现;
> 同时支持的任务数量不少于一百万;
> 任务的调度支持 FIFO;
> 基于 setjmp 和 longjmp 实现任务切换;
> 基于 signal 实现中断;

_难度_

_导师_ [@liliang_euler](https://gitee.com/liliang_euler)

_联系方式_ liliang6@me.com

_任务链接_ https://gitee.com/openeuler/marketing/issues/I1I1RK

#### [No.21 - 为openEuler - RISC-V 添加grub的引导启动方式](https://gitee.com/openeuler/marketing/issues/I1I1TS)

_描述_ RISC-V 是一个开源指令集(ISA instruction set architecture ),openEuler 对于此架构正在进行探索性的支持,成立了 [RISC-V SIG 组](https://gitee.com/openeuler/community/tree/master/sig/sig-RISC-V);Grub是主流linux发行版都采用的引导方式。在启动方式上,与openEuler 发行版镜像所采用的grub2 引导启动不同的是,openEuler for RISC-V 采用的是openSBI + kernel 直接启动的方式。目前openEuler的grub 版本是2.02,在grub 2.04 版本中,新增了对于RISC-V 架构的支持;因此,可以为 openEuler for RISC-V 添加grub 的引导启动的方式,使其能够接近openEuler发行版的启动形式。

_难度_

_导师_ @whoisxxx

_联系方式_ zhangxuzhou4@huawei.com

_任务链接_ https://gitee.com/openeuler/marketing/issues/I1I1TS

#### [No.22 - 在 openEuler aarch64 架构上完成 mlpack 基于公开数据集完成 mnist 训练过程](https://gitee.com/openeuler/marketing/issues/I1I281)

_任务描述_ 没有软件工程师不知道 Hello world,也没有 AI 工程师不知道 mnist。OpenEuler 上对AI 的支持也正如火如荼,为了让大家熟悉在 openEuler 上 AI 的软件栈和开发流程,现在请从源代码出发构建 mlpack 的安装包(yum),用自己构建的安装包基于公开的数据集完成 mnist 的训练过程。

_难度_

_导师_ @sinever

_联系方式_ sinever@126.com

_任务链接_ https://gitee.com/openeuler/marketing/issues/I1I281

#### [No.23 - 在 openEuler aarch64 架构上完成 Hadoop WordCount 统计过程](https://gitee.com/openeuler/marketing/issues/I1I290)

_任务描述_ 没有软件工程师不知道Hello world,也没有大数据工程师不知道wordcount。OpenEuler上对bigdata的支持也正如火如荼,为了让大家熟悉在openEuler上的bigdata的软件栈和开发流程,现在请从源代码出发构建hadoop的安装包(jar和yum),用自己构建的安装包完成wordcount的统计过程。

_难度_

_导师_ @sinever

_联系方式_ sinever@126.com

_任务链接_ https://gitee.com/openeuler/marketing/issues/I1I290

#### [No. 24 - 在 openEuler aarch64 架构上完成 Spark WordCount 统计过程](https://gitee.com/openeuler/marketing/issues/I1I29G)

_任务描述_ 没有软件工程师不知道Hello world,也没有大数据工程师不知道wordcount。OpenEuler上对bigdata的支持也正如火如荼,为了让大家熟悉在openEuler上的bigdata的软件栈和开发流程,现在请从源代码出发构建spark的安装包(jar和yum),用自己构建的安装包基于公开的数据集完成wordcount的训练过程。

_难度_

_导师_ @sinever

_联系方式_ sinever@126.com

_任务链接_ https://gitee.com/openeuler/marketing/issues/I1I29G

#### [No.25 - 在 openEuler aarch64 架构上完成 Flink WordCount 统计过程](https://gitee.com/openeuler/marketing/issues/I1I2A0)

_任务描述_ 没有软件工程师不知道Hello world,也没有大数据工程师不知道wordcount。OpenEuler上对bigdata的支持也正如火如荼,为了让大家熟悉在openEuler上的bigdata的软件栈和开发流程,现在请从源代码出发构建 Flink 的安装包(jar和yum),用自己构建的安装包完成wordcount的统计过程。

_难度_

_导师_ @sinever

_联系方式_ sinever@126.com

_任务链接_ https://gitee.com/openeuler/marketing/issues/I1I2A0

#### [No.26 - 在openEuler 版本上各个版本间进行包差异比较](https://gitee.com/openeuler/marketing/issues/I1I49K)

_描述_ linux操作系统由众多开源软件包组成,为了更好对于各个操作系统版本间的软件包进行对比分析,需要获取操作系统自带软件包信息,以及对不同版本间操作系统软件包进行对比分析,分析内容包括软件包,软件包版本,软件包安装后的文件结构,软件包携带的服务、软件包携带的配置信息等。

_难度_

_导师_  @jimmy_hero

_联系方式_ huming15@163.com

_任务链接_ https://gitee.com/openeuler/marketing/issues/I1I49K

#### [No.27 - 开发工具判断同一个软件在openEuler 不同系统间依赖的软件、接口、参数是否发生变化](https://gitee.com/openeuler/marketing/issues/I1I4BT)

_描述_ 不同操作系统的软件包组成不完全一致,对应用程序而言是灾难性的,存在大量工作在评估软件之间是否兼容性,希望能够有一个软件,对软件的依赖在不同系统下进行评估,确认不同系统对应用的影响,提高跨系统移植的效率。

_导师_ @jimmy_hero

_联系方式_ huming15@163.com

_产出标准_

- 在https://gitee.com/openeuler/oec-application 项目提交相关可以在基于如下环境运行的工具,
-  将某个程序作为输入, 两个操作系统的信息作为输入,工具能够根据输入的信息,提供评估结果。
- 操作系统版本:openEuler 20.03 LTS
- 架构:aarch64

_任务链接_ https://gitee.com/openeuler/marketing/issues/I1I4BT

#### [No.28 - 网络可视化工具](https://gitee.com/openeuler/marketing/issues/I1I550)

_描述_ BCC/BPFTrace/eBPF是目前比较活跃的内核窥探技术,目的是通过此类技术完成内核网络的窥探,实现一些可以可以在生产环境部署的窥探工具。相关的工具包括但不限于:

- 窥探TCP流类型,判断应用的流特点,可以大体划分成时延敏感性、生命周期短、数据流大等几种类型;
- 窥探TCP重传、RTT、队列深度、内存占用的情况,评估网络质量;
- 窥探协议栈、驱动,通过报文染色方式,完成E2E网络定界;
- 实现一个协议栈function trace工具,能够基于流trace内核协议栈函数调用栈。

上述工具要充分考虑对现有协议栈性能的影响,最好能够支持在生产环境部署。

_难度_

_导师_  @MrRlu

_联系方式_ newlife_lala@163.com

_任务链接_ https://gitee.com/openeuler/marketing/issues/I1I550

#### [No.29 - 对openEuler社区发布包osc和obs-build进行加固测试](https://gitee.com/openeuler/marketing/issues/I1I5WZ)

_描述_ openEuler 社区作为一个集成社区,发布了上千个软件包;为更好地保障各软件包提供的能力能够满足用户使用场景,除依赖原生上游社区的测试能力外,还需要进行更深层更广的测试活动。本任务从系统影响程度和用户使用场景角度出发,选取关键软件包进行测试加强活动。
具体实施策略如下:
- 分析软件包提供的功能/具体用户使用场景/发布命令及参数/提供服务/包使用资源消耗等方面
- 进行相应的测试设计活动,如功能类/性能类/可靠性类等
- 根据测试设计编写相应的测试代码和调试
- 提交PR到码云对应仓库
- maintainer评审合入

_难度_

_导师_ 

- @charlie_li
- @lemon-higgins

_联系方式_ 

- liyongqiang329@163.com
- lemon.higgins@aliyun.com

_任务链接_ https://gitee.com/openeuler/marketing/issues/I1I5WZ

#### [No.30 - 基于 openEuler 的 4.19 内核主线 virtiofs 并完成构建和基础使用](https://gitee.com/openeuler/marketing/issues/I1I62G)

_描述_ virtio-fs是使用FUSE协议在host和guest之间通信,实现在不同guest之间共享同一个host目录树结构,拥有较好的性能和跟本地文件系统(如ext4)一样的语义。

_难度_ 简单

_导师_ [volcanodragon](https://gitee.com/volcanodragon)

_联系方式_ liuzhiqiang@huawei.com

_任务链接_ https://gitee.com/openeuler/marketing/issues/I1I62G

#### [No.31 -No.31 - Linux 内核 Crash 问题自动定位工具](https://gitee.com/openeuler/marketing/issues/I1I632)

_描述_ Linux 内核异常 Crash,常需要人工进行定位分析,比如分析反汇编,分析函数栈,分析寄存器等信息。期望根据已有的 Crash 信息,能够通过工具自动化解析足够多有用信息,以及尽量能够定位出问题

_难度_

_导师_ @yeyunfeng-dev

_联系方式_ yeyunfeng@huawei.com

_任务链接_ https://gitee.com/openeuler/marketing/issues/I1I632

#### [No.32 - 系统资源负载预测框架](https://gitee.com/openeuler/marketing/issues/I1I64J)

_描述_ 为了实现对系统资源的及时调度,A-Tune需要对系统各维度资源进行相对准确的预测,从而能够在运行时进行动态调度,满足性能和功耗诉求。

_难度_

_导师_ @xiezhipeng1

_联系方式_ xiezhipeng1@huawei.com

_任务链接_ https://gitee.com/openeuler/marketing/issues/I1I64J

#### [No.33 - 基于 Posix 接口的协程框架](https://gitee.com/openeuler/marketing/issues/I1I66U)

_描述_
对于大部分应用程序,实际并不关心实际的运行实体是什么。基于linux kernel的线程调度机制相较于协程占用资源多,上下文切换时间长。当前行业内的解决方案主要是语言级别的协程调度方案,典型的如go routine。本课题的目标是基于glibc的posix接口编程,提供用户无感知的协程调度框架,解决提升存量软件性能。
具体包含:
目标一:pthread相关库的协程化,包含线程管理已经基于线程的条件变量,锁等接口。
目标二:基于目标一,实现网络编程相关接口的协程化。
目标三:全量的posix接口协程化配合。

glibc源码:
https://gitee.com/src-openeuler/glibc

_难度_

_导师_ @liqingqing_1229

_联系方式_ liqingqing3@huawei.com

_任务链接_ https://gitee.com/openeuler/marketing/issues/I1I66U

#### [No.34 - 对 openEuler 社区发布包 keepalived 进行加固测试](https://gitee.com/openeuler/marketing/issues/I1I6CG)

_描述_ openEuler社区作为一个集成社区,发布了上千个软件包;为更好地保障各软件包提供的能力能够满足用户使用场景,除依赖原生上游社区的测试能力外,还需要进行更深层更广的测试活动。本任务从系统影响程度和用户使用场景角度出发,选取关键软件包进行测试加强活动。

具体实施策略如下:

- 分析软件包提供的功能/具体用户使用场景/发布命令及参数/提供服务/包使用资源消耗等方面
- 进行相应的测试设计活动,如功能类/性能类/可靠性类等
- 根据测试设计编写相应的测试代码和调试
- 提交PR到码云对应仓库
- maintainer评审合入

_难度_

_导师_

- @Charlie_Li
- @lemon.higgins


_联系方式_

- liyongqiang329@163.com
- lemon.higgins@aliyun.com

_任务链接_ https://gitee.com/openeuler/marketing/issues/I1I6CG

#### [No.35 - 对 openEuler 社区发布包 kmod-kvdo 进行加固测试](https://gitee.com/openeuler/marketing/issues/I1I6CY)

_描述_
openEuler社区作为一个集成社区,发布了上千个软件包;为更好地保障各软件包提供的能力能够满足用户使用场景,除依赖原生上游社区的测试能力外,还需要进行更深层更广的测试活动。本任务从系统影响程度和用户使用场景角度出发,选取关键软件包进行测试加强活动。
具体实施策略如下:
- 分析软件包提供的功能/具体用户使用场景/发布命令及参数/提供服务/包使用资源消耗等方面
- 进行相应的测试设计活动,如功能类/性能类/可靠性类等
- 根据测试设计编写相应的测试代码和调试
- 提交PR到码云对应仓库
- maintainer评审合入

_难度_

_导师_

- @Charlie_Li
- @lemon.higgins

_联系方式_

- liyongqiang329@163.com
- lemon.higgins@aliyun.com

_任务链接_ https://gitee.com/openeuler/marketing/issues/I1I6CY

#### [No.36 - 对 openEuler 社区发布包 OpenVPN 进行加固测试](https://gitee.com/openeuler/marketing/issues/I1I6D6)

_描述_
openEuler社区作为一个集成社区,发布了上千个软件包;为更好地保障各软件包提供的能力能够满足用户使用场景,除依赖原生上游社区的测试能力外,还需要进行更深层更广的测试活动。本任务从系统影响程度和用户使用场景角度出发,选取关键软件包进行测试加强活动。
具体实施策略如下:
- 分析软件包提供的功能/具体用户使用场景/发布命令及参数/提供服务/包使用资源消耗等方面
- 进行相应的测试设计活动,如功能类/性能类/可靠性类等
- 根据测试设计编写相应的测试代码和调试
- 提交PR到码云对应仓库
- maintainer评审合入

_难度_

_导师_

- @Charlie_Li
- @lemon.higgins


_联系方式_

- liyongqiang329@163.com
- lemon.higgins@aliyun.com

_任务链接_ https://gitee.com/openeuler/marketing/issues/I1I6D6

#### [No.37 - 对 openEuler 社区发布包 lrzsz 进行加固测试](https://gitee.com/openeuler/marketing/issues/I1I6EO)

_描述_
openEuler社区作为一个集成社区,发布了上千个软件包;为更好地保障各软件包提供的能力能够满足用户使用场景,除依赖原生上游社区的测试能力外,还需要进行更深层更广的测试活动。本任务从系统影响程度和用户使用场景角度出发,选取关键软件包进行测试加强活动。
具体实施策略如下:
- 分析软件包提供的功能/具体用户使用场景/发布命令及参数/提供服务/包使用资源消耗等方面
- 进行相应的测试设计活动,如功能类/性能类/可靠性类等
- 根据测试设计编写相应的测试代码和调试
- 提交PR到码云对应仓库
- maintainer评审合入

_难度_

_导师_
- @Charlie_Li
- @lemon.higgins

_联系方式_

- liyongqiang329@163.com
- lemon.higgins@aliyun.com

_任务链接_ https://gitee.com/openeuler/marketing/issues/I1I6EO

E
Eli Ma 已提交
599
#### [No.38 - 对openEuler社区发布包ipvsadm进行加固测试](https://gitee.com/openeuler/marketing/issues/I1I6F2)
E
Eli Ma 已提交
600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808

_描述_
openEuler社区作为一个集成社区,发布了上千个软件包;为更好地保障各软件包提供的能力能够满足用户使用场景,除依赖原生上游社区的测试能力外,还需要进行更深层更广的测试活动。本任务从系统影响程度和用户使用场景角度出发,选取关键软件包进行测试加强活动。
具体实施策略如下:
- 分析软件包提供的功能/具体用户使用场景/发布命令及参数/提供服务/包使用资源消耗等方面
- 进行相应的测试设计活动,如功能类/性能类/可靠性类等
- 根据测试设计编写相应的测试代码和调试
- 提交PR到码云对应仓库
- maintainer评审合入

_难度_

_导师_
- @Charlie_Li
- @lemon.higgins

_联系方式_

- liyongqiang329@163.com
- lemon.higgins@aliyun.com

_任务链接_ https://gitee.com/openeuler/marketing/issues/I1I6F2

#### [No.39 - 对 openEuler 社区发布包 MongoDB 进行加固测试](https://gitee.com/openeuler/marketing/issues/I1I6GM)

_描述_
openEuler社区作为一个集成社区,发布了上千个软件包;为更好地保障各软件包提供的能力能够满足用户使用场景,除依赖原生上游社区的测试能力外,还需要进行更深层更广的测试活动。本任务从系统影响程度和用户使用场景角度出发,选取关键软件包进行测试加强活动。
具体实施策略如下:
- 分析软件包提供的功能/具体用户使用场景/发布命令及参数/提供服务/包使用资源消耗等方面
- 进行相应的测试设计活动,如功能类/性能类/可靠性类等
- 根据测试设计编写相应的测试代码和调试
- 提交PR到码云对应仓库
- maintainer评审合入

_难度_

_导师_
- @Charlie_Li
- @lemon.higgins

_联系方式_

- liyongqiang329@163.com
- lemon.higgins@aliyun.com

_任务链接_ https://gitee.com/openeuler/marketing/issues/I1I6GM

#### [No.40 - 对 openEuler 社区发布包 Redis 进行加固测试](https://gitee.com/openeuler/marketing/issues/I1I6GW)

_描述_
openEuler社区作为一个集成社区,发布了上千个软件包;为更好地保障各软件包提供的能力能够满足用户使用场景,除依赖原生上游社区的测试能力外,还需要进行更深层更广的测试活动。本任务从系统影响程度和用户使用场景角度出发,选取关键软件包进行测试加强活动。
具体实施策略如下:
- 分析软件包提供的功能/具体用户使用场景/发布命令及参数/提供服务/包使用资源消耗等方面
- 进行相应的测试设计活动,如功能类/性能类/可靠性类等
- 根据测试设计编写相应的测试代码和调试
- 提交PR到码云对应仓库
- maintainer评审合入

_难度_

_导师_
- @Charlie_Li
- @lemon.higgins

_联系方式_

- liyongqiang329@163.com
- lemon.higgins@aliyun.com

_任务链接_ https://gitee.com/openeuler/marketing/issues/I1I6GW

#### [No.41 - 对 openEuler 社区发布包 sssd 进行加固测试](https://gitee.com/openeuler/marketing/issues/I1I6IK)

_描述_
openEuler社区作为一个集成社区,发布了上千个软件包;为更好地保障各软件包提供的能力能够满足用户使用场景,除依赖原生上游社区的测试能力外,还需要进行更深层更广的测试活动。本任务从系统影响程度和用户使用场景角度出发,选取关键软件包进行测试加强活动。
具体实施策略如下:
- 分析软件包提供的功能/具体用户使用场景/发布命令及参数/提供服务/包使用资源消耗等方面
- 进行相应的测试设计活动,如功能类/性能类/可靠性类等
- 根据测试设计编写相应的测试代码和调试
- 提交PR到码云对应仓库
- maintainer评审合入

_难度_

_导师_
- @Charlie_Li
- @lemon.higgins

_联系方式_

- liyongqiang329@163.com
- lemon.higgins@aliyun.com

_任务链接_ https://gitee.com/openeuler/marketing/issues/I1I6IK

#### [No.42 - 对 openEuler 社区发布包 MySQL 进行加固测试](https://gitee.com/openeuler/marketing/issues/I1I6IN)

_描述_
openEuler社区作为一个集成社区,发布了上千个软件包;为更好地保障各软件包提供的能力能够满足用户使用场景,除依赖原生上游社区的测试能力外,还需要进行更深层更广的测试活动。本任务从系统影响程度和用户使用场景角度出发,选取关键软件包进行测试加强活动。
具体实施策略如下:
- 分析软件包提供的功能/具体用户使用场景/发布命令及参数/提供服务/包使用资源消耗等方面
- 进行相应的测试设计活动,如功能类/性能类/可靠性类等
- 根据测试设计编写相应的测试代码和调试
- 提交PR到码云对应仓库
- maintainer评审合入

_难度_

_导师_
- @Charlie_Li
- @lemon.higgins

_联系方式_

- liyongqiang329@163.com
- lemon.higgins@aliyun.com

_任务链接_ https://gitee.com/openeuler/marketing/issues/I1I6IN

#### [No.43 - 对 openEuler 社区发布包 rpcbind 进行加固测试](https://gitee.com/openeuler/marketing/issues/I1I6JE)

_描述_
openEuler社区作为一个集成社区,发布了上千个软件包;为更好地保障各软件包提供的能力能够满足用户使用场景,除依赖原生上游社区的测试能力外,还需要进行更深层更广的测试活动。本任务从系统影响程度和用户使用场景角度出发,选取关键软件包进行测试加强活动。
具体实施策略如下:
- 分析软件包提供的功能/具体用户使用场景/发布命令及参数/提供服务/包使用资源消耗等方面
- 进行相应的测试设计活动,如功能类/性能类/可靠性类等
- 根据测试设计编写相应的测试代码和调试
- 提交PR到码云对应仓库
- maintainer评审合入

_难度_

_导师_
- @Charlie_Li
- @lemon.higgins

_联系方式_

- liyongqiang329@163.com
- lemon.higgins@aliyun.com

_任务链接_ https://gitee.com/openeuler/marketing/issues/I1I6JE

#### [No.44 - 对 openEuler 社区发布包 haproxy 进行加固测试](https://gitee.com/openeuler/marketing/issues/I1I6JI)

_描述_
openEuler社区作为一个集成社区,发布了上千个软件包;为更好地保障各软件包提供的能力能够满足用户使用场景,除依赖原生上游社区的测试能力外,还需要进行更深层更广的测试活动。本任务从系统影响程度和用户使用场景角度出发,选取关键软件包进行测试加强活动。
具体实施策略如下:
- 分析软件包提供的功能/具体用户使用场景/发布命令及参数/提供服务/包使用资源消耗等方面
- 进行相应的测试设计活动,如功能类/性能类/可靠性类等
- 根据测试设计编写相应的测试代码和调试
- 提交PR到码云对应仓库
- maintainer评审合入

_难度_

_导师_
- @Charlie_Li
- @lemon.higgins

_联系方式_

- liyongqiang329@163.com
- lemon.higgins@aliyun.com

_任务链接_ https://gitee.com/openeuler/marketing/issues/I1I6JI

#### [No.45 - 移植 libapparmor 到 openEuler 社区](https://gitee.com/openeuler/marketing/issues/I1I77C)

_描述_
openEuler社区作为一个集成社区,发布了上千个软件包;上游社区存在多种Linux LSM安全机制,主流包括SELinux、APParmor、SMACK、Tomoyo等,当前openEuler默认使用SELinux安全机制,同时内核也支持APParmor,为满足社区不同的应用场景,在openEuler上也支持apparmor机制

具体实施策略如下:
1、分析上游apparmor上游社区提供的软件包https://gitlab.com/apparmor/apparmor/-/wikis/home
2、将上层软件包移植到openEuler上并进行验证
3、提供移植部署相关的文档材料
4、提交PR到码云对应仓库https://gitee.com/src-openeuler/apparmor
5、maintainer评审合入

_难度_

_导师_
- @zhujianwei001
- @mailofzxf

_联系方式_ zhujianwei7@huawei.com

_任务链接_ https://gitee.com/openeuler/marketing/issues/I1I77C

#### [No.46 - SELinux 策略应用指导](https://gitee.com/openeuler/marketing/issues/I1I7H3)

_描述_ 当前openEuler社区主要提供了SELinux机制来保证系统的安全性,但SELinux策略规则应用复杂,这也极大的阻碍了该机制在生产环境中的应用。

具体实施策略如下:
1、熟悉SELinux基本使用命令,完善SELinux在openEuler中的使用指导。
2、分析openEuler系统中现有的SELinux规则
3、提供SELinux策略相关问题的排查指导
4、提供新建SELinux策略模块的标准步骤
5、maintainer评审合入

_难度_

_导师_
- @zhujianwei001
- @mailofzxf

_联系方式_
zhujianwei7@huawei.com

E
Eli Ma 已提交
809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234
_任务链接_ https://gitee.com/openeuler/marketing/issues/I1I7H3

#### [No.47 - 开发 openEuler bootstrap 工具](https://gitee.com/openeuler/marketing/issues/I1HAXJ)

_描述_  
借鉴 Linux From Scratch 和 crosstool-ng,开发一套自动化构建工具,该工具支持利用src.rpm源代码,从零构建 openEuler 。

一个可能的建议是,利用crosstool-ng工具,从openEuler x86_64构建 i686版本的二进制rpm。

_目标_

- 开发一套自动化构建的工具。
- 支持native和cross两种构建方式,支持新架构如i686的构建。
- 该工具可以交叉构建一个新架构i686的rootfs,该rootfs是由200-300+软件包的rpms组成。
- 基于这些rpms,可以在koji或obs上继续构建其他上层软件包。最终构建出openEuler所有支持的软件。

_思路提示_
1. 借鉴LFS,从零构建。
2. 利用[crosstool-ng](https://crosstool-ng.github.io/)
    a、增加特性,使用crosstool,可以直接构建rpm
    b、增加对其他基础软件支持,如krb5、openssh、bash等
    c、编译的结果以目标架构的rpm呈现,如bash.i686。

_难度_

_导师_ [overweight](https://gitee.com/overweight)

_联系方式_ hexiaowen@huawei.com

_任务链接_ https://gitee.com/openeuler/marketing/issues/I1HAXJ

#### [No. 48 - openEuler aarch64架构上软件包优化和集成](https://gitee.com/openeuler/marketing/issues/I1HMNS)

_描述_
为了使aarch64平台的用户能够使用上更快的openEuler,我们需要对基础库、加速库进行优化,目前[鲲鹏计算](https://github.com/kunpengcompute)已开源一系列基于aarch64的优化,也有很多加速库在上游社区完成了aarch64优化,但这些软件优化尚未集成到openEuler OS中。

这些软件包括但不限于:glibc、snappy、zstd、gzip、isa-l、hyperscan等。

我们需要完成3个工作:
1. **添加打包**
至少完成 isa-l、x265、hyperscan 等3个软件包的添加,在https://gitee.com/src-openeuler新建仓库并增加打包源代码。
2. **aarch64优化集成**
将鲲鹏优化的集成到已添加的欧拉的发布包中,至少完成glibc、snappy、isa-l、x265、hyperscan、zstd等6个优化的集成,代码合入到https://gitee.com/src-openeuler指定库。
注:优化代码可以从https://github.com/kunpengcompute获取。
3. **博客总结**
完成后,对鲲鹏优化的优化源码进行阅读,总结完成技术博客,同步发布到openEuler博客。

_难度_


_导师_

- [yikun](https://github.com/yikun)
- [derek](https://github.com/orgs/kunpengcompute/people/derekpush)


_联系方式_

- jiangyikun@huawei.com
- zhangxuelei4@huawei.com

_任务链接_ https://gitee.com/openeuler/marketing/issues/I1HMNS

#### [No.49 - 基于 openEuler 的 ABI 检查工具](https://gitee.com/openeuler/marketing/issues/I1HQSE)

_标题_ No.49 - 基于 openEuler 的 ABI 检查工具

_描述_
[lvc](https://github.com/lvc) 有一系列abi的导出和分析工具。

借鉴或复用该开源工具,实现一套完整的abi检查工具。
- 该工具能否查询导出与ABI相关的信息(如API接口,头文件数据结构,配置文件,命令行选项等)。
- 该工具提供统一的框架,支持插件式扩展,前期可以支持c/c++的信息导出,后续可增加对python、perl或java等语言的支持。
- 该工具能够支持统一软件多版本二进制或源码间的abi差异对比。
- 该工具支持报告导出功能。
- 该工具易于应用在openEuler后续软件包升级的差异对比,协助开发者、maintainer评估软件升级的影响。

_难度_


_导师_
[@overweight](https://gitee.com/overweight)

_联系方式_
hexiaowen@huawei.com

_任务链接_ https://gitee.com/openeuler/marketing/issues/I1HQSE

#### [No.50 - 提供 openEuler 满足 openscap 标准的安全配置基线](https://gitee.com/openeuler/marketing/issues/I1I7JW)

_描述_
OpenSCAP项目提供了由开源社区开发的各种加固指南和配置基线,确保您能够选择适合您组织需求的安全策略。当前openEuler通过安全加固工具已经提供了默认的加固内容,但为了兼容国际主流标准,需要基于openSCAP提供openEuler的安全配置基线。

具体实施策略如下:
1、熟悉openSCAP相关标准。
2、修改openSCAP软件包,指定openEuler的安全配置基线。
3、提交相应的代码
4、maintainer评审合入

_难度_

_导师_ 
- @zhujianwei001
- @mailofzxf

_联系方式_
zhujianwei7@huawei.com

_任务链接_ https://gitee.com/openeuler/marketing/issues/I1I7JW

#### [No.51 - optee 移植到 openEuler](https://gitee.com/openeuler/marketing/issues/I1I8IS)

_标题_ No.51 - optee 移植到openEuler

_描述_ 鲲鹏芯片有 TrustZone 支持,optee 是开源的ARM trustzone OS。任务目标是把 optee OS/driver/client 移植到 openEuler 并在鲲鹏硬件平台上运行起来。

_难度_


_导师_
@blue0613 

_联系方式_
gaoguijin@huawei.com


_任务链接_ https://gitee.com/openeuler/marketing/issues/I1I8IS

#### [No.52 - openEuler 虚拟化调度性能评估工具及方法构建](https://gitee.com/openeuler/marketing/issues/I1I9XJ)

_描述_
云场景下,为充分利用物理资源,虚拟机通常存在CPU复用场景。虚拟化平台在此种场景下,既要保障物理资源充分利用,又要保障虚拟化内部业务Qos,这对虚拟化平台调度是一个重要考验。那么如何做好一个虚拟化调度平台,需要我们构建一套虚拟化调度评估方法及体系,当前openEuler社区此方面能力欠缺,需要我们调研引入适配移植业界典型工具及业务场景评估方法。

_难度_


_导师_
@KuhnChen18

_联系方式_
kuhn.chenqun@huawei.com

_任务链接_ https://gitee.com/openeuler/marketing/issues/I1I9XJ

#### [No.53 - 为 openEuler 创建用户轨迹运营看板](https://gitee.com/openeuler/marketing/issues/I1IAOD)

_描述_
openEuler运营看板已经采集了部分数据,展示了基础数据以及基础的统计数据,比如issue个数、总数等,但对单用户个体数据并没有进行展示,无法知道用户喜好及时推送并制定对应用户的的运营措施。

_难度_

_导师_ @Zhongjun2

_联系方式_ jun.zhongjun@huawei.com

_任务链接_ https://gitee.com/openeuler/marketing/issues/I1IAOD

#### [No.54 - 对 openEuler 社区发布包 zip/unzip 进行 CRC 加速](https://gitee.com/openeuler/marketing/issues/I1IAWH)

_描述_
zip/unzip使用了CRC32(多项式0xedb88320)来校验数据的正确性。软件使用了常用的查表法来做CRC计算,性能并不理想。在ARMv8.1,提供了CRC32/CRC32C的专用指令:crc32d, crc32w, crc32h, crc32b, crc32cd, crc32cw, crc32ch, crc32cb。分别实现64bit、32bit、16bit和8bit数据的CRC计算。相对于查表法,ARM CRC指令快30倍左右。也就是说,对同一数据做CRC,加速指令耗用时间是查表法的1/30。对于CRC-32和CRC-32C,GCC提供了builtin函数,可以在C代码里直接调用。builtin函数名字就是对应的汇编指令名字前加“__”,比如__crc32d函数对应crc32d指令。另外,还需添加“-march=armv8.1-a”编译选项。openEuler社区的zip/unzip发布包均没有为ARM平台做过优化。

- zip:https://gitee.com/src-openeuler/zip。
- unzip:https://gitee.com/src-openeuler/unzip。

本任务的目标就是为这两个软件包在ARM上做加速,提高压缩性能。


_难度_


_导师_
[@colordev](https://gitee.com/colordev)

_联系方式_
colordev@hotmail.com

_任务链接_ https://gitee.com/openeuler/marketing/issues/I1IAWH

#### [No.55 - 自动脱敏网络抓包工具](https://gitee.com/openeuler/marketing/issues/I1IB4N)

_描述_ 
现有wireshake、tcpdump这类工具存在两类问题

- 报文payload信息没有脱敏,导致这类工具无法在生产环境使用。
- 有些抓包工具在大流量情况下会导致crash,无法在生产环境使用。

实现一个脱敏网络抓包工具,要求如下:

- 可以灵活抓取网络报文,报文内容要具备自动脱敏能力;
- 可以在生产环境部署,不影响在线业务性能。
- 支持主流网卡驱动

_难度_

_导师_ @MrRlu

_联系方式_ newlife_lala@163.com

_任务链接_ https://gitee.com/openeuler/marketing/issues/I1IB4N

#### [No.56 - 以 openEuler LTS 为基础生成公有云镜像](https://gitee.com/openeuler/marketing/issues/I1ICCJ)

_描述_
公有云上都是以镜像的形式来使用OS系统,制作一个工具来帮助自动化从openEuler的iso或者repo制作出各种公有云的虚拟机镜像,例如华为云,阿里云,AWS,腾讯云等。

_难度_


_导师_
myeuler
luanjianhai

_联系方式_
- myeuler@163.com
- luanjianhai@163.com

_任务链接_ https://gitee.com/openeuler/marketing/issues/I1ICCJ

#### [No.57 - 内核数据竞争检测工具](https://gitee.com/openeuler/marketing/issues/I1ICGN)

_描述_
内核数据竞争检测,业界当前可以通过静态测试工具(比如 [SVF](https://github.com/lifeasageek/SVF/tree/svf-razzer) 和动态测试方法(比如 [kcsan](https://github.com/google/ktsan/tree/kcsan) 来检测内核竞争,但是静态测试误报较太多,kcsan动态检测出来的很多问题也是无害的,因此本课题目标是把静态测试工具或动态测试工具(SVF和KCSAN,或其他类似的工具)输出的检测信息作为输入,通过精准构造的方式来构造真实竞争,通过内核自运行或者kasan等机制来检测是否是真正的竞争bug。

_难度_

_导师_ walkingwalk

_联系方式_
wubodong@huawei.com

_任务链接_ https://gitee.com/openeuler/marketing/issues/I1ICGN

#### [No.58 - 为 openEuler 提供 PR Preview 功能](https://gitee.com/openeuler/marketing/issues/I1ICRB)

_描述_ openEuler官网采用Hugo框架渲染Markdown成最终的静态文件部署,开发流程中缺少针对Pull Request的渲染结果浏览,本任务的目标是通过kubernetes的CRD+Operator提供多静态网站实例的编译和浏览功能,提高开发和检视流程的易用性。

_难度_

_导师_ @TommyLike

_联系方式_ tommylikehu@gmail.com

_任务链接_ https://gitee.com/openeuler/marketing/issues/I1ICRB

#### [No.59 - 开源基础设施智能自检自愈系统](https://gitee.com/openeuler/marketing/issues/I1ICRK)

_描述_ 随着社区参与者与贡献规模的增加,社区在不断向开源基础设施提出诸多需求。这给基础设施的运维难度和稳定性带来了挑战,我们希望基础设施能更加强健,并具有一定的自检查、自修复能力。

_难度_

_导师_ @George.Cao

_联系方式_ george.cao@huawei.com

_任务链接_ https://gitee.com/openeuler/marketing/issues/I1ICRK

#### [No.60 - everything tool on openEuler](https://gitee.com/openeuler/marketing/issues/I1IELF)

_描述_

windows下everything工具是非常好用的文件快速检索软件,但是在linux下一直没有对应工具(有一些很有历史的命令,做不到快速检索);希望能够在openEuler中找到对应everything的快速检索工具。

本题目为开放式,实现方式难度不等,可以去开源社区寻找优秀的业界实现,移植到openEuler平台;或借鉴已有实现,进行相关优化,目标是实现一个快速,可用,易用的文件检索工具。

P.S. 实现方式可以基于命令行或图形界面

_难度_

中等-困难

_导师_

@denggx_elros

_联系方式_

dengguangxing@huawei.com

_任务链接_ https://gitee.com/openeuler/marketing/issues/I1IELF

#### [No61. - openEuler 集成 Kubernetes 相关软件包](https://gitee.com/openeuler/marketing/issues/I1IF4R)

_描述_ Kubernetes是用于自动部署,扩展和管理容器化应用程序的开源系统,也是如今云原生中最重要的底层基石之一。我们希望参与者能够提供Kubernetes相关软件在openEuler上的标准发布软件包,包括kubelet、kubectl等。并能够让用户在openEuler上更便捷地部署和使用kubernetes

_难度_

_导师_ @radeon92

_联系方式_ caoruidong@huawei.com

_任务链接_ https://gitee.com/openeuler/marketing/issues/I1IF4R

#### [No.62 - QEMU 用户态进程热补丁框架](https://gitee.com/openeuler/marketing/issues/I1IG8E)

_描述_
* QEMU进程作为虚拟机进程需要常驻运行,但用户态软件发布上线后经常会存在一些紧急BUG需要在线修复;
* **用户态热补丁技术**是指在程序处于运行状态的时候,在线修改程序运行逻辑的技术,和内核态livepatch机制类似;
* 相比内核态热补丁技术而言,用户态热补丁技术更具挑战性,用户态热补丁技术对云软件的可维护性具有重要意义;
* 本题目要求参与者为例如QEMU之类的**用户态进程实现一个简易的热补丁框架**,能够为QEMU进程提供热补丁能力支持。

任务链接:
* [https://gitee.com/openeuler/marketing/issues/I1IG8E?from=project-issue](https://gitee.com/openeuler/marketing/issues/I1IG8E?from=project-issue)

_难度_ **难**

_导师_
* @zhanghailiang
* @yorifang 

_联系方式_ fangying1@huawei.com

_任务链接_ https://gitee.com/openeuler/marketing/issues/I1IG8E

#### [No.63 - openeuler 系统的内存统计工具](https://gitee.com/openeuler/marketing/issues/I1IGQC)

_描述_
请编写一个内存统计工具,能够统计openeuler系统中内核态内存使用情况,包括:
1.vmalloc内存都被谁申请了?
2.slab内存都被谁申请了?
3.内存page页都被谁申请了?
4.lru链表上的内存页都是哪些cache?
这些统计信息,可以通过proc接口设置和获取,并可以统计指定模块占用的内存。

_难度_


_导师_

- @lvying6
- @Pces
- @licihua


_联系方式_

- lvying6@huawei.com
- chenjialong@huawei.com
- licihua@huawei.com

_任务链接_ https://gitee.com/openeuler/marketing/issues/I1IGQC

#### [No.64 - openEuler 集成 CRIU 工具](https://gitee.com/openeuler/marketing/issues/I1IGUG)

_描述_ CRIU是基于linux的用户态进程迁移软件,也是容器迁移的底层操作工具;CRIU可以完成用户态进程的Checkpoint/Restore操作,分别用于将进程所有相关运行状态保存到本地磁盘,以及根据磁盘文件恢复完全一致的进程。CRIU本身是纯用户态工具,但是依赖linux内核提供的相关能力,相应内核patch从3.8开始逐渐合入。

本次项目目标是将CRIU工具打包,加入openEuler发布件(基于X86和Arm64平台)

_难度_ 中等

_导师_ @denggx_elros

_联系方式_ dengguangxing@huawei.com

_任务链接_ https://gitee.com/openeuler/marketing/issues/I1IGUG

#### [No.65 - adler32算法在ARM平台的优化](https://gitee.com/openeuler/marketing/issues/I1IGXZ)

_描述_
- Adler-32是马克·阿德勒(Mark Adler)在1995年发明的一种校验和 算法,是对弗莱彻校验和的一种改进。与相同长度的循环冗余校验相比,它以可靠性为代价(优先选择后者)。Adler-32比Fletcher-16更可靠,而可靠性却比Fletcher-32低。
- Adler-32在基础压缩库libz中使用,常见压缩和解压场景中,adler-32的算法热点会比较高,优化该算法可以提升libz基础库的性能。
- SIMD简介:单指令流多数据流(英语:Single Instruction Multiple Data,缩写:SIMD)是一种采用一个控制器来控制多个处理器,同时对一组数据(又称“数据向量”)中的每一个分别执行相同的操作从而实现空间上的并行性的技术。
- ARM平台使用SIMD优化adler-32的案例:https://developer.arm.com/architectures/instruction-sets/simd-isas/neon/neon-programmers-guide-for-armv8-a/neon-intrinsics-chromium-case-study/adler-32
![使用SIMD向量指令优化adler-32性能能使PNG解码性能提升5%~18%](https://images.gitee.com/uploads/images/2020/0526/175137_f1abddae_5409602.png "屏幕截图.png")
使用SIMD向量指令优化adler-32性能能使PNG解码性能提升了5%~18%

_难度_

_导师_ @liqiang9102

_联系方式_ liqiang64@huawei.com

_任务链接_ https://gitee.com/openeuler/marketing/issues/I1IGXZ

#### [No.66 - QEMU 中集成 virtio-fuzz 能力以支持模拟设备的模糊测试](https://gitee.com/openeuler/marketing/issues/I1IHCJ)

_描述_
QEMU 中模拟大量设备(网卡、磁盘等),这些往往也是不可信的,甚至可能运行一些恶意软件,因此本课题目标在qemu中开发用于仿真设备的模糊测试;基于覆盖率反馈的启发式模糊测试(libfuzzer/AFL)被认为是一种较为有效的方式,可通过覆盖率反馈快速快速生成随机输入,而无需依靠人工指导;当前upstream社区提供两种实现方式:

1. 基于libFuzzer:https://patchwork.kernel.org/cover/11393233/
2. 基于AFL:https://kvmforum2019.sched.com/event/Tmv7/virtio-device-fuzzing-dmitrii-stepanov-yandex

可以选择一种将其移植到openEuler qemu中,并基于某种设备完成定制。

_难度_

_导师_ panny060

_联系方式_ pannengyuan@huawei.com

_任务链接_ https://gitee.com/openeuler/marketing/issues/I1IHCJ

#### [No.67 - 基于需求覆盖度判断的用例筛选方法(RBC,requirement-based coverage)探索及工程构建]()(https://gitee.com/openeuler/marketing/issues/I1IHGJ)

_描述_
OS内核及基础包众多,在代码迭代过程中,都需要执行大量自动化用例来保证修改的代码不会影响模块的原有功能。但是,现在的用例集和用例级别划分不是很明确,每次执行的用例有很多是冗余的。
如何准确的筛选出能够覆盖代码的最小用例集合,在尽量少的时间内完成迭代验证,提升OpenEuler的交付效率,是我们想要解决的问题。
通过执行用例时,跟踪用例覆盖到的代码分支和语句,可以有效识别出用例在代码中的覆盖范围,从而可以筛除冗余用例,构建精简的能够全面覆盖模块功能的用例集。

_难度_


_导师_
hw_niubility

_联系方式_
hw_niubility@yeah.net

_任务链接_ https://gitee.com/openeuler/marketing/issues/I1IHGJ

#### [No.68 - 基于 Sealight 构建云手机的自动化测试](https://gitee.com/openeuler/marketing/issues/I1IHIT)

_描述_
云手机测试包括接口测试、集成测试、数据流测试、UI测试等多个维度的测试,代码层次多,接口多,且UI界面变化频繁,使用传统的测试工具,覆盖难度大。
使用Sealight等AI测试工具,深度扫描接口和UI,自动生成用例,提升用例开发效率

_难度_


_导师_
hw_niubility

_联系方式_
hw_niubility@yeah.net

_任务链接_ https://gitee.com/openeuler/marketing/issues/I1IHIT