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


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.