파이썬(Python)




"인생은 너무짧다. 그래서 파이썬이 필요하다."

파이썬은 짧은 코드에서 나오는 효율성 뿐만아니라 들여쓰기로 만들어지는 자동 정렬,

어떤 분야든 가리지 않고 닥치는대로 사용할 수있는 범용성 등 많은 무기를 가지고 있다.

이 때문인지는 몰라도 2017년 6월 기준 프로그래밍 점유율 수준은 당당하게 4위를 차지하고 있다.





(파이썬의 창시자 - 귀도 반 로썸)


파이썬이 최근에 주목받고 있다고 생각할지 모르겠지만 발표시기는 1991년,

웹 서비스가 일반인들에게 널리 상용화되기 전에 나온 언어이다.

언어를 만든이는 귀도 반 로썸(Guido van Rossom)으로 

1989년 크리스마스 주에 연구실이 닫혀있어 심심한 김에 만들었다고 한다.

리누스나 귀도 둘다 심심한 김에 걸작을 만들었다는데 있어서, 위대한 공돌이의 피가 흐르는 것 같다.

파이썬이라는 이름은 귀도가 즐겨보던 6인조 코미디 그룹 몬티 파이썬에서 따왔다.


문법이 매우 쉬워서 C를 제치고 초보자에게 입문용으로 추천되는 언어이며,

벌써 몇몇 대학교에서는 인문학과 교양 수업으로 편성되는 저력을 보이고 있다.

그러나 사용하는 사람이 많은 만큼 까는 사람도 많다. 

어떤 커뮤니티에서는 C 와 파이썬 중 어떤 언어로 입문하는게 좋은지 끝없는 토론이 이루어지고 있다.






파이썬의 특징은 2버전과 3버전으로 나뉜다는 것이다.

2버전의 불편함이 끊임없이 대두되었고, 

결론적으로 하위 호환성을 포기하고 3버전을 출시했는데 기본적으로 둘사이에 호환성은 낮다.

그러나 파이썬 2를 3으로 바꿔주는 컨버터 등이 제공되어 완전히 갈아 엎을 필요는 없어보인다.


당연한 말이지만 파이썬 2가 먼저 나왔기 때문에 3가 출시 되었을 때는 당연히 2로 구현된 모듈이나 라이브러리가 많았다.

그러나 3를 주력으로 지원하고, 시간이 지나며 모듈과 라이브러리 데이터도 늘어나면서 현재는 3를 목표로 공부하는것이 좋다.

이유는 위에서 언급한 내용과, 파이썬 2에 대한 지원 2020년을 기점으로 종료되기 때문이다.







이러한 파이썬의 장점은 여러가지가 있는데 가장 첫 번째가 생산성이 높다.

위의 그림은 파이썬에 입문했던 사람이라면 한번쯤 보았을 만화인데, 인터프리터 언어이며,

High level의 자료형과 좋은 모듈을 제공해주는 덕분에 단 몇줄의 코드만드로 많은걸 해낼수 있다.


또한 들여쓰기로 블록을 구별하기 때문에 프로그래밍을 하는 것만으로 코드의 모양이 저절로 정리된다.

파이썬이 가지는 특징이자 장점이라고 할수 있다.


마지막으로, 거의 모든 분야에 대해 지원을 하기 때문에, 프로젝트를 구현할 때 어떤 언어로 할지 모르면 파이썬을 선택하면 된다.

그 만큼 파이썬이 미치는 영향이크며, 오히려 파이썬으로 할 수 없는 것을 찾기가 더욱 어렵다.

파이썬은 발전하여 Django나 Flask 프레임워크로 웹 분야까지 섭렵하게 되었다.

이 프레임 워크를 사용할경우 짧은 시간내에 많은 것을 구현할수 있다는 장점이 있지만

프레임워크가 제공하는 범위에 한정적이라는 단점이 있다.

 


저작자 표시
신고

자바스크립트(Java Script)



(웹 프로그래밍 3대장 - 아카이누 키자루 아오키지)



