移动通信产品分成四大类, 第一类是设备。包括交换机、路由器、基站等有线和无线网络中的设备, 第二类产品是终端。包括普通手机、智能手机、 PDA 和寻呼机等设备。第三类是电信平台。包括智能网平台、 BOSS 、运营商的各种管理平台(比如 misc )等系统。第四类是服务。就是短信、彩信、 WAP 、 IVR 、 KJAVA 和 BREW 等增值业务。第一类产品基本都是嵌入式设备, 包括硬件和嵌入式软件。第二类产品中除硬件外, 软件包括驱动( 严格来说是软硬件的接口层) 、操作系统和应用软件。第三类和第四类产品全是软件产品。所以终端和设备中的软件再加上电信平台和增值业务就是我们所说的移动通信软件。那么进行电信软件开发的技术人员应该有什么样的知识结构呢。首先针对每一类产品所需要的知识进行分析。第一: 设备软件开发, 80% 以上都是采用 VxWorks 或 pSOS , 当然有一些公司的设备( 包括华为) 正陆续迁移到 Linux 平台。采用的开发语言主要是 C/C++, 开发环境 VxWorks 是 Tornado, 使用这两个平台的设备商的开发团队在该平台方面肯定有积累,很多的功能(比如 IPC 方面的, 内存分配方面的) 都已经做好了封装, 所以你需要做的工作是熟悉这些封状的 API. 但是, 因为其中涉及大量的比较复杂的数据结构,比如十字链表和 Radix 树,以及图,所以要求你对数据结构有比较深刻的认识,当然你的 C 语言的功能要深厚,尤其是指针的使用。因为这些设备都是进行协议处理的设备, 所以你对于即将开发的协议要有充分的认识。如果你要做路由,那么必须要研究 TCP/IP 协议,如果你要做 MSC, 那么必须研究 GSM 的网络结构、处理流程和协议结构。如果你要开发 VOIP 和流媒体产品, 你需要研究 和 SIP 协议。如果要开发 GGSN 和 SGSN, 那么就要研究 CDMA 中的骨干网结构,协议和流程。所以第一类产品的知识结构为深厚和 C 语言功底+ 深刻的协议理解。第二:终端软件开发。终端软件中的主流操作系统包括 Windows CE、 Symbian 、 Linux 和 Palm os, 其中前三中系统的市场占有率超过 99%. 操作系统本身都比较成熟, 基本不涉及什么开发的工作,但 Linux 系统课程要做一些修改和定制。终端上的应用软件跟 PC 上的应用软件从本质上是相同的。而终端上的驱动开发相对来说就是技术难度较高的开发。因为需要你对硬件有什么的认识, 还可能要用到汇编。而应用软件的开发在各平台下都有成熟的开发工具。 Linux 下用 gcc+c ( c++ ) 就可以了, wince 可用 EVC,symbian 的 SDK 也可以跟 VC 集成, 如果你有比较丰富的 VC 开发经验, 对你的终端软件开发会有非常大的帮助。所以第二类产品的知识结构为语言+ 平台提供的 API (如果是驱动需要计算机结构的知识)。第三类:平台软件开发。电信平台软件 90% 以上都是基于 UNIX 平台的,使用的数据库包括 oracle,informix 和 sybase, 其中 oracle 的分额最大,而且现在很多的系统在从 informix 和 sybase 迁移到 oracle. 平台软件中即包括 B/S 结构的也包括 C/S
移动通信软件技术人员的知识结构 来自淘豆网m.daumloan.com转载请标明出处.