大家好,今天小编关注到一个比较有意思的话题,就是关于学习linux移植硬件交流的问题,于是小编就整理了4个相关介绍学习Linux移植硬件交流的解答,让我们一起看看吧。
- 把windows平台下mfc框架的代码移植到linux对编程小白来说难度很大吗?应该学习什么内容呢?
- 能不能直接移植Linux发行版系统到手机,比如移植ubuntu到手机,不要安装桌面,只用命令终端?
- 仿头条之问:为什么当年Linus不用c#去写Linux系统?是这样吗?
- Linux内核开发与Linux驱动开发有什么关系?
把windows平台下mfc框架的代码移植到linux对编程小白来说难度很大吗?应该学习什么内容呢?
移植是不可能的,这叫重构。说难也不难,网络编程用的socket API,windows和linux下基本相同。界面只能用QT重写了。如果C基础比较扎实,花个几周时间学一下c++和QT就能上手。当然,首先要弄明白APP的业务逻辑,业务逻辑弄明白了,看源代码就要简单得多,甚至不用看源代码。
学习C++和一个框架,比如Qt。
如果真是小白程度,不是存心打击你,这个坑,你爬不出来,至少短时间内爬不出来。
能不能直接移植Linux发行版系统到手机,比如移植ubuntu到手机,不要安装桌面,只用命令终端?
不知道你的目的是什么,如果就是玩,买个arm更好玩,比如树莓派4,没多少钱,资料很多,怎么玩都行。
如果就是讨论行不行,那么肯定是可行,无需讨论。因为安卓的内核就是linux,也就是说linux底层的驱动之类的全都有了,只要找个合适的rom烧进去就行了。就可以通过u***进去打命令了。
其实烧个合适rom,图形界面也是可以出来迪,比如ubuntu touch,如果能整成,那么除了装微信没啥希望,当个标准手机用还是可以的,装新软件可能就麻烦些。
仿头条之问:为什么当年Linus不用c#去写Linux系统?是这样吗?
哈哈,你这仿的有点那个意思了,我也来一个:
据说苹果的系统就是基于Linux开发的,为什么Linus没有做出Linux手机呢?
补充:发现一堆回答的人,只有我一个认真看题了,哈哈。
linus连c++都看不上,何况c井,linux的可移植性很大程度来自于c,C#这方面差距不是一般的大。另外从性能角度来说c#更是差了十万八千里。用rust写个操作系统也好过c#
windows vista部分代码是c#写的卡的一批,我觉得你这问题还不够有深度,你应该问问linux,为啥不用微软的画板画个系统出来。。。。干嘛苦哈哈的写那痛苦的c。
这个问题问得过于外行,超出预料之外。不用C#的原因,是因为C#是基于.net框架的语言体系,是微软搞出来的一套开发语言。它是面向应用层的,建立在.NET框架上;而.NET又基于操作系统之上。所以,如果用它来写操作系统,无异于在一个操作系统上安装.NET框架后再写一个操作系统,这个逻辑根本就行不通!能写操作系统的一定是支持交叉编译工具链的语言或者汇编,但凡需要框架支持的高级语言都没戏。所以不要再问这种幼稚的问题了。
用C#开发的成品,必须带.net平台。啥叫.net平台?你可以认为是j***a虚拟机。
.net平台解析C#编译完的成品:byte-code。你可以理解为软件做的的指令集,.net把它翻译成硬件指令,然后程序才能跑。
在还没有任何操作系统的情况下,也就没有.net,你C#所依赖的运行环境都没有,怎么去开发操作系统?
所以操作系统必须是编译结果为硬件指令级别的程序,例如汇编和C。
Linux内核开发与Linux驱动开发有什么关系?
Linux设备驱动需要使用内核API来实现,一般被包含在Linux内核源码树中。驱动可以编译到内核,随着内核一起在系统启动的时候被加载。也可以编译成内核模块,在系统运行起来之后动态地加载到内核中,使得[_a***_]的时候无需重新编译内核,也无需重启系统,很大程度上方便了驱动代码的调试。但并不是只有设备驱动才能编译成模块,有些内核功能的实现也可以,以便在需要的时候再加载,比如内核中文件系统的实现、加密及校验的实现、网络协议栈的实现等等。
平时你听到的驱动开发一般指的是开发系统***设备的驱动,使得设备能被内核操控,如U***主从设备、Flash设备驱动、I2C设备驱动、LCD设备驱动、网络设备驱动。平时你听到的内核开发一般就指除了设备驱动之外的开发了,比如Linux系统启动流程、进程管理、内存管理、时间管理、系统调用、文件系统等,但这些部分也在很大程度上被所谓的“驱动开发”所用。
所以,实际上驱动开发只是内核开发的一部分。
到此,以上就是小编对于学习linux移植硬件交流的问题就介绍到这了,希望介绍关于学习linux移植硬件交流的4点解答对大家有用。