Nov 16

Sau khi cài cho SCIM và SCIM-UNIKEY chạy được, tui gặp phải một lỗi rất khó chịu. Đó là nó không chịu hiển thị chữ HOA cho một số ký tự khi dùng caps lock (s g h j k l z x c v b n m…).

Xử nó thế nào đây? Hơi lằng ngoằng chút xíu, như sau:

1. Gỡ bỏ SCIM và cả SCIM-UNIKEY

2. Gỡ luôn Ibus và ibus-Unikey (nếu có)

3. Reboot máy. Lưu ý là phải reboot máy chứ log-out & log-in không ăn thua.

4. Cài chú Ibus lại và kế tiếp là cài chú Ibus-Unikey.

5. Reboot máy.

6. Vào cấu hình của Ibus để chọn kiểu gõ, chọn Unicode.

Xong!

Mẹo này tui áp dụng trên máy laptop TX1020 Ubuntu 9.10 AMD64, có Compiz. Những máy khác thì tui không biết.

Tagged with:
Nov 11

Trong hệ thống Linux/Windows, mổi chương trình/shell khi hoạt động sẽ tạo ra một/nhiều tiến trình (processes) với các luồng (Thread) khác nhau, những tiến trình này có nhiều trạng thái như: đang được sử lý, tạm dừng, bị hủy.. tùy thuộc vào tính hoạt động của tiến trình mà Linux & CPU xử lý theo nhiều trạng thái khác nhau.
Linux cung cấp một số công cụ hỗ trợ người dùng điều khiển những tiến trình này, chỉ người sử dụng (User) khởi động tiến trình mới có thể dừng, khởi động hoặc hủy tiến trình, trừ khi có sự can thiệp của người/nhóm có quyền cao nhất là root.

Các tiến trình trong hệ thống được tổ chức có trật tự theo một cấu trúc nhất định (tùy thuộc vào nền hệ điều hành mà cấu trúc này được tổ chức khác nhau). Với tiến trình số 1 với giá trị init, init là tiến trình đầu tiên mà Linux khởi động khi boot vào hệ thống, tất cả tiến trình dùng chung tài nguyên mà ở đây là CPU theo các thuật toán đa luồng (các dòng hệ điều hành hiện đại như LINUX, MAC, WINDOWNS đều hỗ trợ đa luồng).

1. pstree command:

Lệnh pstree cho kết quả mối liên hệ giữa các tiến trình “cha” và “con” (tạm gọi như vậy vì một tiến trình khi khởi động có thể sinh ra nhiều tiến trình “con”, và từ những tiến trình “con” này có thể sinh ra nhiều tiến trình “cháu”).

thesun@thesun:~$ pstree
init─┬─NetworkManager─┬─dhclient
│                └─{NetworkManager}
├─acpid
├─apache2───5*[apache2]
├─atd
├─avahi-daemon───avahi-daemon
├─bonobo-activati───{bonobo-activati}
├─clamd───{clamd}
├─console-kit-dae───63*[{console-kit-dae}]
├─cron
├─cupsd
├─2*[dbus-daemon]

Câu lệnh pstree cho bạn một cách nhìn tổng quá về các tiến trình đang hoạt động như kết quả trên, để xem chi tiết, gắn thêm tham số -a, sử dụng tham số -H + ID, kết quả sẽ tô đậm tiến trình xác định trước với ID, VD: pstree -H 2576 (2576 là ID của tiến trình, mổi tiến trình có ID khác nhau tùy theo thời gian lúc tiến trình khởi động, ID này không cố định, mà thay đổi, ví dụ ở đây: 2576 là ID của apache đang hoạt động trong hệ thống của tôi), dùng tham số -p để liệt kê cây tiến trình với ID , tham số -u xem tiến trình thuộc quyền sở hữu của người sử dụng nào, có thể đóng gói các tham số này vào câu lệnh ngắn gọn:

pstree -apu

2. ps command:

Lệnh ps liệt kê danh sách các tiến trình đang hoạt động trong hệ thống, nếu bạn không thêm vài tham số thì ps sẽ liệt kê các shell hiện hành:

thesun@thesun:~$ ps
PID TTY          TIME CMD
3646 pts/0    00:00:00 bash
4795 pts/0    00:00:00 top
5683 pts/0    00:00:00 ps

Sử dụng tham số x để liệt tất cả các tiến trình

