잊지 않겠습니다.

Track 4. Program 개발 &  Device

Managed Program Development and Device
Native Code
  • Win32 API
  • C, C++
  • 성능 극대화 가능
  • 단독 실행 가능
Managed Code
  • .NET CF
  • C#
  • Visual Basic .NET
  • 단독 실행 불가능 : CF 1.0(2MB), CF 2.0(5MB)
SQL Server 2005 Compact Edition
  • Compact, Mobile 모두 가능
  • Mobile < Compact 

  

Track 5. 기업형 Mobile 아키텍쳐

모바일 통신 환경
  • 연결성 Mobile 환경 : SKT와 같은 망에 연결된 상태(wireless, CDMA)
  • 비연결성 Mobile 환경 : PC에 Cradle에 연결된 상태

  

무선 Protocol 통신 속도
  • 배터리 파워를 고려
  • Communication HW 고려
  • 통신 비용 고려

  

DB 연결 방법
  • ADO 
  • OLE DB : 훨씬 빠르지만, Win32에서만 사용 가능

  

CDMA 관련 문제 고려
  • 통신 장애
  • Roll back, Transaction 반드시 고려할것!
Posted by Y2K
,

IDE

  • SDK - hooper app
  • Emulator
  • mobile용 개발에 대한 내용 test.
  • DeskTop Development - MS Virtual PC 이용 가능
  • Mobile Development

          - Device Emulator [VS2008, SDK 에서 사용 가능]

          - ARM CPU

Emulator manager
  • LED 변경
  • 진동
  • 베터리 상태 변동 : 네트워크 연동시에 생각해볼 내용이 많다. [지금 당장 사용해볼것!]
  • USB
  • 개선된 성능

   

Mobile Platfrom
  • Windows Mobile 2003 Second Edition Pocket PC
  • Windows Mobile 2005 Pocket PC
  • Windows Mobile 2005 Smartpone
  • Windows Mobile 6 Classic
  • Windows Mobile 6 Standard
  • Windows Mobile 6 Professional[standard + touch pad]
  • etc..

   

Control 위치 설정 : 각 Pattern에 따라서 움직이는 내용에 대해서 인지가 필요

   

Emulator 설정
  • Emulator Manager에서 Connect
  • Cradle에 올려서 network 연결
  • Compile -> Deploy 과정에서 실제 Device로 선택 ( Emulator가 이미 연결되어 있기 때문에, Visual Studio에서는 Emulator를 실제 기기로 인식)


Posted by Y2K
,

SQL Server의 접속

  1. SQLAllocHandle : ODBC의 초기화, SQL의 상태 초기화
  2. SQLSetEnvAttr : 환경 초기화
  3. SQLAllocHandle : DB Connection 초기화
  4. SQLConnect : connect, connect handle, server name, length of string, user name, length of string, password, length of password

SQL Server disconnect

  1. SQLDisconnect
  2. SQLFreeHandle : Database disconnect
  3. SQLFreeHandle : Database connect
Posted by Y2K
,

As a Windows software developer, you create, open, and manipulate kernel objects regularly. The system creates and manipulates several types of kernel objects, such as access token objects, event objects, file objects, file-mapping objects, I/O completion port objects, job objects, mailslot objects, mutex objects, pipe objects, process objects, semaphore objects, thread objects, and waitable timer objects. These objects are created by calling various functions. For example, the CreateFileMapping function causes the system to create a file-mapping object. Each kernel object is simply a memory block allocated by the kernel and is accessible only by the kernel. This memory block is a data structure whose members maintain information about the object. Some members (security descriptor, usage count, and so on) are the same across all object types, but most are specific to a particular object type. For example, a process object has a process ID, a base priority, and an exit code, whereas a file object has a byte offset, a sharing mode, and an open mode.

Because the kernel object data structures are accessible only by the kernel, it is impossible for an application to locate these data structures in memory and directly alter their contents. Microsoft enforces this restriction deliberately to ensure that the kernel object structures maintain a consistent state. This restriction also allows Microsoft to add, remove, or change the members in these structures without breaking any applications.

If we cannot alter these structures directly, how do our applications manipulate these kernel objects? The answer is that Windows offers a set of functions that manipulate these structures in well-defined ways. These kernel objects are always accessible via these functions. When you call a function that creates a kernel object, the function returns a handle that identifies the object. Think of this handle as an opaque value that can be used by any thread in your process. You pass this handle to the various Windows functions so that the system knows which kernel object you want to manipulate. We'll talk a lot more about these handles later in this chapter.

