ARTICLE CATEGORY

분류 전체보기 (16)
GTK+ 3 Reference (2)
I. GTK+ Overview (0)
II. GTK+ Core Reference (0)
III. Theming in GTK+ (0)
IV. GTK+ Widgets and Objects (0)
VI. GTK+ Tools (0)
GTK+3 Tips (1)
C/C++ (0)
JAVA (0)
PHP (0)
Assembly (5)
Windows (0)
Linux (2)
마컴 (3)
Internet (1)
  • Total hit
  • Today hit
  • Yesterday hit

'분류 전체보기'에 해당되는 글 16건

  1. 2011.10.02
    간단한 GTK+ 프로그램 작성
  2. 2011.10.01
    GTK+ 3 Reference Manual(GTK+ 3 레퍼런스 매뉴얼)
  3. 2011.10.01
    GTK+ 이란?
  4. 2009.08.06
    다음 지도 Test
  5. 2008.07.21
    0장
  6. 2008.06.20
    Ruby on rails 설치
  7. 2008.06.20
    Fedora Core 7에서 Fedora Core 8로 Upgrade하기
  8. 2006.11.19
    아 이 어셈블리언어 과제끝난 뿌듯함 1
  9. 2006.11.18
    EditPlus에 쓸 SPARC Assembly code 문법파일 만들었음
  10. 2006.11.15
    C언어가 대단한 언어였군

어제부터 GTK+ 3.0 Reference Manual을 주말마다 짬을 내어 올해안까지 번역해보자는 목표를 세워보았다.

이렇게 목표를 잡고 나서 간한단 GTK+ 프로그램을 C로 작성해보았다.
아래는 C소스코드입니다.

#include <gtk/gtk.h>

GtkWidget* build_label() {
    GtkWidget *label = gtk_label_new("Hello, World!");
    gtk_label_set_selectable(GTK_LABEL(label), FALSE);
    return label;
}

int main (int argc, char **argv)
{
    GtkWidget *win;

    gtk_init (&argc, &argv);

    win = gtk_window_new (GTK_WINDOW_TOPLEVEL);

    gtk_container_add(GTK_CONTAINER(win), build_label());
    gtk_window_resize(GTK_WINDOW(win), 300, 200);

    g_signal_connect(win, "destroy", G_CALLBACK(gtk_main_quit), NULL);

    gtk_widget_show_all (win);

    gtk_main ();
   
    return 0;
}

소스코드를 컴파일 하는 방법은, GTK+3.0 라이브러리가 설치되어야 하며, 아래와 같은 명령어를 작성하여 누르면 컴파일이 됩니다. 실행파일을 열면 아래와 같은 화면이 나옵니다.

gcc `pkg-config --cflags gtk+-3.0`  -o gtkmain gtkmain.c  `pkg-config --libs gtk+-3.0`


조만간 재미있는 GTK+용 프로그램이 나오겠지?ㅎㅎ



AND

여기는 GTK+3 Reference Manual(GTK+ 3 레퍼런스 매뉴얼)의 한국어판 번역사이트입니다.


GTK+ 3 라이브러리, 버전 3.2.0를 위한 문서입니다. 최근 버전은 http://library.gnome.org/devel/gtk3/ (영어, English)에서 찾을 수 있습니다. 만약 오래된 GTK+ 2 버전의 라이브러리를 찾으려면 http://library.gnome.org/devel/gtk/(영어, English)를 방문하십시요.




GTK+ 3 Reference Manual

This document is for the GTK+ 3 library, version 3.2.0 . The latest versions can be found online at http://library.gnome.org/devel/gtk3/. If you are looking for the older GTK+ 2 series of libraries, see http://library.gnome.org/devel/gtk/.


