리눅스 배워보고 싶은 동생이 있다고 하길래 숲을 보려면 이쪽가서 내꺼 봐라고 했더니 ㅡㅡ;
숲은 무슨 나무가 있어야 보이는데 나무가 없다고 ... 리눅스 인데 왜 언어 강좌는 없냐고
옥신각신 했습니다.
ㅎㅎ 그래서 조금은 자세히 적으려고 합니다.
그리고 사실 리눅스에서 언어 강의는 큰 의미가 없습니다. 대부분 윈도우에서도 다 돌기 때문이죠.
-예시를 들어야 자세히 적는다는 걸 보여 드릴수 있겠죵?-
1. 자바의 경우 : 자바는 똑같은 소스를 윈도우, 리눅스, 기타... 에서 돌릴 수 있습니다. virtual Machine만 바꾸어주면 되죠.
2. C의 경우 : C코드 문법은 모두 같습니다. 인클루드하는 라이브러리가 미묘하게 다를 뿐이죠.
3. C++의 경우 역시나 같아요.
물론, C#, F#언어는 리눅스에 없고 쉘 스크립트 언어는 윈도우에는 없습니다(물론, cmd 배치파일이 있긴 하지만 리눅스에 비할바는 아니죠)
ncursis는 윈도우에는 없는 라이브러리고, MFC는 리눅스에 없는 라이브 러리 입니다.
그런데 안드로이드가 리눅스 커널에 자바 기반이라고 하지만 동작 방식이 리눅스와 같지도 않고 자바 API를 다 쓸 수 있는 것도 아니예요.
즉, 다르다고도 할 수 있고 같다고도 할 수 있습니다.
마치 같기도와 같군요.(개콘 프로그램)
그리고 오래전에는 리눅스에서 윈도우 프로그램을 돌릴 때 와인을 썼었는데요. 최근에는 커널에서 가상화를 지원해주고(이름은 까먹었네요)
꼭 그런게 아니더라도 Vmware 리눅스 버전이 있습니다. 리눅스에서 윈도우 깔고 스타를 즐긴적이 있는데 사실 화면 해상도가 안 맞춰져서
조그만 화면에서 게임을 했더랬죠.
윈도우에서는 cygwin을 통해서 djgpp(철자 맞나 모르겠네요)란 언어를 쓸 수 있는데 그게 gcc 입니다. 그외에
윈도우 cmd에서 쓸 수 있는 명령어들 말고 리눅스의 강력한 유틸리티들을 쓸 수 있어서.
사실상 윈도우와 리눅스의 경계는 무너지고 있씁니다. vim.org가보시면 gvim이 아예 윈도우용으로 개발되어져서 나오는데요.
사실 리눅스에서 윈도우 프로그램 돌리는 것 보다는 윈도우에서 리눅스 프로그램을 돌리는 것이 안정적인 것을 경험할 수 있습니다.
이건 어떤 수치가 있는게 아니라 제가 쭉~ 써보니 그랬어요.
그래서 요즘엔 윈도우에 이것저것 깥아서 씁니다. 아무래도 윈도우는 공개가 되어 있지 않고 리눅스는 소스 코드가 있으니가 문제가 나오면
가상화 회사에서도 트러블슈팅이 더 빠르지 않을까 생각이 됩니다.
제가 이걸 말씀드리는 이유는 리눅스 강의를 하지만 뼛속깊이 리눅슥의 관점에서는 보고 있지 않고 늘 윈도우라는 안경을 끼고 리눅스를
보는 강의라는 것을 말씀드리고 싶어요. 정통 리눅스 강의는 아닙니다. 왜냐면 저도 한 때 리눅스를 사랑했던 사람으로서 다른 것 하고 자꾸
비교를 한다는게 죄스럽네요.
결론적으로 윈도우와 리눅스는 같이 가는 존재입니다. 리눅스 너무 강력한 툴들이 많고 소스가 대부분은 오픈이라 윈도우로 빠르게
포팅이 되고 있습니다. wingrep도 grep에 밀리지 않는 속도와 더 향상된 interface로 사랑을 받고 있습니다. 아무래도 GUI기반이라
편하죵 ^^
몇년전에 RHEL 레드헷 엔터프라이즈 리눅스 사려고 하니까 4백만원 정도했던 것 같은데 윈도우 서버랑 비교하면 많이 싼겁니다. 윈도우껀
DB도 따로 사서 써야 하는데 DB값만 해도 거시기 하니까요. 오피스도 따로 사야되고.... 뭐 기타등등.
그런데 퀄리티는 확실히 좋죠. 그래서 장단점이 있는 것 같습니다.
이제 저는 나이도 있고 해서 프로페셔널한 쪽을 선택하려다 보니 아무래도 상용쪽으로 기우는데요.
지금은 어느 진영 어느 진영 따지지 말고 그냥 모두 좋은 툴들로 생각하는 마인드를 가지려고 합니다.
앞에도 말씀드렸듯이 전문가란 한가지를 잘하기 위해 다른 걸 포기해야하는 건데요.
컴퓨터는 딱히 정해진길이 없고 내용도 너무 방대해서 그냥 닥치는 대로 공부하는게 맞는 것 같기도 합니다.
자 그럼, 리버스 엔지니어로서 배워야하지만 꼭 안해도 되는 것들 중... 어줍잖은 제가 정해드리는 툴들은.
1. 윈도우 기반의 시스템 지식 - 돈이 되니까....
2. 리눅스 기반의 시스템 지식 - 운영체제가 돌아가는 방식이 대충 어떻다 정도만 알면 될 것 같아요.
3. uC/OS-iii 마이크로 씨 오에스 쓰리라고 있는데요. 스케쥴러만 있는 커널인데 재미삼아.... 리눅스 하기 전에 보시면 좋을 것 같아요.
4. gcc4나 visual studio 2010 - 사실상 gcc 3와 gcc4는 완전 다릅니다. 아직도 서로 싸우고 있는데요. 이제는 4도 안정화 단계에 완전히 접어 들어서 4로 가시는게 맞습니다. 그리고 비주얼은 2008 버그가 많아서 2010으로 권장해 드려요.
5. 리눅스 명령어 - 강력한 툴들을 이용할 수 있으니까
6. 윈도우 파워유저의 길 - 윈도우도 강력한 기능들이 많습니다. 예를 들어서 gpedit.msc(시작-실행)만 실행해서 보안설정몇개만바꾸어도
이 명령어를 모르는 사람들은 쓰지도 못해요. 또 mstsc란 명령어가 얼마나 강력한지 모르시는 분들도 많구요. 실재로 피씨방 상대로 테스트
해 봤는데 피씨방 프로그램도 윈도우 기본 기능의 프로그램은 실수로 안 막았는데 원격으로 제어가 잘 되더라구요.
이정도 베이스 지식만있으면 중급으로 가서 좀 더 깊이 파보는데 도움이 되지 않을까 생각해요.
다음 강의 부터는 리눅스 기본 명령어 좀 알아 볼께요.