04-11-2012
C/C++ are considered high/low level languages because you can write fairly high-level code, with complicated data structures and local variables and functions and various other things you'd find in "high"-level languages, and still have it translated into 100% pure uninterpreted assembly language. You can even write freestanding things like bootloaders and operating systems in C/C++ because you can exercise fine control over what external things are needed -- or, more to the point, aren't needed. You can forgo the standard libraries entirely and write code that depends on absolutely nothing.
This is very different from Java where everything has to be fed through an interpreter all the time. It's not the computer's native tongue, so to speak. You couldn't write a bootloader in it -- you'd need something else to load java first. It's not freestanding, not independent.
Your question unfortunately sounds a bit naive. Writing a disk defragmenter isn't trivial -- you need to understand a lot more than the language, you need to understand the structures of the filesystem in question. If you don't know enough about a filesystem to know which sectors to grab to find out what information, you can't write a defragmenter.
They're often written in C/C++, yes. They don't have to be, but because the structures for these filesystems are C/C++ anyway, it may be easiest to use them rather than reinvent the wheel.
If you want to build a defragmenter for educational reasons, I'd suggest working on the MS-DOS FAT16 filesystem which has very simple organization, then working up from there.
Last edited by Corona688; 04-11-2012 at 02:42 PM..
7 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
I want to do a low level format like in windows (C:\format c:) but I don't know how it works in unix or linux.. Can somebody help me ? thnx :) (3 Replies)
Discussion started by: day
3 Replies
2. What is on Your Mind?
Post what languages (including scripting) you know, why and where you think that language is most usable. Also include libraries in which you're really good at (libusb, gtk, qt, etc).
assembly?
C or C++?
perl or python?
pascal?
bash or csh/tcsh?
opengl?
gtk or qt?
mono? (27 Replies)
Discussion started by: redoubtable
27 Replies
3. Programming
Hi,
I am trying to write zeroes to the hdd using a c program. I don't want to use the dd or ddrescue or any such inbuilt program because of reasons like real time progress, writing custom patterns. (my program is more like an erasure application, but does only zero fill).
here are the steps... (35 Replies)
Discussion started by: sponnusa
35 Replies
4. IP Networking
Hi,
What is the best reference that gives in detail on nic cards configuration , assigning multiple ip addresses to a single interface, netlink library etc and all basic stuff at this level..?
Thanks (2 Replies)
Discussion started by: Gopi Krishna P
2 Replies
5. AIX
Hello All
I have a system running AIX 61 shared uncapped partition (with 11 physical processors, 24 Virtual 72GB of Memory) .
The output from NMON, vmstat show a high run queue (60+) for continous periods of time intervals, but NO paging, relatively low I/o (6000) , CPU % is 40, Low network.... (9 Replies)
Discussion started by: IL-Malti
9 Replies
6. Programming
Hi friends,
I hope everyone is fine and doing well. I queried in my previous thread about the low-level qualities of C/C++ languages.I really thank you people for explaining, it was really helpful. One more ambiquity that I have in my mind is regarding the unix system calls like open, creat,... (1 Reply)
Discussion started by: gabam
1 Replies
7. Programming
How to use X11 without Xlib not XCB? How draw window directly on low level?
I must use anyway window manager like Motif?
I have ridden that X11 has server-client architecture, client send via TCP/IP to port 6000 request for primitives and get replies.
Where is detailed description of it? In X11... (0 Replies)
Discussion started by: AndrzejB
0 Replies
LEARN ABOUT DEBIAN
xfs_freeze
xfs_freeze(8) System Manager's Manual xfs_freeze(8)
NAME
xfs_freeze - suspend access to an XFS filesystem
SYNOPSIS
xfs_freeze -f | -u mount-point
DESCRIPTION
xfs_freeze suspends and resumes access to an XFS filesystem (see xfs(5)).
xfs_freeze halts new access to the filesystem and creates a stable image on disk. xfs_freeze is intended to be used with volume managers
and hardware RAID devices that support the creation of snapshots.
The mount-point argument is the pathname of the directory where the filesystem is mounted. The filesystem must be mounted to be frozen
(see mount(8)).
The -f flag requests the specified XFS filesystem to be frozen from new modifications. When this is selected, all ongoing transactions in
the filesystem are allowed to complete, new write system calls are halted, other calls which modify the filesystem are halted, and all
dirty data, metadata, and log information are written to disk. Any process attempting to write to the frozen filesystem will block waiting
for the filesystem to be unfrozen.
Note that even after freezing, the on-disk filesystem can contain information on files that are still in the process of unlinking. These
files will not be unlinked until the filesystem is unfrozen or a clean mount of the snapshot is complete.
The -u flag is used to un-freeze the filesystem and allow operations to continue. Any filesystem modifications that were blocked by the
freeze are unblocked and allowed to complete.
One of -f or -u must be supplied to xfs_freeze.
NOTES
A copy of a frozen XFS filesystem will usually have the same universally unique identifier (UUID) as the original, and thus may be pre-
vented from being mounted. The XFS nouuid mount option can be used to circumvent this issue.
In Linux kernel version 2.6.29, the interface which XFS uses to freeze and unfreeze was elevated to the VFS, so that this tool can now be
used on many other Linux filesystems.
SEE ALSO
xfs(5), lvm(8), mount(8).
xfs_freeze(8)