I. GTK+ Overview
Getting Started with GTK+
Compiling the GTK+ libraries — How to compile GTK+ itself
Compiling GTK+ Applications — How to compile your GTK+ application
Running GTK+ Applications — How to run and debug your GTK+ application
Using GTK+ on the X Window System — X11 aspects of using GTK+
Using GTK+ on Windows — Windows-specific aspects of using GTK+
Using GTK+ on Mac OS X — OS X-specific aspects of using GTK+
Mailing lists and bug reports — Getting help with GTK+
Common Questions — Find answers to common questions in the GTK+ manual
The GTK+ Drawing Model — The GTK+ drawing model in detail
II. GTK+ Core Reference
Main loop and Events — Library initialization, main event loop, and events
Version Information — Variables and functions to check the GTK+ version
Accelerator Groups — Groups of global keyboard accelerators for an entire GtkWindow
Accelerator Maps — Loadable keyboard accelerator specifications
Clipboards — Storing data on clipboards
Drag and Drop — Functions for controlling drag and drop handling
Stock Items — Prebuilt common menu/toolbar items and corresponding icons
Settings — Sharing settings between applications
Bindings — Key bindings for individual widgets
Standard Enumerations
Selections — Functions for handling inter-process communication via selections
Testing — Utilities for testing GTK+ applications
Filesystem utilities — Functions for working with GIO
III. Theming in GTK+
GtkStyleContext — Rendering UI elements
GtkCssProvider — CSS-like styling for widgets
GtkStyleProvider — Interface to provide style information to GtkStyleContext
GtkStyleProperties — Store for style property information
GtkThemingEngine — Theming renderers
GtkWidgetPath — Widget path abstraction
GtkSymbolicColor — Symbolic colors
GtkGradient — Gradients
GtkIconTheme — Looking up icons by name
Themeable Stock Images — Manipulating stock icons
GtkNumerableIcon — A GIcon that allows numbered emblems
Resource Files — Deprecated routines for handling resource files
GtkStyle — Deprecated object that holds style information for widgets
IV. GTK+ Widgets and Objects
Object Hierarchy
Widget Gallery
Windows
GtkDialog — Create popup windows
GtkInvisible — A widget which is not displayed
GtkMessageDialog — A convenient message window
GtkWindow — Toplevel which can contain other widgets
GtkWindowGroup — Limit the effect of grabs
GtkAboutDialog — Display information about an application
GtkAssistant — A widget used to guide users through multi-step operations
GtkOffscreenWindow — A toplevel to manage offscreen rendering of child widgets
Display Widgets
GtkAccelLabel — A label which displays an accelerator key on the right of the text
GtkImage — A widget displaying an image
GtkLabel — A widget that displays a small to medium amount of text
GtkProgressBar — A widget which indicates progress visually
GtkStatusbar — Report messages of minor importance to the user
GtkInfoBar — Report important messages to the user
GtkStatusIcon — Display an icon in the system tray
GtkSpinner — Show a spinner animation
Buttons and Toggles
GtkButton — A widget that creates a signal when clicked on
GtkCheckButton — Create widgets with a discrete toggle button
GtkRadioButton — A choice from multiple check buttons
GtkToggleButton — Create buttons which retain their state
GtkLinkButton — Create buttons bound to a URL
GtkScaleButton — A button which pops up a scale
GtkVolumeButton — A button which pops up a volume control
GtkSwitch — A "light switch" style toggle
GtkLockButton — A widget to unlock or lock privileged operations
Numeric/Text Data Entry
GtkEntry — A single line text entry field
GtkEntryBuffer — Text buffer for GtkEntry
GtkEntryCompletion — Completion functionality for GtkEntry
GtkScale — A slider widget for selecting a value from a range
GtkHScale — A horizontal slider widget for selecting a value from a range
GtkVScale — A vertical slider widget for selecting a value from a range
GtkSpinButton — Retrieve an integer or floating-point number from the user
GtkEditable — Interface for text-editing widgets
Multiline Text Editor
Text Widget Overview — Overview of GtkTextBuffer, GtkTextView, and friends
GtkTextIter — Text buffer iterator
GtkTextMark — A position in the buffer preserved across buffer modifications
GtkTextBuffer — Stores attributed text for display in a GtkTextView
GtkTextTag — A tag that can be applied to text in a GtkTextBuffer
GtkTextTagTable — Collection of tags that can be used together
GtkTextView — Widget that displays a GtkTextBuffer
Tree, List and Icon Grid Widgets
Tree and List Widget Overview — Overview of GtkTreeModel, GtkTreeView, and friends
GtkTreeModel — The tree interface used by GtkTreeView
GtkTreeSelection — The selection object for GtkTreeView
GtkTreeViewColumn — A visible column in a GtkTreeView widget
GtkTreeView — A widget for displaying both trees and lists
GtkTreeView drag-and-drop — Interfaces for drag-and-drop support in GtkTreeView
GtkCellView — A widget displaying a single row of a GtkTreeModel
GtkIconView — A widget which displays a list of icons in a grid
GtkTreeSortable — The interface for sortable models used by GtkTreeView
GtkTreeModelSort — A GtkTreeModel which makes an underlying tree model sortable
GtkTreeModelFilter — A GtkTreeModel which hides parts of an underlying tree model
GtkCellLayout — An interface for packing cells
GtkCellArea — An abstract class for laying out GtkCellRenderers
GtkCellAreaBox — A cell area that renders GtkCellRenderers into a row or a column
GtkCellAreaContext — Stores geometrical information for a series of rows in a GtkCellArea
GtkCellRenderer — An object for rendering a single cell
GtkCellEditable — Interface for widgets which can are used for editing cells
GtkCellRendererAccel — Renders a keyboard accelerator in a cell
GtkCellRendererCombo — Renders a combobox in a cell
GtkCellRendererPixbuf — Renders a pixbuf in a cell
GtkCellRendererProgress — Renders numbers as progress bars
GtkCellRendererSpin — Renders a spin button in a cell
GtkCellRendererText — Renders text in a cell
GtkCellRendererToggle — Renders a toggle button in a cell
GtkCellRendererSpinner — Renders a spinning animation in a cell
GtkListStore — A list-like data structure that can be used with the GtkTreeView
GtkTreeStore — A tree-like data structure that can be used with the GtkTreeView
Menus, Combo Box, Toolbar
GtkComboBox — A widget used to choose from a list of items
GtkComboBoxText — A simple, text-only combo box
GtkMenu — A menu widget
GtkMenuBar — A subclass of GtkMenuShell which holds GtkMenuItem widgets
GtkMenuItem — The widget used for item in menus
GtkImageMenuItem — A menu item with an icon
GtkRadioMenuItem — A choice from multiple check menu items
GtkCheckMenuItem — A menu item with a check box
GtkSeparatorMenuItem — A separator used in menus
GtkTearoffMenuItem — A menu item used to tear off and reattach its menu
GtkToolShell — Interface for containers containing GtkToolItem widgets
GtkToolbar — Create bars of buttons and other widgets
GtkToolItem — The base class of widgets that can be added to GtkToolShell
GtkToolPalette — A tool palette with categories
GtkToolItemGroup — A sub container used in a tool palette
GtkSeparatorToolItem — A toolbar item that separates groups of other toolbar items
GtkToolButton — A GtkToolItem subclass that displays buttons
GtkMenuToolButton — A GtkToolItem containing a button with an additional dropdown menu
GtkToggleToolButton — A GtkToolItem containing a toggle button
GtkRadioToolButton — A toolbar item that contains a radio button
Action-based menus and toolbars
GtkUIManager — Constructing menus and toolbars from an XML description
GtkActionGroup — A group of actions
GtkAction — An action which can be triggered by a menu or toolbar item
GtkToggleAction — An action which can be toggled between two states
GtkRadioAction — An action of which only one in a group can be active
GtkRecentAction — An action of which represents a list of recently used files
GtkActivatable — An interface for activatable widgets
Selectors (Color/File/Font)
GtkColorButton — A button to launch a color selection dialog
GtkColorSelectionDialog — A standard dialog box for selecting a color
GtkColorSelection — A widget used to select a color
GtkHSV — A 'color wheel' widget
GtkFileChooser — File chooser interface used by GtkFileChooserWidget and GtkFileChooserDialog
GtkFileChooserButton — A button to launch a file selection dialog
GtkFileChooserDialog — A file chooser dialog, suitable for "File/Open" or "File/Save" commands
GtkFileChooserWidget — File chooser widget that can be embedded in other widgets
GtkFileFilter — A filter for selecting a file subset
GtkFontButton — A button to launch a font chooser dialog
GtkFontChooser — Interface implemented by widgets displaying fonts
GtkFontChooserDialog — A dialog box for selecting fonts
GtkFontSelection — Deprecated widget for selecting fonts
GtkFontSelectionDialog — A dialog box for selecting fonts
Layout Containers
GtkGrid — Pack widgets in a rows and columns
GtkAlignment — A widget which controls the alignment and size of its child
GtkAspectFrame — A frame that constrains its child to a particular aspect ratio
GtkBox — A container box
GtkHBox — A horizontal container box
GtkVBox — A vertical container box
GtkButtonBox — A container for arranging buttons
GtkHButtonBox — A container for arranging buttons horizontally
GtkVButtonBox — A container for arranging buttons vertically
GtkFixed — A container which allows you to position widgets at fixed coordinates
GtkPaned — A widget with two adjustable panes
GtkHPaned — A container with two panes arranged horizontally
GtkVPaned — A container with two panes arranged vertically
GtkLayout — Infinite scrollable area containing child widgets and/or custom drawing
GtkNotebook — A tabbed notebook container
GtkTable — Pack widgets in regular patterns
GtkExpander — A container which can hide its child
GtkOverlay — A container which overlays widgets on top of each other
GtkOrientable — An interface for flippable widgets
Ornaments
GtkFrame — A bin with a decorative frame and optional label
GtkSeparator — A separator widget
GtkHSeparator — A horizontal separator
GtkVSeparator — A vertical separator
Scrolling
GtkScrollbar — A Scrollbar
GtkHScrollbar — A horizontal scrollbar
GtkVScrollbar — A vertical scrollbar
GtkScrolledWindow — Adds scrollbars to its child widget
GtkScrollable — An interface for scrollable widgets
Printing
GtkPrintOperation — High-level Printing API
GtkPrintContext — Encapsulates context for drawing pages
GtkPrintSettings — Stores print settings
GtkPageSetup — Stores page setup information
GtkPaperSize — Support for named paper sizes
GtkPrinter — Represents a printer
GtkPrintJob — Represents a print job
GtkPrintUnixDialog — A print dialog
GtkPageSetupUnixDialog — A page setup dialog
Miscellaneous
GtkAdjustment — A representation of an adjustable bounded value
GtkArrow — Displays an arrow
GtkCalendar — Displays a calendar and allows the user to select a date
GtkDrawingArea — A widget for custom user interface elements
GtkEventBox — A widget used to catch events for widgets which do not have their own window
GtkHandleBox — a widget for detachable window portions
GtkIMContextSimple — An input method context supporting table-based input methods
GtkIMMulticontext — An input method context supporting multiple, loadable input methods
GtkSizeGroup — Grouping widgets so they request the same size
GtkTooltip — Add tips to your widgets
GtkViewport — An adapter which makes widgets scrollable
GtkAccessible — Accessibility support for widgets
Abstract Base Classes
GtkWidget — Base class for all widgets
GtkContainer — Base class for widgets which contain other widgets
GtkBin — A container with just one child
GtkMenuShell — A base class for menu objects
GtkMisc — Base class for widgets with alignments and padding
GtkRange — Base class for widgets which visualize an adjustment
GtkIMContext — Base class for input method contexts
Cross-process Embedding
GtkPlug — Toplevel for embedding into other processes
GtkSocket — Container for widgets from other processes
Recently Used Documents
GtkRecentManager — Managing recently used files
GtkRecentChooser — Interface implemented by widgets displaying recently used files
GtkRecentChooserDialog — Displays recently used files in a dialog
GtkRecentChooserMenu — Displays recently used files in a menu
GtkRecentChooserWidget — Displays recently used files
GtkRecentFilter — A filter for selecting a subset of recently used files
Choosing from installed applications
GtkAppChooser — Interface implemented by widgets for choosing an application
GtkAppChooserButton — A button to launch an application chooser dialog
GtkAppChooserDialog — An application chooser dialog
GtkAppChooserWidget — Application chooser widget that can be embedded in other widgets
Interface builder
GtkBuildable — Interface for objects that can be built by GtkBuilder
GtkBuilder — Build an interface from an XML UI definition
Application support
GtkApplication — Application class
V. Migrating from Previous Versions of GTK+
Migration Checklist
Implement GtkWidget::popup_menu
Use GdkEventExpose.region
Test for modifier keys correctly
Use named icons
Migrating from GTK+ 2.x to GTK+ 3
Preparation in GTK+ 2.x
Do not include individual headers
Do not use deprecated symbols
Use accessor functions instead of direct access
Replace GDK_<keyname> with GDK_KEY_<keyname>
Use GIO for launching applications
Use cairo for drawing
Changes that need to be done at the time of the switch
Replace size_request by get_preferred_width/height
Replace GdkRegion by cairo_region_t
Replace GdkPixmap by cairo surfaces
Replace GdkColormap by GdkVisual
GdkDrawable is gone
Event filtering
Backend-specific code
GtkPlug and GtkSocket
The GtkWidget::draw signal
GtkProgressBar orientation
Check your expand and fill flags
Scrolling changes
GtkObject is gone
GtkEntryCompletion signal parameters
Resize grips
Prevent mixed linkage
Install GTK+ modules in the right place
Theming changes
Migrating themes
Migrating theme engines
Extending the CSS parser
Using the CSS file format
A checklist for widgets
Parsing of custom resources
Bonus points
Migrating from libunique to GApplication or GtkApplication
Uniqueness
Commands and Messages
Migrating from other containers to GtkGrid
GtkBox versus GtkGrid: packing
GtkBox versus GtkGrid: sizing
GtkBox versus GtkGrid: spacing
VI. GTK+ Tools
gtk-query-immodules-3.0 — Input method module registration utility
gtk-update-icon-cache — Icon theme caching utility
Glossary
Index of all symbols
Index of deprecated symbols
Index of new symbols in 3.0
Index of new symbols in 3.2
Annotation Glossary

