apt-get으로 jre를 설치해야 하는데 설치 목록엔 있지만 설치할 수가 없는경우.

oracle사이트에서 jre를 적당한 폴더에 다운 받는다.

(windows에서 받은 후 ftp로 업로드 해도 됨)


1. 압축파일이면 그냥 압축만 풀면 되고, bin파일이면 권한 설정 후 실행.

chmod 744 jre-6u34-linux-x64.bin

./jre-6u34-linux-x64.bin


2. jvm폴더 생성 및 jre폴더 이동

mkdir /usr/lib/jvm

mv jre-6u34-linux-x64.bin /usr/lib/jvm


3. 자바 실행파일 설정

update-alternatives --install /usr/bin/java java /usr/lib/jvm/jre1.6.0_34/bin/java 0


그 외 기타 설정은 아래 참조

http://www.liberiangeek.net/2012/04/install-oracle-java-runtime-jre-7-in-ubuntu-12-04-precise-pangolin/

'develop > linux' 카테고리의 다른 글

NAT 종류별 설정  (0) 2014.02.17
Linux TCP/IP tunning  (0) 2014.01.08
GCC에서 컴파일 시 문구 출력하기  (0) 2013.04.18
리눅스 키보드 이벤트 받아서 키 입력받기(개행포함)  (0) 2013.02.08
Raw 소켓  (0) 2012.12.28

TIME_WAIT는 소켓 close를 호출하는 쪽에서 설정되는 소켓의 상태이다.


netstat을 사용하여 각 소켓의 상태를 확인할 수 있다.


짧은 작업을 위한 소켓인 경우, Server에서 close를 호출하는 경우가 생기는데, 이 때 부하가 많을수록 TIME_WAIT 상태인 소켓이 많아져 Client에서 Server로 접속을 못하는 경우가 생긴다.


다음과 같이 강제적으로 TIME_WAIT상태를 거치지 않고 소켓을 종료할 수 있다.

(기본적으로 TIME_WAIT는 소켓의 필수 상태이니 테스트 필수!!)


struct linger ling;

ling.l_onoff = 1;

ling.l_linger = 0;

shutdown(sockfd, SD_BOTH);

setsockopt(fd, SOL_SOCKET, SO_LINGER, &ling, sizeof(ling));

#define WIN32

sockclose(fd);

#else

close(fd);

#endif



apache proxy loadbalancer를 사용하는 경우, native 데몬(혹은 tomcat등의 proxy와 연결되는 daemon)과 apache proxy사이의 소켓은 즉시 종료 되나, 클라이언트와 apache간의 소켓은 apache의 KeepAlive설정에 따라 달라진다. KeepAlive를 On으로 설정하는 경우, 클라이언트의 소켓이 close를 먼저 하게 되므로 서버쪽에서는 소켓이 남지 않고, Off로 설정하는 경우, 서버에서 먼저 close를 호출하므로 서버쪽에 소켓이 남게 된다. (남게 되는 소켓은 전부 TIME_WAIT 상태의 소켓을 뜻함)

onCreate에서 getIntent로 Activity가 실행되었을 때의 Intent를 가져와 extra에 있는 필드 유무에 따라 동작을 달리 하는 코드를 짰는데, Activity가 destory되도 Recents app에서 실행하면 기존 intent가 그대로 유지되는 상황이 발생.


이리저리 찾아보다가 아주 간단히 해결할 수 있는 방법이 있었다.


Intent.FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY


위 flag가 설정되었는지만 확인하면 간단히 해결.!

출처 : http://blog.projectnibble.org/2011/07/17/android-source-code-in-windows-the-easy-way/


전체 버전의 소스를 다 받는것 같음 -_-;; 각각의 버전별로 받으려면 shell script파일 수정 필요



Note: as Rahul comments, the script points to the old repository urls:

The script uses old links: open it using a text editor and replace all

git://android.git.kernel.org/ with

https://android.googlesource.com/

  1. Head over to msysGit and get the latest release (I got Git-1.7.6-preview20110708.exe). Install that thing with all the defaults.
  2. Execute Git Bash from the start menu folder added by the installation
  3. Much like a command prompt, you can change drives and add folders. Create a folder at the location where you want the android sources. For me this was:

    1. cd /d
    2. cd temp
    3. mkdir android_source
    4. cd android_source
  4. Now download the excellent autogit.sh shellscript created by Brad, that downloads all Android repos, to your new folder
  5. Finally, go back to the Git Bash window and execute ‘sh autogit.sh

It’ll take a while to get all of the almost 14 GB of sourcecode.

autogit.sh


1. 용어

HA: Home Agent (Home Network), 데이터패킷을 주고받는 Gateway가 되는 서버

CN: Corresspond Node, HA의 기능을 일부 가지고 있는 데이터 패킷의 목적지 서버 (Routing 최적화를 위해 필요)

