在一次面试中,一个fork()函数把我难住了,
我在之前只是看过linux的书,只记得它是一个系统调用,其他是一点也不只记得,代码如下。
int main(int argc int* argv[])
{
fork();
fork();
printf("test/n");
return 0;
}
回到家里,马上查在baidu了下,才发现,这个是一个linux下创建进程的系统调用。
这几天把陈莉君老师写的 linux操作系统原理与应用中,进程这章仔仔细细的看了一遍,并把书中的所有例子在linux中实验了一把。
总算对linux的进程的使用上有一定的掌握,进程调度应该是内核的核心内容,当然还没研究过,不过我想着部分不急,后面慢慢来看,逼近linux是开源的,一定有很多人去研究它,有机会找些有经验的人请教下也许会事半功倍啊,呵呵,这个只能祈祷了!!
静下心来看看自己的知识结构,很多知识没是很凌乱,后面希望一一整理过,让技术更上一层楼。
数字电视方面:
掌握数字电视MPEG2框架、PSI/SI表、加扰流解扰过程。(会花一定的时间来整理)
卫星共享、网络共享、patch都有一定了解。
操作系统方面:
linux:正在紧张的学习当中,有一定的了解;(这将是一个长期的过程,努力学到精)
eCos:开发一直用他,只会用他,并没有看过内部代码,和linux差别有点大。
网络:
调试过一款网络芯片的驱动,做过一些网络的简单应用。(这方面知识比较重要,会和linux一起学习)
数字电视加密系统移植:
只做过一般加密界别的移植,高级的安全加密系统还没做过,有机会了解下如NDS Conax都有高级安全的加密系统。
软件工程:
模块化编程、编程模式略有了解,敏捷开发常常看到,但还没来得及仔细研究(继续研究学习);
语言:
C语言:从大三开始,一直使用C语言工作。
C++:毕业前,自学的,对面向对象的编程有一定理解,写C代码中也可以用上这些思想。
JAVV:4个月前学习的,和C++语法上很想,主要特点是跨平台,但和自己的定位不太一致,确定放弃继续升入。
算法:
只会一些简单的大家都会的算法,这块不能急,需要慢慢来做。
简单硬件驱动:
AT88SC加密片,PT6964面板等芯片。这块比较简单,按部就班都可完成任务。
整理自己的知识结构是一个费时的事情,但对后面自己的技术提升相信有一定的好处,一定要把这块做好。