进修Linux一点心得

  从2016年8月15日入职到现在有半年时间了,复杂谈一下自己的心得及对自己进修Linux的一点了解。

  自己也是从参与华清远见培训才末尾接触Linux,经过培训教员的解说、自己平常查阅资料和实践任务中的接触,对Linux看法也逐渐加深。下面把自己的看法过程复杂说明一下,可以供刚入门的同学参考。

  1、 进修Linux相对是一项系统工程,不要想着几个月或几天可以弄定。随着对Linux看法的深化,你会愈来愈认为这是不能够的(跟智商不妨),因为触及的常识点真实太多。那我们是否是要把一切的常识学完才华任务,这个到没有需要,因为实践任务(某个岗亭)不需求那么多常识。所以,把教授教化纲要内容的控制了,应当可以胜任某些低级任务。

  2、 假设从事底层开辟,与硬件打交道,你需求对CPU架构有个大年夜约的了解,因为要让系统跑起来,你必须知道Linux的引诱过程。平日ARM架构和X86的引诱过程照样有差异的,固然道理差不多。我们在培训的时分主要接触的是ARM平台,但有能够任务时接触的X86架构,因此你除要知道U-boot若何引诱ARM平台的Linux内核,还要知道grub若何引诱X86平台下的Linux内核,因为以后Linux主要发行版基本都是采取Grub2来引诱。有时间需求了解一下grub2,能够还要知道MBR、EFI等,这些是X86平台的BIOS相干的常识。控制了这些你才华在开辟平台上装置系统,不论甚么平台都能弄定,才华以不变应万变。上课时,能够教员会讲init过程,但我要通知你,假设你实践碰到的init行动跟上课时纷歧样,不要奇异,因为现在发行版的init曾经被重写了好几个版本,上个时讲的是Sysv规范。现在发行版init固然局部兼容sysv,但变更也是十分大年夜的。具体的可以上彀搜刮UpStart 和 systemd。

  3、 我们的主要任务不能够仅仅装置一个Linux操作系统,平日主要任务应当是装备驱动的移植或开辟。这个需求的常识就比拟专业了,不是复杂套用一下字符装备、块装备或收集装备能弄定的。需求熟知硬件装备的任务过程,若何设置寄存器,寄存器的地址是甚么,这个就要“肯“芯片的datasheet和考验团体E文的才华了,有能够读了一遍不知所云。还要熟悉相干规范和协定(比如:pci、usb、i2c、spi等),这有能够又是几百或上千页的文档需求浏览。再者就是Linux相干子系统的完成,比如tty、gpio、i2c、usb、pci、net、blk等,因为终你的驱动代码要调用这些子系统的内核代码,你不能仅仅参考模板代码,因为那样假设出现后果,你将束手无策。

  4、 文件系统可以说是Linux的魂魄,因为有人云Linux中“一切皆文件”。不要认为只要磁盘上才存在文件系统,内存中也有文件系统,而且有很多。典范的sysfs文件系统就是内存文件系统,弄Linux驱动开辟,sysfs文件系统是必须要控制的,他和驱动依次的关系不是通俗的亲密,了解sysfs文件系统就必须了解Kobject对象系统,这集系统的内容也比拟丰富。