Linux后台开发应该具备技能

本文详细介绍了从事Linux后台开发工作所需掌握的核心技能,包括Linux系统和OS层面的知识、C/C++编程技巧、数据结构与算法的理解、网络编程的实践、数据库管理和高级软件设计等。特别强调了实际开发经验和调试能力的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Linux后台开发应该具备技能

一、linux和os:

1、命令:netstat tcpdump ipcs ipcrm  这四个命令的熟练掌握程度基本上能体现实际开发和调试程序的经验

2、cpu 内存 硬盘 等等与系统性能调试相关的命令必须熟练掌握,设置修改权限 tcp网络状态查看 各进程状态 抓包相关等相关命令 必须熟练掌握

3、awk sed需掌握

4、共享内存的使用实现原理、然后共享内存段被映射进进程空间之后,存在于进程空间的什么位置?共享内存段最大限制是多少?

5、c++进程内存空间分布(注意各部分的内存地址谁高谁低,注意栈从高道低分配,堆从低到高分配)

6、ELF是什么?其大小与程序中全局变量的是否初始化有什么关系(注意.bss段)

7、使用过哪些进程间通讯机制,并详细说明

8、makefile编写,虽然比较基础,但是会被问到

9、gdb调试相关的经验,会被问到

10、如何定位内存泄露?

11、动态链接和静态链接的区别

12、32位系统一个进程最多多少堆内存

13、多线程和多进程的区别(重点 必须从cpu调度,上下文切换,数据共享,多核cup利用率,资源占用,等等各方面回答,然后有一个问题必须会被问到:哪些东西是一个线程私有的?答案中必须包含寄存器,否则悲催)

14、写一个c程序辨别系统是64位 or 32位

15、写一个c程序辨别系统是大端or小端字节序

16、信号:列出常见的信号,信号怎么处理?

17、i++是否原子操作?并解释为什么???????

18、说出你所知道的各类linux系统的各类同步机制(重点),什么是死锁?如何避免死锁(每个技术面试官必问)

19、列举说明linux系统的各类异步机制

20、exit() _exit()的区别?

21、如何实现守护进程?

22、linux的内存管理机制是什么?

23、linux的任务调度机制是什么?

24、标准库函数和系统调用的区别?

25、补充一个坑爹坑爹坑爹坑爹的问题:系统如何将一个信号通知到进程?

二、c语言:

1、宏定义和展开(必须精通)

2、位操作(必须精通)

3、指针操作和计算(必须精通)

4、内存分配(必须精通)

5、各类库函数必须非常熟练的实现

6、哪些库函数属于高危函数,为什么?(strcpy等等)

三、c++:

1、一个String类的完整实现必须很快速写出来(注意:赋值构造,operator=是关键)

2、虚函数的作用和实现原理(必问必考,实现原理必须很熟)

3、sizeof一个类求大小(注意成员变量,函数,虚函数,继承等等对大小的影响)

4、指针和引用的区别(一般都会问到)

5、多重类构造和析构的顺序

6、stl各容器的实现原理(必考)

7、extern c 是干啥的,(必须将编译器的函数名修饰的机制解答的很透彻)

8、volatile是干啥用的,(必须将cpu的寄存器缓存机制回答的很透彻)

9、static const等等的用法,(能说出越多越好)

四、数据结构或者算法:

1、《离散数学》范围内的一切问题皆由可能被深入问到(这个最坑爹,最重要,最体现功底,最能加分,特别是各类树结构的实现和应用)

2、各类排序:大根堆的实现,快排(如何避免最糟糕的状态?),bitmap的运用等等

3、hash, 任何一个技术面试官必问(例如为什么一般hashtable的桶数会取一个素数?如何有效避免hash结果值的碰撞)

五、网络编程:

1、tcp与udp的区别(必问)

2、udp调用connect有什么作用?

3、tcp连接中时序图,状态图,必须非常非常熟练

4、socket服务端的实现,select和epoll的区别(必问)

5、epoll哪些触发模式,有啥区别?(必须非常详尽的解释水平触发和边缘触发的区别,以及边缘触发在编程中要做哪些更多的确认)

6、大规模连接上来,并发模型怎么设计

7、tcp结束连接怎么握手,time_wait状态是什么,为什么会有time_wait状态?哪一方会有time_wait状态,如何避免time_wait状态占用资源(必须回答的详细)

8、tcp头多少字节?哪些字段?(必问)

9、什么是滑动窗口(必问)

10、connect会阻塞,怎么解决?(必考必问,提示:设置非阻塞,返回之后用select检测状态)

11、如果select返回可读,结果只读到0字节,什么情况?

12、keepalive 是什么东东?如何使用?

13、列举你所知道的tcp选项,并说明其作用。

14、socket什么情况下可读?

六、db:
1、mysql,会考sql语言,服务器数据库大规模数据怎么设计,db各种性能指标

