우선 우분투를 설치합니다. 우분투에서 빌드하기를 권장하기 때문에 VirtualBox에 우분투를 면저 설치 하였습니다.


하드 용량은 약간 넉넉하게 잡으세요. 빌드 도중에 용량이 부족할지도 모르겠네요.

공식 사이트에서도 아직 바이너리 형태로 배포하지 않습니다. 소스를 받아 빌드 해야 합니다. 시간이 꽤나 걸립니다. 특히 가상 머신에서 빌드 한다면 시간이 배로 걸리겠죠.

http://www.chromium.org/ 이 곳이 공식 사이트입니다.

http://sites.google.com/a/chromium.org/dev/chromium-os/building-chromium-os/build-instructions
빌드와 설치 방법이 나와있습니다. 차례대로 하시면 큰 어려운 없이 설치가능합니다.

아직 초기 버전이라 설치 환경들이 구축되지 않고 명령어 스크립트로 설치 가능합니다.

이미지 설치 방법중 USB에 설치 할 때 아래와 같이 하라고 합니다. USB드라이브 뿐만 아니라 일반 HDD도 아래와 같은 방법으로 설치 가능합니다. 단, 하드 디스크를 포맷하게 되므로 기존 데이터는 사라지게 됩니다. 주의 하세요.

./image_to_usb.sh --from=~/chromiumos/src/build/images/SUBDIR --to=/dev/USBKEYDEV

Virtual Box에서는 새로운 하드디스크 이미지를 만들어 우분투로 부팅합니다. 위 명령어로 설치할 하드를 지정하면 매우 빠른 시간에 설치가 가능합니다. 아무런 설정도 할 수 없으며 디스크에 그대로 이미지를 복사하며 설치 합니다.


설치된 하드디스크를 보면 위와 같이 파티션이 조정되어 있습니다.
첫번째 sdb1은 상태 저장용으로 말 그대로 상태를 저장하는 파티션이라 추정됩니다.
sdb2는 스왑 파티션으로 추정됩니다.
sdb3는 / 파티션으로 크롬 OS가 설치되어 있습니다. 하지만 읽기 전용으로 구성되어 있습니다.

나머지는 그대로 비워둡니다.



Virtual Box에서 새로운 가상 머신을 만든 다음 Chromium os를 설치한 HDD를 Primary로 지정한 후 부팅하면 다음과 같은 화면을 볼 수 있습니다.

google 계정의 ID와 Password로 로그인이 가능합니다.


로그인한 첫 화면입니다. Gmail이 바로 로그인 상태로 뜹니다. 한글은 출력을 잘되나 입력은 지원되지 않는 상태입니다.


첫번째 탭을 클릭하면 로그인 하라는 페이지가 뜹니다.

로그인 하면 위와 같이 애플리케이션을 실행 할 수 있는 메뉴가 뜹니다.

웹으로 사용할 수 있는 웹 애플리케이션 들입니다.


일정 탭입니다. 일정을 바로 접근 가능합니다.


네이버 페이지도 잘뜹니다. 오른쪽 상단에 위치한 버튼들에 기능입니다.
첫번째는 베터리 관련입니다.


두번째는 인터넷을 온오프 할 수 있는 메뉴입니다. 온/오프만 가능하면 아무런 셋팅을 할 수 없습니다.


마지막 메뉴는 크롬 브라우저에 자체 메뉴입니다.

모든 메뉴를 살펴 보았지만 종료 메뉴 조차도 없습니다. 종료는 ACPI의 종료를 바로 이용해서 끕니다. 종료 또한 무지하게 빠릅니다.

현재로서는 사용가능한 수준은 아닌듯 합니다. 우선 고정 IP설정이 불가능합니다. 터미널로 직접 셋팅해야 할 듯 합니다.

기본적인 설정을 할 수 있는 부분도 없습니다. 모니터 해상도이거나, 여러 운영체제에 관한 설정도 할 수 없었습니다.

또한 가상 머신이 아닌 직접 설치하였을 때도 반응이 매우 느립니다.(아마 그래픽 카드 드라이버가 제대로 잡히지 않은것으로 판단됩니다.) 그러나 부팅 및 종료는 매우 빠릅니다.

