일요일 8월 23, 2009

 Summary in English: What's about Standard in Solaris OS ? Solaris supports POSIX, other UNIX standards ?

종종 Solaris 10 이 POSIX를 정말 지원하는가? 또는 IEEE의 몇몇 표준을 정말 지원하는가 등의 문의를 받을 경우가 있습니다. 물론 지원합니다. 하지만 표준 항목은 너무나 많기 때문에 지원하지 않는 항목들도 있을 수 있습니다. POSIX의 경우 이미 다들 아시겠지만, UNIX가 범람(?)하던 시절 생각있는 분들이 UNIX Starndard 를 위해 만든 표준이죠.  왠만하면 이런이런 function 들은 왠만하면 OS dependency 없이 똑같이 작동하게 해서 호환성을 늘리고 쉽게 Porting가능하게 하자는 의도가 아닐까 합니다.

Solaris 10에도 새로운 기능이 들어가면서 Opensolaris와 연관이 깊습니다. 어떠어떠한 부분은 POSIX와 부합되지 않는 경우도 있을 수 있습니다. 하지만, 그런 부분은 대부분 Kernel부분이 아닌 add-on feature 입니다. 또한 동일한 기능의 Upgrade된 기능이 있다면, 이전 기능이 POSIX를 지원하고 있으므로써 POSIX를 중요시 하는 경우 호환성을 유지할 수 있게 합니다. 따라서 큰 걱정은 하지 않으셔도 됩니다.

Solaris x86 과 SPARC은 별도의 Source Code가 아닌 동일한 Source Code 에서 Target build만 SPARC이냐 X86이냐로 Cross compiling되는 구조입니다. 때때로 Solaris x86은 혹 별도의 Beta 버젼이 아니냐는 문의를 받지만, 동일한 Solaris 입니다.

그렇다면 Solaris 표준 관련해서 대체 어디서 찾아 볼 수 있을까요?

Source: http://www.opengroup.org/openbrand/register/sun.htm

에서 완전한 최신 Update는 아니지만 정보를 찾아 볼 수 있습니다.


일요일 7월 19, 2009

Sun Studio 12 Update 1, 최신 Sun Studio Compilers and Tools 입니다. 컴파일러부터해서 C,C++,Fortran 개발을 위한 모든 툴을 포함하고 있습니다. Solaris 역시 Sun Studio로 개발되고 컴파일됩니다. SPARC CPU를 완벽하게 지원하는 유일한 컴파일러입니다.

Sun Studio Portal -> http://developers.sun.com/sunstudio/

지원하는 운영 체제는 Solaris 10, OpenSolaris (2008. 11 and 2009.06), SuSE Linux Enterprise Server 10, Red Hat Enterprise Linux 5, CentOS 5 입니다. Linux 환경을 지원하고, UNIX 와 다른 Linux 특화된 부분도 지원하고 있어, 리눅스 개발자 분들도 Sun Studio를 편하게 이용하실 수 있습니다. 아시겠지만, Linux, UNIX 환경에서 Windows의 Visual Studio와 같은 개발 툴이 없습니다. 툴은 있지만, 점유율이나 인지도가 그렇지 못 하다는 의미입니다. 그 가운데는 기능보다는 많이 알려지지 않았다는 이유도 있을 수 있습니다.

  • C, C++ and Fortran compiler optimizations for the latest UltraSPARC and SPARC64-based architectures
      -> Compiler는 해당하는 Target Platform 정확히는  ISA(Instruction set architecture)에 맞는 instruction으로 빌드하는게 임무입니다. 따라서 컴파일러가 최신 CPU의 업그레이드된 Instruction을 모른다면 그저 기존의 호환 가능한 Native insturction들로만 바이너리를 생성할 수 없겠죠. 따라서 새로 생긴 명령어들의 최적화된 기능들을 사용할 수가 없게됩니다. 즉, 실행에는 문제가 없지만, 100% 성능을 낼 수 없게 되는 것입니다. Sun Studio는 Sun 의 SPARC CPU와 그 Roadmap을 같이한다고 생각하셔도 됩니다. 가장 최적화된 Binary를 생성할 수 있는 유일한 Compiler입니다.
 
  • C, C++ and Fortran compiler optimizations for the latest x86 architectures from Intel and AMD including SSSE3, SSSE4a, SSe4.1, SSE4.2 compiler intrinsics support
    -> SPARC 외에도 x86 architecture의 새로운 Instruction 들도 같이 지원하고 있습니다.

  • Compiler, debugger, and profiling support for OpenMP 3.0
    -> 요즘 이슈가되는 Parallel Programming에서 가장 많이 쓰이는 OpneMP를 지원하며, 최신 3.0 버젼까지 지원하여 개발에 용이 합니다.

  • Profiling of distributed MPI-based applications
    -> 멀티 노드에서 병렬 프로그램이 가능한 MPI로 개발된 어플리케이션도 이제 Profiling할 수 있습니다.

  • DLight - New tool for unified application and system profiling using Dynamic Tracing (DTrace) technology on Solaris platforms
    -> Solaris의 강력한 Monitoring 툴인 Dtrace의 기능을 이용하여 OS의 여러 정보를 실시간으로 추적해 보고 분석해 볼 수 있습니다. 이러한 Tracing 값을 Graphical Analytics로 표현하여 개발 시 OS와 Application을 동시에 들여야 볼 수 있습니다.

  • dbxTool - New stand-alone graphical debugger
    -> 오래된 dbx 툴을 단일 Graphic 툴로 지원합니다. dbx만 사용하고자 할 경우, 또한 그것을 GUI로 사용할 수 있는 새로운 기능입니다.

  • Highly tuned and parallelized scientific libraries, including ScaLAPACK
    -> 복잡한 계산에서 높은 성능을 낼 수 있는 많은 수치 연산 라이브러리를 지원하고 있습니다.

  • Update IDE based on NetBeans 6.5.1 software
    -> Sun Studio는 GUI Framework을 NetBeans 와 공유하여 사용하고 있습니다. 편리하고 User-friendly Interface 로 GUI환경에서 편리하게 개발할 수 있습니다.

