高手问答第 240 期 —— 如何掌握 Linux 内核,玩转智能设备开发

xplanet 发布于 02/11 19:12
阅读 6K+
收藏 23

“Linux 内核第一版发布于 1991 年,如今最新版本已经到了 5.X。最初仅仅是一只五脏俱全的麻雀,发展到现在浩瀚如海,代码量也已经超过了千万行;最初基于 Intel x86 的 PC,如今囊括了 x86 和 arm 等主流平台在内的几十个平台;现在已经有 CentOS、Debian、 Fedora、openSUSE、Ubuntu、Red Hat Enterprise Linux 和 Android 等基于它的操作系统。Android 的崛起,更是将 Linux 带到了大众手中,如今不仅仅是数以万计的程序员,连人民大众的生活也与它息息相关。”

以上段落摘自《精通 Linux 内核:智能设备开发核心技术》一书。 OSCHINA 本期高手问答(2020 年 02 月 12 日 - 2020 年 02 月 19 日)邀请到了这本书的作者姜亚华 @always_first_meet  来与大家一起围绕Linux 内核」展开讨论,可讨论的内容包括但不限于:内存管理、文件系统、进程管理、驱动开发,以及如何学习 Linux 内核等等。若有其他任何相关的问题,也都很欢迎提问。

嘉宾简介

姜亚华,一直从事与 Linux 内核和 Linux 编程相关的工作,研究内核代码十多年,对多数模块的细节如数家珍。先后就职于华为、Intel 和 AMD,曾负责华为手机 TouchSensor 的驱动和软件优化(包括 Mate、荣耀等系列),以及 Intel 安卓平台 Camera Sensor 的驱动开发(包括 BaytrailCherrytrailCherrytrail CRSofia 等)。现负责 DMAInterruptSemaphore 等模块的优化与验证(包括 VegaNavi 系列和多款 APU 产品)。

为了鼓励踊跃提问,作者姜亚华会在问答结束后从提问者中抽取 3 名幸运读者赠予精通 Linux 内核:智能设备开发核心技术一书。

购书地址:https://detail.tmall.com/item.htm?id=609171470981

OSCHINA 高手问答一贯的风格,不欢迎任何与主题无关的讨论和喷子。

下面欢迎大家向姜亚华 @always_first_meet  积极提问,直接回帖提问即可。

相关阅读推荐:Java 开发者需要研究 JDK,Linux 开发者需要研究 Kernel

加载中
0
赤脚小子
赤脚小子

@always_first_meet  你好 现在百度服务器装LINUX系统后 装好后第一步就是告诉你关闭防火墙
那防火墙的意义何在?谁在使用?
 

always_first_meet
always_first_meet
回复 @赤脚小子 : 其实Windows上不也有一些程序需要关闭防火墙吗,服务被防火墙block了,要么关闭或者修改防火墙,要么修改程序。程序既然改不了,就只能动防火墙了。
赤脚小子
赤脚小子
回复 @always_first_meet : 比如远程访问,还有MYSQL远程登录 还有因为SELinux导致不能远程连接MYSQL,最后使用setenforce 0成功了 我就是不太理解这么多安全的内容如果真的好为什么平时使用中反而造成了阻碍。我也不知道怎么在保持他们开启的情况下达到我的远程访问需求。 请教,谢谢。
always_first_meet
always_first_meet
那有说为什么需要关闭防火墙吗,是阻止了他的某些服务还是什么原因?
0
刘柳
刘柳

@always_first_meet ,现在linux内核都能不停机更新内核,您觉得手机上引入这个功能可行吗?

always_first_meet
always_first_meet
您好,不停机更新主要是用在服务器上的,很多服务器很久都不需要关机,手机的话关机开机经常的事,感觉引入这个功能可能并不能带来太大的收益。
0
LeoXu
LeoXu

@always_first_meet 您好,最近我所在的创业公司需要开发一款智能终端产品,需要集成4G通讯、视频监控,OBD 数据解析等功能,我的问题是要实现这样一个产品,需要有哪些技术储备?