또한 운영체제에 모든 기능이 인터넷이 되어야만 사용가능합니다. 인터넷이 되지 않는 경우 아무것도 할 수 없게됩니다.

MID나 넷북용으로 사용할 수 있겠지만, 인터넷 접속이 안된다면 아무것도(로그인 조차) 제대로 할 수 없는 문제 점이 있습니다.

이런 문제점이 있지만, 어디서나 나의 작업 환경을 그대로 가져 갈 수 있다는 장점과 함께, 장치에 종속되지 않고 동일한 작업을 할 수 있다는 장점이 있게되죠..

일반 사용자가 설치해 사용하는 운영체제라기 보다 윈도우 임베디드나, 윈도우 모바일처럼 하드웨어 제조사에서 모든 셋팅해서 판매하는 제품같은데서 써야할 것 같은 느낌이 많이 듭니다.

언젠가는 유용해 질 수 있겠지만, 무선(WiFi, 3G, Wibro 등) 인터넷 환경이 잘 구축된 우리나라에서 조차 사용하기 어려울 듯 하니 지금 뉴스 기사에서처럼 지금 당장 막강한 영향력을 미치기는 힘들듯 합니다.

운영체제도 안정화되고, 인터넷 환경도 어는정도 개선된 상태에서 성장 가능하리라 판단됩니다. 특히 국내 통신사, 인터넷 서비스 업체들의 서비스 및 요금에 대한 발전도 중요하리라 생각됩니다.

지금 떠오른 생각이지만 IPTV의 셋탑 박스에 운영체제로 들어가도 괜찮을 것 같네요. 인터넷에 항상 연결되어 있고, PC같은 OS환경보단 크롬OS같은 환경이 더 구축하기도 쉬우면 많은 서비스를 제공해 줄테니까요.
저작자 표시 비영리 동일 조건 변경 허락
신고
크리에이티브 커먼즈 라이선스
Creative Commons License
윈도우 비스타에서는 UAC(사용자 계정 관리)를 사용합니다.

XP이전의 운영체제에서는 대부분의 응용프로그램이 관리자 권한으로 수행된다고 가정하고 설계되었습니다. 따라서 개인 PC의 사용자들은 대부분 관리자 권한의 계정을 만들어 사용하게 됩니다.

레지스트리에 접근하거나, 프로그램 폴더, 시스템 폴더, 드라이버, 설정등에 바로 접근 가능한 권한으로 로그인하여 PC를 사용합니다.

하지만 관리자 권한으로 프로그램을 수행하게 됨으로서 실행되는 프로그램 또한 PC의 모든 권한을 가지게 됩니다. 따라서 악의 적인 프로그램에 의해 시스템이 손상될 가능성이 높아지게됩니다.

그렇다고 권한이 낮은 계정으로 사용하려면 매우 불편합니다.. 만약 시간은 바꾼다던지, 드라이버를 설치한다던지, 프로그램을 설치할때마다, Administrator계정으로 로그인하여 다시 수행해야 합니다.

응용프로그램 중 단순히 프로그램 수행에도 Administrator계정을 필요로 하는 경우도 많습니다.

비스타에서는 이러한 문제를 해결하기 위해서 UAC를 사용하여, 관리자 권한이 필요로 하는 경우만 관리자 모드로 해당 프로그램을 권한 상승시키는 방법을 사용하게 됩니다.

사용자 삽입 이미지

비스타의 경우 심지어 Administrators 그룹에 속해 있는 사용자도 관리자 모드를 필요로하는 프로그램을 실행할때, 권한 상승을 하고 수행 할지? 취소할지? 물어봅니다.

사용자 삽입 이미지

그럼 프로그램이 수행될때 이 프로그램이 어떤권한을 필요로 하는 프로그램인 어떻게 알고, 위와 같이 권한 상승을 요구하게되는 것일까?

manifest에 내용에 따라 결정이된다. 또는 이 파일이 resource로 실행 파일 내부에 링크 되어 포함 될 수도 있다.

만약 Vista이전에 나온 프로그램이라면 대부분 이러한 정보가 포함되어 있지 않게 된다.

그런데 설치 프로그램일 경우 관리자 모드를 필요로 하게된다.

이 때는 아래와 같은 내용에 의해 설치 프로그램 여부를 판단하게 된다.