앞선 포스팅에서 살펴본 HTML에서 말했듯이, 자바스크립트는 동적 페이지 구현을 위한 언어이다.

버튼 클릭시 이벤트의 상세한 구현이나 서버와의 통신이 대부분 자바 스크립트로 이루어진다.

자바스크립트는 이름에서도 알수 있듯이 스크립트 언어로써, 인터넷 브라우저의 스크립트 엔진으로 돌아가게 된다.


이름부터 자바와 비슷한 자바스크립트는 자바와 아무런 관련이 없다.

브랜던 아이크라는 사람이 10일만에 설계한 언어로써, 초기에 이름을 몇번씩 바꾸면서 

'Java와 구문의 유사성이 있으므로 Java Script라는 이름으로 최종결정되었다'

라고 하지만 대외적으로 알려진것은 역시 그 당시 뜨거웠던 자바의 인기에 어느정도 편승하기 위한 전략이었다.

확실히 구문이 비슷하게 느껴지는것은 두 언어다 C언어에서 영감을 받아 제작된 C-family 언어이기 때문이다.

이러한 전략은 자바의 짝퉁 느낌을 물씬 풍기며, 초기에 개발자들로 부터 무시 받기도 했다.


그러나 자바스크립트의 막강한 기능으로 점점 주목받기 시작했고,

MS에서 이를 채택하고 제 1차 브라우저 전쟁에서 승리하면서 자바스크립트는 메이저 언어로 떠올랐다.

(90년대 초, 당시 대부분의 브라우저 점유율을 차지하고 있었던 넷스케이프와 MS의 익스플로러가

한바탕 전쟁을 치루고 결국 익스플로러가 이긴것이 1차 브라우저 전쟁이다.

MS의 전략은 모든 윈도우 컴퓨터에 기본적으로 익스플로러를 깔아서 출시하는 것이였다. 그러니 이길수 밖에)

또한 2000년대 초반에 AJAX 기능이 추가되며, 페이지의 새로고침없이 데이터를 받아올 수 있게되면서 상당히 강력해졌다.





(자바스크립트의 대가 - 더글라스 크락포드)


자바스크립트의 특징은 명령형, 함수형, 객체지향형 언어라는 것이다.

간단하고 유연하기 때문에 초보자가 배우기 쉽기때문에 많은 프로그래밍 부트캠프에서 가르치는 언어 중 하나이다.

그러나 배우면 배울수록 터지는 매력에 끝을 알수 없는 언어이기도 하다.

물론 유행의 주기가 짧게 계속 생성되는 프레임워크도 이에 한몫하는 요소 중의 하나이다.

다른 특징중에 하나는 비동기 싱글 스레드로 동작한다는 것이다.

이러한 특징을 잘 알아야 효율적인 프로그래밍이 가능하다. 


대표적인 라이브러리, 프레임워크는 JQuery, Angular, React, Vue 등이 있으며

백엔드에서는 자바스크립트 기반 런타임 환경인 Node JS 가 각광받고 있다.


현재는 ES6, ES7 등의 표준안이 계속해서 나오고 있고, 이 때마다 문법적으로 추가되는 요소가 많아서 끝없이 배워야한다.

또한 많은 브라우저가 이러한 표준안을 지원하지 않으므로 ES5로 변환하는 babel을 사용해야한다.

요새 계속해서 보완되고 바뀌고, 라이브러리와 프레임워크가 쏟아져 나오며, 기본 개념도 놓쳐선 안되니

진짜 끝임없이 배워야한다. 


결론적으로 자바스크립트는 진입장벽이 낮지만, 여러가지 이유로 복잡하고 가끔은 변태적인 언어이기도 하다.

그만큼 매력이 넘치는 요소도 많으니 한 포스팅에서 모든것을 설명하기는 어렵다.

자바스크립트의 대가인 더글라스 크락포드가 문법적 특징과 권고안을 잘 설명해놓았으니

자바스크립트를 사용한다면 반드시 그의 저서를 참고하기 바란다.