To make the operating system robust, these handle values are process-relative. So if you were to pass this handle value to a thread in another process (using some form of interprocess communication), the calls that this other process would make using your process's handle value would fail. In the section "Sharing Kernel ObjectsAcross Process Boundaries" (at the end of this chapter), we'll look at three mechanisms that allow multiple processes to successfully share a single kernel object.

Usage Counting

Kernel objects are owned by the kernel, not by a process. In other words, if your process calls a function that creates a kernel object and then your process terminates, the kernel object is not necessarily destroyed. Under most circumstances, the object will be destroyed; but if another process is using the kernel object your process created, the kernel knows not to destroy the object until the other process has stopped using it. The important thing to remember is that a kernel object can outlive the process that created it.

The kernel knows how many processes are using a particular kernel object because each object contains a usage count. The usage count is one of the data members common to all kernel object types. When an object is first created, its usage count is set to 1. Then when another process gains access to an existing kernel object, the usage count is incremented. When a process terminates, the kernel automatically decrements the usage count for all the kernel objects the process still has open. If the object's usage count goes to 0, the kernel destroys the object. This ensures that no kernel object will remain in the system if no processes are referencing the object.

Security

Kernel objects can be protected with a security descriptor. A security descriptor describes who created the object, who can gain access to or use the object, and who is denied access to the object. Security descriptors are usually used when writing server applications; you can ignore this feature of kernel objects if you are writing client-side applications.

Windows 98
Windows 98 is not designed for use as a server-side operating system. For this reason, Microsoft did not implement security features in Windows 98. However, if you are designing software for Windows 98 today, you should still be aware of security issues and use the proper access information when implementing your application to ensure that it runs correctly on Microsoft Windows 2000.

Almost all functions that create kernel objects have a pointer to a SECURITY_ATTRIBUTES structure as an argument, as shown here with the CreateFileMapping function:

HANDLE잺reateFileMapping( 젨쟄ANDLE쟦File, 젨쟑SECURITY_ATTRIBUTES쟰sa,? 젨잻WORD쟣lProtect, 젨잻WORD쟡wMaximumSizeHigh,? 젨잻WORD쟡wMaximumSizeLow,? 젨쟑CTSTR쟰szName);

Most applications will simply pass NULL for this argument so that the object is created with default security. Default security means that any member of the administrators group and the creator of the object have full access to the object; all others are denied access. However, you can allocate a SECURITY_ATTRIBUTES structure, initialize it, and pass the address of the structure for this parameter. A SECURITY_ATTRIBUTES structure looks like this:

typedef쟳truct?SECURITY_ATTRIBUTES? 젨잻WORD쟮Length; 젨쟊PVOID쟫pSecurityDescriptor; 젨잹OOL쟟InheritHandle; }쟔ECURITY_ATTRIBUTES;?

Even though this structure is called SECURITY_ATTRIBUTES, it really includes only one member that has anything to do with security: lpSecurityDescriptor. If you want to restrict access to a kernel object you create, you must create a security descriptor and then initialize the SECURITY_ATTRIBUTES structure as follows:

SECURITY_ATTRIBUTES쟳a; sa.nLength?쟳izeof(sa);젨젨젨젨?/쟖sed쟣or쟶ersioning sa.lpSecurityDescriptor?쟰SD;젨?/잸ddress쟯f쟞n쟧nitialized쟔D sa.bInheritHandle?쟂ALSE;젨젨젨?/잻iscussed쟫ater HANDLE쟦FileMapping?잺reateFileMapping(INVALID_HANDLE_VALUE,?amp;sa, 젨쟑AGE_READWRITE,?,?024,?quot;MyFileMapping");  

Since this member has nothing to do with security, I'm going to postpone discussing the bInheritHandle member until the section on inheritance later in this chapter.

When you want to gain access to an existing kernel object (rather than create a new one), you must specify the operations you intend to perform on the object. For example, if I wanted to gain access to an existing file-mapping kernel object so that I could read data from it, I would call OpenFileMapping as follows:

HANDLE쟦FileMapping?쟏penFileMapping(FILE_MAP_READ,쟂ALSE,? 젨?quot;MyFileMapping");

By passing FILE_MAP_READ as the first parameter to OpenFileMapping, I am indicating that I intend to read from this file mapping after I gain access to it. The OpenFileMapping function performs a security check first, before it returns a valid handle value. If I (the logged-on user) am allowed access to the existing file-mapping kernel object, OpenFileMapping returns a valid handle. However, if I am denied this access, OpenFileMapping returns NULL, and a call to GetLastError will return a value of 5 (ERROR_ACCESS_DENIED). Again, most applications do not use security, so I won't go into this issue any further.

Windows 98
While many applications do not need to be concerned about security, many Windows functions require that you pass desired security access information. Several applications designed for Windows 98 do not work properly on Windows 2000 because security was not given enough consideration when the application was implemented.

For example, imagine an application that, when started, reads some data from a registry subkey. To do this properly, your code should call RegOpenKeyEx, passing KEY_QUERY_VALUE for the desired access.

However, many applications were originally developed for Windows 98 without any consideration for Windows 2000. Since Windows 98 does not secure the registry, software developers frequently called RegOpenKeyEx, passing KEY_ALL_ACCESS as the desired access. Developers did this because it was a simpler solution and meant that the developer didn't have to really think about what access was required. The problem is that the registry subkey might be readable to the user, but not writable. So, when this application now runs on Windows 2000, the call to RegOpenKeyEx with KEY_ALL_ACCESS fails, and without proper error checking the application could run with totally unpredictable results.

If the developer had thought about security just a little and had changed KEY_ALL_ACCESS to KEY_QUERY_VALUE (which is all that is necessary in this example), the product would work on both operating system platforms.

Neglecting proper security access flags is one of the biggest mistakes that developers make. Using the correct flags will certainly make it much easier to port an application originally designed for Windows 98 to Windows 2000.

In addition to kernel objects, your application might use other types of objects, such as menus, windows, mouse cursors, brushes, and fonts. These objects are User objects or Graphics Device Interface (GDI) objects, not kernel objects. When you first start programming for Windows, you might be confused when you try to differentiate a User object or a GDI object from a kernel object. For example, is an icon a User object or a kernel object? The easiest way to determine whether an object is a kernel object is to examine the function that creates the object. Almost all functions that create kernel objects have a parameter that allows you to specify security attribute information, as did the CreateFileMapping function shown earlier.

None of the functions that create User or GDI objects have a PSECURITY_ATTRIBUTES parameter. For example, take a look at the CreateIcon function:

Posted by Y2K
,
일단 속도면에서는 API가 빠른 경우가 훨씬더 많다.

그 이유는 explore등의 프로그램에 의해서 미리 로드가 된 상태가 되는 경우가 더 많기 때문이고, API라는 것 자체의 특성이 운영체제에 귀속되어있는 함수들이기 때문에 훨신 더 빠른 속도를 나타낼 수 있다.

그렇지만, 언어에 대한 이식성의 문제에서는 다른 결과를 나타낸다.

특히 OS의 변화에 의한 프로그램의 변화 문제에서는 어쩔 수 없이. API에 의한 코드는 모두 무용지물이 되게 되는 경우가 허다하다.

자신이 소스를 만들때. 그것이 어떻게 사용되어가고, 그리고 나중에 재사용이 가능한지를 언제나 물어봐라. 그리고 그 결과를 보여주는 것이 결국에는 자신의 소스풀을 넓히는 방법일것이다. 
Posted by Y2K
,

Active Directory

OS 자료들 2009. 1. 7. 13:26
Active Directory의 기능
  • Domain Server : 기존의 Active Directory와 동일한 기능
  • 인증서의 발급 및 관리 기능
  • Active Directory Federation service
  • AD LDS
  • AD RMS

  

Active Directory의 새로운 기능
  • Read only domain controller의 제공(RODC)
  • 세분화 된 암호 및 계정 잠금 정책
  • Directory service로 감시 가능
  • Service 기반의 Active Directory 기능
  • Database mount tool 제공

  

RODC
  • Windows 2008 server에서 가장 많이 바뀐 AD service
  • 다른 영역에 배포하는 형태의 Active Directory
  • 읽기 만이 가능하고, 변경이 불가능하다. (시스템의 위험성이 있을 경우, 권한에 문제가 있을 경우에 매우 유용하게 사용 가능하다.)
  • 관리 비용의 감소
  • 사용자의 생산성이 증가 - 속성 객체에 대단히 뛰어난 보안을 설정할 수 있게 된다.
Posted by Y2K
,

우분투 7.04 Festy Fawn 설치

IBM X31

우분투 사용자 모임과 데비안사용자모임에서 발췌 편집했다
http://www.ubuntu.or.kr/wiki.php
http://www.debianusers.org/


* 일단 나중에 설치될 프로그램들을 위해 아래 소스를 소스리스트에 추가한다.
sudo gedit /etc/apt/sources.list   <--터미널에 요명령 그대로 친다.

deb http://ftp.kaist.ac.kr/pub/ubuntu/ feisty main restricted universe multiverse
deb http://ftp.kaist.ac.kr/pub/ubuntu/ feisty-security main restricted universe multiverse
deb http://ftp.kaist.ac.kr/pub/ubuntu/ feisty-updates main restricted universe multiverse
deb http://ftp.kaist.ac.kr/pub/ubuntu/ feisty-backports main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ feisty main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu/ feisty-security main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ feisty-updates main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ feisty main restricted universe multiverse
deb-src http://security.ubuntu.com/ubuntu/ feisty-security main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ feisty-updates main restricted universe multiverse

##################################################################

deb http://packages.freecontrib.org/ubuntu/plf feisty free non-free
deb http://kr.archive.ubuntu.com/ubuntu/ feisty main restricted
deb-src http://kr.archive.ubuntu.com/ubuntu/ feisty main restricted
####################################################

deb http://www.debian-multimedia.org stable main
deb http://www.debian-multimedia.org testing main
deb http://www.debian-multimedia.org sid main
deb http://www.debian-multimedia.org experimental main
deb-src http://www.debian-multimedia.org sid main
############################################


sudo apt-get update 명령실행


2. 한글환경

우선 시스템-관리-언어 에서 korean 을 추가한다. 

우분투 EUC-KR 설치

#sudo apt-get install language-pack-ko

#sudo locale-gen ko_KR.EUC-KR

GNOME 한글세팅은 여기서

1. /etc/environment 설정값 바꾸기

$ sudo vim /etc/environment

2. 환경 바꾸기

LANG="ko_KR.UTF-8"

LANGUAGE="ko_KR:ko:en_GB:en"

위에와 같이 선택이 되어있다. EUC-KR를 추가해주자.

LANG="ko_KR.UTF-8"

LANG="ko_KR.EUC-KR"

LANGUAGE="ko_KR:ko:en_GB:en"

3. 재부팅한다.

-폰트 문제 -

ubuntu 7.04에서는 다음 파일
/usr/share/language-selector/fontconfig/ko_KR 에서 "ko"로 인식되는 한글폰트의 AA와 오토힌팅을 끄도록 설정되어 있더군요.

저도 이번에 배운 사실이지만 은폰트, 백묵폰트, 아리따, 한겨례결체, alee-11.3등이 이에 해당됩니다.

이 상태에서는 개인이 AA나 힌팅을 넣도록 해도 먹지 않습니다. 이건 아마 버그가 아닌가 생각됩니다. 할 수 없이 좀 무식한 방법이지만 ko_KR파일 중

Turn off antialias and autohint for Korean fonts depending on pixelsize 섹션을 전부 코멘트아웃 시켰더니
정상으로 보입니다.

<!-- Turn off antialias and autohint for Korean fonts depending on pixelsize -->
<!-- <match target="font">
        <test name="lang" compare="contains">
                <string>ko</string>
        </test>
        <test name="pixelsize" compare="more">
<int>10</int>
</test>
        <test name="pixelsize" compare="less">
<int>22</int>
</test>
        <edit name="antialias" mode="assign">
<bool>false</bool>
</edit>
        <edit name="autohint" mode="assign">
<bool>false</bool>
</edit>
        <edit name="hintstyle" mode="assign">
<const>hintmedium</const>
</edit>
</match> -->



한영키 사용하기. (한영키를 바로사용할 수 있다면 패스~)

우분투 설치기 기본으로 설치되는 한글입력기 scim 의 성능에 만족하기때문에 따로 nabi로 바꾸지않고 그냥 scim을 사용한다.
한영키가 사용안된다면 기본 한영전환기는 컨트롤 + 스페이스바

터미널에서 xev 명령을 실행
한영키와 한자버튼을 눌러서 키값이 몇으로 나오는지 기억해둔다
본인은 한영은 210 한자는 209 였다

터미널에서 아래명령을 차례 차례 실행해본다.

 sudo setkeycodes 71 122
sudo setkeycodes 72 123
xmodmap -e "keycode 210 = Hangul" (여기서 210은 xev 샐행후 나온 자신의 키값을 넣는다)
xmodmap -e "keycode 209 = Hangul_Hanja" (여기도 마찬가지)

이명령으로 현재 상태에서 한영,한자키가 사용가능하다.
이제 다시시작해도 사용가능하게 해보자.

우분투사용자 모임 zzz 님께서 알려주신 편한방법 (랩탑,데스크탑모두 가능)

sudo gedit /usr/share/xmodmap/xmodmap.kr 라고 터미널에 명령준 다음

keycode xxx = Hangul_Hanja
keycode xxx = Hangul

xxx 부분을 xev로 한/영키와 한자키에 대한 코드값을 알아내어 알맞게 바꿉니다.

키보드 지정
그리고는 시스템 > 기본 설정 > 키보드 > 키 배치 에서
(더하기 눌러서 Korea, Republic of 추가후)
Korea, Republic of 맨 위로 올리고 체크합니다.

재부팅후 사용가능
이방법이 xmodmap.kr에 키 배치가 들어있는 것으로 보아 정석적인 방법 같다.

혹시나 위 방법이 안되면 사용자문서에 있는 방법으로 해보자
.

http://www.ubuntu.or.kr/wiki.php/%ED...98%81%ED%82%A4

위 링크를 따라하고 재부팅하기전에 만들어놓은 ~/.Xmodmap 파일에 실행퍼미션을 준다.
chmod 755 ~/.Xmodmap
재부팅~
이래도 안되면 .Xmodmap 파일을

xmodmap -e "keycode xxx = Hangul"
xmodmap -e "keycode xxx = Hangul_Hanja" (xxx는 xev로 알아낸 키값)

이렇게 작성해 보아라

sudo gedit ~/.Xmodmap

  

keycode 209 = Hangul

keycode 210 = Hangul_Hanja


저장후 종료 (vi editer를 써도 상관없다)
다시 터미널에서


sudo gedit /etc/init.d/bootmisc.sh

setkeycodes 71 209
setkeycodes 72 210


추가후 저장 종료


sudo vi /etc/init.d/setkeycodes

setkeycodes 71 209
setkeycodes 72 210


추가후저장종료


sudo update-rc.d setkeycodes start 99 5 .


reboot (ctrl + alt + backspace)

넘버록 키기

자동으로 안켜진다면
sudo apt-get install numlockx 설치로도
켜지고

시스템-기본설정-키보드-키배치옵션
capslookkey behavior 탭에서 기본설정 아래 항목에 체크해두면 켜지는것 같다.

삑소리끄기

시스템-기본설정-소리-시스템벨소리탭에서 벨소리 체크를 풀면면다.


이것으로 우분투 6.06대퍼 기본설정을 마친다.
도움이 되었길 바라며..

http://www.gnome-look.org/ 에서 테마파일을 받을수 있다

설정후 스샷을 포함한다.



#build-essential (gcc,make...설치)

sudo apt-get install build-essential

#ftp 글라이언트 GFTP 프로그램
sudo apt-get install gftp 로설치

#xChat 프로그램

sudo apt-get install xchat

#wine 윈도우기반 프로그램을 돌려준다 모든프로그램이 돌아가는것은 아니다.

apt-get install wine

winecfg 명령으로 환경설정

--동영상 플레이어---

아래와 같이 libxine 관련 라이브러리를 모두 설치해 준다.

$ sudo apt-get install libxine-* (totem-xine 전용 라이브러리)

$ sudo apt-get install w32codecs (Mplayer 에서 사용할 윈도우 관련 코덱 모음)

1) 토템 플레이어 설치

먼저 우분투에 기본적으로 설치되어 있는 토템(TOTEM) 이라는 녀석을 설치해 볼 것 이다.

$ sudo apt-get install -y totem-xine

  

2) Mplayer 설치

