初识Linux系统编程

                                                    Linux系统编程

最近一直在看关于Linux系统编程方面的知识,让我清楚的明白,作为一个编程人员学习了解Linux系统编程还是很有必要的。我作为一个编程小白,看了liunx系统编程有了对C语言的编程的很大帮助。

Linux系统编程主要是对编写系统软件的相关技术和技巧进行了讲解与介绍。系统软件运行在系统的底层,与内核和系统的核心库进行交互。

常见的系统软件包括:

  1.  shell
  2. 文本编辑器
  3. 编译器
  4. 调试器
  5. 核心工具(GNU core Utilities)及系统守护进程。

此外,系统软件还包括网络服务、web服务和数据库。这些程序都是基于内核和C库实现的,称为“纯”系统软件。对于一些程序员一直在编写系统软件,而有些程序员只投入了少部分时间。不管怎么说,深入理解系统编程都会让程序员受益匪浅。

1.1 为什么要学习系统编程?

相信很多初学的编程的小白的程序员都有同样的疑问,我为什么要学习系统编程?我现在学习的编程用不到系统编程呀。这些也是我之前的不以为然,感觉没必要学习系统编程。但作为初学者接触以后系统编程,突然觉得:哦豁,原来系统编程这么香!我相信很多接触过系统编程的程序员都和我有同样的感觉。那么废话少说,接下来就讲讲为什么要学习系统编程?

最近几年,不管是web开发还是托管代码,应用编程都渐渐远离系统编程向高级开发发展。然而,这种开发趋势并非意味着系统编程的总结。实际上,依然需要有人来开发Java Script解释器和Java虚拟机,这个本身就是系统吧¥编程。此外,Python、Ruby或Scala程序员还是可以从系统编程中受益的,因为深入了解计算机灵魂的程序员在任何层次都能够编写出更好的代码。

虽然应用编程的趋势逐渐远离系统级的编程,绝大部分的UNIX和Linux代码还是属于系统级编程范畴,其中大部分是用C和C++实现的,主要是C库和内核的接口。另外,传统的系统编程———如Apache、bash、cp、Emacs、init、gcc、gdb、glibc、ls、mv、vim和X,也都不会很快过时的。系统编程通常包括内核开发,至少包括设备驱动编程。

1.2 系统编程的基础

Linux系统编程有三大基石:系统调用、C库和C编译器,每个都是Linux系统的重中之重。

系统编程始于系统调用,也终于系统调用。系统调用(通常简称为syscall)是为了从操作系统请求一些服务或资源,是从用户空间如文本编辑器、游戏等向内核(系统的核心)发起的函数调用。系统调用范围很广,从大家经常用到的如read()和write(),到罕见的如get_thread_area()和set_tid_address()都在其范畴之内。

 

你可能感兴趣的:(linux,ubuntu)