最后2、:补充一个最最重要,最最坑爹,最最有难度的一个题目:一个每秒百万级访问量的互联网服务器,每个访问都有数据计算和I/O操作,如果让你设计,你怎么设计?


转载自:http://blog.youkuaiyun.com/huangjm_13/article/details/8799595

<think>好的,我现在需要帮助用户将斐讯N1Armbian系统ATV系统。首先,我得回忆一下斐讯N1机流程,因为之前处理过类似的问题,但这次是从Armbian转换到ATV,可能涉及到不同的步骤。 首先,用户当前使用的是Armbian,可能需要先恢复安卓底层系统,然后再入ATV。因为ATV通常是基于安卓系统的,而ArmbianLinux,直接切换可能不行。所以步骤可能包括入安卓底包,再ATV。 接下来,我需要考虑机工具。斐讯N1常用的工具是USB Burning Tool,用户可能需要通过线的方式。不过N1没有直接的USB接口,可能需要使用双公头USB线连接电脑,或者通过网络adb连接。 然后,用户可能需要先降级bootloader,特别是如果之前过其他系统的话。不过,如果已经运行Armbian,可能已经解锁了bootloader,但不确定。可能需要检查设备是否处于可机模式,比如进入线模式(通常是通过adb命令重启到bootloader或者使用短接法)。 另外,备份当前系统很重要,避免数据丢失。用户可能需要备份Armbian上的重要数据,因为机过程会清除设备上的数据。 然后,具体的步骤可能是:安装USB Burning Tool,加载ATV的镜像文件,连接设备,开始机。过程中可能会遇到驱动问题,需要确保电脑正确识别N1设备。有时候需要先擦除flash,避免残留数据导致问题。 还可能涉及到镜像文件的选择,ATV有不同的版本,比如slimbox或者其他定制版本,用户需要下载正确的镜像。另外,机完后可能需要通过U盘启动或者调整启动顺序,确保设备从新系统启动。 用户可能会遇到的问题包括驱动安装失败、设备无法进入机模式、机过程中断等,需要准备相应的解决方法,比如更换USB端口、使用不同的电脑、检查线缆连接等。 最后,可能需要验证机是否功,启动后进入ATV界面,检查基本功能是否正常,比如网络、遥控器支持等。 总结一下步骤大致是:准备工具和镜像,备份数据,进入机模式,使用USB Burning Tool入ATV,处理可能出现的问题,验证结果。需要详细列出每个步骤的具体操作,确保用户能一步步跟随。</think>### 斐讯N1Armbian入ATV系统教程 #### 一、准备工作 1. **硬件工具** - 双公头USB数据线(连接N1与电脑) - HDMI显示器、USB键鼠(用于调试) - 8GB以上U盘(可选,用于应急启动) 2. **软件工具** - **USB Burning Tool**(版本建议v2.2.4以上)[^1] - **ATV系统镜像**(推荐[slimBOX ATV](https://slimboxtv.ru/)或[CoreELEC ATV](https://coreelec.org/)) - **ADB工具包**(用于命令行操作)[^2] 3. **注意事项** - 机会清空设备数据,提前备份Armbian中的重要文件 - 关闭杀毒软件,避免误报机工具为病毒 --- #### 二、恢复安卓底层环境 由于Armbian直接覆盖了安卓分区,需先回安卓底包: 1. **下载安卓底包**(如[N1-6.2.3.img](https://www.znds.com/rom/)) 2. 打开USB Burning Tool,加载底包镜像文件 3. **进入线模式**: ```bash # 在Armbian终端执行 adb connect N1的IP地址 adb shell reboot update ``` 设备重启后自动进入机模式(指示灯变蓝)[^3] 4. 连接双公头USB线,点击"开始"入底包 --- #### 三、入ATV系统 1. **加载ATV镜像** - 在USB Burning Tool中选择ATV镜像(如`slimBOX_ATV_v12.img`) - 勾选**擦除FLASH**和**擦除bootloader**(避免残留冲突) 2. **重新进入线模式** - 若设备已恢复安卓系统,可通过adb命令或短接法触发: - 方法一:安卓设置中开启ADB调试,执行`adb shell reboot fastboot` - 方法二:拆机短接主板背面触点(需谨慎操作) 3. **开始机** - 点击"开始"按钮,进度条完后点击"停止"并断开设备 --- #### 四、首次启动配置 1. 连接HDMI显示器,开机后按提示完ATV初始化 2. **网络设置**:建议使用有线网络(N1无线性能较弱) 3. 安装应用市场(如[Aptoide TV](https://aptoide.com/))获取流媒体APP --- #### 常见问题解决 - **驱动无法识别**:安装[WorldCup Device驱动](https://pan.baidu.com/s/1i5PqU4X) - **卡7%报错**:更换USB接口或数据线,关闭防火墙 - **无法启动ATV**:尝试通过[U盘CoreELEC](https://coreelec.org/)引导修复
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值