$ sudo apt-get install -y mplayer

$ sudo apt-get install -y mozilla-mplayer

3. 자막 설정

  

※ 자막설정(실행화면의 배경에서 오른쪽 마우스에서 선택)

# Preferences - video - xv 선택
# Preferences - Subtitle & OSD --> Encoding : Korean charset (CP949) 선택, Unicode subtitle 체크
# Perferences - Font --> Font : /usr/share/fonts/truetype/baekmuk/gulim.ttf 선택(자신이 원하는 폰트 선택)
# Perferences - Font --> Encoding : Unicode 선택



2) Totem Player

# 토템전용 폰트 만들기

http://xinehq.de/index.php/releases 에서 xine-lib 다운로드 한다.

$ tar -xvzf xine-lib-1.0.tar.gz
$ cd xine-lib-1.0/misc/

$ sudo apt-get install libfreetype6-dev gcc(없으신 분들은 꼭 설치-->없으면 컴파일 시 에러!)

$ gcc xine-fontconv.c -o xine-fontconv `freetype-config --cflags --libs` -lz

$ sudo cp xine-fontconv /bin/

  

$ sudo apt-get install ttf-unfonts (자신이 원하는 폰트로 선택해서...)
$ cp /usr/share/fonts/truetype/unfonts/UnDotum.ttf .
$ xine-fontconv UnDotum.ttf UnDotum iso-8859-1 cp949

