UNIX는 AT&T벨 연구소에서 최초로 개발된 운영체제이며 다중 사용자와 멀티 태스킹을 지원 한다는데 이때 다중사용자와 멀티태스킹은 무엇을 의미하는지 찾다가 더 상위 개념인 시스템프로그래밍에 대해 찾고 정리한 내용입니다.
시스템 프로그래밍 개요 강의 영상
HPC랩, 시스템프로그래밍 개요
시스템 프로그래밍이란 다른 SW에게 서비스하는 엔진(SW와 SW플랫폼들)을 만드는 것(의역 + 축약)
Systems programming, or system programming, is the activity of programming computer system software. systems programming aims to produce software and software platforms which provide services to other software, are performance constrained, or both 위키백과
게임엔진이나 운영체제등이 시스템프로그래밍에 속합니다.
반대로 앱 프로그래밍은, 유저에게 직접적으로 서비스를 제공하는 SW 입니다.
유닉스 시스템이란 System call interface란 프로그래밍 인터페이스를 활용해 직접 System call하여 프로그래밍하는 것(사견)
유닉스 시스템 프로그래밍은 유닉스에서 제공하는 시스템 호출(System Call)를 이용해서 프로그램을 작성하는 것이다. 시스템 호출은 유닉스 시스템이 제공하는 서비스를 프로그램에서 이용할 수 있도록 지원하는 프로그래밍 인터페이스를 의미한다 유닉스 시스템 프로그래밍, 한빛 아카데미
시스템이란 수 많은 부분집합(부품)으로 이루어진 하드웨어와 소프트웨어의 합집합이며, 목적성을 가짐
소프트웨어는 하드웨어를 동작시키기 위한 방법을 지시하는 명령어 집합의 모임
시스템프로그래밍이란 시스템에 대한 이해를 가지고 하는 프로그래밍
시스템을 구성하는 자원 및 동작 방식에 대한 이해를 바탕으로 효율적인 프로그램 작성
시스템 자원의 기능을 활용(직,간접적으로 제어)하는 프로그래밍
농산물 직거래장에서는 "저렴하고(economical)" "다양한(various)" 농산물을 맛볼 수 있듯이
컴퓨터에게 직접 System call 하면 컴퓨팅 자원이 저렴한 "고성능(High performance)"
문법규칙과 프로그래밍 환경에 "제약이 덜한(Do more things)" 프로그래밍을 하는 것
System call interface : 시스템의 기능(서비스를) 이용 및 제어하는 통로
커널 내 모듈을 직접 호출
Library function : 미리 컴파일된 함수
자주 사용되는 기능을 독립적으로 구현, 프로그램 개발을 빠르고 쉽게할 수 있도록 도와줌
내부적으로 System call를 활용함


(라이브러리 함수는 언어내의 내장함수 혹은 웹업로드된 라이브러리를 의미하는 듯 하고..)
(SystemCall 이란게 OS가 작동하도록 내리는 명령이기에, 실제 프로그래밍 언어에서의 예시를 찾아서 들면 좋을듯 함)
(유닉스 시스템의 학습 의의가 시스템 프로그래밍을 의미하는 것인지?)
(방송대 유닉스 시스템 VS 한빛 아카데미 유닉스 시스템 프로그래밍)