首先我们先看一则招聘:
工作职责:
1、负责Linux桌面操作系统的底层系统的构建与维护。包括基础库、编译工具链、显示库、开发环境、桌面环境以及关键应用等。2、负责桌面操作系统显示库、系统库、开发环境、桌面环境以及关键应用的研发;
3、负责安卓环境兼容技术研发
任职资格:
1、计算机软件相关专业,本科及以上学历,英语四级及以上;2、熟悉Linux打包格式deb或rpm,掌握Linux构建过程和常见包用途
3、熟悉C/C++,了解Python、Bash等Linux常用语言;
4、熟悉Linux系统基本操作,熟悉CMake、Makefile、GDB等常用编译与调试工具的使用;
熟悉Qt框架,熟练掌握Qt UI开发(QWidgets/QML);
5、熟练使用Linux平台开发环境及调试工具,熟练使用Qt集成开发环境
6、熟悉Xorg或Wayland协议框架/ 社区开源项目优先
看到没这个是要有工作经验的,要求还是蛮高的!
然后我们再来看看实习的要求:
岗位职责:
1.参与基于Linux内核的操作系统(主要为OpenHarmony)的能力开发与迭代(包括系统服务、系统应用等);2.参与OpenHarmony操作系统的多平台移植与适配(主要面向ARM、RISC-V平台;包括内核移植、驱动开发等);
3.参与OpenHarmony操作系统研究与测试;
任职要求:
1.有较好的操作系统相关的理论/实践基础,或对此兴趣浓厚且有较强的学习能力;2.熟练使用c/c++开发;
linux系统最初要学Linux基础知识、基本命令。还可以学习Linux用户及权限基础、Linux系统进程管理进阶、linux高效文本、文件处理命令、shelI脚本入门等等知识。最基本的你要知道:
链路,结点,协议和服务,实体和对等实体,各层PDU 的定义
要知道其中的- 网络性能参数:速率,带宽,吞吐量,时延,往返时间,信道利用率
相关的命令行工具,如grep、awk、sed、tar、find等,用于系统管理、文件操作、文本处理等4.Linux服务器应用: Linux服务器应用包括Web服务器、数据库服务器、邮件服务器、DNS服务器等,如Apache、MvSQL.PostgreSQL、Exim、BIND等。
比如:
个人觉得,大致分为这么几个方向:
另外学习路线图:
1、Linux基础 知识、基本命令(起源、组成、常用命令如cp、ls、file、mkdir等常见操作命令)
2、Linux用户及权限基础
3、Linux系统进程管理进阶
4、linux高效文本、文件处理命令(vim、grep、sed、awk、find等命令)
5、shell脚本入门(可边练习边学习)
中级进阶
中级进阶需要在充分了解linux原理和基础知识之后,对上层的应用和服务进行深入学习,其中说到服务肯定涉及到网络的相关知识,是需要花时间学习的。
1、TCP/IP网络基础(差不多CCNA、NP的知识就够用)
2、Linux企业常用服务(如dns、http、ftp、mail、nfs等)
3、Linux企业级安全原理和防范技巧(系统性能/安全、安全威胁模型和保护方法
4、 加密/解密原理及数据安全、系统服务访问控制及服务安全基础
5、iptables安全策略构建
6、shell脚本进阶(主要是结合一些应用,写一些案例)
最终,你需要了解堆和栈,内存管理,进程调度,虚拟内存,文件系统等相关知识。
当然相关命令学习也必不可少,例如readelf,nm,ipcs,iostat,objdump,free,chrt,pmap,uptime,top,pidstat等。如果想做Linux运维,你肯定要学习搭建服务器,那么网络知识也是必不可少的,比如数据库、防火墙、ftp,xshell脚本,jekins项目管理工具等等~
如果你有什么技术上的问题,都可以咨询我
@终端研发部
技术路上漫长而优雅, 于哥可以一直陪伴,技术问题,职场问题,简历问题都可以来向我提问哦~