'GTK+ 3 Reference' 카테고리의 다른 글

GTK+ 이란?  (0) 2011.10.01
AND


GTK+김프 툴킷(GIMP Toolkit)의 준말로, 초기에 김프를 위해서 만든 툴킷이었으며 X 윈도 시스템을 위한 위젯 툴킷 가운데 하나이다. GTK+와 Qt모티프에 대한 좋은 대안이 되어 주었다. GTK+는 1997년 Spencer Kimball, Peter Mattis, 조시 맥도널드(Josh MacDonald)가 함께 만든 것이다. 그들은 모두 UC 버클리에 있는 eXperimental Computing Facility (XCF) 소속이었다. LGPL로 라이선스되었기 때문에, GTK+는 자유 소프트웨어이자 오픈 소스 소프트웨어이고, GNU 프로젝트의 일부분이다.

wiki page 참조[한글]


What is GTK+
============

GTK+ is a multi-platform toolkit for creating graphical user interfaces. Offering a complete set of widgets, GTK+ is suitable for projects ranging from small one-off tools to complete application suites.

GTK+ has been designed from the ground up to support a range of languages, not only C/C++. Using GTK+ from languages such as Perl and Python (especially in combination with the Glade GUI builder) provides an effective method of rapid application development.

GTK+ is free software and part of the GNU Project. However, the licensing terms for GTK+, the GNU LGPL, allow it to be used by all developers, including those developing proprietary software, without any license fees or royalties. GTK+ is the only 100% free-of-cost open source industrial-strength GUI toolkit available today.

