레이블이 리눅스인 게시물을 표시합니다. 모든 게시물 표시
레이블이 리눅스인 게시물을 표시합니다. 모든 게시물 표시

2009년 10월 14일 수요일

Google Chrome OS 0.4.220 beta (x86) VMDK 설치!!

구글 크롬 OS 베타판을 VMware에 설치해 보았습니다.

설치하고 영역나누고 하는 것들이 귀찮기에 그냥 VMware용으로 설치했습니다 -_-;

우선 설치 기본으로 로딩될때 뜨는 화면입니다.

크롬 로고 밑으로 가는 흰 실선이 보일 것인데(안보이시면 그림을 클릭하셔서 확대해서 보세요~) 그게 로딩바입니다. 흰선이 계속 쌓여가죠. 회사 PC사양이 딸려서 그런지 무진장 느립니다.

그래도 개발용 PC인데 경리가 쓰는 PC보다 사양이 확 떨어집니다. 좋은 회사입니다 -_-;;;;;;;;;;;;;;;

왼쪽 아래를 보시면 Built with SUSE Studio™라고 적혀 있습니다. 눈치빠르신 분들이나 이미 소식을 알고 계신분들은 아시겠죠?

이거 크롬 OS 기반이 수세리눅스입니다.기반이라기 보다 그냥 수세리눅스라고 보시면 됩니다.

커널을 어떤 식으로 수정했는진 잘 모르겠지만 암튼 그냥 수세리눅스로 보입니다.

실행이 완료된 상태입니다. 저는 설치 후 우선 기본 영문으로 되어 있는 것을 한글로 바꿨습니다. 대충 그냥 보셔도 한글로 바뀐 것은 별로 없습니다. 그리고 보시다시피 웹상태에서의 한글은 보여지지 않습니다. 한글이 보이도록 이것저것 살펴봐야겠네요. 리눅스를 손 놓은지 한 4년되었기에;;;;

다음에 접속해 보았습니다. 역시 한글은 다 깨지고 있습니다.

그림은 참 잘보이네요 ^^;;;;;;;;

윈도우의 시작버튼과 같은 역할인 컴퓨터 버튼을 눌렀습니다. 이것저것 눌러본게 있어서 몇개 뜨네요. 처음 설치시엔 두갠가밖에 뜨지 않습니다. 블로그에 올릴 것이라고 생각하지 않았기에;;;

위 그림의 아래에 있는 More Applications를 눌러보시면 다음과 같은 화면이 뜹니다.
오픈오피스도 있고 GIMP도 깔려있고 플래시플레이어나 CD레코더도 있네요. 아무튼 이것저것 깔려있는 것들이 꽤 있습니다. 그냥 그대로 써도 무난할 듯 보입니다.

컨트롤 센터입니다. 윈도우로 보자면 제어판이 되겠죠.

참 직설적인 한글 번역이 눈에 뜁니다. 모양새 -_-;;;;; 좀 더 쉽게 얘기하면 꼬라지가 되겠네요 ㅡ,.ㅡ;;;

윈도우의 내문서 폴더와 같은 역할인 유저 홈입니다. 그냥 탐색기라고 보면 되겠네요.

리눅스를 조금만 아시는 분이라면 조작하는 것은 크게 어렵지 않을것 같습니다.

다만 저처럼 오래되서 기억이 가물가물하다면;;;;

아무것도 실행하지 않은 기본화면입니다. 저 볼륨조절 표시 옆의 네개의 칸은 디스플레이를 4개로 나눠준다는 것입니다. 모니터 한개에 듀얼모니터로 쓸 수 있도록 해주는 기능이죠 ㅎ 유용한 프로그램입니다.

셧다운 버튼을 눌렀을때 화면 표시입니다.

아직 베타이긴 하지만 머 그럭저럭 잘 보고 베낀듯 하네요. 그냥 크롬OS라고 이름을 붙이기엔 아쉬움이 많이 남았습니다.

프로그램이라던가 설치는 해보지 않았기때문에 머라고 말할 것은 더이상없습니다.

크롬 OS가 어떤 것인지 궁금해하시는 분들께 참조하시라고 올려드립니다.

좀 더 독자적인 구글만의 색깔이 강한 OS를 만들었으면 어떨까하는 생각이 듭니다.
(여태 잘 그렇게 해놓고 이제와서...-_-;)

아~!!

다운로드 사이트 : 구글 크롬 OS 다운로드

이미 많은 분들이 알려주셨지만 그냥 노파심에 다운로드 사이트 링크겁니다.

참고로 말하는데 직접 다운로드하시면 느려터져서 속터집니다. BitTorrent로 다운하시면 빠르다는 것을 알려드립니다.