FN: Foreign Network, Home Network를 제외한 다른 모든 network

MN: Mobile Node, HA와 통신하는 클라이언트

CoA: Care of Address, 현재 네트워크상에서 할당받은 IP

MCoA: Multiple CoA, 하나의 BU에서 여러개의 CoA를 등록

HoA: Home Address, MIP를 위해 클라이언트마다 부여받는 IP, HomeNetwork의 사설IP가 될 수 있음

HO: HandOver, MN이 이종 망으로 이동(예를들면 LTE->Wi-Fi)

MIP: Mobile ip, HO가 될 때 세션을 유지하면서 통신

Flow Binding: MIP를 사용할 패킷에 대한 정의

시그널 패킷: Binding Update(BU), Binding Acknowledgements(BA), Binding Refresh Request(BRR), Binding Error(BE) 등을 나타냄

데이터 패킷: Flow Binding에 따라서 MN의 특정 interface로 전송



2. 패킷 구조 (헤더 위주의 전체 구조)

IPv6

|
Destination Option (IPv6 HoA option)
|
[Authentication Header
|]
Mobility Header


2-1. IPv6 헤더

  Version (4 bit) : 6

  Traffic Class (8 bit)

  Flow Label (20 bit)

  Payload Length (16 bit)

  Next Header (8 bit) : Destinatino Option Header or Mobility Header

  Hop Limit (8 bit)

  Source Address (128 bit)

  Destination Address (128 bit)


2-2. Destination Option 확장 헤더

  Next Header (8 bit)

  Header Extension Length (8 bit)

  Options (dependent by HderExtLength) => IPv6 HoA Option

  2-2-1. IPv6 HoA Option

Option Type (8 bit) : 201 = 0xC9

Option Length (8 bit) : 16

HoA : IPv6 HoA


2-3. Mobility 헤더

  Payload Proto (8 bit) : Next Header와 같은 의미

  Header Len (8 bit)

  MH Type (8 bit) : BU/BA/BRR/BE 등을 나타냄

  Reserved (8 bit)

  Checksum (16 bit)

  Message Data (dependent by MH Type)


3. Header

 - IPv6헤더의 Next header는 Destination Option이 있을 경우 해당 값을 넣고, 없을경우 Mobility Header에 대한 값을 넣는다.

 - Destination Options 헤더는 IPv6에서 추가된 확장 헤더로, MN의 IPv6 HoA를 포함한다. (단, FN에서 연결되었을 경우에만)

 - Mobility Header type에 따라서 Binding Update, Binding Acknowledge, Binding Refresh Request, Binding Error 등이 있다.



4. 기본 동작

 - MN은 Home Network에서 BU를 HA로 보내 HoA 및 CoA를 등록한다.

 - MN은 필요한 경우 CN에도 BU를 보내 바인딩을 등록할 수 있다.

    - CN에 BU를 보내는 경우 Routing 최적화를 통해 HA를 거치지 않고 데이터를 주고 받을 수 있다.

 - MN의 인터페이스 정보(활성화 상태, ip주소 등)가 바뀌는 경우 인터페이스 상태에 맞춰 BU를 전송한다.

   - MN은 multi interface 등록을 위해 BID옵션을 사용한다.

   - MN은 특정 패킷(이하 데이터 패킷)에 대한 mobility를 사용하기 위해 FID 옵션을 이용할 수 있다.


 - HA는 MN으로부터 수신 된 데이터 패킷을 해당 서비스 서버로 전송하고, 서비스 서버로부터 수신 된 return 패킷을 MN으로 전달한다. 이 때 MN이 multi interface 등록을 한 경우 FID옵션으로 등록한 Flowbinding정보에 따라서 MN 수신할 interface로 전송한다.



1. cassandra DB란?

• 분산 대용량 저장소(NoSQL)

아파치 라이센스: Facebook에서  개발 시작, 이후 오픈 소스 화

상용 구글의 BigTable이나 아마존의 Dynamo과 목표는 비슷함

WriteRead보다 빠르고, ReadRDB보다 빠름

P2P처럼 인터넷 상의 IDC를 커버하는 망 구성 가능

서비스 중에 노드를 추가하여 용량 확장 가능

Key-Value 구조에 RDBTable과 비슷한 스키마 지원

SQL과 유사한 CQL 지원

2. 논리적 데이터 구조
• Column
- 가장 최소단위
- name, value, timestamp로 구성 (name은 column 의 name)
• Columns
- 하나 이상의 column의 집합 (RDB의 Row)
• Super Column
- Column혹은 Super Column을 value로 가질 수 있는 Column
- name, value로 구성
• Column Family
- RDB의 Table에 해당
- key와 value의 데이터들로 구성
- value는 Columns혹은 Super Column이 올 수 있음
• Keyspace
- RDB의 Database에 해당
- Column Family의 집합

