作为一个初学者,现在学习过的知识虽然不是太多,但也掌握了许多自己没有接触过的的知识(C 语言、Linux 基础、高级C 、数据结构、IO 编程和进程与线程),虽然现在我所掌握的知识离成为一名合格的嵌入式软件开发工程师还具有一定的距离,但是我觉得只要我们沉下心来,慢慢学习,后面一定可以成为一名合格的嵌入式安全开发工程师。 我在当前学习中自认为比较重要的知识点: C语言: 条件判断(if、switch)、循环(for、while、do while、goto)、形参和实参的区分(以前的我自己分不清,你们要是觉得容易可以忽略)、掌握关键字(我以前对于enum、union等关键字不是太清晰)、宏(只是做替换,我们不要自己给它加括号)等。 Linux基础: 虚拟机的安装、vi的使用,shell命令的使用,Linux虚拟机的网络配置和三个服务的安装与使用(Samba、ftfp、nfs)等 高级C: 数组、指针(非常重要,需要熟练掌握,因为后面的大量知识都是与指针相关的)、函数、结构体(struct、union、enum)、条件编译(增强兼容性) 数据结构: 链表(循序表、单项链表、单项循环链表、双向链表、双向循环链表、内核链表),这其中我觉得让我感到不太适应的就是内核链表,因为内核链表是由linux开发人员编写好的函数,我们只要调用就好了,但是函数比较多,函数的形参的意义也要自己明确,这对于英语不好的自己有点难受,所以自己要多花时间去看和去写。 I0编程: 文件的7中格式(常规文件-、目录文件d、块设备b、字符设备c、管道p、套接字s、符号链接l)、格式化标准IO(fopen、printf、fprintf、sprintf、snprintf、scanf、fscanf、sscanf、fclose等)和非格式化标准IO(getc、fgetc、getchar、fgets、gets、fputc、putc、putchar、fputs、puts等)、缓冲区(行缓冲、块缓冲、不缓冲)、时间IO(time、ctime、localtime、asctime等)、文件IO(open、read、write、close等)。 进程与线程 认识进程(进程:程序的动态执行过程,程序:为了达到某一目的而编写的一系列的指令集合)、进程的状态、进程的生老病死(fork、exec函数簇、kill -9、exit、_exit、return、wait、waitpid等)、守护进程的创建(7步)、进程间的通信(无名管道、有名管道、信号、共享内存、信号量、消息队列、套接字)、线程的创建和使用(pthread_create、pthread_join、pthread_exit等)。 以上是作为一个初学者自己的一些不全面的总结,其实很多的地方都还有很多细节的知识,那些细节的知识也是我们需要掌握的,所以我们只有在后面的学习和以后的工作中慢慢重复和慢慢使用才可以掌握的更加牢固,我们才可以更上一层楼。随着知识量的增加,很容易忘记一些知识是很正常的,我们需要多回头看看,多敲代码,到时候自然就掌握了。
|