Unix/Linux编程实践教程(1)---Unix系统编程概述

原创 2015年11月20日 11:33:51

概述:

1.Unix系统包括用户程序和系统内核

2.内核由许多子程序构成

3.内核管理所有的程序和资源

4.进程之间的通信对Unix很重要 


什么是系统编程?


系统模型


如同所示 多用户:在系统中有多个用户运行多个程序,访问多个设备


内核(操作系统 )

计算机通过操作系统来管理所有的资源 ,并将不同的设备和不同的程序连接起来。



操作系统也是程序,与普通程序连接起来,也在内存中运行,同时它又是一个特殊程序,管理抵触硬件资源,为其他软件提供服务


系统资源

1.处理器(Processor):执行程序指令的一个硬件设备


2.输入/输出(I/O):所有的输入输出都必须进过内核,这种集中处理是有优势的:1.正确性,数据不会流错地方2.有效性,指向性3.安全性,数据不会被未被授权的程序非法访问


3.进程管理(Process Management):进程是指程序的一次运行每个进程都有自己的资源,如内存、打开的文件etc.内核中与进程有关的服务有新建Process、中止进程,进程调度etc.


4.内存(Memory):内存是计算机中很重要的资源,程序必须被放入内存才可以运行。


5.设备(Device):计算机中可以有各种各样的外设,like your keyboard etc.


6.计时器(Timers):程序的工作与时间有关,有的需要定时触发...


7.进程间通信(Interprocess Communication) :内核提供的服务,就像人与人之间的电话联系、邮件联系。


8.网络(Networking): 网络之间的通信可以看做进程通信的一种特殊模式,通过网络,不同主机上的进程,即使用不同的操作系统也可以相互通信。


学习要求: 

1.分析程序

2.学习系统调用

3.编程实现

它是做什么的?

它怎么实现的?

能不能自己写一个?


《Unix-Linux编程实践教程》读书笔记(一)

写在最前:          第一遍:零零散散的花了近两个月的时间读了本书的第一遍,这是一本很适合刚刚掌握一些计算机基础知识的人读的书。学习的思路非常明确,能做什么?怎么做?自己动手?三个方面符合认知...
  • yongchurui
  • yongchurui
  • 2014年03月27日 23:20
  • 3912

《Unix-Linux编程实践教程》读书笔记(十)

第十章 I/O重定向和管道 1.      shell脚本中 # ls > my.file                 #who| sort > userlist          两个...
  • yongchurui
  • yongchurui
  • 2014年05月29日 23:30
  • 871

《Unix/linux编程实践教程》第三章部分习题

3.10(控制ls分栏输出) ls的分栏输出如图所示,有两个特点:1、每一栏(列)的宽度有这一栏最长的文件名决定2、显示的栏数受终端显示器的宽度影响。所以,如何确定输出行与列的总数成为关键。 ...
  • u014507230
  • u014507230
  • 2015年04月27日 18:59
  • 571

unix/linux编程实践教程:who命令

1. who命令的编写
  • fzyz_sb
  • fzyz_sb
  • 2014年08月26日 20:33
  • 1402

《Unix-Linux编程实践教程》读书笔记(七)

1.      游戏同操作系统的相似之处:游戏涉及屏幕管理、时间、信号、同时做几件事情,这些情景在操作系统中十分常见。 2.      屏幕编程:curses库          1)  hell...
  • yongchurui
  • yongchurui
  • 2014年05月21日 21:12
  • 1592

《Unix/linux编程实践教程》第六章部分习题

这一章的习题比较简单,主要都是让读者熟悉终端控制与信号的属性,如非规范属性,不回显等。 这里主要通过最后一题(6.12)来熟悉一下本章知识。 程序需要读取终端行数与列数,将A字母打印row*col...
  • u014507230
  • u014507230
  • 2015年04月27日 18:52
  • 401

《Unix/linux编程实践教程》第二章部分习题相关知识整理

open和fopen的区别(2.3)1.缓冲文件系统缓冲文件系统的特点是:在内存开辟一个“缓冲区”,为程序中的每一个文件使用,当执行读文件的操作时,从磁盘文件将数据先读入内存“缓冲区”, 装满后再从内...
  • u014507230
  • u014507230
  • 2015年04月27日 19:00
  • 361

学习linux/unix编程方法的建议

看了这篇文章,看来自己的路还很长,想成为一个合格的程序员,并不是一件简单的事情。努力吧,呆娃!下面是原文,转过来,作为我程序员之路的一个参考! ---------------------------...
  • wm_1991
  • wm_1991
  • 2015年10月04日 22:34
  • 1020

Linux-Unix系统编程手册学习笔记

Linux-Unix系统编程手册学习笔记
  • wp1603710463
  • wp1603710463
  • 2015年12月19日 22:45
  • 1117

Unix/Linux编程实践教程–tail在OS X的实现

环境:OS X 10.12.4tail和head的作用刚好相反,读出文件的最后n行。这个看起来好像比较简单,但是还是有很多需要考量的。大致考虑了下,我得出了三个方案。Plan A从头开始读,记录下每一...
  • stc_XC
  • stc_XC
  • 2017年06月14日 18:22
  • 151
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Unix/Linux编程实践教程(1)---Unix系统编程概述
举报原因:
原因补充:

(最多只允许输入30个字)