Since its origins as the toolkit for the GNU Image Manipulation Program (GIMP), GTK+ has been used in a wide range of software. Notably, GTK+ is the foundation of the GNOME desktop.


'GTK+ 3 Reference' 카테고리의 다른 글

GTK+ 3 Reference Manual(GTK+ 3 레퍼런스 매뉴얼)  (0) 2011.10.01
AND
다음 지도 Test



AND

How Tomcat Wroks(톰캣 최종 분석) - Tomcat 4&5 Reading Summary

들어가면서

Servlet Container의 작동원리

서블릿 컨테이너가 서블릿에 대한 요청을 처리할 때 기본적으로 하는 일은 세가지

  • 요청 객체(Request object)를 생성하고, 호출된 서블릿이 사용할 파라미터, 해더, 쿠키, 질의문(Query String), URI와 같은 정보를 이 요청 객체에 채운다.
    요청 객체는 javax.servlet.ServletRequest나 javax.servlet.http.HttpServletRequest 인터페이스(Interface)의 인스턴스(Instance)이다.
  • 서블릿이 웹 클라이언트에 응답을 보낼 때 사용할 응답 객체(response object)를 생성한다. 응답 객체는 javax.servlet.ServletResponse나  javax.servlet.http.HttpServletResponse 인터페이스(Interface)의 인스턴스(Instance)이다.
  • 서블릿의 service 메소드(Method)에 요청 객체와 응답 객체를 전달해 호출한다. 여기서 서블릿은 요청 객체로 부터 값을 읽어들이고 응답 객체에 값을 쓴다.

Catalina 구성도

Catalina는 세련되게 설계되고 개발된, 매우 정교한 소프트웨어의 일부분이며 모듈화 되어있다.

catalinamodule.PNG

Connector는 요청을 Container에 연결해주는 Module.

Connector의 역할은 전달받은 각 HTTP 요청에 대해 요청 객체(Request object)와 응답 객체(Response object)를 구성하고, Container에 전달하는 것이다. Container는 Connector로부터 요청 객체(Request object)와 응답 객체(Response object)를 전달 받고, Servlet의 service method를 호출할 책임을 진다.

 

예를 들어 Servlet를 load하고, 사용자를 인증하고, 해당 사용자의 Session을 갱신 하는 등의 많은 일들이 Servlet의 service method를 호출하기 전에 수행돼야 한다. 따라서 Container가 각각의 작업을 위해 서로 다른 여러 모듈을 사용한다. 사용자의 Session을 처리하는 Manager Module, Servlet class를 Load하는 Loader Module등 여러 Module이 존재한다.

 

 

 

이 글은 스프링노트에서 작성되었습니다.

AND

Ruby On Rails Linux Setting Log

 이번에 학교 연구실 Linux서버에 Ruby on rails를 설치하게 되었다.

여기서는 Ruby on rails를 설치한 일대기를 기록해보기로 한다.

Linux는 Fedora Core 7을 사용하였다.

어떻게 설치를 하였나?

 황대산님이 쓰신 웹개발 2.0 루비 온 레일스 라는 책에서는 Windows와 MAC OS에서 설치하는 방법만 나와있어서 Linux에서 설치하려고 할때에는 어떻게 설치하는지 몰라서 홈페이지에서 찾아보았다.