* 토템 플레이어를 한번 실행한 후 종료한다.(실행해야만 ~/.xine 폴더가 생성된다.)
$ mkdir ~/.xine/fonts
$ cp UnDotum*.gz ~/.xine/fonts

  

# 자막 설정(아래와 같이 수정한 후 저장한다.)

$ vi ~/.gnome2/totem_config

=================================================

...
# font for subtitles
# string, default: sans
#subtitles.separate.font:sans
subtitles.separate.font:UnDotum

# encoding of the subtitles
# string, default: iso-8859-1
#subtitles.separate.src_encoding:iso-8859-1
subtitles.separate.src_encoding:cp949

=================================================

  

※ 자막설정(실행화면의 배경에서 오른쪽 마우스에서 선택)

# Preferences - video - xv 선택
# Preferences - Subtitle & OSD --> Encoding : Korean charset (CP949) 선택, Unicode subtitle 체크
# Perferences - Font --> Font : /usr/share/fonts/truetype/baekmuk/gulim.ttf 선택(자신이 원하는 폰트 선택)
# Perferences - Font --> Encoding : Unicode 선택



$ sudo apt-get install w32codecs ---> Windows Media codec
$ sudo apt-get install totem-gstream ---> totem-gstream
$ sudo apt-get install totem-xine-firefox-plugin
 ---> Firefox용 totem-xine plugin