thesun@thesun:~$ ps x
PID TTY      STAT   TIME COMMAND
1930 ?        Ssl    0:00 gnome-session
2306 ?        Ss     0:02 /usr/lib/scim-1.0/scim-launcher -d -c simple -e all -f socket –no-
2682 ?        Ss     0:00 /usr/lib/scim-1.0/scim-helper-manager
2683 ?        Ssl    0:07 /usr/lib/scim-1.0/scim-panel-gtk –display :0.0 -c socket -d –no-s
2685 ?        Ss     0:03 /usr/lib/scim-1.0/scim-launcher -d -c socket -e socket -f x11
2690 ?        Ss     0:00 /usr/bin/ssh-agent /usr/bin/db

PID: ID của tiến trình, đây là số duy nhất dùng cho mổi tiến trình.
TTY: Terminal hay console nào mà tiến trình được khởi động, dấu “?” có nghĩa là tiến trình không khởi động từ Terminal/console.
STAT: Trạng thái tiến trình, S (sleeping – đang ngủ), R (running – đang hoạt động), D (dead – tiến trình không thể khởi động), Z (zombie – tiến tình kết thúc).
TIME: Khoản thời gian CPU dành cho tiến trình – khoản thời gian này có độ tương đối dựa trên các thuật toán định sẵn.
COMMAND: Câu lệnh đầy đủ để khởi động tiến trình.

với tham số u, ps liệt kê các tiến trình riêng của người dùng hiện tại, tuần xuất CPU, phần trăm bộ nhớ …như:

thesun@thesun:~$ ps -ux
Warning: bad ps syntax, perhaps a bogus ‘-’? See http://procps.sf.net/faq.html
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
thesun    1930  0.0  0.3  25524  6584 ?        Ssl  08:35   0:00 gnome-session
thesun    2306  0.0  0.0   4808  1524 ?        Ss   08:35   0:03 /usr/lib/scim-1.0/scim-launch
thesun    2682  0.0  0.0   4400   804 ?        Ss   08:35   0:00 /usr/lib/scim-1.0/scim-helper
thesun    2683  0.1  0.3 106156  8052 ?        Ssl  08:35   0:08 /usr/lib/scim-1.0/scim-panel-
thesun    2685  0.0  0.0   6112  1892 ?        Ss   08:35   0:04 /usr/lib/scim-1.0/scim-launch

tham số a sẽ liệt kê tất cả tiến tình của tất cả người dùng trong hệ thống.

Trong một số trường hợp khi bạn khởi động một chương trình nào đó từ terminal thì trình này sẽ khóa terminal mà bạn khởi động, vì vậy sẽ không nhập thêm được gì vào terminal này, theo đó bạn có thể khởi động thêm một terminal khác hoặc là ngồi nhâm nhi một tách trà nóng hoặc ly cafe :D để đợi chương trình bên trên hoạt động xong, thêm vào kí tự “&” vào sau câu lệnh nếu bạn không muốn terminal bị khóa.

ví dụ: $totem &

Như vậy terminal sẽ thông báo ID của chương trình khởi động và bạn có thể làm việc tiếp với cửa sổ terminal này, dùng jobs để xem các shell trong trong cùng terminal session.

Trong môi trường Linux, các tiến trình được quản lý theo ID, vì vậy để điều khiển các tiến trình này, bạn cần quan tâm & làm việc với ID, tuy nhiên ID là những con số ngẫu nhiên mà Linux cấp cho tiến trình, vì vậy biết tên của tiến trình cũng là cách hay để biết được ID của tiến trình đó, như đề cập bên trên với ps hay pstree command, kết hợp với grep <tên tiến trình>.

ví dụ: $ps -ef | grep totem

bằng cách này bạn có thể lấy được ID của tiến trình mà totem đang hoạt động, và kể từ đây muốn điều khiển totem thì hãy làm việc với ID của nó.

Kill command:

Dùng kill -l để liệt kê cấu trúc của Kill, Bạn có thể thấy một danh sách nhiều lựa chọn:
1) SIGHUP: gửi đến tiến trình yêu cầu restart sau khi kết thúc.
19)SIGSTOP: ngắt tiến trình cho đến khi có yêu cầu SIGCONT
vd: $kill -19 <ID>

Tagged with:
Nov 10

Làm thế nào để giảm chi phí tài chính CNTT cho doanh nghiệp P1.

Tại sao PMNM ít được phổ biến tại Việt Nam:

Có nhiều nguyên nhân khác nhau, nhưng chủ yếu là do:
1. Tâm lý ngại dùng PMNM vì cho rằng khó sử dụng.
2. Vấn để bản quyền phần mềm còn “thả nổi” tại Việt Nam.

“Trong bài viết này tôi sử dụng từ “Linux” để chỉ dòng hệ điều hành nguồn mở”