그리고 VMDK버전을 다운받으시면 압축 두번 풀어야합니다. 쫌 귀찮습니다 -_-; 그래도 설치하면서 라이센스 요구하던데 그거 해결하는 것보단 덜 귀찮습니다 ^^;;

궁금하신 것은 댓글로 물어보세요~

2009년 6월 23일 화요일

bss segment


data segment에는 initialized data segment와 uninitialized data segment가
있는데...
bss는 uninitialized data segment를 흔히 일컨는 말입니다.
이 bss 영역의 값들은 kernel에 의해 artimethic 0 or null pointer 로
프로그램이 시작하기 전에 초기화가 됩니다.


bss섹션에 있는 내용은 말씀하신바와 같이 초기화되지 않은 global데이터가
할당되는 부분입니다.
또한 Data Section은 말씀하신바와 같이 초기화된 global데이터가 할당됩니다


bss섹션은 RAM에 해당 영역만큼의 공간만을 잡아주면 되지만, data section은
RAM을 할당할 뿐만 아니라 해당데이터의 초기 값을 지니고 있을 ROM또한
할당되어야 합니다. (Embedded에서 그렇습니다.)

따라서, bss영역은 초기화 과정(crt0)에서 컴파일러에서 지정한 초기화 방식에
의하여 초기화되며, data부분은 ROM에 있는 초기화된 데이터를 해당 data영역으로
복사함으로서 수행하게 됩니다.

장/단점이란것은 존재하지 않습니다. 사용자의 의도에 의하여 정의되는
것이겠지요..
즉, 초기값이 필요하냐.. 초기값이 필요하지 않느냐에 따라 틀려지겠습니다.

굳이 장단점을 따지자면, 초기화된 global data는 ROM의 영역을 할당해야 되고,
데이터 copy를 이용하므로, 조금 더 메모리를 잡아먹고.. 조금 더 초기화에
시간이 걸리겠지요..


여기서보면..결국 bbs에 초기화안된 global ,  data secion에 초기화된 global

 


#include <stdio.h>
#include <calloc.h>

int a; // bss
int b = 10; // data
static int c; // bss

int main(void)
{
 int x1; // stack
 int x2 = 100; // stack
 static int y1; // bss
 static int z2 = 200; // data
 int *arr/*stack*/ = malloc(100); /* heap 즉 arr 변수 자체는 stack에 저장되며, 100 만큼의 메모리는 heap영역에 생긴다. */

 return 0;
}

[C] new와 malloc의 차이점


nothing 님이 2004년 04월26일 18시 52분에 쓰신 글입니다.

제목 : new로 메모리잡을때 초기화~!
내용 : new 와 malloc의 개념을 잘 모르시는군요

일반적으로 new로 할당된 메모리는 memset으로 초기화 하면 안됩니다.
new로 할당된 메모리는 생성자에서 초기화하고 소멸자에서 뒷정리를 해야합니다.

new 는 연산자이고(+ - * /같은 연산자) malloc은 함수 입니다.
일반인들은 new도 함수라고 생각하는데 꼭 기억하세요 new는 연산자입니다.
더불어 sizeof도 연산자임을 기억하세요

new 는 인수로 넘어온 클래스 타입의 객체를 생성해줍니다. //중요!
malloc은 인수로 넘어온 크기 만큼의 메모리 블럭을 잡아줍니다.(할당) //중요!

개념이 약간 다른데 깊이 있게 들어가 보면,

malloc은 커널에게 메모리 할당 요청을 하고 커널은 메모리 블럭의 일부분을

다른곳에서 접근 할수 없게 예약을 하고 그메모리의 시작주소를 넘깁니다.

이 시작주소가 malloc이 리턴하는 값입니다.

따라서 malloc이 넘겨준 메모리에는 쓰레기 값이 들어 있으므로 memset등의 함수를 사용해서 초기화를 해주어야 하고,

'->'연산자나 '.' 연산자를 사용할수 없습니다.(객체의 의미가 없으므로)

new 는 메모리를 할당하면서 '클래스에서 정의된대로' 메모리를 초기화 하고 객체를 사용할수 있는 환경을 만들어 줍니다.

예약만하는것이 아니라 예약 + 클래스에 맞는 객체로 생성 시켜주는 겁니다.
(물론 이런한 객체화 작업은 생성자와 소멸자에서 코딩해야 합니다.)

신이 흙으로 사람을 만들때 그 코에 생기를 불어 넣는게 new 연산자입니다.

사람이 흙으로 인형을 만들어 생기를 못 불어 넣는게 malloc입니다.

따라서 new로 할당한 메모리에 memset을 사용하면 그 생기를 지우는 행위입니다.

new delete는 연산자이고 malloc free는 함수입니다.

그럼