sudo apt-get install gstreamer0.10-pitfdll gstreamer0.10-ffmpeg gstreamer0.10-plugins-bad gstreamer0.10-plugins-bad-multiverse gstreamer0.10-plugins-ugly ogle ogle-gui gstreamer0.10-plugins-ugly-multiverse gxine libxine-main1 libxine-extracodecs

프로그램 -> 추가/제거 -> 음악과 비디오

여기서 GStreamer extra plugins 와 GStreamer ffmpeg video plugin 요 두개를 설치를 하면 간단하게 해결이 됩니다.



-MP3 player-

sudo apt-get install beep-media-player 명령으로 bmp 설치한다.

-당나귀-


리눅스용 당나귀 amule을 설치 해 보았습니다...


[amule 설치 체크 화면]
프로그램 추가/제거를 통해서 amule 로 검색을 하면 amule이 바로 나옵니다.
이것만 설치하면 바로 사용이 가능합니다.

서버추가 62.241.53.16
port 4242

다운이 완료되면 기본으로 저장되는 디렉토리가 /home/user_id/.amule/Incoming 입니다.





[활용하기]
우분투에서 한글2005 설치하기
우분투에서 ipod 사용하기
우분투 7.04 3D Desktop 환경 구성 성공!
우분투 Edgy Eft 설치.
우분투에서 윈도우 접근하기
우분투에서 와콤 타블렛 사용하기
우분투 7.04 에 vmware-server 깔기..
우분투에 XGL을 이용한 Beryl 를 설치하기 위한 문서
우분투 (Ubuntu Feisty) 에서 escript 사용하기
우분투에서 MP3 듣기.......
우분투 서버 - DNS 구축 (bind 설치)
우분투 설치 및 타블렛 설정 
리눅스(우분투 7.04) 에서 네이트온 설치하기...
우분투에 XGL을 이용한 Beryl 를 설치하기 위한 문서
[우분투] 동영상 감상하기
데비안 우분투 OS와 서버(APM) 설치
우분투 서버 - APM, FTP 설치 도우미
우분투 NFS 서버 설치
우분투 엣지 + nvidia-glx + 베릴
우분투 - root 권한 얻기 
우분투 서버 - 호스트네임(hostname) 설정
[우분투] 읽기권한 주고 ntfs 시스템 mount 하기 
비스타가 부럽잖은 우분투+XGL+Beryl 3총사
우분투에 포스트픽스(postfix) 설치
[펌]우분투, Apache+Tomcat+Mysql+php
우분투 네스팟 접속기(dapper drake)
우분투 부트로더 복구 방법
우분투에서 AVR 환경 구성하기... part 1.
우분투에서 동영상 코덱 설치 
우분투에서 소스 컴파일 방법..
우분투에서 GRUB 부트로더가 지워졌을 때
우분투에서 SUN JAVA JVM 사용하기
우분투에서 방화벽(IPTABLES)설정을 통한 인터넷 공유
우분투 코덱 설치 프로그램
우분투(ubuntu) BIND - DNS 도메인 등록 
우분투에서 telnetd 설치가 안될경우?
우분투 postgresql 설정 - ubuntu 5.10

