superblock:泰国最大太阳能公司Superblock计划投资越

 2021-06-29 05:30    77  

泰国最大的太阳能公司Superblock宣布计划在越南南部的三个近岸风电场投资6.5亿美元。这三个风电场分别在Bac Lieu省的142兆瓦superblock,Ca Mau省的100兆瓦和Soc Trang省的98兆瓦。第一期风电场的建设已经开始,预计将于2020年投入运营。

Superblock投资的第二阶段将包括在Bac Lieu,Ca Mau和Soc Trang省增建360兆瓦的产能superblock。一旦第一期风电场投入运营,二期风电场将开始建设。

Superblock认为,由于越南经济的增长和年轻人口的增加,越南将成为其能源创造和管理活动的一个重要市场,这使得这些国家的能源消耗每年增加10%superblock。

在越南投资的一个重要考虑因素是,越南希望通过欢迎可再生能源活动来满足其日益增长的能源需求。Superblock的代表指出,泰国和越南都希望实施可再生能源解决方案,以促进更清洁的环境,减少空气污染。

Superblock首席执行官Jormsup Lochaya在接受采访时表示:“胡志明市和河内有类似的问题,越南想要清洁平价的能源,这一需求正在推动可再生能源的增长。”他还指出,越南政府在可再生能源方面的政策非常明确,对于投资者来说很容易制定投资策略。

据数据显示,越南目前的风电装机容量为140兆瓦,目标是到2030年达到6,000兆瓦。

除了风电场,Superblock正在考虑投资越南50兆瓦的太阳能发电厂,并将在今年晚些时候做出正式决定。

为了表达想要成为区域性参与者的愿望,Superblock计划在柬埔寨,印度尼西亚,老挝,马来西亚,缅甸,菲律宾以及越南扩大风能和太阳能产能。该公司表示,其目标是每年收入增长25%,海外收入贡献率攀升至每年30%。除了东南亚,该公司还表示将关注澳大利亚,中国和日本的项目。

EnergyVoice

VFS四大对象之一 struct super_block

linux虚拟文件系统四大对象:

超级块(super block)索引节点(inode)目录项(dentry)文件对象(file)一、super_block的含义:超级块代表了整个文件系统,超级块是文件系统的控制块,有整个文件系统信息,一个文件系统所有的inode都要连接到超级块上,可以说,一个超级块就代表了一个文件系统。