3. 물리적 구조
• Node
- 하나의 cassandra db 프로세스
- 하나의 서버(H/W)에 여러개의 cassandra db 프로세스가 실행 될 수 있음(여러개의 Node가 됨)
• Rack
- IDC내의 서버(H/W)가 장착되는 장비
• DataCenter
- 인터넷에 있는 IDC
• TokenRing
- 각각의 Node를 하나의 Ring으로 구성
- Key를 해쉬하여 나온 값을 token으로 보고 해당 token이 속해있는 Node에 데이터 저장
- 데이터 복제본은 정책에 따라서 이웃Node에 저장하거나 임의의 Node에 분산 저장

4. 통신 보안
• 공통
- 기본적으로 TLS와 PKI를 지원
 Node와 Node간에는 설정에 따라서 DC - DC or Rack - Rack or all 구간에 암호화
 Client와 Node간에 암호화 설정 가능
• 데이터 암호화는 지원하지 않음

5. 계정
• cassandra db는 기본 생성 시 super user인 cassandra계정만 존재
• 계정 추가는 CQL로 하는게 편함
• CQL에서 권한설정 가능(grant)

윈도우에서 사용법은

http://machari.tistory.com/entry/gcc%EC%97%90%EC%84%9C-pragma-warning-%EC%B2%98%EB%9F%BC-compile%EC%8B%9C-%EC%82%AC%EC%9A%A9%EC%9E%90-%EC%A0%95%EC%9D%98-%EA%B2%BD%EA%B3%A0-%EB%AC%B8%EA%B5%AC-%ED%91%9C%EC%8B%9C%ED%95%98%EA%B8%B0



컴파일 시 아직 코딩 못한 부분을 상기하고 싶다거나 할 때 사용

GCC 4.x이상 버전에서 테스트함.


#pragma message("msg")


결과

test.c:3: note: #pragma message: msg


해당 소스 파일명과 줄번호까지 나온다.





쓰고보니 사용법이 똑같은거 같네 -_-;;


리눅스용 참조

http://gcc.gnu.org/onlinedocs/gcc-4.4.7/gcc/Diagnostic-Pragmas.html#Diagnostic-Pragmas

Authority Key Identifier, 2.5.29.35

Subject Key Identifier, 2.5.29.14

Key Usage, 2.5.29.15

Certificate Policies, 2.5.29.32

Subject Alternative Name, 2.5.29.17

Extended Key Usage, 2.5.29.37

CRL Distribution Points, 2.5.29.31

Authority Information Access, 1.3.6.1.5.5.7.1.1

'develop > 보안' 카테고리의 다른 글

Let's encrypt로 무료 SSL 발급시 아파치 설정  (0) 2024.04.17
OpenSSL에서 EVP_CipherUpdate 유의점  (0) 2014.01.21

문자열로 되어 있는 IPv4와 IPv6주소가 제대로 된 것인지 체크하는 정규식패턴.


IPv4는 잘되는데..

IPv6는 오류가 좀 있다 -_-;;

아무래도 중간에 ::(double colon) 로 축약되는 부분이 문제인데..머리가 안돌아간다 ;;


IPv4 정규식

"(1[0-9]{2}|2[0-5][0-5]|[0-9]{1,2})(\\.(1[0-9]{2}|2[0-5][0-5]|[0-9]{1,2})){3}"


IPv6 정규식

"[a-fA-F0-9]{4}:(:|([a-fA-F0-9]{1,4}:)){1,4}:?[a-fA-F0-9]{1,4}$"



'develop > 공통' 카테고리의 다른 글

소켓 Close시 TIME_WAIT 문제(C언어)  (0) 2013.12.30
DualStack Mobile IPv6 with Multiple Care of Address  (0) 2013.06.24
웹 표준에 대한 블로그  (0) 2012.11.26
HTML5 변경 점  (0) 2012.11.26
C++ Operator Precedence  (0) 2010.02.23

standard input file descriptor를 이용


int STDIN = fileno(stdin);

int maxfd = (socket > STDIN)? socket: STDIN;

...

while (...) {

FD_SET(STDIN, &rdSet);

if (select(maxfd + 1, &rdSet, NULL, NULL, NULL) == -1) {printf("select()\n"); }

...

if (FD_ISSET(STDIN, &rdSet)) {

if (read(STDIN, cmd, 200) <= 0) continue ;

ParseCmd(rawSocket, cmd);

}

}

...

}


'develop > linux' 카테고리의 다른 글

Ubuntu에서 Oracle java 설치  (0) 2013.12.31
GCC에서 컴파일 시 문구 출력하기  (0) 2013.04.18
Raw 소켓  (0) 2012.12.28
find 명령어로 특정 시간내의 파일 찾기  (0) 2012.11.16
PostgreSQL Streaming Replication  (0) 2012.08.22

+ Recent posts