저작자 표시
신고

HTML(HyperText Mark-up language)



(웹의 창시자 팀 버너스리)


HTML은 마크업 언어로써 프로그래밍 언어와 조금 다른 개념이다

HTML을 알아보기 전에 우선 HTML이 등장하게 된 배경 부터 살펴보자.


불과 30년 전까지만 해도 인터넷은 군사 시설에서나 사용할 수 있는 신기술이었다.

1969년 인터넷은 미국 국방부의 고등 연구 계획국에서 사용하는 ARPAnet이라는 패킷 스위칭 네트워크였으며

1983년 TCP/IP가 이를 대체하여 인터넷으로 진화 하였다.


그러다 1990년대 웹의 창시자 팀 버너스리(Timoty. J. Berners-Lee)

유럽 입자 물리 연구소(CERN)에서 근무하던중 웹에대한 초기 아이디어를 제안하고 구현하게 되었다.

이 아이디어는 입자 물리 연구소 직원들이 잘 짜여진 통신망을 통하여 

서류나 데이터를 주고 받을수 있게하자 라는것에서 출발했는데,

이를 마크업 언어를 통해 실현시키게 된 것이다.


처음에는 디자인은 배제하고 데이터 교환에 초점을 맞추었으므로, 하얀 바탕에 텍스트들만 엄청 떠 있었다.

그러나 시대가 발전하고 웹 디자인의 수요가 늘어나면서, 디자인을 위한 CSS(Cascade Style Sheet)나

동적 페이지를 제작하기 위한 Javascript등의 언어가 개발되었다.

따라서 HTML은 텍스트에 따른 정보의 전달에만 초점을 맞추게 되었다.






HTML의 특징으로는 컴파일러가 필요한 C나 Java등의 언어와 다르게

문법을 브라우저가 해석, 렌더링 한다는 것이다.

예를 들어, 메모장으로 .html 파일을 만들고 문법을 넣은 후 브라우저로 파일을 실행시키면

안의 내용이 웹 페이지에 뜨는것을 볼 수 있다.

또한 태그의 누락이나 오타에 대해서도 상당히 관대한 편이다


HTML은 팀 버너스리가 처음 발표한 1991년의 1.0 버전에서 꾸준히 발전하여

현재는 2014년에 확정된 HTML5 까지 출시되었다.

그 동안 사용자들의 수요와 웹 환경의 변화에 꾸준히 대응하여, 호환성 및 새로운 기능과

문법에 대한 간결성이 보완 되었다.



팀 버너스리의 관련 동영상

https://www.ted.com/talks/tim_berners_lee_on_the_next_web?language=ko#t-145931

저작자 표시
신고

자바(JAVA)




(어느 한 분야에 깊게 빠질수 있는 사람이 개발을 잘하나 보다 - 사진은 제임스 고슬링)


1995년에 발표된 썬 마이크로 시스템즈의 제임스 고슬링이 개발한 언어이다.

위 사진에서 아련하게 소녀시대를 보고 있는 아저씨가 고슬링이다.

초기에는 임베디드 시스템을 위해 개발 되었으나 현재는 안드로이드나 웹 등에서 활발하게 사용되는 중이다.


자바가 가지고 있는 가장 큰 강점은 자바 가상 머신(JVM) 이다.

초기 언어들은 운영체제에 어느정도 종속적인 면을 보였는데, 자바는 개별적으로 JVM이라는 가상머신에서 돌아가기 때문에

어디서나 동일한 퍼포먼스를 보여줄수 있다는 장점이 있었다.

이 때문에 자바의 슬로건은 Write once, Run everywhere이다


물론 JVM이라는 특수한 환경 때문에 기존의 언어보다 속도가 느리다는 단점이 있었으나, 

이는 C, C++과 같은 언어와 비교했을때의 이야기고, 현재 주목받고 있는 파이썬과 같은 고수준 언어보다는 훨 빠르다.


두번째의 강점은 가비지 컬렉터이다.