Posted by Y2K
,
1.1 최상위 디렉토리

리눅스에서 최상위 디렉토리는 root 디렉토리라고 하는데 "/"로 표시한다.

1.2 "." 과 ".." 디렉토리

이들은 sub 디렉토리에만 존재한다.
"."은 현재 디렉토리를 의미하고 ".."은 현재 디렉토리의 상위 디렉토리를 의미한다.

1.3 현재 디렉토리의 확인

시스템에 로그인한 후에 사용자가 현재 어느 디렉토리를 사용 중인지를 알아보려면 "pwd" 명령어를 입력한다.
사용자의 홈 디렉토리로 이동하기 위해서는 cd ~ 를 사용해야 한다.

1.4 디렉토리 생성과 삭제
  1. make Directory  : mkdir
  2. delete directory : rmdir, rm


kill

Process를 강제로 죽이는 명령어. -9를 이용해서 없애준다.

  

top

전체 Process들의 상태를 알아볼 수 있는 명령어

  

Posted by Y2K
,

tar 로 묶고 풀기

  • tar 파일로 묶기 :  tar cvf sample.tar /abc : 라고하면 abc디렉토리 및에 파일들이 sample.tar 라는 묶을파일로 묶인다.
  • tar 파일 풀기 :  tar xvf sample.tar : 하면 파일이 풀린다.

 

gzip 압축고 풀기

gzip으로 압축하기 : gzip sample.tar 라고하면 sample.tar.gz 라는 압축파일이 만들어진다.
tar zxvf sample.tar.gz 라고 하면 원래 모양대로 앞축 및 묶음파일을 동시게 해결해준다.

bzip2 로 압축하기

gz압축파일을 많이 대체해 나가고 있다, 압축율이 bzip은 gz에 비하여 뛰어납니다.
bzip2 abcd.tar ====> 압축후 abcd.tar.bz2 라는 파일이 생성됩니다.

  • bz2 풀기 : bzip2 -d abcd.tar.bz2
  • tar 풀기 : tar xvf abcd.tar 하면된다.

 

zip : 으로 압축 하기 및 unzip으로 압축풀기

tar 로 묶는 과정이 필요없다.
사용법 : zip [옵션] [생성파일명*.zip] [압축할파일또는디렉토리]
내용보기 : zipinfo 파일명

마운트 시키기 : mount 와 umount

  • 플로피 마운트하기   : mount /dev/fd0 /mnt/floppy
  • 시디롬 마운트하기   : mount -t iso9660 /dev/cdrom /mnt/cdrom
  • msdos 마운트하기   : mount -t msdos /dev/hda1 /mnt/msdos
  • win 98 마운트하기  : mount -t vfat /dev/hda1 /mnt/win98
  • nt파티션 마운트하기 : mount -t ntfs /dev/hda1 /mnt/windows
  • 리눅스 마운트하기   : mount -t ext2 /dev/hda3 /mnt/linux
  • iso이미지 마운트하기 : mount -o loop xxx.iso /mnt/iso 
Posted by Y2K
,

인증 키 작성

OS 자료들 2009. 1. 7. 13:24
1. SETREG 1 True 실행

C:\InetSDK\Bin\SETREG 1 True


작업결과.

 Updated Software Publishing State Key Values (0x23ca0):
   1) Trust the Test Root........................... TRUE
   2) Use expiration date on certificates........... TRUE
   3) Check the revocation list..................... TRUE
   4) Offline revocation server OK (Individual)..... TRUE
   5) Offline revocation server OK (Commercial)..... TRUE
   6) Java offline revocation server OK (Individual) TRUE
   7) Java offline revocation server OK (Commercial) TRUE
   8) Invalidate version 1 signed objects........... FALSE
   9) Check the revocation list on Time Stamp Signer FALSE
  10) Only trust items found in the Trust DB........ FALSE

