Saturday, 29 November 2014

[partition] Tại sao cần phân vùng ổ cứng?

1. Bí mật được bật mí
- ổ cứng truyền tải dữ liệu từ các track phía ngoài (hay còn gọi là các track đầu tiên) nhanh hơn các track phía trong (các track sau).
(hãy nhớ cái đĩa CD hình tròn, cái đĩa cứng có cái lõi cũng vậy vậy). Bí mật này giải thích rất nhiều "bí quyết" khi phân vùng ổ cứng.
Xem thêm hình trên wikipedia để hiểu về track (http://en.wikipedia.org/wiki/Disk_sector)
- các phân vùng nhỏ sẽ yêu cầu "đầu đọc" di chuyển ít hơn so với các phân vùng lớn. Di chuyển ít với lượng dữ liệu cần thực hiện không đổi tức là nhanh hơn.
(các điều trên đúng với ổ cứng từ được sử dụng phổ biến (HDD), và không đúng với ổ cứng rắn SSD).

http://ocz.com/consumer/ssd-guide/ssd-vs-hdd

2. Tại sao cần phân vùng ổ cứng?

Lịch sử
Ngày xưa dùng Windows, lý do để phân vùng ổ cứng (chia ổ) để "dễ sắp xếp" hay lý do kỹ thuật hơn là "để lúc cài lại Win thì chỉ việc format ổ C đi rồi cài lại vào đấy, dữ liệu các ổ khác sống khoẻ re".

Trên Ubuntu, cơ bản tất cả cũng sẽ nằm trên 1 partition (lúc cài đặt nó hướng dẫn thế), cùng lắm thì với advance user, Ubuntu giới thiệu việc tách riêng /home ra một partition khác. Một tác dụng dễ thấy của việc táchnày là để dùng nhiều OS (Linux-based OS) trên cùng một máy, lúc cần chỉ việc mount partition /home đó vào một thư mục và lại có thể truy cập các dữ liệu của mình.

Vậy còn lý do gì khác?

  • Trên UNIX-like OS, các directory (thư mục) được chia rõ ràng để đảm nhiệm các công việc khác nhau. /etc, /usr, /var, /tmp ... vì làm công việc khác nhau nên chúng có những đặc tính khác nhau. /etc hay /usr thường chỉ để đọc trong khi /var hay /tmp thường dùng để ghi (và cả đọc). Nếu biết phân vùng hợp lý để đẩy /var và /tmp ra phía ngoài rìa đĩa thì performance (hiệu năng) sẽ được cải thiện.

Thursday, 27 November 2014

[BSD] DragonFly BSD 4.0 chào Việt Nam

Một trong vài tin hot nhất trong giới công nghệ trong ngày hôm qua (25 Nov 2014) chính là việc DragonFly BSD release bản 4.0.

..WARNING:: Bài viết hướng tới super user / experienced user, có thể coi như 1 bài tut và làm theo từng bước.

DragonFly BSD (DFBSD) là gì?
"dragon fly" trong tiếng Việt là con chuồn chuồn.


Một hệ điều hành UNIX-like, tách ra và phát triển từ hệ điều hành FreeBSD bản 4.8 (BSD version 4.x được đánh giá là phiên bản hệ điều hành ổn định (stable) nhất của mọi thời đại)
Tác giả chính: Matthew Dillon, từng là một developer của FreeBSD, lý do tách ra do mâu thuẫn về quan điểm khi có một thay đổi lớn về kiến trúc ở bản FreeBSD 5 (đọc thêm ở trang chủđây)

Để làm gì?
Chơi cho vui :3
Với một hệ điều hành nhỏ, lượng developer không lớn, sẽ dễ dàng hơn cho các dân chơi hiểu sâu hơn về hệ điều hành, kernel ..., bởi với lực lượng không đông đảo, người ta sẽ tập trung nguồn lực vào những thứ được xem là quan trọng nhất. Xem thêm về system design ở đây.

Bài viết này sẽ thử nghiệm cài đặt một workstation chạy trên một máy ảo Virtualbox để dev python với vim, pip, tmux trên DragonFly BSD 4.0

Thursday, 13 November 2014

[rabbitmq] ghi chú nhanh về user chạy rabbitmq

Bài viết sử dụng dẫn chứng trên:
# lsb_release -d; dpkg -l rabbitmq* | grep rabbit
Description:    Ubuntu 12.04.4 LTS
ii  rabbitmq-server                  3.1.2-1                            AMQP server written in Erlang
User chạy process rabbitmq luôn luôn là user ``rabbitmq``, cho dù bạn đã dùng user ``root`` để start service hoặc sử dụng câu lệnh ``rabbitmqctl` bằng ``root`` user.
Lý do là vì các bin script do package rabbitmq cung cấp luôn kiểm tra user gọi câu lệnh và set nó về ``rabbitmq`` nếu có thể.

Bằng chứng:

Saturday, 8 November 2014

[cmd] linux utilities - có gì cần thiết?

Một danh sách các command line tool tuyển chọn bởi FAMILUG.

Những dòng hiện "nothing appropriate." là nhưng built-in command của bash hoặc là các tool chưa cài đặt trên máy chạy script này.

./linux-util.sh
FAMILUG's list of essential Linux utilites 1.0
TOTAL: 80
man (1)              - an interface to the on-line reference manuals
man (7)              - macros to format man pages
ls (1)               - list directory contents
cd: nothing appropriate.
pwd (1)              - print name of current/working directory
grep (1)             - print lines matching a pattern
head (1)             - output the first part of files
tail (1)             - output the last part of files
cut (1)              - remove sections from each line of files

Wednesday, 5 November 2014

[Python] python -v

Số man page mình đã từng đọc có thể... không thể đếm được (vì không nhớ)
nhưng buồn cười thay manpage của python thì lại chưa bao giờ đọc :v

Hôm nay đọc, và mò ra được một tí hay ho:

-v
Khi chạy python -v, python sẽ in ra một message mỗi lần một module được khởi tạo (initialized), hiển thị nơi mà nó được load (có thể là filename hoặc built-in). Đồng thời cung cấp các thông tin về quá trình dọn dẹp module khi kết thúc chương trình.
Rất hữu ích cho nhưng ai muốn tìm hiểu cơ chế hoạt động của python.
 $ echo -e print \'meomeo\' > /tmp/meo.py
 $ python -v /tmp/meo.py

Tuesday, 4 November 2014

[Ruby] Cài đặt/sử dụng rbenv

Cho những ngày tháng không Facebook :">

Vì sao chọn rbenv ?

  • Nhẹ
  • Cài đặt đơn giản
  • Sử dụng dễ
  • Mỗi folder 1 gem version khác nhau được, hoặc set 1 version dùng chung (global)
  • Không cần quyền sudo, user bình thường cũng có thể cài ruby và deploy 1 ruby app.

 

Cài đặt RBENV

Hướng dẫn cài đặt này đã test cho Ubuntu 12.04 LTS.

Cài cái gói phụ thuộc (Dependency packages)
Phần này cần sudo để cài.

sudo apt-get install autoconf bison buixld-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev git curl