자바는 언어에서 자체적으로 메모리 누수를 방지하기 위하여, 사용하지 않는 메모리 영역을 자동으로 처리해준다.

C언어를 예로 들자면 malloc과 free를 수동으로 실행해야했는데, 자바에서는 이렇게 heap 영역에 할당된 메모리를

사용하지 않을 경우 자동으로 수집해서 메모리를 확보하는 기능을 가지고 있는것이다.


언어의 이름에 대해서는 여러가지 기원이있는데,

고슬링 사무실 옆에 있는 Oak 나무에 착안, Oak라는 이름을 붙였다가 수정해서 결국에는 4번째 후보였던 자바가 채택되었다.

그 밖에도 개발진이 자바산 커피를 좋아해서 붙였다, 개발자들 이름의 머릿 글자를 다 따서 붙였다 들의 설이 많은데 

이름의 기원이야 어쨌든 상관 없지 않은가.

(커피설이 신빙성 있는 이유는 자바의 대표 로고가 커피이다.)






자바의 특성으로 대표되는 것이 바로 객체지향이라는 것이다.

C 언어를 개조해서 객체지향적으로 만들었던 C++과는 대비되게, 자바는 초기부터 객체지향을 염두에 두고 설계되었다.

따라서 자바는 과감하게 로우 레벨로 접근하는 포인터를 포기했고, OOP에 집중했다.

이러한 이유로 클래스간의 관계나, OOP가 가지고 있는 다형성이나 상속 등의 특성을 잘 구현하여 생산성이 높다.

개인적인 생각이지만, 로우 레벨 처리를 자동으로 해주는 덕분에 복잡한 메모리 접근을 신경 쓰지 않고 작업할 수 있어서

생산성이 더욱 높아진 것 같다.


이 때문인지 몰라도 자바는 발표 초기에서 부터 상당히 주목받는 언어였고 사람들의 사랑을 많이 받았다.

그래서 현업에서도 아직 대규모의 자바 개발자들이 산재해있고, 이 때문에 관련 레퍼런스나 자료들을 쉽게 찾을수 있다.

사람들이 많이 사용함에 따라 안정성도 높아졌고, 이미 검증된지 오래된 언어라고 할 수있다.

(이를 바탕으로 고찰해보면 프로그래밍 언어란 사용자에 따라 빈익빈 부익부가 심한것 같다.)





Hello World!


1
2
3
4
5
public class HelloWorldApp {
  public static void main(String[] args) {
    System.out.println("Hello World!"); // Hello World 를 출력
  }
}
cs


위의 코드는 자바로 출력한 Hello world이다.

다른 언어들과는 확연히 다르게 긴 코드를 자랑한다.

확실히 자바가 다른 고수준 언어보다 코드량이 많긴 하지만, 버전이 업그레이드 될수록

람다식이나 Stream등을 지원하여 짧은 코드를 짤수 있게 지원해주고 있다.



저작자 표시
신고

C++ (C 플러스 플러스)




C++ 개발자 비야네 스트롭스트룹(Bjarne Stroustrup)



1983년 AT&T 벨 연구소의 비야네 스트롭스트룹이 C언어를 기반으로 객체지향프로그래밍(Object Oriented Programming)과 STL(Standard Templete Library)를 추가하여 만들어진 언어이다. 


C언어를 기반으로 했기때문에 C++ 컴파일러에 C언어를 컴파일 할수있다. 초기에는 C 언어에 객체지향을 위한 기능을 추가한 언어라고 취급 되었다. 


예로, 초기에 C++를 컴파일 하기 위해서는 작성된 C++에서 C로, C에서 기계여로 번역되는 순서를 보였다. 


그러나 표준 규격이 바뀜에 따라 C언어와의 호환성은 깨지게 되었고, 현재는 완전히 별개의 언어로 보는것이 맞다고 본다. 보통 국내에서는 씨플플이라고 발음한다.




비야네 저서, The C++ Programming Language


