虽然在以前的工作经历中也接触学习了一些操作系统编程,但最认真的学习却是从3个月前开始。曾经只知道有Windows系统的编程,以为每个操作系统的编程应该都有一套自己的方法,现在看Windows编程更适合做界面编程,在非界面领域Windows反而显得有些另类。Qt界面编程方法跟Windows倒是有些类似,这种另类或许是界面编程和非界面编程的区别吧。
也是在这三个月对POSIX这个词有了初步的了解和认识,对学习的方法也有了深入认识。
最大的感悟在学习一个新领域知识时,有个人指导下是非常有用的。这种指导或许只是解释几个名词、指定几本书、指派一两个任务。想当年在学习Windows之前也学习过Linux,终于因为不知如何入门而放弃,现在看当时如果有本好书,有个人指点下,或许也就学会了。
当前主要参考书籍是《UNIX环境高级编程》、《Linux/UNIX系统编程手册》,曾经接触过好多Linux的编程书籍,或许是当时关注点不同,大都讲解驱动、BSP什么的,应用的编程泛泛而谈。对这两本书的总结是,对操作系统的学习,主要是文件IO、进程及通信、线程及同步的学习,此外就是日期时间、终端IO(可以理解为串口)和套接字编程。曾经以为一个操作系统的编程应该是浩瀚如海,看了这两本书后,起码能够理清一个操作系统编程的内容了。回过头看看SylixOS的应用编程,似乎也是大同小异。
在上述两本书中有个比较有意思的地方,两本书对进程的着墨要远多于线程,开始时对此相当不解,待了解了UNIX、Linux的一些发展历史才有所认识。不过考虑到嵌入式系统中,线程的使用远多于进程,学习中并不会对进程花费太多时间,倒是由于线程内容有限。需要额外的一本书补充,《POSIX多线程程序设计(Programming with POSIX Threads)》是一个非常不错的选择。
总的来讲,无论是Linux、SylixOS、QNX、VxWorks学习的方法都是类似的,对其中一个系统掌握熟练,转移到另外一个系统上应该是分分钟的事情。
文章评论(0条评论)
登录后参与讨论