如果我要把linux精简,然后安装在psp中,我需要学习哪些知识?

来源:百度知道 编辑:UC知道 时间:2024/05/27 02:48:42
如题,linux的版本例如ubuntu之类,
我想精简他,甚至是再写一些自己的功能,最后达到能把它安装在psp或者手机一类的电子器件上(有没有用户界面都行),我需要学习哪些知识呢?请着重说明有哪些编程知识

非专业人士谢绝,回答越详细分越多,复制答案自重
其实ubuntu已经能在psp上运行了,有人做出来了.....具体可以参照levelup网站的旧新闻
那么为什么我想做呢?
其实就是闲的无聊.....呵呵.纯属爱好,编程这个东西,我想当做一辈子的爱好来对待,在中国搞编程就好像做苦力...至于"苦力"是我的遭遇,不知各位如何
下面是补充问题,
如果我从一个只会java基础的新手(5000行代码以内的新手),发展成能够完成这个工程的神人.每天学3小时,需要多久....本人英文4级未过.. 数学几乎遗忘干净了

如果直接往psp之类的手持设备中移植发行版 这个不现实

首先是内核的移植,将内核精简并编写需要的设备驱动,提出不需要的功能和设备驱动,然后用交叉编译器编译为手持设备cpu支持的2进制内核文件
这是第一步, 离系统还远
第二步 移植glibc ,同样是精简 和指令集方面的移植,提供必须的程序运行库
第三步 如果要求不高可以直接交叉编译出一个shell 环境,以及必须的软件包
第四步 解决系统引导和文件系统以及烧录

以上四步基本完成了一个基础的可在手持设备上运行的linux

然后就是图形界面的修改和移植方面的了, 接下来才能到移植ubuntu的方面,第一就是ubuntu的包管理的移植,第二就是ubuntu系统配置的移植,这里面又牵涉到 perl python这两个的精简 ,因为大多脚本都是用这两个写的

按照顺序需要的知识有

1,2步 对内核结构和glibc库的了解和熟悉,以便于精简 , 极为熟练精通的c语言和汇编语言能力,设备访问方式和设备驱动原理的熟练,可从源代码级的删减添加功能,并编写相应功能,在以上基础上对MIPS指令集的了解(PSP的处理器是MIPS类型的)以便于必须的移植代码的编写, 对gcc的了解和熟悉 ,出错的地方快速的定位、修改,以及gcc编译的优化

3,4步 主要就是gcc方面,如果需要精简的话 前面的能力都能用的上,第四步上主要是bootloader的烧写 ,jffs文件系统的创建等等

linux的移植方便,发行版级别的移植很麻烦

lz可以先制作一个LFS 体验下linux系统的具体结构,然后就知道如何入手了

linux内核,包括编译,写驱动,没有用户界面的话只要学gcc和汇编

需要的嵌入式系统知识:
总体:如何搭建嵌入式的开发调试环境,如何烧写启动程序(如果没有现成的启动程序,只能自己写),如何烧写内核及写入文件系统,操作系统的原理(这个包含内容很多)

硬件:对你的psp或手机的cpu架构有深入了解(如何工作,指令集),常用的架构有mips(好像龙芯用这个