struct super_block { struct list_head s_list; /* Keep this first */ dev_t s_dev; /* search index; _not_ kdev_t */ unsigned char s_dirt; unsigned char s_blocksize_bits; unsigned long s_blocksize; loff_t s_maxbytes; /* Max file size */ struct file_system_type *s_type; const struct super_operations *s_op; const struct dquot_operations *dq_op; const struct quotactl_ops *s_qcop; const struct export_operations *s_export_op; unsigned long s_flags; unsigned long s_magic; struct dentry *s_root; struct rw_semaphore s_umount; struct mutex s_lock; int s_count; atomic_t s_active;#ifdef CONFIG_SECURITY void *s_security;#endif const struct xattr_handler **s_xattr; struct list_head s_inodes; /* all inodes */ struct hlist_bl_head s_anon; /* anonymous dentries for (nfs) exporting */#ifdef CONFIG_SMP struct list_head __percpu *s_files;#else struct list_head s_files;#endif struct list_head s_mounts; /* list of mounts; _not_ for fs use */ /* s_dentry_lru, s_nr_dentry_unused protected by dcache.c lru locks */ struct list_head s_dentry_lru; /* unused dentry lru */ int s_nr_dentry_unused; /* # of dentry on lru */ /* s_inode_lru_lock protects s_inode_lru and s_nr_inodes_unused */ spinlock_t s_inode_lru_lock ____cacheline_aligned_in_smp; struct list_head s_inode_lru; /* unused inode lru */ int s_nr_inodes_unused; /* # of inodes on lru */ struct block_device *s_bdev; struct backing_dev_info *s_bdi; struct mtd_info *s_mtd; struct hlist_node s_instances; struct quota_info s_dquot; /* Diskquota specific options */ int s_frozen; wait_queue_head_t s_wait_unfrozen; char s_id[32]; /* Informational name */ u8 s_uuid[16]; /* UUID */ void *s_fs_info; /* Filesystem private info */ unsigned int s_max_links; fmode_t s_mode; /* Granularity of c/m/atime in ns. Cannot be worse than a second */ u32 s_time_gran; /* * The next field is for VFS *only*. No filesystems have any business * even looking at it. You had been warned. */ struct mutex s_vfs_rename_mutex; /* Kludge */ /* * Filesystem subtype. If non-empty the filesystem type field * in /proc/mounts will be "type.subtype" */ char *s_subtype; /* * Saved mount options for lazy filesystems using * generic_show_options() */ char __rcu *s_options; const struct dentry_operations *s_d_op; /* default d_op for dentries */ /* * Saved pool identifier for cleancache (-1 means none) */ int cleancache_poolid; struct shrinker s_shrink; /* per-sb shrinker handle */ /* Number of inodes with nlink == 0 but still referenced */ atomic_long_t s_remove_count; /* Being remounted read-only */ int s_readonly_remount;};这个数据结构十分庞大,毕竟是聚集了一个文件系统的重要信息,我们关注一些比较重要的信息就行了。

struct list_head s_list;s_list 这是第一个成员,是一个双向循环链表,把所有的super_block连接起来,一个super_block代表一个在linux上的文件系统,这个list上边的就是所有的在linux上记录的文件系统。

dev_t s_dev; s_dev:设备标识符

unsigned char s_dirt;unsigned char s_blocksize_bits;unsigned long s_blocksize;loff_t s_maxbytes; /* Max file size */s_dev:包含该具体文件系统的块设备标识符。例如,对于 /dev/hda1,其设备标识符为 0x301

s_blocksize:文件系统中数据块大小,以字节单位

s_blocksize_bits:上面的size大小占用位数,例如512字节就是9 bits

s_dirt:脏位,标识是否超级块被修改

loff_t s_maxbytes; /* Max file size */s_maxbytes:允许的最大的文件大小(字节数)

struct file_system_type *s_type;struct file_system_type *s_type:文件系统类型(也就是当前这个文件系统属于哪个类型?ext2还是fat32)要区分“文件系统”和“文件系统类型”不一样!一个文件系统类型下可以包括很多文件系统即很多的super_block。

const struct super_operations *s_op;const struct dquot_operations *dq_op;struct super_operations *s_op:指向某个特定的具体文件系统的用于超级块操作的函数集合。

struct dquot_operations *dq_op:指向某个特定的具体文件系统用于限额操作的函数集合。

const struct export_operations *s_export_op;struct export_operations *s_export_op:导出方法

unsigned long s_flags;s_flags:安装标识

unsigned long s_magic;s_magic:区别于其他文件系统的标识

struct dentry *s_root;s_root:指向该具体文件系统安装目录的目录项

struct rw_semaphore s_umount;s_umount:对超级块读写时进行同步

struct mutex s_lock;s_lock:锁标志位,若置该位,则其它进程不能对该超级块操作

int s_count;s_count:对超级块的使用计数

atomic_t s_active;s_active:引用计数

s_dirty:已修改的索引节点inode形成的链表,一个文件系统中有很多的inode,有些inode节点的内容会被修改,那么会先被记录,然后写回磁盘。

s_locked_inodes:要进行同步的索引节点形成的链表

s_files:所有的已经打开文件的链表,这个file和实实在在的进程相关的

s_bdev:指向文件系统被安装的块设备

u:u 联合体域包括属于具体文件系统的超级块信息

s_instances:具体的意义后来会说的!(同一类型的文件系统通过这个子墩将所有的super_block连接起来)

s_dquot:磁盘限额相关选项

本文标签:对象之一四大

原文链接:https://www.xgfox.com/bcrm/38.html

本文版权:如无特别标注,本站文章均为原创。