C와의 비슷한 구조 덕분에 C를 선행하고 C++를 배우는 학생들은 객체 지향의 특수성을 제대로 살리지 못하고 절차적인 특성으로 코드를 짜기도 한다. 반대의 커리큘럼으로 배운 학생도 마찬가지이다. C++에서 쉽게 제공되는 기능들이 C로 넘어갈 경우 직접 작성해야 하거나 복잡한 절차들을 거쳐야한다.


주요 특징은 다음과 같다.


- 다중상속

- 템플릿

- 연산자 오버로드

- 예외처리

- 실행시 형 식별


초기 모델은 1979년 객체지향 언어인 simula를 C에 접목 시키는 것으로, 처음에는 C with classes였으나 개발을 거듭하며 C++으로 이름이 바뀌게 된다. 이 후 C++가 안정적으로 정착함에 따라 표준화에 대한 요구가 이어졌다. 


그렇게 최초로 표준안으로 채택된것이 1998년 C++98이다. 이후 C++03, C++11을 거쳐 현재 C++14까지 표준안이 변경되었다. 이렇게 표준안이 변경될때마다 내부의 크고 작은 기능들이 함께 변경된다. 


backjoon 알고리즘 사이트에 표시된 C++11등이 이러한 표준안에 따른 언어를 표현한다고 볼수 있다. 이후 C++17, C++20이 채택될 예정이다.




알렉산더 스테파노프(Alexander Stepanov)



STL은 C++에 포함된 표준 라이브러리 중에 하나이다. 그러나 가끔 STL자체를 C++에 대한 전체 표준라이브러리로 칭하는 경우가있다. 


알렉산더 스테파노프라는 프로그래머가 만든 라이브러리가 시초이다. 개발 년도는 1979년인데, 년도에서 알수있는 것처럼 특정언어를 타겟으로 한게 아니라 독립적으로 제작 되었다가 이후 C++으로 흡수 되었다. 


STL은 크게 컨테이너, 반복자, 알고리즘의 3가지로 나뉜다.


 컨테이너

반복자 

알고리즘 

 vector/deque

 forward_iterator

 for_each

 list/forward_list

 reverse_iterator

 transform

 set/multiset

 insert_iterator

gnerate 

 map/multimap

 input_iterator_tag

 find

 stack/queue

 output_iterator_tag

 sort

 ... ... ...


신고

언어


1972년 켄 톰슨과 데니스 리치가 개발한 고급 언어이다.

당시 새롭게 개발한 유닉스 운영체제에서 사용하기 위한 고급 언어가 필요했고

톰슨이 이를 위해 B 언어를 먼저 개발했다.


사실 케임브리지 대학에서 시작된 CPL이라는 언어가 

BCPL(Basic CPL)로 발전하게 되고,

B언어는 이때 개발된 BCPL의 영향을 많이 받았다.


이후 B언어인 이유는 데니스 리치가 수정을 거쳐 C 언어가 탄생하게 되었다.

언어의 이름이 C인 이유는 여러가지 설이 있는데 

'B언어 다음에 나와서 C' 라는 이유가 가장 심플하다. 

 B 는 벨(Bell) 연구소의 앞글자에서 따왔다.


이 때문에 기존에 어셈블리어로 개발되었던 유닉스 운영체제는 C로 전환되었고 

이후에 등장한 많은 커널들도 C를 기반으로 제작되었다.







꾸준히 등장하는 데니스 리치와 켄 톰슨 아저씨




오랫동안 사용되고 사랑받았으며 이식성이 좋은 까닭에 

많은 개발자들이 사용하는 언어 중 하나이다.


그 예로 많은 컴퓨터관련 학과들의 기본 커리큘럼에 C는 필수적으로 들어가있다.

그렇다고 C가 쉬운 언어는 아니다.

좀 더 깊게 들어가면 갈수록 복잡해지는 것이 C언어이다.


C언어는 시스템 프로그래밍에 적합하다는 말이 있지만 

할 수 있는 것들이 다양하기때문에 기본적인 문법은 익혀두는게 좋을 듯 하다.





