tasks.md 37.9 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 599 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 809
_任务链接_ 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

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

_描述_
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

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