Vấn đề thứ nhất (1), Nếu cách đây vài năm thì có thể là đúng, nhưng hiện tại Bạn sẽ không phải lo vì giao diện đồ họa trong Linux rất thân thiện, bạn chỉ cần những thao tác đơn giản như: click, drag, drop như đã từng làm trong Windows, trừ khi Bạn muốn là một chuyên gia về linux thì lúc đó hãy dùng đến “command line”

Vấn đề thứ hai (2): là một trong những tiêu cực mà người dùng phải trả giá nếu họ dùng phần mềm lậu. với khoản vài ngàn đồng để sở hữu 1 CD Windows kèm theo những phần mềm đã được bẻ khóa (crack) sẵn trên mạng, rất dể để khai thác nhưng bạn đã vi phạm quyền sở hữu trí tuệ trên thế giới nói chung và tại việt nam nói riêng.

Như tôi đã nói ở phần trên “giảm chi phí CNTT”, vì vậy trong bài viết này tôi chỉ đề cập đến phần mềm miễn phí và PMNM (Free Software & OpenSource), hai khái niệm này hoàn toàn khác nhau:

+ Free Software: nói nôm na là phần mềm miễn phí, bạn không tốn phí để mua bản quyền nhưng nhà sản xuất không đưa ra mã nguồn vì họ đóng gói thành ứng dụng. Bạn không thể phát triển thêm vì không đọc được những dòng code trên nó.
+ OpenSource: là phần mềm mà nhà sản xuất (bao gồm cá nhân, cộng đồng, những tổ chức phát triển phần mềm) công bố mã nguồn, bạn có thể phát triển thêm những tính năng cho phần mềm này, và tất nhiên việc dùng phần mềm này cũng miễn phí.

Tuy nhiên, OpenSource không có nghĩa là miễn phí tất cả, vẫn có những phần mềm thương mại. ví dụ: Công ty của Bạn cần phần mềm quản lý nhân sự chẳng hạn, trừ khi Bạn có thể viết được phần mềm này, còn không thì phải thuê bên thứ 3, như vậy bạn cần trả chi phí để bên thứ 3 thực hiện … có một số ngộ nhận về vấn đề này như tôi đã đề cập ở trên.

Làm quen PMNM như thế nào ?

Không giống như Windows hay MAC, Linux có rất nhiều bản phân phối (distro) khác nhau, do những tổ chức/công ty trên thế giới phát triển, như CentOS, Ubuntu, Fedora, Redhat, OpenSUSE … khoản hơn 200 distro, thật khó khăn khi quyết định distro nào hợp với công việc của mình, thay vào đó bạn có thể hỏi những chuyên gia hoặc đến một công ty tin học nào đó để tư vấn như Nhân Corp – www.nhan.vn chẳng hạn :D .

Theo kinh nghiệm của tôi thì xin giới thiệu Ubuntu distro, đây là distro có thể nói là được ứng dụng nhiều nhất cho Desktop & Server. Bạn có thể ghé thăm www.ubuntu.com – trang chủ của Ubuntu – hãng Canonical, hoặc thường xuyên theo dõi blog này, chúng tôi sẽ viết về Ubuntu như là chủ đề chính trong dòng *Nix/Linux :D

Và đặc biệt với sự kiện hãng Canonical vừa cho ra lò Ubuntu 9.10 – Kamic Koala (cả distro dành cho Desktop và Server) với những tính năng vượt trội đã làm cho cộng đồng PMNM xôn xao chào đón nồng nhiệt.

Những yêu cầu chính khi chọn Linux Distro phù hợp công việc:

1. Hỗ trợ tốt phần cứng.
2. Đa dạng về phần mềm.
3. Thường xuyên cập nhật phiên bản mới.
4. Cộng đồng người dùng nhiều về số lượng.
5. Nhẹ, đi kèm hiệu quả, có thể hoạt động trên máy có cấu hình tối thiểu.

Với những yêu cầu này thì Ubuntu đáp ứng đầy đủ:
1. Driver phần cứng được tích hợp sẵn, ngoài ra có thể lên trang chủ để download driver nếu Ubuntu không hỗ trợ khi cài đặt
2. Một kho phần mềm khổng lồ, với vài câu lệnh đơn giản là có thể dùng.
3. Cứ 6 tháng hãng Canonical phát hành phiên bản mới, ngoài ra bạn có thể cập nhật phần mềm mới, danh sách vá lổi thông qua trình Update.
4. Cộng đồng này khắp nơi trên thế giới, bạn không phải lo “.. chỉ có mình tôi dùng :(
5. Có thể nói Ubuntu là distro thuộc hạng “nhẹ” về kích thước, đòi hỏi cấu hình phần cứng máy tính thấp, nhưng không vì thế mà kém hiệu quả

Tagged with:
preload preload preload