Installer Detection only applies to:

  1. 32 bit executables
  2. Applications without a requestedExecutionLevel
  3. Interactive processes running as a Standard User with UAC enabled


Before a 32 bit process is created, the following attributes are checked to determine whether it is an installer:

  • Filename includes keywords such as "install," "setup," and "update."
  • Keywords in the following Versioning Resource fields: Vendor, Company Name, Product Name, File Description, Original Filename, Internal Name, and Export Name.
  • Keywords in the side-by-side application manifest embedded in the executable.
  • Keywords in specific StringTable entries linked in the executable.
  • Key attributes in the resource file data linked in the executable.
  • Targeted sequences of bytes within the executable.


비스타가 설치 프로그램이라 판단하게 되면, 해당 프로그램을 권한 상승후 수행하게 된다.

 

User Interface Privilege Isolation(UIPI)
관리자 권한으로 수행되는 프로그램과 낮은 권한으로 수행되는 프로그램간의 관계도 제한 받게 된다.


A lower privilege process cannot:

  • Perform a window handle validation of higher process privilege.
  • SendMessage or PostMessage to higher privilege application windows. These Application Programming Interfaces (APIs) return success but silently drop the window message.
  • Use thread hooks to attach to a higher privilege process.
  • Use Journal hooks to monitor a higher privilege process.
  • Perform DLL injection to a higher privilege process.


With UIPI enabled, the following shared USER resources are still shared between processes at different privilege levels:

  • Desktop window, which actually owns the screen surface.
  • Desktop heap read-only shared memory.
  • Global atom table.
  • Clipboard

위 내용 때문에 요즘 만들고 있는 멜론 스나이퍼가 비스타에서는 전혀 작동하지 않았다.


자신이 만든 프로그램이 권한 상승이 필요할 경우 아래와 같은 작업을 해줘야 한다.


우선 아래와 같은 manifest파일을 작성한다.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <!-- Identify the application security requirements.-->
  <ms_asmv2:trustInfo xmlns:ms_asmv2="urn:schemas-microsoft-com:asm.v2">
    <ms_asmv2:security>
      <ms_asmv2:requestedPrivileges>
        <!-- 실행 수준에는 세 가지(asInvoker, highestAvailable, requireAdministrator)가 있습니다. -->
        <ms_asmv2:requestedExecutionLevel
          level="requireAdministrator"
          uiAccess="false"/>
        </ms_asmv2:requestedPrivileges>
       </ms_asmv2:security>
  </ms_asmv2:trustInfo>
</assembly>


"asInvoker"의 경우 이 프로세스를 생성한 상위 프로세스를 상속 받게 됩니다.
"requireAdministrator" 관리자 권한을 프로세스 생성시 요구 하게 됩니다.
"highestAvailable" 사용자와 연결된 프로세스들이 가진 권한중 가장 높은 권한을 요구 하게 됩니다.

파일이름 실행 프로그램 이름에 확장자를 추가로 manifest로 붙혀 준다. 만약 test.exe가 실행 파일이라면 test.exe.manifest로 저장한다. 저장 위치는 수행 프로그램이 위차한 같은 폴더여야 한다.

권한상승의 경우 DLL의 경우는 해당사항 없고 EXE실행 파일의 경우만 해당된다.

위 같은 작업을 해주고 프로그램을 수행하면 권한 상승을 요구하고 수행되게 된다.




실행 프로그램에 이 manifest파일을 포함하고 싶다면, 리소스 파일과 같은 위치에 해당 manifest파일을 놓아 두고..

리소스 파일 (.rc)파일 열어서 아래 와 같이 추가한다.

#define MANIFEST_RESOURCE_ID 1
MANIFEST_RESOURCE_ID RT_MANIFEST "test.exe.manifest"


해당 파일에 manifest파일이 포함되고 수행시 관리자 모드로 권한 상승을 요구 하게 됩니다.

참조 페이지
http://msdn2.microsoft.com/en-us/library/ms766454.aspx
http://msdn2.microsoft.com/en-us/library/aa905330.aspx
http://msdn.microsoft.com/msdnmag/issues/07/01/UAC/default.aspx?loc=ko
신고
크리에이티브 커먼즈 라이선스
Creative Commons License


티스토리 툴바