Sun Studio 12 Update 1 Features page: http://developers.sun.com/sunstudio/features/index.jsp
Sun Studio 12 Update 1 Press Release: http://www.sun.com/aboutsun/pr/2009-06/sunflash.20090623.1.xml




수요일 7월 08, 2009

Summary in English : introduce Sun Studio. and light talks about why we have to prefer Sun Studio instead of gcc on Solaris environment.

Solaris 가 최고의  UNIX 임을 자부하는 것은 이상할게 없다. 가만 생각해 보면, Solaris도 결국 컴파일된 binary 집합이다. OS 소스 코드가 있고(이미 OpenSolaris가 되면서 Source code가 모두 공개되어 있다.누구든지 보고 직접 다운 받아 컴파일해 볼 수도 있다.), 결국 컴파일 과정을 거쳐서 실행 가능한 OS binary, Image가 완성된다.

우리는 IT에 있다면, 누구나 컴파일러라면  gcc를 가장 먼저 떠올리지 않을까 싶다. 물론 Windows 개발자 분들은 Visual Studio를 떠올리실 수 있지만, "Compiler"라는 단어를 떠올리면 Visual Studio 개발자 분들도 gcc를 먼저 떠올리지 않을까?

Solaris는 Sun의 제품이고 Sun은 Sun Studio라는 개발툴을 제공하고 있다. 그 안에는 매우 훌륭한 기능들의 툴과 GUI IDE가 들어 있고, 물론 cc 라는 Compiler가 들어있다. Solaris는 바로 Sun Studio의 Compiler로 빌드된다. Sun Studio는 이전에는 상용 제품이었지만, 지금은 Free !! 언제든지 다운로드 가능하다.

Solaris에는 gcc도 포함되어 있다. gcc에 맞춰진 소스가 많다보니 gcc, gmake, gas, gld 모두 Solaris에서 사용가능하다. 하지만,  하나 중요한 사실은 gcc, cc의 두 컴파일러 중 Sun의 SPARC CPU를 정확히 아는 녀석은 cc 컴파일러라는 사실이다. target platform에 맞는 최적의 build가 가능한 Compiler라는 의미이다.

또한, Sun Studio에서 제공하는 dmake는 아주 손쉽게 분산 컴파일을 지원하여, 오래 걸리는 컴파일 시간을 요즘 같은 Multi core Process가 대부분인 시스템에서 아주 좋은 성능을 발휘한다.

Sun Studio에 관한 글들은 차차 블로깅을 할 예정이다. 의외로 cc가 잘 알려지지 않은 부분이 있지만, 가진 기능이나 성능을 알게된다면,  gcc말고 cc 를 써야하는 이유는 매우 분명해 질 것이다.

수요일 7월 01, 2009

Summary in English : How to find HDD's serial number on Solaris

글쎄, 크게 쓰일 일은 없지만, 종종 업무 상황에서 서비스를 하다보면 필요한 경우가 생길 수 있다. 파트 교환을 한다거나, 어느 제품인지 제품을 뜯지 않고도 보고 싶을 때 유용할 수 있다. 또는 특정 시리얼의 제품에서 버그가 있다면, 확인해서 제품을 바꾸거나 할 수도 있다.

SAS 146GB HDD 두 개가 장착되어 있는 Sun Enterprise T5240 서버에서 하기와 같이 command를 쳐보자.

# iostat -En
c1t0d0           Soft Errors: 0 Hard Errors: 0 Transport Errors: 0
Vendor: SEAGATE  Product: ST914602SSUN146G Revision: 0603 Serial No: 080194AZN1
Size: 146.67GB <146673192960 bytes>
Media Error: 0 Device Not Ready: 0 No Device: 0 Recoverable: 0
Illegal Request: 0 Predictive Failure Analysis: 0
c1t1d0           Soft Errors: 0 Hard Errors: 0 Transport Errors: 0
Vendor: SEAGATE  Product: ST914602SSUN146G Revision: 0603 Serial No: 080194AZE3
Size: 146.81GB <146810536448 bytes>
Media Error: 0 Device Not Ready: 0 No Device: 0 Recoverable: 0
Illegal Request: 0 Predictive Failure Analysis: 0
유용한 유틸로 cfgadm 도 있다. device 정보들을 볼 수 있다.

# cfgadm -av |grep dsk
c1::dsk/c1t0d0                 connected    configured   unknown    SEAGATE ST914602SSUN146G
사용 불가능  disk         n        /devices/pci@0/pci@0/pci@2/scsi@0:scsi::dsk/c1t0d0
c1::dsk/c1t1d0                 connected    configured   unknown    SEAGATE ST914602SSUN146G
사용 불가능  disk         n        /devices/pci@0/pci@0/pci@2/scsi@0:scsi::dsk/c1t1d0

This blog copyright 2009 by Ilho Kim