always_first_meet
always_first_meet
回复 @LeoXu : 几个流行的招聘平台都可以的,也可以考虑外包。一般情况下,选型定了以后,厂家都会提供Linux的驱动的,移植到你们的平台上就可以了。
LeoXu
LeoXu
回复 @always_first_meet : 谢谢解答,我还想问问,想招这类工程师,通过什么渠道会比较合适呢?
always_first_meet
always_first_meet
您好,创业公司的话,至少需要驱动开发(modem、Camera)、相关器件选型,定了之后可以找器件厂家做些支持。如果想招聘相关领域内的工程师的话,成本可能会比较大。
0
青海湖里的一条鱼
青海湖里的一条鱼

@always_first_meet 您好,请问想从Java转智能硬件开发,怎样入门,谢谢!

always_first_meet
always_first_meet
您好,这个不难,有C语言的基础就可以,关键是坚持,一开始肯定不习惯。你可以从一个简单的驱动入手,一点点扩展,参考https://www.oschina.net/question/2918182_2314050。
0
积极学习diy
积极学习diy

@always_first_meet   智能手机的传感器游戏 ,是要有C语言的接口吗?现在传感游戏,需要对Linux内核了解很多吗?现在的手机内核挺多的?怎么学习手机Linux内核

always_first_meet
always_first_meet
您好,单纯做游戏是不需要C语言接口的,以Android为例,注册监听器就可以获得传感器的数据。学习Linux内核可以参考https://www.oschina.net/question/2918182_2314050。
0
山间无涯
山间无涯
您好,请问您觉得从目前职场生涯来看,您觉得作为一般的后端开发者,需要对linux内核掌握哪些知识,以及进阶的学习建议呢?非常感谢
always_first_meet
always_first_meet
您好,您指的是类似Java开发吗?我觉得优先深入你所处领域的底层,比如做Java最好先学习JVM。然后接下来顺着学习内存管理、进程调度等。或者也可以先学习内核的知识,然后把它们跟你的工作联系起来。至于进阶,重要的就是把内核跟你的工作关联起来,中间的联系要打通,如果你可以用内核去解释你工作当中使用的某个机制,就OK了。
0
知足2020
linux内核技术知识需要多久能掌握的差不多哦
always_first_meet
always_first_meet
您好,从小白开始,入门(懂原理)可能要几个月,进阶(熟悉常用机制)可能要以年为单位,精通(掌握细节)可能要更久。有人指导的话,需要的时间会短些。内核比较复杂,学习起来很有意思,也会有更大成就感,重在坚持。
0
Pythonweb2173
Pythonweb2173

@always_first_meet    Linux 内核和 Linux 编程相关的工作 ,没有一定的工作经历经验,不好找工作吧?现在的程序员小白要想从事 Linux编程,应该如何入手?先学哪个编程语言?C语言吗

always_first_meet
always_first_meet
您好,应届生相对容易,有一定工作经验的想转Linux工作确实不一定好找。小白可以先从Linux的使用入手,C语言是需要的。 如果您已经在其他领域工作了,相对稳妥的做法是边工作边学习Linux,寻找机会转,最好是先尝试内部机会。现在比以前容易多了,很多都跟Linux有关,拿Android来说,开发APK的朋友完全可以深入到底层学习,积累到一定程度就好了。
0
妖老猫
妖老猫

@always_first_meet 目前linux对于显卡的驱动,尤其是Nvidia的显卡还是明显滞后于整个linux 桌面的进度,例如N卡官方的驱动到现在还不能支持wayland,这种情况什么时候可以有所改善?或者社区有没有确定的计划要解决显卡的问题? vulkan是不是可以从根本上解决这个问题呢?

always_first_meet
always_first_meet
您好,这种驱动一般是由公司参与维护的,我在A,N的情况不是很了解。vulkan不了解,百度了下,“Vulkan是一个跨平台的2D和3D绘图应用程序接口”,如果真的只是接口和框架,对底层实现没有统一标准的话,还是解决不了这个问题。
0
m
myabcmu
我是一名java程序员,想了解作为一名普通的应用程序开发人员,需要对操作系统了解到什么程度,因为大家现在的服务器都是基于linux的,就讲linux 相关的概念就好,谢谢
always_first_meet
always_first_meet
您好,进程调度和内存管理的优先级比较大,比如Java的线程,GC这些,JVM最终还是要走内核,进程调度和内存管理的关系比较密切,至于文件系统可以暂时当作黑盒。
返回顶部
顶部