2. *.pvk, *.cer 키 생성 (개인키 생성하기)

C:\InetSDK\Bin\MAKECERT -n "CN=www.userspace.net" -sv UserSpace.Pvk UserSpace.Cer

다음과 같은 창이 뜨면 암호를 입력 하고 OK를 누르면 됩니다.
이때 암호는 차후에 또 쓰이며 나중에 인증서로 ActiveX를 인증할때도 쓰이니 꼭 기억해 놓으세요.
위의 암호가 정확하다면 다음과 같은 창이 뜹니다. 그러면 위에서 입력한 암호를 입력하세요.
정상적으로 작업이 진행 되었다면 Bin 폴더에 UserSpace.Pvk 파일과 UserSpace.Cer 파일이 생성 되었을겁니다.


2. *.spc 생성 (공용키 생성하기)

 C:\InetSDK\Bin\CERT2SPC UserSpace.Cer UserSpace.spc

위와 같은 메세지가 떨어졌다면 Bin폴더 안에 UserSpace.spc 파일이 생성 되었을겁니다.
그럼 인증키는 모두 생성 하였습니다.
ActiveX (ocx) 나 dll, cab 파일을 인증 할때는 다음과 같이 입력합니다.
\InetSDK\Bin\SIGNCODE -spc UserSpace.spc -v UserSpace.Pvk -n "Test" Test.OCX

 

그럼 암호창이 나오는데 위에서 입력한 암호를 입력하면 codesign이 된 파일이 생성됩니다.
(Tip : 파일 사이즈가 약간 변하는데 이것으로 인증을 한것이지 안한것인지 판단합니다.)
codesign 방법은 위와 같이 하는 방법이 있고 같은 이름의 파일이지만 UI가 내장되어 있는
디지털 서명 마법사라는 것이 있습니다. 이건 다음에 설명 드리겠습니다.

이것은 브라우져에서 뜨는 인증창이 약간 다릅니다. 또한 verisign 간은 인증기관에서 받은
인증키로 인증할때도 사용합니다.

 

중요한 것은 위에서 생성한 인증키는 계속 쓰이므로 지우지 말고 잘 보관하세요. (암호도...)

스스로 루트 인증기관(CA)이 되기
새로운 인증기관 관련 파일을 모두 /etc/ssl/newCA 라는 이름으로 만들기로 했다고 가정

% cd /etc/ssl
% mkdir /etc/ssl/newCA
% mkdir /etc/ssl/newCA/certs
% mkdir /etc/ssl/newCA/private
% chmod 700 /etc/ssl/newCA/private
% echo ‘01′ > /etc/ssl/newCA/serial
% touch /etc/ssl/newCA/index.txt
% cd /etc/ssl/newCA
% openssl req -x509 -newkey rsa -out cacert.pem -outform PEM -days 1825
=> cacert.pem 과 privkey.pem 이 생성된다.
% mv privkey.pem private/cakey.pem ( openssl.cnf 에 있는 이름으로 )

이 렇게 만든 루트 인증기관의 인증서를 client PC들에서 무리없이 사용하기 위해서는 이를 루트 인증기관으로 인정해주는 절차가 필요하다. 이것을 위해 위에서 만든 cacert.pem 을 웹에 올리고 IE나 firefox에서 이를 신뢰하는 인증기관(trusted CA) 인증서로 설치하는 과정이 필요하다. (우리의 경우에는 여기를 방문하면 된다)
서버 인증서 만들기

우리 서버가 자체 CA가 되었으므로 인증서를 만들고 사인하여 서버 인증서를 만들 수 있게 되었다.

새로운 인증서를 위한 인증요구서를 만듦.

% openssl req -newkey rsa:1024 -keyout tempkey.pem -keyform PEM -out tempreq.pem -outform PEM
% openssl rsa < tempkey.pem > whatever_key.pem
% chmod 400 whatever_key.pem

CA key로 방금 만든 인증요구서를 사인하여 서버 인증서를 만듦.
% openssl ca -in tempreq.pem -out whatever_crt.pem
% rm tempkey.pem tempreq.pem

Entry Filed under: Server admin
Posted by Y2K
,