솔찍히 내가 TortoiseCVS Client for Windows에 쩔어 있어서
콘솔에서 명령어로 체크아웃 할지도 모르고, SVN에는 손이 가지 않는다.
SVN의 장점으로는 디렉토리 이동 등이 있다는 것도 알고,
CVS에서 SVN으로 이전도 그리 어렵지는 않다고 하지만,
가장 큰 문제는, 나 혼자 사용하는 SVN 서버가 아닌
다른 사람들도 접속할 수 있는 SVN 서버를 만드는 법을 모른다는 것이다.
아무튼! 용기를 내서 한번 문서를 뒤적이다가 발견했는데..
TortoiseSVN Client for Windows help에 있었다.. OTL 역시 등불밑이 가장 어두운 것인가..
키워드는 svnserve 이다.
Running svnserve
Now that svnserve is installed, you need it running
on your server. The simplest approach is to run the following from a DOS
shell or create a windows shortcut:
svnserve.exe --daemon
svnserve will now start waiting for incoming requests
on port 3690. The --daemon switch tells svnserve to run
as a daemon process, so it will always exist until it is manually terminated.
If you have not yet created a repository, follow the
instructions given with the Apache server setup
the section called “Configuration”.
To test that svnserve is working, use
TortoiseSVN → Repo-Browser
to view a repository.
Assuming your repository is located in
c:\repos\TestRepo, and your server is called
localhost, enter:
svn://localhost/repos/TestRepo
when prompted by the repo browser.
You can also increase security and save time entering URLs with
svnserve by using the --root switch to set the root
location and restrict access to a specified directory on the server:
Using the previous test as a guide, svnserve would now run as:
svnserve.exe --daemon --root c:\repos
And in TortoiseSVN our repo-browser URL is now shortened to:
svn://localhost/TestRepo
Note that the --root switch is also needed if your repository is located
on a different partition or drive than the location of svnserve
on your server.
Svnserve will service any number of repositories. Just locate them somewhere
below the root folder you just defined, and access them using a URL relative
to that root.
Run svnserve as a Service
Running svnserve as a user is usually not the best way.
It means always having a user logged in on your server,
and remembering to restart it after a reboot. A better way is to run
svnserve as a windows service. Starting with Subversion 1.4,
svnserve can be installed as a native windows service.
To install svnserve as a native windows service, execute the following
command all on one line to create a service which is automatically
started when windows starts.
You can also add a description after creating the service. This
will show up in the Windows Services Manager.
sc description svnserve "Subversion server (svnserve)"
Note the rather unusual command line format used by sc.
In the key= value pairs there must be no space between
the key and the = but there must be a space before the
value.
그림이 작아서 티가 안나는군요 -ㅁ-
그래도 자세히 보면 GIF는 색상이 깨져서 보기가 싫습니다.
그럼 16배 확대를 해보도록 하겠습니다
(웹 브라우저 자체 기능으로 늘렸기에 브라우저 마다 차이가 있을 수도 있습니다.)
24bit 9478 byte / GIF 1971 byte
jpeg 1508 byte / PNG 4270 byte
원본 사이즈 가로 50px 를 가로 4배 확대하여 총 16x 한 이미지 입니다. bmp의 경우 아마도 티스토리에서 업로드 시 bmp면 자동으로 jpeg으로 변환하기 때문에
이미지가 jpeg 처럼 일그러 지는 현상이 발생을 합니다. jpg의 경우 경계가 심하게 뭉게지며, GIF는 컬러 부분이 디더링으로 인해 보기가 싫어집니다. 가장 무난한 선택은 png로 보이며 TIFF의 경우 티스토리에서 지원하지 않아 제외 되었습니다.
jpg의 경우 일반적인 사진(글씨가 없는)에 적합하며
GIF는 움직이고 투명하게 할 수 있다는 점을 제외하면 특별한 장점이 없습니다
저의 경우에는 사진들 보다는 컴퓨터 자체의 이미지를 사용하기 때문에
jpg는 적합하지 않기 때문에(라인이 뭉개져서 글씨의 경우 알아 보기 힘듦)
png 를 주로 사용하여 업로드하고 있습니다.
추가적으로 IE와 FireFox 에서의 차이점을 보여 드리자면 다음과 같습니다.
FireFox는 후처리를 통해서 약간은 뿌연듯한 느낌이 듭니다.
frhed 보다는 확실히 깔끔하다. 하지만 Free라는 이름하에 웬만한 기능은 다 막혀 있다 보니,
순수하게 HEX Editor로서 bit 연산이라는 측면에서는 frhed보다 좋아 보인다.
Free Hex Editor Neo의 Operations 메뉴, 아이콘들이 참 아기자기 하다
문제는.. 저 기능들을 막상 사용하려 하면 Free 버전이라 알리는 메시지가 뜬다.. 쓰라는거냐 말라는거냐 ㄱ-
Free Hex Editor Neo의 Edit 메뉴, Modify bits의 UI는 Frhed에 비해서 상당히 깔끔하다.
참고사항 : frhed의 manupulate bits 윈도우. Neo가 깔끔하긴 하다.
Free Hex Editor Neo의 Tools 메뉴 - Run Disassembler?!?!?
그럼 그렇지 Free라서 했더니 전부 쓸만한 기능은 막아놨다 ㄱ-
원래는 Free Serial Port Manager 라는게 검색되서 나와서 원래 회사에 받으러 갔는데 Free 버전은 없어졌는지
Trial만 있길래 다른걸 찾다가 발견하게 되었다. 확실히 아이콘은 귀엽고 UI는 깔끔하지만 무료 버전은 Frhed도
충분히 커버가능할 정도로 약한 기능에 실망만 더했다.
카페에서 우연히 주워들은 프로그램이름인데..
검색해보니 readelf가 조금 더 분석에 강력하다고 한다.
#include <stdio.h>
void main()
{
unsigned char b = 0xF1;
unsigned short c = 0xF1;
unsigned int d = 0xF1;
printf("%X\n",b);
printf("%X\n",c);
printf("%X\n",d);
}
Version References:
required from libc.so.6:
0x0d696910 0x00 02 GLIBC_2.0
Sections:
Idx Name Size VMA LMA File off Algn
0 .interp 00000013 08048114 08048114 00000114 2**0
CONTENTS, ALLOC, LOAD, READONLY, DATA
1 .note.ABI-tag 00000020 08048128 08048128 00000128 2**2
CONTENTS, ALLOC, LOAD, READONLY, DATA
2 .gnu.hash 00000020 08048148 08048148 00000148 2**2
CONTENTS, ALLOC, LOAD, READONLY, DATA
3 .dynsym 00000050 08048168 08048168 00000168 2**2
CONTENTS, ALLOC, LOAD, READONLY, DATA
4 .dynstr 0000004c 080481b8 080481b8 000001b8 2**0
CONTENTS, ALLOC, LOAD, READONLY, DATA
5 .gnu.version 0000000a 08048204 08048204 00000204 2**1
CONTENTS, ALLOC, LOAD, READONLY, DATA
6 .gnu.version_r 00000020 08048210 08048210 00000210 2**2
CONTENTS, ALLOC, LOAD, READONLY, DATA
7 .rel.dyn 00000008 08048230 08048230 00000230 2**2
CONTENTS, ALLOC, LOAD, READONLY, DATA
8 .rel.plt 00000018 08048238 08048238 00000238 2**2
CONTENTS, ALLOC, LOAD, READONLY, DATA
9 .init 00000017 08048250 08048250 00000250 2**2
CONTENTS, ALLOC, LOAD, READONLY, CODE
10 .plt 00000040 08048268 08048268 00000268 2**2
CONTENTS, ALLOC, LOAD, READONLY, CODE
11 .text 000001e8 080482b0 080482b0 000002b0 2**4
CONTENTS, ALLOC, LOAD, READONLY, CODE
12 .fini 0000001c 08048498 08048498 00000498 2**2
CONTENTS, ALLOC, LOAD, READONLY, CODE
13 .rodata 00000010 080484b4 080484b4 000004b4 2**2
CONTENTS, ALLOC, LOAD, READONLY, DATA
14 .eh_frame 00000004 080484c4 080484c4 000004c4 2**2
CONTENTS, ALLOC, LOAD, READONLY, DATA
15 .ctors 00000008 080494c8 080494c8 000004c8 2**2
CONTENTS, ALLOC, LOAD, DATA
16 .dtors 00000008 080494d0 080494d0 000004d0 2**2
CONTENTS, ALLOC, LOAD, DATA
17 .jcr 00000004 080494d8 080494d8 000004d8 2**2
CONTENTS, ALLOC, LOAD, DATA
18 .dynamic 000000c8 080494dc 080494dc 000004dc 2**2
CONTENTS, ALLOC, LOAD, DATA
19 .got 00000004 080495a4 080495a4 000005a4 2**2
CONTENTS, ALLOC, LOAD, DATA
20 .got.plt 00000018 080495a8 080495a8 000005a8 2**2
CONTENTS, ALLOC, LOAD, DATA
21 .data 00000004 080495c0 080495c0 000005c0 2**2
CONTENTS, ALLOC, LOAD, DATA
22 .bss 00000008 080495c4 080495c4 000005c4 2**2
ALLOC
23 .comment 00000114 00000000 00000000 000005c4 2**0
CONTENTS, READONLY
SYMBOL TABLE:
08048114 l d .interp 00000000 .interp
08048128 l d .note.ABI-tag 00000000 .note.ABI-tag
08048148 l d .gnu.hash 00000000 .gnu.hash
08048168 l d .dynsym 00000000 .dynsym
080481b8 l d .dynstr 00000000 .dynstr
08048204 l d .gnu.version 00000000 .gnu.version
08048210 l d .gnu.version_r 00000000 .gnu.version_r
08048230 l d .rel.dyn 00000000 .rel.dyn
08048238 l d .rel.plt 00000000 .rel.plt
08048250 l d .init 00000000 .init
08048268 l d .plt 00000000 .plt
080482b0 l d .text 00000000 .text
08048498 l d .fini 00000000 .fini
080484b4 l d .rodata 00000000 .rodata
080484c4 l d .eh_frame 00000000 .eh_frame
080494c8 l d .ctors 00000000 .ctors
080494d0 l d .dtors 00000000 .dtors
080494d8 l d .jcr 00000000 .jcr
080494dc l d .dynamic 00000000 .dynamic
080495a4 l d .got 00000000 .got
080495a8 l d .got.plt 00000000 .got.plt
080495c0 l d .data 00000000 .data
080495c4 l d .bss 00000000 .bss
00000000 l d .comment 00000000 .comment
080482d4 l F .text 00000000 call_gmon_start
00000000 l df *ABS* 00000000 crtstuff.c
080494c8 l O .ctors 00000000 __CTOR_LIST__
080494d0 l O .dtors 00000000 __DTOR_LIST__
080494d8 l O .jcr 00000000 __JCR_LIST__
080495c4 l O .bss 00000004 dtor_idx.5768
080495c8 l O .bss 00000001 completed.5766
08048300 l F .text 00000000 __do_global_dtors_aux
08048360 l F .text 00000000 frame_dummy
00000000 l df *ABS* 00000000 crtstuff.c
080494cc l O .ctors 00000000 __CTOR_END__
080484c4 l O .eh_frame 00000000 __FRAME_END__
080494d8 l O .jcr 00000000 __JCR_END__
08048470 l F .text 00000000 __do_global_ctors_aux
00000000 l df *ABS* 00000000 test.c
080494c8 l .ctors 00000000 .hidden __preinit_array_start
080494c8 l .ctors 00000000 .hidden __fini_array_end
080495a8 l O .got.plt 00000000 .hidden _GLOBAL_OFFSET_TABLE_
080494c8 l .ctors 00000000 .hidden __preinit_array_end
080494c8 l .ctors 00000000 .hidden __fini_array_start
080494c8 l .ctors 00000000 .hidden __init_array_end
080494c8 l .ctors 00000000 .hidden __init_array_start
080494dc l O .dynamic 00000000 .hidden _DYNAMIC
080495c0 w .data 00000000 data_start
080483f0 g F .text 00000005 __libc_csu_fini
080482b0 g F .text 00000000 _start
00000000 w *UND* 00000000 __gmon_start__
00000000 w *UND* 00000000 _Jv_RegisterClasses
080484b4 g O .rodata 00000004 _fp_hw
08048498 g F .fini 00000000 _fini
00000000 F *UND* 0000019f __libc_start_main@@GLIBC_2.0
080484b8 g O .rodata 00000004 _IO_stdin_used
080495c0 g .data 00000000 __data_start
080484bc g O .rodata 00000000 .hidden __dso_handle
080494d4 g O .dtors 00000000 .hidden __DTOR_END__
08048400 g F .text 00000069 __libc_csu_init
00000000 F *UND* 00000039 printf@@GLIBC_2.0
080495c4 g *ABS* 00000000 __bss_start
080495cc g *ABS* 00000000 _end
080495c4 g *ABS* 00000000 _edata
08048469 g F .text 00000000 .hidden __i686.get_pc_thunk.bx
08048384 g F .text 00000066 main
08048250 g F .init 00000000 _init
$ readelf -a a.out
ELF Header:
Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00
Class: ELF32
Data: 2's complement, little endian
Version: 1 (current)
OS/ABI: UNIX - System V
ABI Version: 0
Type: EXEC (Executable file)
Machine: Intel 80386
Version: 0x1
Entry point address: 0x80482b0
Start of program headers: 52 (bytes into file)
Start of section headers: 1972 (bytes into file)
Flags: 0x0
Size of this header: 52 (bytes)
Size of program headers: 32 (bytes)
Number of program headers: 7
Size of section headers: 40 (bytes)
Number of section headers: 28
Section header string table index: 25
Section Headers:
[Nr] Name Type Addr Off Size ES Flg Lk Inf Al
[ 0] NULL 00000000 000000 000000 00 0 0 0
[ 1] .interp PROGBITS 08048114 000114 000013 00 A 0 0 1
[ 2] .note.ABI-tag NOTE 08048128 000128 000020 00 A 0 0 4
[ 3] .gnu.hash GNU_HASH 08048148 000148 000020 04 A 4 0 4
[ 4] .dynsym DYNSYM 08048168 000168 000050 10 A 5 1 4
[ 5] .dynstr STRTAB 080481b8 0001b8 00004c 00 A 0 0 1
[ 6] .gnu.version VERSYM 08048204 000204 00000a 02 A 4 0 2
[ 7] .gnu.version_r VERNEED 08048210 000210 000020 00 A 5 1 4
[ 8] .rel.dyn REL 08048230 000230 000008 08 A 4 0 4
[ 9] .rel.plt REL 08048238 000238 000018 08 A 4 11 4
[10] .init PROGBITS 08048250 000250 000017 00 AX 0 0 4
[11] .plt PROGBITS 08048268 000268 000040 04 AX 0 0 4
[12] .text PROGBITS 080482b0 0002b0 0001e8 00 AX 0 0 16
[13] .fini PROGBITS 08048498 000498 00001c 00 AX 0 0 4
[14] .rodata PROGBITS 080484b4 0004b4 000010 00 A 0 0 4
[15] .eh_frame PROGBITS 080484c4 0004c4 000004 00 A 0 0 4
[16] .ctors PROGBITS 080494c8 0004c8 000008 00 WA 0 0 4
[17] .dtors PROGBITS 080494d0 0004d0 000008 00 WA 0 0 4
[18] .jcr PROGBITS 080494d8 0004d8 000004 00 WA 0 0 4
[19] .dynamic DYNAMIC 080494dc 0004dc 0000c8 08 WA 5 0 4
[20] .got PROGBITS 080495a4 0005a4 000004 04 WA 0 0 4
[21] .got.plt PROGBITS 080495a8 0005a8 000018 04 WA 0 0 4
[22] .data PROGBITS 080495c0 0005c0 000004 00 WA 0 0 4
[23] .bss NOBITS 080495c4 0005c4 000008 00 WA 0 0 4
[24] .comment PROGBITS 00000000 0005c4 000114 00 0 0 1
[25] .shstrtab STRTAB 00000000 0006d8 0000db 00 0 0 1
[26] .symtab SYMTAB 00000000 000c14 000440 10 27 48 4
[27] .strtab STRTAB 00000000 001054 00025a 00 0 0 1
Key to Flags:
W (write), A (alloc), X (execute), M (merge), S (strings)
I (info), L (link order), G (group), x (unknown)
O (extra OS processing required) o (OS specific), p (processor specific)
There are no section groups in this file.
Program Headers:
Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align
PHDR 0x000034 0x08048034 0x08048034 0x000e0 0x000e0 R E 0x4
INTERP 0x000114 0x08048114 0x08048114 0x00013 0x00013 R 0x1
[Requesting program interpreter: /lib/ld-linux.so.2]
LOAD 0x000000 0x08048000 0x08048000 0x004c8 0x004c8 R E 0x1000
LOAD 0x0004c8 0x080494c8 0x080494c8 0x000fc 0x00104 RW 0x1000
DYNAMIC 0x0004dc 0x080494dc 0x080494dc 0x000c8 0x000c8 RW 0x4
NOTE 0x000128 0x08048128 0x08048128 0x00020 0x00020 R 0x4
GNU_STACK 0x000000 0x00000000 0x00000000 0x00000 0x00000 RW 0x4
Relocation section '.rel.dyn' at offset 0x230 contains 1 entries:
Offset Info Type Sym.Value Sym. Name
080495a4 00000106 R_386_GLOB_DAT 00000000 __gmon_start__
Relocation section '.rel.plt' at offset 0x238 contains 3 entries:
Offset Info Type Sym.Value Sym. Name
080495b4 00000107 R_386_JUMP_SLOT 00000000 __gmon_start__
080495b8 00000207 R_386_JUMP_SLOT 00000000 __libc_start_main
080495bc 00000307 R_386_JUMP_SLOT 00000000 printf
There are no unwind sections in this file.
Symbol table '.dynsym' contains 5 entries:
Num: Value Size Type Bind Vis Ndx Name
0: 00000000 0 NOTYPE LOCAL DEFAULT UND
1: 00000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__
2: 00000000 415 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.0 (2)
3: 00000000 57 FUNC GLOBAL DEFAULT UND printf@GLIBC_2.0 (2)
4: 080484b8 4 OBJECT GLOBAL DEFAULT 14 _IO_stdin_used
Symbol table '.symtab' contains 68 entries:
Num: Value Size Type Bind Vis Ndx Name
0: 00000000 0 NOTYPE LOCAL DEFAULT UND
1: 08048114 0 SECTION LOCAL DEFAULT 1
2: 08048128 0 SECTION LOCAL DEFAULT 2
3: 08048148 0 SECTION LOCAL DEFAULT 3
4: 08048168 0 SECTION LOCAL DEFAULT 4
5: 080481b8 0 SECTION LOCAL DEFAULT 5
6: 08048204 0 SECTION LOCAL DEFAULT 6
7: 08048210 0 SECTION LOCAL DEFAULT 7
8: 08048230 0 SECTION LOCAL DEFAULT 8
9: 08048238 0 SECTION LOCAL DEFAULT 9
10: 08048250 0 SECTION LOCAL DEFAULT 10
11: 08048268 0 SECTION LOCAL DEFAULT 11
12: 080482b0 0 SECTION LOCAL DEFAULT 12
13: 08048498 0 SECTION LOCAL DEFAULT 13
14: 080484b4 0 SECTION LOCAL DEFAULT 14
15: 080484c4 0 SECTION LOCAL DEFAULT 15
16: 080494c8 0 SECTION LOCAL DEFAULT 16
17: 080494d0 0 SECTION LOCAL DEFAULT 17
18: 080494d8 0 SECTION LOCAL DEFAULT 18
19: 080494dc 0 SECTION LOCAL DEFAULT 19
20: 080495a4 0 SECTION LOCAL DEFAULT 20
21: 080495a8 0 SECTION LOCAL DEFAULT 21
22: 080495c0 0 SECTION LOCAL DEFAULT 22
23: 080495c4 0 SECTION LOCAL DEFAULT 23
24: 00000000 0 SECTION LOCAL DEFAULT 24
25: 080482d4 0 FUNC LOCAL DEFAULT 12 call_gmon_start
26: 00000000 0 FILE LOCAL DEFAULT ABS crtstuff.c
27: 080494c8 0 OBJECT LOCAL DEFAULT 16 __CTOR_LIST__
28: 080494d0 0 OBJECT LOCAL DEFAULT 17 __DTOR_LIST__
29: 080494d8 0 OBJECT LOCAL DEFAULT 18 __JCR_LIST__
30: 080495c4 4 OBJECT LOCAL DEFAULT 23 dtor_idx.5768
31: 080495c8 1 OBJECT LOCAL DEFAULT 23 completed.5766
32: 08048300 0 FUNC LOCAL DEFAULT 12 __do_global_dtors_aux
33: 08048360 0 FUNC LOCAL DEFAULT 12 frame_dummy
34: 00000000 0 FILE LOCAL DEFAULT ABS crtstuff.c
35: 080494cc 0 OBJECT LOCAL DEFAULT 16 __CTOR_END__
36: 080484c4 0 OBJECT LOCAL DEFAULT 15 __FRAME_END__
37: 080494d8 0 OBJECT LOCAL DEFAULT 18 __JCR_END__
38: 08048470 0 FUNC LOCAL DEFAULT 12 __do_global_ctors_aux
39: 00000000 0 FILE LOCAL DEFAULT ABS test.c
40: 080494c8 0 NOTYPE LOCAL HIDDEN 16 __preinit_array_start
41: 080494c8 0 NOTYPE LOCAL HIDDEN 16 __fini_array_end
42: 080495a8 0 OBJECT LOCAL HIDDEN 21 _GLOBAL_OFFSET_TABLE_
43: 080494c8 0 NOTYPE LOCAL HIDDEN 16 __preinit_array_end
44: 080494c8 0 NOTYPE LOCAL HIDDEN 16 __fini_array_start
45: 080494c8 0 NOTYPE LOCAL HIDDEN 16 __init_array_end
46: 080494c8 0 NOTYPE LOCAL HIDDEN 16 __init_array_start
47: 080494dc 0 OBJECT LOCAL HIDDEN 19 _DYNAMIC
48: 080495c0 0 NOTYPE WEAK DEFAULT 22 data_start
49: 080483f0 5 FUNC GLOBAL DEFAULT 12 __libc_csu_fini
50: 080482b0 0 FUNC GLOBAL DEFAULT 12 _start
51: 00000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__
52: 00000000 0 NOTYPE WEAK DEFAULT UND _Jv_RegisterClasses
53: 080484b4 4 OBJECT GLOBAL DEFAULT 14 _fp_hw
54: 08048498 0 FUNC GLOBAL DEFAULT 13 _fini
55: 00000000 415 FUNC GLOBAL DEFAULT UND __libc_start_main@@GLIBC_
56: 080484b8 4 OBJECT GLOBAL DEFAULT 14 _IO_stdin_used
57: 080495c0 0 NOTYPE GLOBAL DEFAULT 22 __data_start
58: 080484bc 0 OBJECT GLOBAL HIDDEN 14 __dso_handle
59: 080494d4 0 OBJECT GLOBAL HIDDEN 17 __DTOR_END__
60: 08048400 105 FUNC GLOBAL DEFAULT 12 __libc_csu_init
61: 00000000 57 FUNC GLOBAL DEFAULT UND printf@@GLIBC_2.0
62: 080495c4 0 NOTYPE GLOBAL DEFAULT ABS __bss_start
63: 080495cc 0 NOTYPE GLOBAL DEFAULT ABS _end
64: 080495c4 0 NOTYPE GLOBAL DEFAULT ABS _edata
65: 08048469 0 FUNC GLOBAL HIDDEN 12 __i686.get_pc_thunk.bx
66: 08048384 102 FUNC GLOBAL DEFAULT 12 main
67: 08048250 0 FUNC GLOBAL DEFAULT 10 _init
Histogram for `.gnu.hash' bucket list length (total of 2 buckets):
Length Number % of total Coverage
0 1 ( 50.0%)
1 1 ( 50.0%) 100.0%