데니스 리치 저서, The C Programming Language




마지막으로, C언어를 설명하는데 빠질수 없는 책

 The C Programming Laguage이다. 

개발자가 직접 집필했다. C를 공부하는데 있어서 가장 필수적인 책이라고 할수 있다.



신고


리눅스 (Linux)







리눅스의 마스코트 턱스(Tux)

그냥 펭돌이 정도가 어울리는데



리눅스는 1989년 핀란드 헬싱키 대학에 재학중이던 리누스 토르발즈(linus Torvalds)가 유닉스를 기반으로 개발한

공개 오퍼레이팅 시스템(Operation System, OS)이다

리눅스는 원래 커널을 칭하는 말이었지만, 

현재는 GNU 프로젝트의 라이브러리와 도구들이 포함된 전체 운영체제를 칭한다.




엔비디아가 리눅스를 지원하지 않는다는 사실에 분개하는 리누스



당시 학생이었던 리누스는 교육용 유닉스인 미닉스가 설치된 컴퓨터를 사용하면서 

마음에 안드는 부분을 추가하였고

이것이 점차 거대해져서 새로운 운영체제가 되어버렸다.

초기 미닉스는 교육용이었던 탓에 기능이 별로 없었으며

 유닉스 기준인 POSIX를 만족하지 않았다.

때문에 리누스는 이를 이용하여 POSIX를 만족하며 미닉스보다 

더 좋은 운영체제를 만들기로 하였고 커널을 개발했다

이 후 해당 커널을 릴리즈 할때 리눅스라고 이름붙인것이 리눅스의 시초이다.


리눅스는 공개 당시 바로 화제를 모았다.

이유는 앞서 포스팅한  BSD 유닉스가 소송에 휘말리면서 

대체품으로의 관심이 집중되었고, 공개적 개발 모델을 선택한 것도 큰 영향이 있었다.


이전의 개발은 핵심 개발자가 모든 개발을 마친 후 릴리즈 했지만

리눅스의 경우 누구나 소스를 개발하고, 패치를 완료한 후 개발자에게 보내, 

받아들여지면 다음 패치에 이름이 올라가는 방식이었다.


따라서 사람들은 앞다투어 자신의 이름을 올리기 원했고

커널과 기능 수정에 대해 돈이 들지 않고 업데이트가 가능해졌다.




GNU프로젝트를 주도한 리처드 스톨만


초기 리눅스는 불안정한 운영체제였다. 

그러나 리눅스의 발전은 GNU와의 만남에 큰 영향을 받았다.

GNU는 리처드 스톨만의 주도하에 시작된 프리웨어 유닉스 프로젝트이다.

1990년대 초 GNU프로젝트는 컴파일러,셸, 텍스트에디터, 시스템 라이브러리 등을 

완성하였으나 가장 중요한 커널을 완성시키지 못하고 있었다.

GNU 프로젝트가 자체 커널 개발에서 제동이 걸릴 때쯤 리눅스와 컨텍하게 되었고

이둘의 결합으로 완전한 운영체제로 거듭나게 되었다.


 



대표적인 리눅스 배포판인 우분투


리눅스가 공개 소프트웨어다 보니 이와 관련된 배포판도 상당히 많이 출현하게되었는데

커널이 리눅스면 다 리눅스라고 부른다.

왜냐하면 자신이 사용하는 용도에 따라 운영체제를 고쳐버리기 때문에 배포판이 많이 증가하게 되었다.


리눅스는 자체는 커널만을 의미하기 때문에 GUI는 단순히 인터페이스에 불과하다.

이때문에 리눅스 커널에 여러가지 UI를 사용할 수 있는데

그 종류는 GNOME, KDE, Xfce, LXDE 등이 있다.



현재 리눅스는 서버에서 주로 쓰이나 임베디드 등에서도 활약하고 있다.

리눅스자체가 무료이므로 리눅스를 접한 인력이 많고, 

