시스템 프로그래밍
Systems programming시스템 프로그래밍 또는 시스템 프로그래밍은 컴퓨터 시스템 소프트웨어를 프로그래밍하는[1] 활동입니다.애플리케이션 프로그래밍과 비교하여 시스템 프로그래밍의 주요 특징은 애플리케이션 프로그래밍이 사용자에게 직접 서비스를 제공하는 소프트웨어(예를 들어 워드프로세서)를 생성하는 것을 목표로 하는 반면, 시스템 프로그래밍은 다른 소프트웨어에 서비스를 제공하는 소프트웨어 및 소프트웨어 플랫폼을 생성하는 것을 목표로 한다는 것입니다.퍼포먼스에 제약이 있거나 둘 다(운영체제, 컴퓨터 과학 애플리케이션, 게임 엔진, 산업 자동화,[1] 서비스형 소프트웨어 애플리케이션 등)입니다.
시스템 프로그래밍에는 하드웨어에 대한 고도의 인식이 필요합니다.소프트웨어 자체가 퍼포먼스에 중요하기 때문에, 또는 작은 효율 개선에도 곧바로 시간이나 비용의 대폭적인 삭감으로 이행하기 때문에, 이용 가능한 자원을 효율적으로 사용하는 것을 목표로 하고 있습니다.
개요
다음 속성은 시스템 프로그래밍의 특성을 나타냅니다.
- 프로그래머는 프로그램이 실행되는 시스템의 하드웨어 및 기타 속성에 대해 가정할 수 있으며, 예를 들어 특정 하드웨어와 함께 사용할 때 효율적인 것으로 알려진 알고리즘을 사용함으로써 종종 이러한 속성을 이용합니다.
- 일반적으로 다음과 같이 낮은 수준의 프로그래밍 언어 또는 프로그래밍 언어 사투리가 사용됩니다.
- 대부분의 경우 시스템 프로그램은 디버거에서 실행할 수 없습니다.시뮬레이션 환경에서 프로그램을 실행하면 이 문제를 줄일 수 있습니다.
시스템 프로그래밍은 응용 프로그램 프로그래밍과 충분히 다르므로 프로그래머는 둘 [citation needed]중 하나를 전문으로 하는 경향이 있습니다.
시스템 프로그래밍에서는 종종 제한된 프로그래밍 기능을 사용할 수 있습니다.자동 가비지 수집의 사용은 일반적이지 않으며 디버깅이 어려울 수 있습니다.런타임 라이브러리는 사용 가능한 경우 일반적으로 훨씬 덜 강력하며 오류 검사를 덜 수행합니다.이러한 제한으로 인해 모니터링과 로깅이 자주 사용됩니다.운영체제는 매우 정교한 로깅 서브시스템을 갖추고 있을 수 있습니다.
operating system 및 네트워킹에서 특정 부분을 구현하려면 시스템 프로그래밍이 필요합니다.예를 들어 운영체제용 페이징(가상 메모리) 또는 디바이스 드라이버를 구현해야 합니다.
역사
원래 시스템 프로그래머는 항상 어셈블리 언어로 작성했습니다.1960년대 후반 하드웨어 지원 실험은 PL/S, BLIS, BCPL 및 Burroughs 대형 시스템용 확장 ALGOL과 같은 언어로 이어졌습니다.포스에는 시스템 언어로서의 애플리케이션도 있습니다.1970년대에 C는 Unix의 성장에 힘입어 널리 보급되었습니다.최근에는 임베디드 C++라고 불리는 C++의 서브셋이 사용되고 있습니다.예를 들어 MacOS의 [2]I/O 키트 드라이버에 사용되고 있습니다.
대체 의미
과거의 이유로 일부 조직에서는 시스템 프로그래머라는 용어를 사용하여 보다 정확하게 시스템 관리자라고 할 수 있는 직무 기능을 설명합니다.이는 메인프레임을 수반하지 않는 직무 기능을 설명하는 데까지 사용되고 있지만 컴퓨터 리소스가 메인프레임에 의해 지배되어 온 조직에서는 특히 그렇습니다.IBM 메인프레임의 관리에는 OS/MVS, DOS/VSE 또는 VM/CMS와 같은 운영 체제와 통합된 사용자 지정 조립자 코드(IBM의 Basic Assembly Language)의 작성이 수반되는 경우가 종종 있었기 때문에 이러한 사용이 발생하였습니다. 실제로 일부 IBM 소프트웨어 제품은 고객 프로그래밍 직원의 상당한 코드 기여를 받았습니다.이러한 유형의 프로그래밍은 점차 보편화되지는 않지만, 시스템 프로그래머라는 용어는 여전히 IBM 메인프레임을 직접 관리하는 직원에게 실질적인 직책입니다.
참고 항목
레퍼런스
- ^ a b "Panel: Systems Programming in 2014 and Beyond". Microsoft. Retrieved 4 December 2015.
- ^ Apple Inc (14 August 2009). "I/O Kit Device Driver Design Guidelines". developer.apple.com. Apple Inc. Retrieved 16 September 2014.