유닉스 프로그래밍은 정확히 무엇을 의미합니까? [닫은]


10

유닉스 프로그래밍 이라는 용어의 의미를 이해했다고 생각 했지만, 이제는 커널 / C 프로그래밍 컨텍스트에서이 용어에 대해 읽은 후이 용어의 의미를 명확히해야한다고 생각합니다.

다음과 같은 경우 분명하지 않습니다.

  1. 쉘 프로그래밍
  2. 유닉스 프로그래밍 도구
  3. Unix 명령 줄 도구 프로그래밍의 특정 방법 / 패턴 (예 : "Unix shell programming"의 파이프 라인 방법에 동의하기 위해) 또는
  4. 다른 것.

2
약간의 컨텍스트를 제공해야합니다. 이 표현을 어디서 읽었습니까? 문맥 상으로는 유닉스 OS 용 프로그래밍을 의미한다고 말하고 싶습니다.
lgeorget

6
이 질문은 기본적인 영어에 관한 것이기 때문에 주제가 아닌 것 같습니다.
Gilles 'SO- 악한 중지'

1
@Gilles 아, 그 구분은 이제 있도록 : P는
금발 미녀

@Igeorget, Taoup.
Pacerier

@goldilocks, 의미?
Pacerier

답변:


14

"유닉스 프로그래밍"은 유닉스 환경을 위해 명시 적으로 프로그래밍하는 것을 말합니다. 여기에는 관련 표준 (예 : POSIX ) 을 준수하는 쉘에 대한 프로그래밍이 포함됩니다 . 그러나,이 시스템은 * nix 세계에만 해당되는 것으로 가정하고 유사하게 표준화 된 시스템 인터페이스 및 리소스를 명시 적으로 사용하면서 모든 언어로 프로그래밍하는 것도 포함합니다.

예를 들어, C 또는 C ++에서 타사 라이브러리가없는 네트워크 프로그래밍은 표준에 대해 아무 것도 말하지 않기 때문에 이식성이 없습니다. C / C ++의 네트워킹은 운영 체제에 의해 지시 된 인터페이스를 사용하여 구현되며, * nix 시스템에서 이것은 보편적 인 것이므로 해당 코드를 Windows로 (예) Windows로 또는 그 반대로 변경하지는 않습니다. 따라서 C 또는 C ++에서 네트워크 작업을 수행한다는 것은 휴대용 라이브러리를 사용하거나 플랫폼을 대상으로하는 것을 의미하며 Unix는 나중에 "유닉스 프로그래밍"(및 C 또는 C ++ 프로그래밍 및 네트워크 프로그래밍) 일 가능성이 있습니다. 1

그러나 perl, python 또는 java와 같은 많은 고급 언어의 네트워킹 프로그래밍 이식 가능합니다. 이러한 언어는 일반적으로 C로 구현되지만 구현 세부 사항은 플랫폼마다 다르지만 인터페이스는 다릅니다. 따라서 perl이 실행되는 시스템에서 실행되는 네트워킹 코드를 perl로 작성할 수 있습니다. 유닉스 시스템에서 이것은 인터프리터 구현에 의해 적절한 네이티브 호출로 변환되며, 윈도우 시스템에서는 다르게 번역됩니다. 실제 펄 코드는 펄 이외의 것이 아니기 때문에 유닉스 프로그래밍이 아닙니다. 네트워크 프로그래밍과 펄 프로그래밍이지만 유닉스 프로그래밍은 아닙니다.


1. C와 Unix의 밀접한 역사적 관계로 인해 C가 일반적으로 운영 체제를 작성하는 데 가장 많이 사용되는 언어였으며 "운영 체제"의 특성상 " OS 특정 C 프로그래밍 "-네트워킹 이외의 일상적인 예는 파일 스 태팅 및 디렉토리 읽기와 같은 파일 시스템 지향적 인 것입니다. 따라서 C의 기본 프로그래밍에는 필연적으로 많은 OS 관련 요소가 포함되기 때문에 다양한 "Unix Programming in C"유형 책이 있습니다. 이것은 perl 또는 java와 같은 이식성이 높은 언어의 경우에는 해당되지 않습니다. 이 경우이 책의 주제는 " Perl의 시스템 프로그래밍"이거나 "Perl을 사용한 프로그래밍"일 가능성이 높습니다.


1
골디락스 교수가 다시 파업합니다!
mikeserv

@goldilocks, 리눅스가 유닉스를 죽였 기 때문에, 지금 누구도 "유닉스 프로그래밍"을하는 사람이 거의 없다는 것을 의미합니까?
Pacerier

1
솔라리스와 BSD는 널리 보급되어 있으며 (일반 PC 소비자가 자신이 무엇인지 모르더라도) 기술적으로 OSX는 공식적으로 UNIX 호환으로 승인됩니다 (이름이 "macOS"로 다시 전환 된 것 같습니다). 전제에 동의하지 않음
goldilocks
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.