안정성도 확보된 상태이므로 서버용으로는 확실한 입지를 다지고 있다.


관련자료는 하단 나무위키 URL을 첨부한다.

나무위키는 항상 말이 많지만 다른 곳에 비해 흥미로운 사실들이 있는 건 부정할 수 없다.


https://namu.wiki/w/%EB%A6%AC%EB%88%85%EC%8A%A4



신고

유닉스(UNIX)



간단하게 말해, 유닉스는 운영체제이다.

현재 윈도우를 제외한 맥 OS, 리눅스, 안드로이드 등이 유닉스를 기반으로 제작되었다.


유닉스는 1960년대 말 MIT와 AT&T의 벨 연구소 주도하에 개발한 

시분할 운영체제 멀틱스가 기원이다.

멀틱스는 기능이 다양하고 우수한 운영체제였으나 고비용이었던 탓에 

켄 톰슨과 데니스 리치가 60년대와 70년대에 걸쳐 중요한 기능만 뽑고, 

단순화시킨 유닉스를 개발하게 된다.

유닉스라는 이름자체가 멀틱스와 대조되는, 단순화된 운영체제라는 뜻이 내포되어있다.


사실 어떠한 목적을 가지고 유닉스를 개발했다기 보다는 

연구진들의 재미 반 호기심반으로 시작한 프로젝트가 

이렇게 발전 한 것이라고 볼 수 있다.

당시 연구진들이 재미로(ㅎㄷㄷ) OS를 제작했기 때문에 

강력한 퍼포먼스나 보안기능 보다는 

프로그램의 동작 등, 실용적인 것에 초점을 맞추었다.




 

데니스 리치와 켄 톰슨


초기에는 켄 톰슨이 어셈블리어로 작성하였으나, 

이후에 데니스 리치가 C언어를 기반으로 다시 제작한다. 

(데니스 리치는 C언어 개발자이다, C언어를 개발하신 분)


이는 역사적으로 중요한 사건이었다.

유닉스가 타 플랫폼으로 포팅이 쉬운 C언어로 제작됨으로써, 

유닉스의 인기는 산불처럼 번져나갔다.

또한 AT&T가 독과점 제제로 인하여 전화와 관련되지 않은 상품은 팔거나 사후지원을 할 수 없었으므로 어쩔수 없이 유닉스를 공개한것도 한몫했다.


그리하여 당시 새로운 컴퓨터들은 거의 다 유닉스를 OS로 채택하게 되었고

유닉스를 기반으로 하는 많은 OS들도 등장하였다.


그러나 초기에 유닉스는 네트워크가 구성되지 않는 환경에 설치되어있었다.

이는, 프로그램 실행이나 OS자체의 기능 향상에는 많은 도움이 되었지만 

네트워크 기능에 대해서는 빈약한것이 사실이었다.

그러던 중 캘리포니아 주립대학에서 빌 조이(Bill)와 척 헬리(Chuck)라는 학생들이 여러 기능이 추가된 유닉스 수정판을 배포하는데, 이것이 바로 BSD(Berkely Software Distribution) 버전 유닉스이다.


BSD가 기존의 유닉스와 다른 기능은 멀티태스킹과 255자의 파일이름 등이 있지만 그 중에 가장 눈에 띄는 부분은 네트워크 소프트웨어의 개발이다.

이를 통하여 LAN을 이용한 통신 구축이 매우 수월해 졌다고 할 수 있다.

운영체제가 인터넷에 접근하는 표준 인터페이스인 소켓 개념은 BSD 유닉스에서 만들어졌다.






유닉스의 계열 가계도



이후에 유닉스를 모방한 OS들이 중구난방으로 등장하면서 

이를 표준화하기 위한 기준이 필요해졌다.

그것이 바로 POSIX이다.

POSIX 표준을 만족하는 것들을 유닉스 계열 운영체제라고 한다.

리눅스와 맥 OS등이 대표적인 유닉스 계열 운영체제라고 할 수 있다.

신고

+ Recent posts

티스토리 툴바