이번에 Ruby, Ruby on rails 설치는 링크(http://www.dreamincode.net/forums/index.php?showtopic=30705&hl)를 참고로 설치를 하였다.

 

필요한 Fedora package설치

우선 설치하기 전에 httpd와 mysql은 기본적으로 깔려있어야 한다.

혹시나 모를까봐 httpd(웹서버)와 Mysql(DB-데이터베이스)가 설치가 되었는지를 확인해본다.

[root@localhost ~]# yum install httpd mysql-server mysql

깔려져있다는 것을 확인을 하였다.

[root@localhost ~]# yum install httpd mysql-server mysql
Setting up Install Process
Parsing package install arguments
Package httpd - 2.2.8-1.fc7.x86_64 is already installed.
Package mysql-server - 5.0.45-6.fc7.x86_64 is already installed.
Package mysql - 5.0.45-6.fc7.x86_64 is already installed.
Nothing to do
[root@localhost ~]#

readline 라이브러리가 이 Linux에 깔려있다는 것을 확인하였다.

[root@localhost ~]# yum install readline
Setting up Install Process
Parsing package install arguments
Package readline - 5.2-4.fc7.i386 is already installed.
Package readline - 5.2-4.fc7.x86_64 is already installed.
Nothing to do
[root@localhost ~]#

깔려 있다는 것을 확인하였다.

 

Ruby Package 설치

Ruby는 우선 Fedora core 7 배포판에 있는 것으로 사용하기로 하였다.

[root@localhost ~]# yum install ruby
fedora                    100% |=========================| 2.1 kB    00:00
macromedia                100% |=========================| 1.9 kB    00:00
updates                   100% |=========================| 2.3 kB    00:00
primary.sqlite.bz2        100% |=========================| 3.9 MB    01:59
adobe-linux-i386          100% |=========================|  951 B    00:00
Setting up Install Process
Parsing package install arguments
Package ruby - 1.8.6.114-1.fc7.x86_64 is already installed.
Nothing to do
[root@localhost ~]#

이미 설치가 되어 있다는 것을 확인하였다 -_-;; (언제 깔았는지는 나도 잘 모른다.  컴퓨터를 받은 3월초에 Ruby를 사용한답시고 설치했을듯 하다.)

 

그리고 나서 RubyGems(루비젬)을 설치해보자.

루비젬(RubyGems)은 루비의 각종 라이브러리를 자동으로 설치하고 관리해주는 패키지 관리 유틸리티로 레일즈 설치에 사용된다.

루비젬은 Fedora Core 7 배포판에서 받아 설치를 한다.

 [root@localhost rubygems-1.1.1]# yum install rubygems

설치하면 아래와 같이 다른 프로그램도 깔리게 된다. 이것도 깔아야 설치가 된다.

[root@localhost rubygems-1.1.1]# yum install rubygems
Setting up Install Process
Parsing package install arguments
Resolving Dependencies
--> Running transaction check
---> Package rubygems.noarch 0:0.9.4-1.fc7 set to be updated
--> Processing Dependency: ruby-rdoc for package: rubygems
--> Running transaction check
---> Package ruby-rdoc.x86_64 0:1.8.6.114-1.fc7 set to be updated
--> Processing Dependency: ruby-irb = 1.8.6.114-1.fc7 for package: ruby-rdoc
--> Running transaction check
---> Package ruby-irb.x86_64 0:1.8.6.114-1.fc7 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

=============================================================================
 Package                 Arch       Version          Repository        Size
=============================================================================
Installing:
 rubygems                noarch     0.9.4-1.fc7      updates           498 k
Installing for dependencies:
 ruby-irb                x86_64     1.8.6.114-1.fc7  updates           274 k
 ruby-rdoc               x86_64     1.8.6.114-1.fc7  updates           342 k

Transaction Summary
=============================================================================
Install      3 Package(s)
Update       0 Package(s)
Remove       0 Package(s)

Total download size: 1.1 M
Is this ok [y/N]:

y(yes)를 입력하고 나서 설치를 한다.

설치를 하면 아래와 같은 글자들이 나온다.

Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing: ruby-irb                     ######################### [1/3]
  Installing: ruby-rdoc                    ######################### [2/3]
  Installing: rubygems                     ######################### [3/3]

Installed: rubygems.noarch 0:0.9.4-1.fc7
Dependency Installed: ruby-irb.x86_64 0:1.8.6.114-1.fc7 ruby-rdoc.x86_64 0:1.8.6.114-1.fc7
Complete!
[root@localhost ~]#

그리고는 Complete!라 나오면서 설치가 끝난다.

그리고 나서 나머지도 설치를 한다.

[root@localhost ~]# yum install install ruby ruby-devel ruby-irb ruby-libs ruby-rdoc ruby-ri rubygems

아래와 같이 설치가 된다.

[root@localhost lib]# yum install install ruby ruby-devel ruby-irb ruby-libs ruby-rdoc ruby-ri rubygems
fedora                    100% |=========================| 2.1 kB    00:00
macromedia                100% |=========================| 1.9 kB    00:00
updates                   100% |=========================| 2.3 kB    00:00
primary.sqlite.bz2        100% |=========================| 3.1 MB    00:15
adobe-linux-i386          100% |=========================|  951 B    00:00
Setting up Install Process
Parsing package install arguments
No package install available.
Package ruby - 1.8.6.114-1.fc7.x86_64 is already installed.
Package ruby-irb - 1.8.6.114-1.fc7.x86_64 is already installed.
Package ruby-libs - 1.8.6.114-1.fc7.x86_64 is already installed.
Package ruby-rdoc - 1.8.6.114-1.fc7.x86_64 is already installed.
Package rubygems - 0.9.4-1.fc7.noarch is already installed.
Resolving Dependencies
--> Running transaction check
---> Package ruby-libs.i386 0:1.8.6.114-1.fc7 set to be updated
---> Package ruby-devel.i386 0:1.8.6.114-1.fc7 set to be updated
---> Package ruby-ri.x86_64 0:1.8.6.114-1.fc7 set to be updated
---> Package ruby-devel.x86_64 0:1.8.6.114-1.fc7 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

=============================================================================
 Package                 Arch       Version          Repository        Size
=============================================================================
Installing:
 ruby-devel              i386       1.8.6.114-1.fc7  updates           770 k
 ruby-devel              x86_64     1.8.6.114-1.fc7  updates           778 k
 ruby-ri                 x86_64     1.8.6.114-1.fc7  updates           2.0 M
Installing for dependencies:
 ruby-libs               i386       1.8.6.114-1.fc7  updates           1.7 M

Transaction Summary
=============================================================================
Install      4 Package(s)
Update       0 Package(s)
Remove       0 Package(s)

Total download size: 5.2 M
Is this ok [y/N]: y
Downloading Packages:
(1/4): ruby-devel-1.8.6.1 100% |=========================| 778 kB    00:06
(2/4): ruby-ri-1.8.6.114- 100% |=========================| 2.0 MB    00:05
(3/4): ruby-devel-1.8.6.1 100% |=========================| 770 kB    00:03
(4/4): ruby-libs-1.8.6.11 100% |=========================| 1.7 MB    00:05
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing: ruby-libs                    ######################### [1/4]
  Installing: ruby-devel                   ######################### [2/4]
  Installing: ruby-ri                      ######################### [3/4]
  Installing: ruby-devel                   ######################### [4/4]

Installed: ruby-devel.i386 0:1.8.6.114-1.fc7 ruby-devel.x86_64 0:1.8.6.114-1.fc7 ruby-ri.x86_64 0:1.8.6.114-1.fc7
Dependency Installed: ruby-libs.i386 0:1.8.6.114-1.fc7
Complete!
[root@localhost lib]#

설치를 다 하였으면 아래 명령어로 rails를 설치하자.

[root@localhost ~]# gem install rails --include-dependencies

아래와 같이 설치가 된다.

[root@localhost ~]# gem install rails --include-dependencies
Bulk updating Gem source index for: http://gems.rubyforge.org
Successfully installed rails-2.0.2
Successfully installed rake-0.8.1
Successfully installed activesupport-2.0.2
Successfully installed activerecord-2.0.2
Successfully installed actionpack-2.0.2
Successfully installed actionmailer-2.0.2
Successfully installed activeresource-2.0.2
Installing ri documentation for rake-0.8.1...
Installing ri documentation for activesupport-2.0.2...
Installing ri documentation for activerecord-2.0.2...
Installing ri documentation for actionpack-2.0.2...
Installing ri documentation for actionmailer-2.0.2...
Installing ri documentation for activeresource-2.0.2...
Installing RDoc documentation for rake-0.8.1...
Installing RDoc documentation for activesupport-2.0.2...
Installing RDoc documentation for activerecord-2.0.2...
Installing RDoc documentation for actionpack-2.0.2...
Installing RDoc documentation for actionmailer-2.0.2...
Installing RDoc documentation for activeresource-2.0.2...
[root@localhost ~]#

rails를 설치를 하였으면 mongrel를 설치하기로 한다.

아래와 같이 명령어 쳐서 설치하면 된다.

[root@localhost ~]# gem install gem_plugin daemons capistrano --include-dependencies

[root@localhost ~]# gem install mongrel mongrel_cluster railsmachine --include-dependencies

아래와 같이 설치가 된다.

[root@localhost ~]# gem install gem_plugin daemons capistrano --include-dependencies
Successfully installed gem_plugin-0.2.3
Installing ri documentation for gem_plugin-0.2.3...
Installing RDoc documentation for gem_plugin-0.2.3...
Successfully installed daemons-1.0.10
Installing ri documentation for daemons-1.0.10...
While generating documentation for daemons-1.0.10
... MESSAGE:   Unhandled special: Special: type=33, text="All"
... RDOC args: --ri --op /usr/lib/ruby/gems/1.8/doc/daemons-1.0.10/ri --quiet lib README Releases TODO
(continuing with the rest of the installation)
Installing RDoc documentation for daemons-1.0.10...
Successfully installed capistrano-2.3.0
Successfully installed net-ssh-2.0.1
Successfully installed net-sftp-2.0.0
Successfully installed net-scp-1.0.0
Successfully installed net-ssh-gateway-1.0.0
Successfully installed highline-1.4.0
Installing ri documentation for capistrano-2.3.0...
While generating documentation for capistrano-2.3.0
... MESSAGE:   Unhandled special: Special: type=33, text="Notes"
... RDOC args: --ri --op /usr/lib/ruby/gems/1.8/doc/capistrano-2.3.0/ri --quiet lib
(continuing with the rest of the installation)
Installing ri documentation for net-ssh-2.0.1...
While generating documentation for net-ssh-2.0.1
... MESSAGE:   Unhandled special: Special: type=33, text="This"
... RDOC args: --ri --op /usr/lib/ruby/gems/1.8/doc/net-ssh-2.0.1/ri --quiet lib
(continuing with the rest of the installation)
Installing ri documentation for net-sftp-2.0.0...
While generating documentation for net-sftp-2.0.0
... MESSAGE:   Unhandled special: Special: type=33, text="Net::SFTP"
... RDOC args: --ri --op /usr/lib/ruby/gems/1.8/doc/net-sftp-2.0.0/ri --quiet lib
(continuing with the rest of the installation)
Installing ri documentation for net-scp-1.0.0...
While generating documentation for net-scp-1.0.0
... MESSAGE:   Unhandled special: Special: type=33, text="Provides"
... RDOC args: --ri --op /usr/lib/ruby/gems/1.8/doc/net-scp-1.0.0/ri --quiet lib
(continuing with the rest of the installation)
Installing ri documentation for net-ssh-gateway-1.0.0...
While generating documentation for net-ssh-gateway-1.0.0
... MESSAGE:   Unhandled special: Special: type=33, text="A"
... RDOC args: --ri --op /usr/lib/ruby/gems/1.8/doc/net-ssh-gateway-1.0.0/ri --quiet lib
(continuing with the rest of the installation)
Installing ri documentation for highline-1.4.0...
While generating documentation for highline-1.4.0
... MESSAGE:   Unhandled special: Special: type=33, text="A"
... RDOC args: --ri --op /usr/lib/ruby/gems/1.8/doc/highline-1.4.0/ri --title HighLine Documentation --main README --quiet lib README INSTALL TODO CHANGELOG LICENSE
(continuing with the rest of the installation)
Installing RDoc documentation for capistrano-2.3.0...
Installing RDoc documentation for net-ssh-2.0.1...
Installing RDoc documentation for net-sftp-2.0.0...
Installing RDoc documentation for net-scp-1.0.0...
Installing RDoc documentation for net-ssh-gateway-1.0.0...
Installing RDoc documentation for highline-1.4.0...
[root@localhost ~]#
[root@localhost ~]# gem install mongrel mongrel_cluster railsmachine --include-dependencies
Select which gem to install for your platform (x86_64-linux)
 1. mongrel 1.1.4 (ruby)
 2. mongrel 1.1.4 (java)
 3. mongrel 1.1.4 (x86-mswin32-60)
 4. mongrel 1.1.3 (java)
 5. mongrel 1.1.3 (i386-mswin32)
 6. mongrel 1.1.3 (ruby)
 7. Skip this gem
 8. Cancel installation
> 1
Select which gem to install for your platform (x86_64-linux)
 1. fastthread 1.0.1 (mswin32)
 2. fastthread 1.0.1 (ruby)
 3. fastthread 1.0.1 (i386-mswin32)
 4. Skip this gem
 5. Cancel installation
> 2
Building native extensions.  This could take a while...
Building native extensions.  This could take a while...
Successfully installed mongrel-1.1.4
Successfully installed fastthread-1.0.1
Successfully installed cgi_multipart_eof_fix-2.5.0
Installing ri documentation for mongrel-1.1.4...
Installing ri documentation for fastthread-1.0.1...

No definition for dummy_dump

No definition for dummy_dump

No definition for rb_queue_marshal_load

No definition for rb_queue_marshal_dump
Installing ri documentation for cgi_multipart_eof_fix-2.5.0...
Installing RDoc documentation for mongrel-1.1.4...
Installing RDoc documentation for fastthread-1.0.1...

No definition for dummy_dump

No definition for dummy_dump

No definition for rb_queue_marshal_load

No definition for rb_queue_marshal_dump
Installing RDoc documentation for cgi_multipart_eof_fix-2.5.0...
Successfully installed mongrel_cluster-1.0.5
Successfully installed railsmachine-1.0.0
[root@localhost ~]#

For the last install, it may ask which version you want, choose the latest ruby versions.

마지막 설치에서 어떤 버전을 원하는지를 물어보는데 나는 최신 Ruby 버전을 선택하였다.

Select which gem to install for your platform (x86_64-linux)
 1. mongrel 1.1.4 (ruby)
 2. mongrel 1.1.4 (java)
 3. mongrel 1.1.4 (x86-mswin32-60)
 4. mongrel 1.1.3 (java)
 5. mongrel 1.1.3 (i386-mswin32)
 6. mongrel 1.1.3 (ruby)
 7. Skip this gem
 8. Cancel installation
> 1
Select which gem to install for your platform (x86_64-linux)
 1. fastthread 1.0.1 (mswin32)
 2. fastthread 1.0.1 (ruby)
 3. fastthread 1.0.1 (i386-mswin32)
 4. Skip this gem
 5. Cancel installation
> 2

이유는 간단하다. 웹페이지에 쓰여져 있기 때문이다. 물어보는것도 Platform을 어떤 것으로 하는 가를 물어보기 때문에 선택할 것이 Ruby밖에 없었다. (Ruby 설치하는 법도 잘 모르므로 -_-;; 자세한 것은 고수님 Help~)

 

 

Mongrel 설정

root권한에서 설정을 하였다.

* Creating a mongrel user to run mongrel as: /usr/sbin/adduser -r mongrel
* Create mongrel conf directory: mkdir /etc/mongrel_cluster
* Symlink mongrel initscript
ln -s /usr/lib/ruby/gems/1.8/gems/mongrel_cluster-1.0.5/resources/mongrel_cluster /etc/init.d/mongrel_cluster
* Make it executable chmod 755 /usr/lib/ruby/gems/1.8/gems/mongrel_cluster-1.0.5/resources/mongrel_cluster
* Add it to chkconfig chkconfig --add mongrel_cluster
* Enable it in chkconfig chkconfig mongrel_cluster on

여기서 중요한 점은 mongrel_cluster 버전이 뭔가에 따라 폴더이름이 다르다. 이 점을 유의해야 한다.

 

후기

설치는 링크(http://www.dreamincode.net/forums/index.php?showtopic=30705&hl)를 참고로 설치를 하였다.

나도 웹에서 보고 찾은 내용들을 한글로 정리하니까 뿌듯(?)까지는 아니지만 한글 Rails문서를 쓴다는 것에 보람을 느낀다.

말로만 듣던 Ruby on Rails를 나도 개발하게 되는 것인가? ㅎㅎ

 

이 글은 스프링노트에서 작성되었습니다.

AND

이번에 잘쓰던 학교 연구실 컴퓨터에 깔려진 Fedora Core 7를 Fedora Core8로 버전 업하기로 하였다.

이런 것은 버전 업이라는 용어보다는 Upgrade라는 말이 더 맞을듯 하다.

학교 연구실 컴퓨터는 64bit 컴퓨터이며, Fedora Core 7를 쓰고 있다.

준비전 작업

우선 Fedora Core 7에서 쓰는 Kernel Version을 Check를 하였다.

[root@localhost ~]# cat /proc/version
Linux version 2.6.23.15-80.fc7 (mockbuild@xenbuilder2.fedora.redhat.com) (gcc version 4.1.2 20070925 (Red Hat 4.1.2-27)) #1 SMP Sun Feb 10 16:52:18 EST 2008
[root@localhost ~]#

Fedora Core 7에서 2.6.23.15 버전의 Kernel을 쓴다는 것을 알수있다.

(Kernel에 대한 자세한 이야기는 IT EXPERT 리눅스 커널 프로그래밍이라는 책에서 보면 쉽게 이해될 것이다.)

 

우선 yum으로 모든 패키지를 업그레이드 하기로 한다. 의존성문제를 없애기 위해서 아래의 작업을 해준다.

yum clean all
yum -y upgrade

그리고 난 다음 Fedora Core 8을 업그레이드를 하기 위한 절차를 진행하기로 한다.

 

Fedora Core 8로 업그레이드 하기

Fedora Core 8로 업그레이드 하기 위하여 적당한 위치에서 파일을 내려받고 설치한다

위의 작업을 해야 Fedora Core 8 배포판 파일을 받을 수 있다.

아래의 wget명령어로 rpm파일을 다운로드받는다.

그리고는 설치를 한다.

rpm -Uvh fedora*.rpm

설치를 하였으면 아래의 /etc/yum.repos.d/fedora.repo 파일과 /etc/yum.repos.d/fedora-updates.repo 을 수정한다.

수정하는 이유는 속도 빠른 국내서버에서 다운로드 빨리 받기 위해서이다. Upgrade하는데에 대략 2.0G정도의 파일을 다운로드 받는데 외국서버에서 다운로드 받으면 엄청난 시간을 잡아먹기때문에 수정을 한다. 

 

/etc/yum.repos.d/fedora.repo 수정

Upgrade하기 전에 /etc/yum.repos.d/fedora.repo 파일을 수정한다.

[root@localhost ~]# vim /etc/yum.repos.d/fedora.repo
[fedora]
name=Fedora $releasever - $basearch
failovermethod=priority
#baseurl=http://download.fedora.redhat.com/pub/fedora/linux/releases/$releasever/Everything/$basearch/os/
baseurl=ftp://ftp.kaist.ac.kr/fedora/linux/releases/$releasever/Everything/$basearch/os/
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora file:///etc/pki/rpm-gpg/RPM-GPG-KEY

[fedora-debuginfo]
name=Fedora $releasever - $basearch - Debug
failovermethod=priority
#baseurl=http://download.fedora.redhat.com/pub/fedora/linux/releases/$releasever/Everything/$basearch/debug/
baseurl=ftp://ftp.kaist.ac.kr/fedora/linux/releases/$releasever/Everything/$basearch/debug/
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-debug-$releasever&arch=$basearch
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora file:///etc/pki/rpm-gpg/RPM-GPG-KEY

[fedora-source]
name=Fedora $releasever - Source
failovermethod=priority
#baseurl=http://download.fedora.redhat.com/pub/fedora/linux/releases/$releasever/Everything/source/SRPMS/
baseurl=ftp://ftp.kaist.ac.kr/fedora/linux/releases/$releasever/Everything/source/SRPMS/
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-source-$releasever&arch=$basearch
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora file:///etc/pki/rpm-gpg/RPM-GPG-KEY

 

/etc/yum.repos.d/fedora-updates.repo 수정

/etc/yum.repos.d/fedora-updates.repo 파일도 수정한다.

[root@localhost ~]# vim /etc/yum.repos.d/fedora-updates.repo
[updates]
name=Fedora $releasever - $basearch - Updates
failovermethod=priority
#baseurl=http://download.fedora.redhat.com/pub/fedora/linux/updates/$releasever/$basearch/
baseurl=ftp://ftp.kaist.ac.kr/fedora/linux/updates/$releasever/$basearch/
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-debug-f$releasever&arch=$basearch
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora

[updates-debuginfo]
name=Fedora $releasever - $basearch - Updates - Debug
failovermethod=priority
#baseurl=http://download.fedora.redhat.com/pub/fedora/linux/updates/$releasever/$basearch/debug/
baseurl=ftp://ftp.kaist.ac.kr/fedora/linux/updates/$releasever/$basearch/debug/
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-debug-f$releasever&arch=$basearch
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora

[updates-source]
name=Fedora $releasever - Updates Source
failovermethod=priority
#baseurl=http://download.fedora.redhat.com/pub/fedora/linux/updates/$releasever/SRPMS/
baseurl=ftp://ftp.kaist.ac.kr/fedora/linux/updates/$releasever/SRPMS/
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-source-f$releasever&arch=$basearch
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora

 

아래와 같이 파일을 수정을 하였으면 아래와 같이 yum으로 업그레이드를 한다.

아마, 2.0GB라는 어마어마한 용량을 받는다는 메시지를 보일것이다.

[root@localhost ~]#  yum clean all 

[root@localhost ~]#  yum -y upgrade

그러다가 의존성 문제로 에러가 난다. -_-;;

이런 문제는 dbus.i386를 제거하면 된다고 한다. (http://fedoraproject.org/wiki/YumUpgradeFaq#head-56b13936246769f517ac488a0098d193c7fc3600 참조)

[root@localhost ~]# yum erase dbus.i386

이렇게 dbus.i386 package를 지우고서는 다시 yum으로 업그레이드를 한다.

[root@localhost ~]#  yum clean all 

[root@localhost ~]#  yum -y upgrade

Complete!라는 메시지가 뜨면서 성공을 하였다!

성공을 하였으면 Reboot을 한다.

[root@localhost ~]# reboot

아님 아래 명령어를 써도 된다.

[root@localhost ~]# init 6

결과

제대로 설치가 되면서  Fedora Core 8로 업그레이드가 되었다.

[root@localhost ~]# uname -a
Linux localhost.localdomain 2.6.24.5-85.fc8 #1 SMP Sat Apr 19 11:18:09 EDT 2008 x86_64 x86_64 x86_64 GNU/Linux
[root@localhost ~]# cat /proc/version
Linux version 2.6.24.5-85.fc8 (mockbuild@xenbuilder2.fedora.redhat.com) (gcc version 4.1.2 20070925 (Red Hat 4.1.2-33)) #1 SMP Sat Apr 19 11:18:09 EDT 2008
[root@localhost ~]#

Fedora Core 9가 조금 있으면 나오는데 Fedora Core 7로 계속 유지하기가 뭐랄까? 점차 뒤쳐질것 같은 느낌이 들어서 업그레이드를 해버렸다.

어차피 시스템을 내맘대로 만질수 있는 컴퓨터다 보니 왜이리 삽질의 욕구가 자꾸만 늘어가군요. -_-;;

 

원격접속하였을때에는 아무런 문제가 없다가, 컴퓨터 앞에서 업그레이드가 제대로 되었는지 확인해보니 GNOME Desktop이 날라갔습니다 -_-;;

아마 yum erase dbus.i386 으로 날려진것 같더군요, 나머지는 정상인데 말이죠 ㅠㅠ

그래서 마지막으로 

[root@localhost ~]# yum install gnome* 

으로 GNOME Desktop설치를 합니다. -_-;;

이 글은 스프링노트에서 작성되었습니다.

AND

아 어셈블어 언어 과제 끝나고 나서 뿌듯함은 이루 말할수 없습니다.
될듯 안될듯 계속 사람 속 타게 하던 SPARC Assembly과제를 끝냈답니다.
끝내고 나서 제출
이번 과제 난이도가 최강이였다 ㅠ_ㅠ 이번숙제는 쉬운듯 하면서도 어려웠다.


아 이제 편히 발벗고 잘 수 있겠구나 ㅋㅋ
AND
EditPlus에 쓸 SPARC Assembly code 문법파일을 만들었습니다.
어셈블리 언어 숙제 하다가 Editplus에서 SPARC Assembly Code를 보는 것이 눈 아파서
Editplus의 문법파일을 바꿔서 SPARC Assembly 용 문법 파일(stx)를 만들었습니다.
Editplus사이트(http://www.editplus.com)에 가서 문법 파일 중에서 SPARC Assembly용 stx파일이 없나 검색해도 없어서 그냥 제가 만들었습니다.
숙제는 거의 했는데 함수 구현이 잘 안되어서 짜증난 탓도 있지만 Code를 보면 딱딱한 검은색 글씨라 눈에 잘 안들어 오더군요

문법 파일(stx)를 만들어서 설정 바꿔 보니 코드 보는것이 눈에 잘 보이더군요 ㅎㅎ

여기에 문법 파일을 올립니다.
sparc.stx
(파일 내용은 때때로 바뀔 것입니다. 업데이트가 되면 새로운 것으로 대체될것입니다 :)
파일명은 sparc.stx로 editplus에 깔려진 디렉터리에 저장하고 설정 바꾸시면 SPARC Assembly숙제할때 도움이 될 것입니다 :D

아 과제 조금만 하면 끝인데 -_-;;

아래 그림은 문법 파일(stx)적용했을때 입니다. 컬러다 +_+
AND

요즘 학교에서 SPARC Architecture상에서 구현되는 Assembly Language를 공부한다.
Assembly Language를 공부하다 보니 C언어를 다시 보게 되었다.
이번에 나온 숙제를 하기 위해서 C언어를 만든 분이 만드신 책을 봤다.
The C Programming Language, Second Edition

(C언어를 입문하는 사람들은 C언어 만든사람이 쓴 책이라 처음에 보게 되는 책)
출처 :  (http://cm.bell-labs.com/cm/cs/cbook/)
어셈블리 언어를 배우다가 C언어를 쳐다 보니 이해 안가서 외우던 부분이 신기하게도 이해가 갔다. 그리고 C언어 책에서 나온 개념들이 새롭게 이해간 것이다.
내가 모르던 부분이 꽤 많았다는 것을 실감나게 했다.

이 책안에 자료구조 내용들이 있다는 것을 다시 깨닫게 하고 등등
1학년때 열심히 공부했다고 생각했는데 어셈블리 언어를 공부하면서 어거지로 공부했다는 것을 느끼게 해줬다.
1학년때 위의 The C Programming Language 2nd Edition과 함께 본 주 교재 C 프로그래밍 책
홍익대학교 컴퓨터공학과 교수님이신 원유헌 교수님과 이기철 교수님께서 쓰신 책이다.
루미넌스님께서 댓글 남긴 것 같이 정말 C언어가 새롭게 느껴집니다.

요즘 공부하는 것에 재미가 붙여간다. 저번 학기때 자료구조 때문에 학교를 휴학하고 군대할 생각도 했었지만 말이다.
어셈블리언어를 배우니 C언어에서 이상하게 이해 못했던 내용들이 이해가기 시작하였다.

다음 3학년 1학기때에는 홍익대학교 전자전기공학부에 개설된 마이크로컴퓨터란 강의를 들을 생각을 한다.
2학년 2학기 때 홍익대학교 컴퓨터공학과에서 개설된 어셈블리언어및 실습이란 과목은 RISC방식의 컴퓨터에서 어셈블리언어를 배우고 컴퓨터 구조에 대해서 대충 개념을 잡게 한다만 많은 컴퓨터에서는 CISC방식을 쓰고 있다. RISC 방식을 배우니까 뭔가 허전하게 느껴진다. CISC 방식도 배워서 컴퓨터 구조에 대해 섭렵을 해볼 생각을 해본다.

AND

StudioEgo의 Mobile Blog

블로그 이미지
새롭게 시작하는 Mobile Blog입니다. 여기서는 Mobile 관련 뉴스, 프로그래밍(주로 Android, Linux, GTK+, Windows Phone, iOS, etc)등 모바일 관련 내용을 쭉 올리는 블로그입니다.
by StudioEgo